View on GitHub

Quorten Blog 1

First blog for all Quorten's blog-like writings

This is an interesting software project that one of my coworkers previously worked on. Initially it was called “Concert Cam,” but later when they started bringing it to other non-concert venues they just called it “big green button.” It is a button on a podium that sends a wireless message to another computer that then does something via a web API on the Internet, like taking a photo and uploading it to Facebook. Pretty simple code.

20190712/https://bendyworks.com/blog/concertcam

So I’ve been writing some simple toy electronic banking software and wanted to see how the auto-pay accounts looked in the far future, so I jumped the clock. Alas, I found my software was vulnerable to the Y2K38 bug! So I looked around and tried to set up all the magic to get 64-bit time, but it still didn’t work. So now I went a-searching the Internet, and sure enough, I unfortunately found out that this is an issue with Linus Torvald’s attitude on the issue. 32-bit Linux will not have 64-bit time system calls available. Alas, being that my old Raspberry Pi is only 32-bit, this means that I am pretty much stuck with this problem if I keep using the conventional standard C library functions in my software.

20190710/DuckDuckGo raspberry pi 64 bit time
20190710/DuckDuckGo raspberry pi __time_t64
20190710/DuckDuckGo raspberry pi time 64
20190710/DuckDuckGo raspberry pi __time64_t
20190710/DuckDuckGo raspberry pi time64
20190710/ 20190710/Google raspberry pi time64
20190710/https://raspberrypi.stackexchange.com/questions/12600/will-rpi-suffer-from-the-y2k38-bug

Looks like perhaps the best solution is to switch to my own lightweight standard C library.

Free software, free as in freedom. Libre software… ah yes, venerable concepts in their own right, I like the cause, and more important than the raw financials, it is important that the spirit be supported, but sometimes I feel that it is really hard to explain and inform with non-technical folks. But, after I thought about this for a while in recent times, I believe there is a solid “whole-world” framework, as I put it, in which the concept can be unambiguously explained to everyone.

Perhaps one of the best and oldest examples of a complex machine under private ownership by a non-technical person that is the motor vehicle. For most car owners, if they are asked about the responsibility of the maintenance of their motor vehicle, their response will be indicative of the concept that ultimately, it is somebody else’s responsibility to maintain the motor vehicle. They personally are only responsible for following the orders of when to bring in the vehicle for its next maintenance or recall.

Now, perhaps this is a very American culture way to bring up this example, as not everyone around the world has as many cars as the United States does, but let’s put it this way. In areas of the world where there is not as much car ownership, their smartphone is their vehicle. In developing nations that haven’t had much of a history of car ownership, it is also their first such vehicle at that.

Read on →

Parallel increment is easy. Use a binary tree to determine whether a particular bit should be inverted. If all less significant bits are 1, then the current bit should be inverted. Otherwise, it stays the same.

Here’s how to do parallel add. All individual digits can be added in parallel, of course. The trick is to do the carry propagation using a parallel binary tree. Simply understand a carry propagation as an “increment” instruction with a carry input bit that determines whether or not to perform the increment.

Here is an example with 32 words.

  1. add 32 words, compute carry for each word
  2. carry propagation for 16/32 words, 16 “larger” words remaining to carry
  3. carry propagation for 8/16 words, 8 “larger” words remaining to carry
  4. carry propagation for 4/8 words, 4 “larger” words remaining to carry
  5. carry propagation on 2/4 words, 2 “larger” words remaining to carry
  6. carry propagation on 1/2 words, final “large” word with carry

Parallel multiply is easy. Just compute all the partials in parallel, then do a parallel binary tree add.

Parallel exponent is easy. Just do the sub-multiplies in a parallel binary tree.

Parallel divide??? Use a lookup table on the divisor to effect a parallel binary search. Now I barely even know what I’m talking about.

Read on →

So, I heard previously that the new Windows operating system used a virtual machine for Windows Compatibility Mode. What is that exactly? How did Microsoft ever deal with the licensing? Was is the key word. Windows 7 previously included a full copy of a free license Windows XP that was run in a virtual machine for Windows XP Compatibility mode. Yep, that’s how Microsoft did it, they “cheated” with the licensing to get their compatibility mode included in Windows

  1. Naturally, that feature was not carried on to the more modern Windows 10.

20190708/DuckDuckGo windows compatibility mode virtual machine
20190708/https://www.howtogeek.com/228689/how-to-make-old-programs-work-on-windows-10/

It’s a wonder it even made it into Windows 7… of course, as we all realize, the idea was technically impossible for Microsoft to do with Windows 98 due to the Java licensing settlement that forbid Microsoft from ever again selling Windows 9x that included the unauthorized JScript (Java) runtime.

