Skip to main content

Posts

Cryptocurrency: a solution that does not solve a problem

Suppose I went to my local cafe to buy a coffee, and suppose the cafe accepted cryptocurrency. What incentive would I have to use that over fiat currency? None. If I pay with cryptocurrency for that transaction, there are 3 problems: the need to pay gas money, a similar idea to a transaction fee be contributing to global warming with the computationally-intensive nature of cryptocurrency cryptocurrency is not FDIC insured By contrast, if I pay for the coffee with my debit card, I don't need to pay a transaction fee. The transaction would probably be quite a bit faster since nothing computationally intensive has to happen. Also, my money linked to my debit card is FDIC insured, unlike money in a cryptocurrency wallet. So for multiple reasons outlined above, cryptocurrency is an inferior means of exchange compared to fiat currency. Now, if you were to tell me that cryptocurrency's main advantage is not as a means of transaction but rather as an asset that could increase over time...

The most appropriate use of AI writing tools may be to produce a parody of itself

I was contemplating the idea of writing a parody of AI writing similar to that generated by ChatGPT and other AI writers. But wait! Isn't AI writing already a parody of itself, after all?  It produces information which may or may not be correct.  Instead of carefully making a parody of AI writing, it would save a lot of time to just have the AI produce its normal output. It then occurred to me that perhaps this could and should be the most appropriate usage of AI writing tools.  Maybe the only way to use an AI writer is ironically.  Remember, any AI model is an interpolation system which cannot reliably extrapolate .   Feel free to use and share this image.

Linux applications I like

This is a list of my favorite Linux GUI applications in alphabetical order. Command-line applications (e.g. dadadodo, sbcl, etc) will not be listed here. Balsa - I use it as a searchable mail archive Brasero - This is my main tool for making live media CD's (i.e. disk ISO) Clam TK Claws mail Dia - diagram editor Emacs GUI GIMP gthumb - my favorite photo viewer and basic editor Kazam - screen recording software to make a video LibreOffice suite Links2 - alternative super low-tech browser (I hardly ever use it but like having it in case) Master PDF Editor 5 - the best way to fill and annotate PDF's nobleNote - for my archived notes; searchable ReText - Markdown editor, dual pane for markdown syntax and WYSIWYG. Useful in NaNoGenMo season for ease of reading the output of my program Zim desktop wiki - planner/organizer

Why bother using blockchain for metaverse worlds when decentralization is possible without it?

Decentralization is possible without using blockchain. Some examples of this are Diaspora and Mastodon , both of which are federated decentralized networks that do not use a blockchain.  In that case, why is there a need to use blockchain for any metaverse world, especially when the environmental reputational risks are so high? In many areas of the world, the electric grid is not decarbonized yet. The amount of power drawn for blockchain computation is high. In fact, in areas where electricity is cheap enough to draw blockchain miners, this tends to be heavily based on fossil fuels. So you could say that the blockchain is currently largely powered by coal and other fossil fuels. So again, why bother using blockchain?  There are other examples of the buying and selling of digital property without using blockchain technology, for example domain name trading. If we as humans are truly to be future-conscious, blockchain technology cannot be a part of our future due to its emissio...

Good and bad uses of AI as it currently stands

The good Recently, the Photos app on my Android phone automatically curated some of my photos into a "highlights" album for me. I thought this was a fantastic idea. I love this use of AI - it does something quickly and easily that would otherwise take a lot of human time.  The only downside was that the AI included a close-up pic I'd taken of a spot on the skin behind my husband's ear so he could see it. Now, if this AI had instead been for a self-driving car, then too bad, we likely would've had a terrible wreck at this point - endangering myself, any passengers, and other drivers on the road. But since this application of AI for photo selection did not have any life-threatening consequences, I was all for it. The bad I've said before, and I'll say it again, that AI as it currently stands should not be used for self-driving purposes and I have explained clearly why. Indeed, I believe that AI should not be used for any purpose that may have life-threaten...

