A strange source of computer bugs

Today I looked at a tutorial on Visual Basic for Applications, the language that enables power users to program in Microsoft Office apps, notably Excel.

Now, in VBA, code comments can be defined with the single quote () character. Thus, this line of code would be a comment and ignored during program execution.

` This line of code is a comment

Somewhere down the line, I was reading the part where they described user-defined functions. Here’s the example:

Function Functionname(parameter-list) '
statement 1
statement 2
statement 3
.......
statement n
End Function

Notice what I saw on the far-right end of line 1. This confused me a little because I remembered that the ' characters are for comments. So how could it possibly be used here?

After a little bit of searching without success, I returned to look at the example again, only to find that the character had disappeared! I nearly kicked myself: what I thought was a character was nothing but a speck on my screen. I lost precious minutes because I did not keep my screen clean enough.

Facepalm
Sometimes one can be so careless!

This reminded me of how the earliest computer bugs were discovered, for example, at Harvard University. It’s a fascinating story–you can read more about it here.

Leave a comment

Filed under Computers & Internet

RQDAassist 0.5.1

There’s a new release of RQDAassist, a package that was created to help RQDA users to overcome the difficulty of installing it on R version 4. The issues that led to this are explained in this post.

The need for today’s update is informed by the arrival of R 4.2.0 (“Vigorous Calisthenics”), which has presented some difficulty with the installation of key RQDA dependencies.

Rationale

In R 4.2 the R Core Team has made 2 changes to the build system/toolset for Windows machines. They are:

  1. Migration of R builds (as well as package binaries) to the Universal C Runtime (UCRT).
  2. Changes in Rtools significantly affect how R and packages are built from source.

R and UCRT

As of version 4.2, R is to now switch from MSVCRT to UCRT. This is to enable native encoding of R builds on Windows to UTF-8. This is a welcome development as it makes internationalization easier, but as R Core has admitted, it also presents a few challenges. For a more detailed description of these changes, read this article from cran.r-project.org.

Concerning RQDAassist, some of the archived binaries like RGtk2 required for RQDA are not compatible with R 4.2 since they were built with the old runtime. This is the first problem we encountered. The second problem is discussed in the next section.

Rtools42

In order to build R or any packages from source on Windows, we need Rtools, a collection of compilers, shells utilities, etc. For R 4.2, this toolchain was modified both in its content and behavior. With the failure to install RGtk2 binaries as mentioned earlier, we attempted to build RGtk2 from source (the function RQDAassist::install() provides an argument for both Installation approaches). This also proved to be problematic with Rtools42, particularly when compiling the C code in RGtk2 with the GTK distribution.

Additional work will be required to overcome this challenge and there’s the possibility that an all-out upgrade of RGtk2 itself might be necessary. From the communication by the RGtk2 author, it seems the package was “accidentally” archived on CRAN, so part of the plan is to monitor the conversation before deciding on the next course of action.

The Why

One may wonder why I’m going through all this hassle. Why not just abandon RQDA and move on to some other software for qualitative data analysis? Well, I don’t know for sure – call it stubbornness if you will. But I have a team of analysts that have used RQDA working for me since 2019. I’ve invested a lot of time, energy, and money to get to this point where I can use this tool to provide the services for which we get paid.

But it’s also been a tremendous learning experience and I get emails from researchers who need some support to continue using RQDA. I am therefore motivated to do my little bit to help.

Changes to RQDAassist

The current change to RQDAassist is mainly to disable the installation of RQDA on R 4.2 and above. This is expected to be a temporary fix until such a time when we are able to migrate it to a current, upgraded R version.

Other changes include more efficient installation of binary RQDA dependencies like RGtk2 and cairoDevice, more informative messages for users, and a cleaner installation experience. Any attempt , however, to install it on R 4.2 or above will result in the following error message:

ERROR: this R is version 4.2.0, package 'RQDAassist' requires R < 4.2

Installation

To install RQDAassist, start your R session and use the following code

if (!requireNamespace("remotes")
  install.packages("remotes")
remotes::install_github("RQDAassist")

To install RQDA, run

RQDAassist::install()

and for more information visit the help file with ?RQDAassist::install.

Leave a comment

Filed under Computers & Internet

My Network Sharing Apps

This is going to be very brief. The other day I watched a YouTube video by a well-known online business coach and was introduced to network (i.e. internet subscription data) sharing applications on the Google Play store.

Now I refrain from mentioning these apps here because I’m not trying to disparage them in any way. The purpose of this post is to inform those whom I shared this information with on what I’ve done with these apps. Well, I’ve deleted them.

I deleted them for the simple reason that they are not a good way for me to make money. The apps run in the background but I have to keep restarting them. That, for me, is a big problem because I simply don’t have that kind of time. I do mine the Pi cryptocurrency, but I have to tap on it only once a day and it runs well, so i can live with that. These apps, however, require my attention every 30 mins or so because they keep going off. It’s possible this is so because the roving IP of my mobile provider – it may be more stable with WiFi connections but I’ve not tried it out yet.

Some online “businesses” seem more like slavery

The payout is definitely not worth my time – i can’t earn up to a dollar per day on any of those apps. The time required to keep restarting and monitoring them to earn next to nothing is a pure waste of time, in my opinion. Online surveys are better; at least they teach you a thing or two.

So, guys (you know yourselves), I’m out. You’re welcome to continue and see what the future holds with the apps. As for me, I don’t have the time to spare.

Leave a comment

Filed under Rants

Missionary clothing are a necessity in Nigeria

My wife and I have this joke we’ve shared since our early days (we’ve been married 22 years).

At any point in time, we want to have what we’ve dubbed ‘missionary’ clothes. What does this mean? Missionary clothes are those that do not require ironing to look acceptable.

The term was coined by Her Royal Majesty and it’s in reference to the cassock worn by priests and monks.

The missionary outfit

In Nigeria, power supply has always been erratic and sometimes could be totally absent for days. Have a meeting to attend today? Tough luck, you might end up putting on a rumpled shirt.

Some people avoid this burden by sending their clothes to ‘washermen’, local laundrymen who will also iron the clothes for you. This is big business in our area.

But it’s always a good idea to have some missionary clothes.

What do you think?

Leave a comment

Filed under Rants

RQDAassist 0.5.0

This is to introduce a new iteration of the RQDAassist package (version 0.5.0). This version comes with the possibility of installing RGtk2 and cairoDevice via their archived binaries, instead of solely installing source tarballs. The advantage is the installation is much quicker and the interactions with the GTK distribution are much more easily handled. The downside of the binary installation is that it can only be done reliably during an interactive R session.

The binary installation option is the default. Thus, to install RQDA, we run

RQDAassist::install()

To install via source, we change the arguments:

RQDAassist::install(type = "source")

When doing the binary installation, if RGtk2 is newly installed and GTK does not exist on the machine, the function stops at some point and the user is invited to install GTK. This is done by first attaching the package

library(RGtk2)

The user is then prompted with a dialog, for the installation of Gtk+.

Dialog for the installation of GTK+
Dialog for GTK+ installation

After GTK+ is installed, one may see an error message in the console–ignore this. Once done, run RQDAassist::install() again, and the remaining packages will be installed.

For more information about this version, please visit the package’s GitHub page. Let me know your thoughts in the comments.

Leave a comment

Filed under data science