OneDrive on GNU/Linux?

2019-07-09

Categories: windows  
Tags: windows  

So, with all the heyday of Microsoft software obsolescence… well, unfortunately Microsoft is not completely obsolete. Although we no longer need the Microsoft Windows operating system in the home to get typical home computing tasks done, apparently we still need Microsoft Office for the occasional Office document that comes our way that uses arcane features that the competing software solutions don’t quite work well enough with yet.

So, Microsoft Office is the old Windows-only thing (with the exception of Mac OS X), OneDrive is the new thing. So, how do you use OneDrive on GNU/Linux. Unfortunately, even that is not possible. But, there are third-party solutions that work somewhat well. If you want to use OneDrive on a fully modern computing platform, iOS and Android are your choices for a mobile operating system.

20190708/DuckDuckGo onedrive linux
20190708/https://linuxnewbieguide.org/onedrive-client-linux/
20190708/https://skilion.github.io/onedrive/
20190708/https://onedrive.live.com/about/en-us/

This is a fun article, though not exceptionally informative.

20190708/https://www.muylinux.com/2014/06/25/onedrive-en-linux/

When was the National Science Foundation formed? Oh, 1950s. It’s hard to imagine a world where the influence of modern computerized science, especially that sponsored under the National Science Foundation, European Science Foundation, or otherwise, is not the norm.

The Wikipedia article on the National Science Foundation unfortunately does not have all that interesting and insightful history as I would have expected, though.

20190704/https://en.wikipedia.org/wiki/National_Science_Foundation

Are you trying to build up flip-flops and counter circuits from the very basic building blocks? Wikipedia has some excellent information on the subject. Read it carefully, think on your own for a little bit more knowledge, and you should be in business.

Please note that the old version of this Wikipedia article linked has a JK flip-flop schematic. It unfortunately got removed from the latest version.

20190704/https://web.archive.org/web/20160112032651/https://en.wikipedia.org/wiki/Flip-flop_%28electronics%29
20190704/https://en.wikipedia.org/wiki/Counter_%28digital%29
20190704/https://en.wikipedia.org/wiki/File:4-bit-jk-flip-flop_V1.1.svg
20190704/https://en.wikipedia.org/wiki/File:DecadeCounter.jpg

So, I’m wondering. Are there any updates on the whether you still need to buy the license key to decode MPEG-2 on Raspberry Pi? Ah, yes, I found a veritable explanation. Raspberry Pi is not going to make any changes to their licensing until the last patent expires in

  1. Because Raspberry Pi is sold internationally, and because Raspberry Pi does not have region locking like DVD players, they have no way of guaranteeing that a Raspberry Pi will not be used in the last areas of the world where there are still patents in force. And by the license terms of Raspberry Pi with MPEG LA, they do not want to risk an extremely high penalty fee of the license royalty for every Raspberry Pi sold, whether or not it was ever used with hardware MPEG-2 decoding.

So, that’s that. Also, please note that there is no noticeable slowdown for software decoding of standard definition MPEG-2 on the newer Raspberry Pis with faster clock speeds. Only the original clock speed comes with a noticeable slowdown.

20190703/DuckDuckGo raspberry pi mpeg-2
20190703/https://raspberrypi.stackexchange.com/questions/83237/do-i-still-need-to-purchase-an-mpeg-2-and-vc-1-license-keys-for-the-raspberry-pi
20190703/https://www.raspberrypi.org/forums/viewtopic.php?t=201449

This old Raspberry Pi Foundation blog post explains why hardware video codecs were an afterthought on the Raspberry Pi. Raspberry Pi was originally designed with a narrow goal for education, but later on it turned out that many of the purchasers of Raspberry Pi were using it for their media center computer.

20190703/https://www.raspberrypi.org/blog/new-video-features/

This is interesting. If cowsay is installed, Ansible will use it for printing messages like when you start running a playbook. It’s interesting that I never saw this before. If you install Ansible from pip, there is no way that it can bring in the Perl-based cowsay dependency.

cowsay and figlet used to be a pretty popular geek joke in the 1990s, but they seem to have fallen out of favor in modern times. Probably because moderners are more interested in real graphics, vector graphics on high-resolution displays, than ASCII art.

20190702/https://docs.ansible.com/ansible/latest/reference_appendices/faq.html#how-do-i-disable-cowsay
20190702/https://en.wikipedia.org/wiki/Cowsay
20190702/https://en.wikipedia.org/wiki/FIGlet