More callable variants of functions in Ruby

 This is a slightly more advanced version of my previous post on creating callable variants of functions in Ruby while avoiding scope problems . In today's instance, I was creating an error reporting system for a program I was writing.  The error reporting, of necessity, had to emit a message to indicate what was going on. While some errors would be unique messages that only occurred once during the program, other errors could be grouped. For example, one group was "incorrect number of parameters supplied". There were several error messages within my program that fell into this category, so I didn't want to type out the exact same wording each time. I wanted to create a function that could report this sort of error indicating where it happened (of course I had to supply parameters to the messages to show the context). So here is a very basic sketch of the sort of thing I was doing. I'm writing this here so that I can go back to it easily later. The item I'm re...

Creating callable variants of functions by currying in Ruby - code snippet showing how to avoid scope problems

While coding a project in Ruby, I was creating some variants of a function by currying. Initially, I simply created the curried variants as variables, but quickly ran into scope problems where I couldn't then call any of the variants from within other functions. This was because the scope of the variant was the same as the scope of a local variable of that name.  So I created a code snippet as a demo for myself of what I should have done instead, which is to define the curried variant as another function. This new function then has the same scope as any function I would create and not the (more limited) scope of a local variable. Of course, in certain situations defining it as a local variable is more desirable - for example if I was instead planning to use the variant as a variable that could be passed around. This is as opposed to using it solely as a callable function, which is what I ultimately desired. def myfun(stuff, num1, num2)   if stuff == true then   ...

Why Solar Geoengineering is a Bad Idea: 3 reasons understandable to both the general and scientific communities

Solar geoengineering is the idea of limiting the amount of sunlight that reaches the earth, with the aim of limiting global warming. Here I will show 3 reasons why it's a really bad idea: 1. Photosynthesis requires sunlight, don't limit it - it's one of the few things pulling carbon dioxide out of the atmosphere Photosynthesis is one of the very few ways we have to remove carbon dioxide from the atmosphere. As an added bonus it's done automatically by plants, requiring no effort on our part. It requires light in order to work. To do it, plants take in sunlight, carbon dioxide and water, and they produce oxygen. These plants are literally removing carbon dioxide from our atmosphere, but they require light for it to work.  We should not do anything that could possibly limit the amount of photosynthesis occurring; limiting the amount of light hitting the planet is likely to decrease photosynthesis.  2. We should not be limiting the generation of solar power Solar electri...

Ruby - 'reduce' or 'inject' applying a string function, a quick code snippet example

I was getting my head around the reduce method (also known as inject ) in Ruby for some code I am writing. I suspected that this would be what I really wanted to use with my array instead of the more generic each which first sprang to mind. So I was eager to try out the concept with reduce and ready to code a quick separate sketch of the outline for my particular use case. However, most examples of reduce out there are mathematical in nature and this makes it harder to mentally translate to string use examples.  In my case, I'm using the string to stand in for a more complex data structure, so I didn't want to have to mentally translate from numbers to strings to higher order structures. The Ruby documentation for reduce/inject was thorough but I struggled to wrap my head around their terminology, especially the word "memo". I finally realized that "memo" simply means the changing result. That seemed to do the trick mentally.  Since most of the functio...

Life using the Linux operating system exclusively for the last few years

Above: my Linux desktop layout. Back in 2017, I switched my operating system entirely to Linux. In case anyone is wondering, here is what I experienced over the last few years. Others I interact with have no idea I'm on Linux. For example, if someone emails me an MS Word document that I need to complete, I simply open it with LibreOffice (an open-source word processing program that is pre-installed on most Linux systems), edit the document as needed - which is very easy since the same sorts of functionalities are available in LibreOffice - and then I can save it in MS Word format and email it back. Likewise, if I'm on a Zoom call, everything works just the way it does on PC and Mac. Zoom makes their application available for Linux too, I downloaded it and let it self-install, and it works exactly the same way as it does on other operating systems. I can point-and-click my way to whatever I need to do on Linux; no special knowledge required. If you want to dig deeper into script...

