vb6 nostalgia trip

This commit is contained in:
Wouter Groeneveld 2022-10-19 21:01:03 +02:00
parent 53526538fc
commit 5e272f8188
11 changed files with 99 additions and 5 deletions

View File

@ -6,6 +6,7 @@ categories:
tags:
- lists
- blogging
- screenshots
date: 2020-10-04
---

View File

@ -4,6 +4,7 @@ subtitle: 'The result of HDD Treasure diving'
tags:
- linux
- macos
- screenshots
categories:
- software
date: 2020-11-01

View File

@ -0,0 +1,86 @@
---
title: A Visual Studio 6.0 Nostalgia Trip
date: 2022-10-19T19:30:00+02:00
categories:
- software
tags:
- screenshots
---
Something I've been pondering on lately: do you preserve your _very old_ creations? I'm talking _ancient_ here, but do put this in context, since it's software development ancient. How old is "old" software? In case of JavaScript, probably yesterday.
I happen to be someone who neatly archives---which used to be the term when one creates simple zipfiles instead of going fancy and employing some kind of source control repository. I still have code of high school programming projects and even before that, the stuff I used to dabble in to discover the world of programming, really.
For me, that was just after the release of Windows 95 and the very first Visual Studio release ever: VS '97. That was nothing more than a bundling of separated IDEs: Visual C++, Visual FoxPro, and Visual Basic. Most of my "serious" programming happened on VB5 and later, when migrating to Win98 and VS 6.0, VB6. Time to dust off some 24 year old zipfiles and take a look whether or not that stuff still compiles---on [time period correct hardware](/post/2020/10/building-an-athlon-win98-retro-pc), of course!
![](../vs6install.jpg "Next Gen, here I come.")
Thankfully, WinWorldPC archives `.ISO`s of old and forgotten 32-bit software such as [Visual Studio 6.0](https://winworldpc.com/download/0cc395c2-b7c3-99c3-89c3-b811c3a4efbf), so finding the SDK box wasn't that hard. Surprisingly, installing it wasn't either: use an old version of Deamon Tools to mount the virtual image, press next a bunch of times, and presto. Perhaps uncheck FoxPro and say no thank you to the MSDN documentation files as well.
A few minutes later, it's time to try to load an old project:
![](../vb6autounpacksplash.jpg "Woah, that still works?!")
Remember that time when splash screens where popular---so popular that every small piece of software ever released included them even though it wasn't loading anything? I just used a timer and triggered a `FrmMain.Show` after a few seconds.
By the way, did you see what I did there? If you're a fan of _Windows Plus! Themes_, I'm sure you have. I decided to revert to the boring default theme to better focus on the hand crafted software in the screenshots, so expect a lot of gray pixels when reading further on.
**AutoUnpack** was software to automatically unzip/unace/unrar multipart archive files. It existed at a time when early versions of WinAce didn't yet support that. Remember WinAce? Having to extract each part separately? It probably also had something to do with downloading shady versions of software through newsgroups.
My software was installed through a custom-made "installer" a-la InstallShield (another awesome nostalgia piece):
![](../vb6autoupdate.jpg "The AutoUpdate install compiler.")
I called that the **InstallCompiler**, and I even developed an ActiveX component called **AutoUpdate** which could be plug into all existing software and download potential new versions that in turn were packed using the InstallCompiler. Looking back at the whole system now, I can't believe I built something like that in 2000, when I was 15! Some of these projects make me more proud than the stuff I built the last four years. If that sounds painful, that's because it probably is.
Of course, taking a peek under the hood is best to be avoided:
```vb
If mFTP.OpenConnection("users.skynet.be", "someusername, "somepassword") Then
mFTP.SetFTPDirectory "/updates/" & Mid(strProgToUpdate, 1, 6)
LblInfo(0).Caption = "Versie-informatiecontrole..."
End If
```
Hardcoding my dad's username and password to our ISP? Whoops.
The `OpenConnection` module call internally rewired to a native DLL call using something like:
```vb
Public Declare Function InternetConnection Lib "wininet.dll" Alias "InternetConnectA" (ByVal hInternetSession As Long, ByVal sServerName As String, ByVal mServerPort As Integer, ByVal sUserName As String, ByVal sPassword As String, ByVal lService As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
```
Which comes from [the wininet.h FTP/HTTP session call](https://learn.microsoft.com/en-us/windows/win32/api/wininet/nf-wininet-internetconnecta) on MSDN, a Win32 API call that seemingly still exists! I reckon I must have copy-paste-coded a lot back then because it looks quite complicated for a 15 year old...
![](../vb6dirprinter.jpg "'DirPrinter', with a neat 'about' and 'options' screen.")
Here's another tool called **DirPrinter**. It... prints the contents of a dir in a `.txt` file. Recursively, mind you! Wow!
Another lovely touch: I made sure to include a carefully designed _About_ dialog in each tool. I even envisioned to own a software design company called _aWhile Software_. Yeah, indeed, what was I thinking? "Hi I'd like some software for this or that, when is it going to be finished?" to which I then respond "oh, sure, aWhile."
Back then I even worked together with another guy, who had this site called `vbwereld.nl`, and together we formed the conglomerate "\[deep\] software".
![](../vb6pwldecoder.jpg "Is that... encoded? Wait, is that a caught stacktrace?")
The next piece I tried is apparently called **PWLEncoder**---the splash screen kind of screamed it, which I all made in early versions of Photoshop. For some of those, I still have the source `.psd` files.
PWLEncoder unfortunately does _not_ what it says on the tin: when attempting to encode a `.txt` message, it scrambles the first character, says it's done, and when decoding, crashes.
But! By looking at the error dialog and source code, I even developed general error catch-all modules that were supposed be informative and to help the customer get in touch with me.
![](../vb6tickin.jpg "Gotta watch out for that smart AI!")
I think that **Tickin'** is probably one of the oldest pieces of Visual Basic source code I still have: it's a simple tic-tac-toe program with a high score dialog, but surprisingly, no splash screen. There's the option to play an "advanced" game that undoes your 3rd last move and god knows what the AI does, I didn't dare to dive into that portion of the code.
Most of my programming was done in VB6 because the UI-based form creation tool was dead-simple to use and you simply double click on a button to attach a click action to it (`MessageBox.Show "Cool!"`---done!) I did, however, program a bit in C(++), most notably small compiled scripts that my dad used in his work to install modem device drivers and auto-detect the operating system. Does that thing still compile? Well...
![](../vpp6winversion.jpg "Uh-oh.")
Another major rookie mistake: `#include <C:\fullpath\whoops.h>` doesn't work that well. The header file itself was recovered after a bit of digging, but this tiny tool ultimately wasn't worth the investigation.
---
Well that was fun. It's very satisfying to see your old stuff still working, especially on "real" hardware from back in the day. Although I didn't feel the immediate urge to start a new VB6 project, I love this kind of stuff. It somehow feels like my younger self was more imaginative and hands-on than my current self. Perhaps that's because of the joyful naivety that inevitably wanes. Nostalgia trips such as these help me ground myself and remind me that now and then I should just fool around and create stuff _because I can_ and _because I want to_.
The silly kind of stuff that's fun to create, not that someone else says I should create or get paid to do so.

View File

@ -1,5 +1,5 @@
---
title: My Desktop Is Dull Thanks To MacOS
title: My Desktop Is Dull Thanks To macOS
date: 2022-10-15T09:50:00+02:00
categories:
- software
@ -7,7 +7,7 @@ tags:
- macos
---
My desktop lacks sparkles, silliness, and a general evocation of _fun_. I've been wondering why, and came to the conclusion that the culprit is MacOS itself. At the moment, my computer desktop looks like this:
My desktop lacks sparkles, silliness, and a general evocation of _fun_. I've been wondering why, and came to the conclusion that the culprit is macOS itself. At the moment, my computer desktop looks like this:
![](../desktop.jpg "OSX 12.2, 10/2022")
@ -17,16 +17,22 @@ Take a moment to glance over [my old desktops from 2004](/post/2020/11/desktop-s
On Winodws, I've used [WindowBlinds](https://www.stardock.com/products/windowblinds/) for years, and amazingly, it's still around for Windows 10 and 11!
On \*NIX, I ran [Fvwm](https://www.fvwm.org/), which is extremely customizable but by default extremely ugly. And then [Xfce](https://xfce.org/) came along. But what stands out is that when you search for "MacOS theme", you get all kinds of results that help you transform your \*NIX WM or Windows environment into a MacOS clone. I distinctly remember trying to emulate the big and then cool looking Mac Doc icons and zoom animations on Fvwm.
On \*NIX, I ran [Fvwm](https://www.fvwm.org/), which is extremely customizable but by default extremely ugly. And then [Xfce](https://xfce.org/) came along. But what stands out is that when you search for "macOS theme", you get all kinds of results that help you transform your \*NIX WM or Windows environment into a macOS clone. I distinctly remember trying to emulate the big and then cool looking Mac Doc icons and zoom animations on Fvwm.
But now, I want to do the other way around! Where is the Shapeshifter or [ThemePark](https://www.geekspiff.com/software/themepark.1.html) Mac software for OSX 12+? All I found was a dicey GitHub project called [PaintCan](https://github.com/MacEnhance/PaintCan) and a theme [called Siro](https://forums.macrumors.com/threads/system-theme-siro-for-monterey.2352689/) on MacRumors---which is incomplete because suddenly we have to design both a light and dark mode.
MacOS---being it Montery or v13, Ventura---is _boring_. It's dull. The red, orange, and green circles make me yawn. It's too clean. I want custom icons, custom handle bars, silly [system dock apps](https://www.dockapps.net/category/system) like `wmbubble` or Gnome's BubbleMon, a duck on water that visualizes CPU and memory load. [BubbleMon for OSX](https://walles.github.io/bubblemon/) exists but of course doesn't compile on ARM. I don't care for a boring stocks or weather app from Apple. Somewhere along the lines of incremental OS updates and standardization, we have lost the possibility to express ourselves. Even all those Gnome-powered default Ubuntu installations I see at work all look alike. Boring.
One of the problems is of course the nature of a commercial OS like Apple's: it's closed source and leaves little wiggle room to tinker with. Apple Scripts doesn't alleviate that. I appreciate automation tools, but it doesn't let me color my window title bars in bright green. To me, contemporary MacOS feels arrogant: it wears its posh iconic design with too much pride and refuses to let others in. Granted, since OSX 12, "General" settings improved by a large margin, allowing users to set accent and highlight colors and light/dark appearances.
One of the problems is of course the nature of a commercial OS like Apple's: it's closed source and leaves little wiggle room to tinker with. Apple Scripts doesn't alleviate that. I appreciate automation tools, but it doesn't let me color my window title bars in bright green. To me, contemporary macOS feels arrogant: it wears its posh iconic design with too much pride and refuses to let others in. Granted, since OSX 12, "General" settings improved by a large margin, allowing users to set accent and highlight colors and light/dark appearances.
But that's not silly enough: it still radiates _boring!_
Even the file manager, Finder, is getting on my nerves. I've discovered [alternatives](https://www.macgasm.net/software/file-manager-mac/) I still need to try out, but so far, all of this is making me think of moving back to a \*NIX environment. Where tinkering was fun---and above all, possible. I know I switched to MacOS because I didn't have time to tinker anymore, and I probably still don't, but still. The problem is that I don't want to give up the vastly superior battery life and screen quality, and performance/ease of use of the ARM-M1 chip...
Even the file manager, Finder, is getting on my nerves. I've discovered [alternatives](https://www.macgasm.net/software/file-manager-mac/) I still need to try out, but so far, all of this is making me think of moving back to a \*NIX environment. Where tinkering was fun---and above all, possible. I know I switched to macOS because I didn't have time to tinker anymore, and I probably still don't, but still. The problem is that I don't want to give up the vastly superior battery life and screen quality, and performance/ease of use of the ARM-M1 chip...
If you have customized your Mac's appearance in a way that isn't described here, please let me know!
Addendum, 17 Oct.: Luke reached out and has this to say about customizing:
> I struggle with distraction, and the boringness and constraints of macOS is an advantage for me. I spent so much time theming Linux before I switched. I want the OS to fade into the background while I work.
Good call, I haven't thought about that! Although there is more than enough distracting software installed on every macOS---how about a browser...

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB