Archives

All posts for the month April, 2021

I just finished this desktop comp cryptocurrency ticker today. It’s a super small 380 KB program that will display the current price of your choice of practically any cryptocurrency at the bottom of your Windows desktop. This is version 0.9. The one limitation now is it will only display prices in USD. 1.0 will fix that. If it says “Loading. . .” for a minute or two on startup, just leave it and it’ll work after a while. Most of the time it loads in a couple seconds. Once it gets going, it will update at whatever speed you set it to. Right click on the text at the bottom once it’s finished loading and select “Edit List” – that’s where you control everything. Considering this is V0.9, it may have some runtime error (it should be OK). If it does, just let me know. You can add a shortcut to it in the Windows startup folder on the start menu so it will start when you boot the comp.

This is the “Edit List” window:

I believe there are around 1,400 choices of currencies supported. You can display the most common, such as bitcoin or any super obscure one. It will update the prices in USD every 5 – 600 seconds. It’s your choice how fast you want them to update. I recommend not using the minimum cause maybe your connection will time out or it will use more bandwidth (it is already a pretty small bandwidth though).

(It doesn’t come with the cool purple background. That’s my desktop background behind it. Maybe I’ll make it more fancy itself at some point if any single human uses it.)

There are many programs out there that can do this for you, but mine is as simple and small as it gets. No loading virtual browsers with JavaScript engines and bloat. No electron. It will work on any OS that supports .NET Framework 4.0 – which is Windows 7 to 10 in 64-bit. It would technically work on XP too, but you’d need a 32-bit build and this is not available at this time. It may work on Mac or Linux under the Mono Framework, but it is not tested.

It’s written in C#, hence the name Sharp Ticker.

It’s in a 7-zip archive with no installer (just the EXE and DLLs), so you’ll need 7-zip. EVERYONE should use it at this point. It’s free and better than WinRAR.

Here’s the download: https://drive.google.com/file/d/1X4KQ0Kh10lT0X3fTB17eicKRy2Qs0WzA/view

(Google has changed the Google Drive layout. When you click the link, you’ll need to look in the upper right hand corner of the screen for a small download icon. The file contents displayed on the screen do nothing. I wouldn’t a clue why they did this.)

I’m starting to use my website for rants sometimes now. Please choose a category by scrolling down and choosing from the right hand side-bar if you want more valuable info.

That being said, on to the show.

Have you ever used electron before? You probably don’t know. Most people that have, don’t know unless they’ve encountered issues. Electron is a bloated framework that allows you to create JavaScript software as a full application (like an EXE file), instead of running in a web browser like JavaScript is designed for.

Instead of creating a new JavaScript run-time engine that’s been stripped down, they basically run the chrome web browser (chromium) disguised as an app. When you run one of these programs, you will see several copies of the same EXE running in task manager around 5 times or more. A full featured web browser will understandably run several “copies” of itself at once for holding multiple tabs. This makes the browser run more efficiently and also protects against crashes if one of the tabs you have open “performs an illegal operation” – LOL Windows 98. Essentially meaning that it performed an invalid instruction on the CPU – which is what Windows 98 was getting at when they say that. Anyway, in an application that is only running one instance and does not contain multiple tabs, there is absolutely no point in doing this. It shows that this group of programmers do not care. This is the least efficient framework in terms of RAM usage that I have ever seen. It also takes up a decent amount of drive space.

Take, for example, the program called balenaEtcher. This is a simple tool that allows you to install almost any operating system on a USB drive. Essentially, all it has to do is format and partition the drive, write the files, and write some type of boot loader to the USB so the computer will see it as a bootable system. It doesn’t contain any operating system files itself or anything – just the means to install your OS from a given source. Knowing this, it should be a very small program, however, it uses 184MB + more in the app data folder. That’s after I deleted the extra language files (which I don’t know why so much software doesn’t just ask you in the installer what language you want – instead it copies every single language to every system). 184 MB doesn’t seem like much today, so maybe you think I’m just being a hardass, well, let’s take another example. There is another program that does the exact same thing as balenaEtcher – it’s called Rufus. It uses 1.1 MB. And another called UnetBootin, it uses 4.7 MB. Rufus could fit on a floppy. That’s a factor of 167 times smaller than balena. Now you see the point?

On top of that, there is 0% reason why a program such as this should use a web technology like JavaScript. JS does what it does for web pages very effectively, but to use it for an actual application that performs ‘system’ level functions is asinine. I could understand if they wanted the convenience of a web interface or a canvas for performing JavaScript graphics, but this is a program with literally three buttons on the screen. It also bundles an OpenGL library with it cause we need a 3D engine to make three buttons. It could just as easily be rendered in WinAPI, QT, GTK+, or whatever for cross platform support, but they chose JavaScript. This shows that these people are web devs, not software developers. Does it work though? Usually. I have had it crash multiple times on Windows 7 though, when I was using the electrum bitcoin wallet which is based on electron. (BTW: In this instance it makes sense to use electron because a bitcoin wallet is more like a web application, but I digress.)

Say you are at a restaurant and you order food. The waiter brings you your meal, but it has all of the scraps left over from the kitchen. The real meal is there too, but it’s dispersed in the scraps. Would you eat it or send it back? Now let’s say those scraps become invisible, but you can tell they are still there. Do you still want to eat it? I doubt it. It’s the same thing with programming an EXE in JS. A lot of people just like to pretend that those scraps aren’t there. So what are you, a purist or a bum?

Take another example. There is a game called Shut In. It’s not a game worth playing IMO, but that’s not the point. It uses a JavaScript framework that is likely electron, but could be another similar clone. This game uses 196 MB of drive space and almost 500 MB of RAM with at least FOUR COPIES of it running. Not bad? But wait, there’s more; this game is smaller and MORE pixelated than even DOS games! The screen resolution of it is around 200×200 pixels. This was done on purpose to give it a retro vibe, which is cool. However, a game like this could be around 10 – 50 KB in size and be exactly the same thing if it were programmed natively. Even using the most modern proper tools, a game like this would be 1 MB. Just use AGS!!! Adventure Game Studio could produce the exact same thing in a couple MB and it’s EASIER than using JavaScript. I could understand programming a game like this in JavaScript if you wanted to run it directly in a web browser – that makes sense, but when you want to make an EXE, don’t use JavaScript. JS has gotten WAY too overrated. It’s a web language and should keep doing what it does best.

And not to harp on the person that made this, they probably don’t know any better.