Conspiracy theories are so unbelievable that you can easily make up a more believable one yourself. Here's how.

Disclosure: This is a thought experiment for the purposes of showing how easy it is to make up a conspiracy theory. I do not advocate the dissemination of conspiracy theories and other baseless speculations. Do some of the conspiracy theories out there seem so far-fetched that you are ROTFL when you hear of them? Yet some people actually do seem to believe them. Many conspiracy theories are made up. In other words they are fiction. At best, they are theories and not fact, otherwise that particular conspiracy theory wouldn't be a conspiracy theory, it would be fact. At worse, they are the deliberate peddling of lies. So I decided to demonstrate that creating a conspiracy theory is so easy that anyone can do it. There are no special skills, talents, or level of intelligence required. There is nothing special about making up a conspiracy theory. Let's have a go. Step 1: Identify the least believable conspiracy theory you have heard of This step is easy and should take you less th...

Ruby IO - file pathnames for use on different operating systems

I had finished writing a piece of software in Ruby in for Linux and wanted to test it also on PC. Since the software involved reading in some data from files, I wanted to be sure that the pathnames could be handled on PC. In Lisp, this is handled with relative ease where it's possible to specify the subdirectory of interest, and the file(s) within that, and it's up to the Lisp implementation to handle the differences between different operating systems.  I was rather expecting something similar for Ruby (given its influence from Lisp), but to my surprise, the official documentation on the File class had no information that I could find as to how pathnames would be handled differently on different operating systems.  Then I looked at the docs for the Ruby IO class , and found the information there. It says: Ruby will convert pathnames between different operating system conventions if possible. For instance, on a Windows system the filename "/gumby/ruby/test.rb" will ...

My Brief Adventures in Neural Networks: Merely an interpolation system which cannot reliably extrapolate?

I used to think neural networks were a reasonably good technology, until I decided to try setting up a neural network myself. After some experimentation with neural networks, I dramatically reversed my stance. I now believe neural networks should not be in charge of any decisions such that could have life-or-death impact. Find out why below. Disclosure: These are my personal thoughts about neural networks based on my limited experience with them. I do not claim to be an expert in neural networks. First I'm going to propose a definition for a neural network: An interpolation system whose behavior becomes undefined when extrapolating beyond its training data. In simple language, "undefined" may be thought of as "random by human standards". OK, how did this definition come about? It all started when I desired to make a system for classifying fonts a year or two ago. Even Google Fonts had at the time very few parameters for manually finding suitable fonts. For pick...

Linux software to look into from the Linux Mint Software Manager

 This is my personal list of software to look into. It's things that look interesting (to me) that are in the Linux Mint Software Manager. Note that this is distinct from the Synaptic Package Manager; however I assume that the Mint Software Manager is a curated subset of Synaptic. Artha - awesome-looking off-line thesaurus Treeline - tree-like custom data manger. Might work as a hierarchical note-taking app. For now though I'm happily using feathernote for that. Geekcode - fun personalized geekcode generator for signatures etc Singularity - looks like an intriguing and original game Laby - kids learn to program game with ants and spider webs Tuxtype - educational typing tutor game

Installing Academix Linux - how to fix it when installing hangs at configuring network

I recently tried installing Academix , a Linux distro aimed at schools and universities. The graphical installer seemed to work fine except that it would hang up whenever it got to the stage of configuring the network. It was able to correctly connect to Wi-Fi when given the Wi-Fi password during the install, but never moved beyond that. This problem was surprising to me, because when trying it out on live media I never had any problems with network connectivity. So I was blindsided by this issue coming up when installing. I reasoned that if I was having those problems, maybe others were too, and so I contacted the developers to ask how I should proceed. I received a very nice response quite quickly, mentioning that in my situation it would be best to install without a network and add it in later. For me, that meant specifying my wired connection (which wasn't connected) instead of Wi-Fi during the install. It couldn't establish a connection, but fortunately was still able to c...

Button to reload the page and go to a section with a hash mark

While there are lots of ways to code it so a button reloads the page, it was hard to figure out how to do it in such a way that it goes automatically to a URL with a hash. So here is my solution that works, finally. Update - better solution: Here is a better solution, since the one below worked for me on any page except the domain root. It may be the way my CMS is set up or it may be the way my server is set up, or most likely I'm missing something fundamental about the way the function works. Anyway, the better solution I've gone with doesn't include the hash in the URL, but it reloads to the point the user was last browsing at, which for my purposes worked out the same as the hash. So here is the solution I'm going with for now. <button onClick="window.location.reload();">Generate New</button> The solution I put earlier (see below) did not work for me in all instances, but it's worth trying out. The initial problem I needed a button that user...

How to center images horizontally using Grav

I've been playing around a bit with Grav. I was posing the question to myself: for the relatively simple use-cases I'm dealing with, could it possibly work for my purposes as an alternative to ProcessWire?  The problem I was initially dismayed to find that Grav uses Markdown as its editor, which does not offer native support for horizontal centering of anything (text or images). However, Grav offers some tweaks that help make it easier to do specific things you might commonly want to do. I tried writing a sample article, and I found that one of the hardest things to do was to center an image horizontally. And horizontal centering of images is something I would typically do in most of the articles I would write. So the lack of easy horizontal centering is a highly significant drawback IMHO (most people do want to center images in an article!) However, this issue is made up for by other things in Grav: the relative speed, ease and flexibility of custom theming and built-in suppor...

Lisp is a lot more readable than you might first think

At first, Lisp just didn't seem very readable to me. And yes, by this I meant even my own relatively simple code. But as I programmed more and more in Lisp, things became more and more readable. Probably not a surprise, right?! But actually, Lisp is a lot more readable when you are used to it , than a lot of other languages when you are used to them. Let's take a look at how this is, with some examples. Lisp is very readable because of its function-oriented syntax. Lisp statements have the format (function arg1 arg2 ... argN) Thus, any statement must begin with the name of a function. This makes it easy to tell what's going on right away by simply reading left to right within each statement. Also, starting with a function name makes syntax errors extremely easy to spot. For example, let's take a look at this incorrect Lisp code: (12 / 4) Before even getting past the 12, it should be very clear that what's wrong here is that I'm trying to call a f...

If you can shell script, you can Lisp

I've noticed from people's attitudes toward Lisp that many think it is an esoteric and difficult language to learn. Nothing could be further from the truth, but it does depend on what angle you're coming at it from. If you're coming from C, C++, Javascript, or even Python, then yes Lisp does appear impenetrable at first glance. But if you're coming from shell scripting (e.g. Bash or another Linux or Unix shell) - a skill which most programmers have used at some point - then Lisp is going to be very simple and very familiar for you to learn. You may be asking, how is this? Well, I'll demonstrate it with a couple of examples. I'm going to show you a shell command that takes the second column of a space-delimited file test.txt, sorts the resultant data, and shows the second item in the sort. cut -d" " -f2 test.txt | sort | head -2|tail -1 There is absolutely nothing remarkable about this, as you can see. The results of one command are bein...

Funny-looking Linux commands that I actually typed

I thought I'd make an ongoing list here of odd-looking Linux commands that I've typed in the course of my Linux-ing. 1.Looking for information about the date and time command: man date No, computer! I'm not asking you to find me a date! 2. Echoing something as root sudo echo ... Should I have simply completed that command by typing "funky town"? In case you're wondering, there was an 80's song called Funky Town, sung by Pseudo Echo. 3. Looking for information about the find command: man find Yet again, I'm looking desperate for a date.

About Me

My photo
Vera
I'm a wife and mother. I don't have any formal computer science qualifications, or any religious qualifications. I have a PhD in biochemistry. This photo is of me, but is confusing for AI.