Anyway, on to what I’ve found.
First, it’s a little frustrating to name a race. Naming is one of the hardest tasks there is… well, besides cache invalidation. I should be able to dynamically set the name of the race, because I’ve already stored the list of participants. I kept teetering between dynamic versus static naming. Ultimately, though, it seems like static (or maybe “arbitrary” would be more apt) naming.
Second, it’s nice to know who created the race. Right? That allows explicit listing of the races I’ve created, allowing “creator” permissions (like deleting them). Maybe I’m waiting on the other person to accept (which I may not have considered yet). Or I want to see all of my races, including all the ended ones.
Third, sometimes I try to normalize the data too much. This one’s another tough one. When I started working on TTORP, I had very non-normalized data: I wanted to get something up and running fast, so I just threw a bunch of arbitrarily-named fields in a database, all of which were just text… I was bit by this laziness later, because I had to pay the technical debt.
I found all kinds of other little things in the process. Countless little nuances that I could spend all night enumerating, finding even more in the process.
Anyway, the bottom line is that I’ve made progress. I’ve got more information in my test database, which will help me to visualize things. At this point, unless I find more problems, I should be able to start spitting out some progress information in the very near future. Stay tuned!
There’s a lot more to programming than just typing.
Somebody once said, probably jokingly, that what I was doing amounted to nothing more than typing. It might have been one of those things where they say, “I’m joking,” afterward to keep me from being offended. The first time it was said, it was funny. The next few times, it lost a bit of humor. After more than a dozen times, I have a hard time faking a smile.
The point here is that programming follows the 80/20 rule: 80% thinking and/or planning, and about 20% actually programming. The typing part is actually a really small part… of that 20% programming part, about 80% of it ends up being debugging and testing.
It seems like I’m always chasing my tail. I start doing one thing, and it spirals into all kinds of other things.
First, I start by working on a web application of mine. I start up a browser, and I get notifications that I need to upgrade, that browser is no longer supported.
Fine. I go to figure out how to get the newest version of that browser.
I could download the most current version, and install it into my home directory, or… of COURSE the other option is to install a newer version of Linux. Because, why the hell would there be an easy way just to get a repository that lets me get updates for the most current version of Firefox (or Google Chrome, or whatever)?
Fine. I go download the newest version of Linux.
Wait. What do you mean, I’m running 32-bit? I could be running 64-bit! Things are so much better that way!
Uh-oh. I can’t just do an upgrade from 32-bit to 64-bit. That doesn’t work. It might not work to upgrade from 32-bit to 32-bit… ugh.
Fine. But I’m not going to use up another DVD just to get a newer version of Linux. That’s annoying, it makes the upgrade slower, and… ugh.
Fine. Spend a few hours figuring out how to create a bootable USB drive.
What do you mean, the newest version of UNetBootin doesn’t support my USB drive? I HAVE TO FIND AN OLDER VERSION?!?!
Fine. Get the older version.
Hours and hours and hours later, with a bunch of errors, a wiped USB disk that doesn’t seem to mount anymore at all…
FINE. I’ll burn the damned DVD.
Wait… if I do this, I have to wipe out my home directory. That means I lose everything, and I’ve gotta go through this painfully long process of backing up and restoring that data… why don’t I put my home directory (/home) onto a different partition? I’ve got an SSD (Solid State Drive), it should be crazy fast. Do it.
FINE. Figure out how to re-partition my drive. Burn ANOTHER disc, with Gparted on it.
Wait. Why can’t I eject my DVD drive? I press the button and… nothing.
FINE. Turn off the laptop, take out the screw that holds it in, and… WHAT?!?!? IT DOESN’T COME OUT?!?!?!
Hours go by. Then days. Finally, for no good reason whatsoever, the damned thing starts working again. WTF.
FINE. Burn Gparted. Boot off it. Resize the partition, should be simple.
Resize the drive, so there’s room for the home partition… wait for HOURS until it’s done. I have NO IDEA WHY. It’s a Solid State Drive. It’s like FIFTEEN THOUSAND TIMES FASTER than the original drive. And it’s acting like it’s fifteen thousand times SLOWER.
HOURS LATER, resize. HOURS LATER, move. HOURS LATER, resize again. HOURS LATER, move something again… not sure why, it’s taken so long, I’ve almost forgotten WTF I’ve been doing this for. Fix the fstab (file system tab) so it boots. Reboot.
Hooray! Now I’ve got a separate /home partition! WOOT!
Fine. Time to reinstall, now it won’t be too difficult. Boot off the new, shiney, 64-bit Linux Mint disc. Choose “something different” so I can have a separate root (“/”) and home (“/home”) partition. Even though it takes a while because the DVD drive is slow (compared to a thumb drive install), I reboot and it’s the shiney new Linux…
WAIT!!! WHERE’S MY DATA?!?!
Oh. I told it to keep my /home partition, but I forgot to tell it to actually boot up with that partition mounted to /home… right. So, fix the fstab. Reboot, delete the “/home” folder data from the old partition (being EXTREMELY CAREFUL not to wipe out my real data). Reboot again.
HOORAY, I GOTS MY DATA!
Alright. I’ve got my new version of Linux installed and… awww crap. I have to go install all my old plugins and stuff, because that’s not stored in my home directory. UGH.
What was I doing again?
Oh. RIGHT. I was testing my web app. Finally, got it tested, spotted an error, so I’ll go fire up my IDE to fix it.
WHAT DO YOU MEAN, I DON’T HAVE JAVA INSTALLED?!?!?
So one of the things you have to decide on when choosing Linux as your desktop OS is what distribution (or “distro”) to go with. There’s a ton of options, but I’m not even going to get into it. I’ve chosen Linux Mint, which is a Debian system based on Ubuntu.
The real choice turns out to be a matter of the desktop window manager. The main choices here are:
Cinnamon and Gnome
Cinnamon and Gnome are pretty close to the same thing. I used to use Gnome, but was frustrated when they decided to go away from having a system tray, which a lot of my favorite programs depend on. After trying to get it to work again, I just went with Cinnamon. Here’s a screenshot:
It has a lot of Windows elements: a standard desktop look with applications and files and shortcuts, a “start” menu, a clock and system tray.
Another option is KDE. I used this one when I first switched from Windows, mostly because it was so close to what I was used to.
KDE is honestly pretty close to the look of Cinnamon. I switched to Cinnamon because of how easy it was to use compared to KDE, and how much lighter it felt. There are some other more technical details, but really it’s pretty close.
The third choice is XFCE. And… apparently it looks extremely close to the other options.
It’s supposed to be “lighter” than the others. In fact, probably the biggest difference in all these screenshots turns out to be the wallpaper.
The ultimate choice is yours. If you’ve got an older computer, you should probably go with XFCE, as it seems to work a lot better with fewer resources. But if you’ve got a reasonably new computer, it really won’t matter. In fact, you can install all of them, and decide which one to use when you log in.
After much waiting: there are now milestones!
Yep. A bit of a let-down. I know. Sorry.
In creating the milestones, I noticed there were some things that were probably missed… setting up an order to the milestones (so I don’t necessarily have to insert them in the proper order), etc. Nothing mind-blowing here.
I’m working on the code and associated SQL to figure out a contestant’s progress in relation to milestones. Nothing exceptionaly difficult, just takes a little time to do.
But there are MILESTONES now, people!