LibGDX

I’ve been busy these past few weeks trying to get my 280Z autocross ready, and porting my C++/DirectX windows game to Java with LibGDX.

Overall I am very impressed with LibGDX. The GUI API isn’t very good though. I’ve decided to roll my own (again!) for this game. At least the first release. I see that the LibGDX one supports nice fonts and textures and whatnot. It shouldn’t be too difficult to reimplement the base class with it and refactor when it matures.

Otherwise, It’s real easy to get going. A couple weekends and I’m nearly at the same point that it took me 2 years to get to with C++ (although, say a month of actual work).

Box2D is included and I intend to make full use of it’s hilariousness. It will be difficult to translate the bitmap/pixel-destruction of the original inspiring game, but I have a few ideas I can try.

Links:

http://libgdx.badlogicgames.com/

https://code.google.com/p/libgdx/

Switched to Arch Linux from Gentoo

Time installing Gentoo: days
Time installing Archlinux: 30 mins.

I have an old Intel based Dell laptop with 1.8GHz single-core processor. I’ve had Windows XP on it for a couple years, then I switched to Gentoo for the past 5 or 6 years. Well, it’s really not the kind of laptop that you should be compiling everything from source on. I’m tired of going through the “everything’s broken, hook it the ethernet cable and start fixing it” routine after I’ve left it alone for months at a time.

I just use it to tune my car, it’s the “Garage Laptop”. So, Gentoo isn’t a good fit. And Gentoo seems to be becoming this bloated mess of package mismatches. Since I leave my laptop alone for a while, I end up not being able to install a package I want since the version my portage tree has is no longer in the main tree. So, ‘emerge –sync’, and now I have to update 50 packages just to get the one I want.

No thanks.

I’ve got a working system with XFCE4 in 30 mins. Plus, it takes only about 2 GB of my 32 GB SSD. Restoring my home folder puts the total at 6 GB, which is more than 4 GB less than my Gentoo install.

This is a decision I needed to make a long time ago.

udev broke, server broke, router broke

I attempted to get a webcam going on our home server. So, I plug it in, and since I’ve done this before I ran a script I made to grab an image from the webcam. Which didn’t work. So, after checking out why (/dev/video0 node was missing), I noticed that the kernel no longer had support built in.

After going through the kernel options, I realized they changed the v4l and webcam support options around and since I just upgrade using “–silentoldconfig” (the bad way to do upgrades), it broke whenever I upgraded to 3.2.12. And 3.2.12 wasn’t in portage’s tree anymore, and I didn’t have the sources for it installed (mistake number 2), so I was pretty much SOL.

So I decided to upgrade. Remotely. 1500 miles remotely. Long story short, a udev upgrade swapped my network device names around and broke the internet on the reboot, and I had to wait until I was home to fix it. I kind of knew this was going to happen, but meh, I like to gamble.

It’s amazing how many config files have references to eth0/1 in them.

Now everything started to work normally again, except after purchasing a game on Steam, my router appeared to drop the connection during the download. As it turns out, the router was at 100% CPU and 99% memory, and I guess was just running out of memory and rebooting due to the download (2-3 MB/s). So, it looks like my internet is faster than my wireless router can handle.

It’s a WRT54G running DD-WRT, and I don’t see any firmware upgrades for it. But DD-WRT’s website is pretty whack, so who knows. I think I’m going to upgrade it in the future, if it keeps crapping out on me.

OS X? Unimpressive.

I’ve been working with a MacBook Pro and OS X 10.8.2, and I have to say I’m not impressed. Coming from a background that consisted almost entirely of Windows and Linux, it isn’t all it’s cracked up to be. It’s still another OS with it’s own set of problems.

That said, the user interface is more consistent and usable, in a lot of cases, than Windows and especially Linux desktop environments. But I don’t like it.

First, the good:

  • Multi-display support is good. I use a secondary display at work, and the Mac remembers my settings for it. I don’t have to enter a config screen every time I detach or reattach the display. Windows Vista/7 are way better than XP about this, but not this good.
  • The system preferences window is pretty all-encompassing and consistent. Advanced options for networking are easy to get to, while still making basic network connection access easy to use.
  • Encryption was super-easy to setup and is almost completely seamless.

The bad:

  • It’s slow and unresponsive. Now, this is subjective and a lot of this has to do with what programs I’m working with. But to be sure, I see the beachball a lot, in various applications, and in OS X’s window manager as well. It seems simple actions in specific programs freeze up the entire computer. It’s really annoying.
  • Another complaint is the closing application window does not actually close application. But, that’s by design, and I am a Windows user I guess.
  • Multi-display backgrounds aren’t remembered so well. Considering how well OS X handles multiple displays, this comes at a surprise. OS X frequently (like everyday) forgets how the laptop display’s background is setup, and reverts to the OS X default ones or single color background. If I open up the desktop background settings window when this happens, it shows the system’s default photo library. I then have to reselect the folder I had enabled before, and re-setup the checkboxes for it. I tried tricking it by moving all my desktop background images to the system library. Didn’t work–OS X still forgets the background and shows a blank color instead.
  • When the preference or settings you want isn’t available, you’re screwed. Sure it takes a Google search and shell command to change it, if possible. But it’s usually some batshit insane command that’s impossible to remember.
    sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.ReportCrash.plist

    Makes perfect sense, right? Well, I can’t complain. Linux is much worse. Except Linux isn’t marketed to non-computer saavy people (as much as it would like to be).

  • There’s no cut or move command, as far as I can tell. You have to drag items to move them, which requires opening another Finder window in most cases.
  • This is kind of a *nix problem too: Moving items to the trash doesn’t move them off removable media. Windows is worse, it just deletes the items. But this puts them in your trash, which you might think is on your internal HD. Nope, it’s still on the removable media. You have to empty the trash to make the space available.
  • When you unmount a drive, like a USB thumb drive, the icon disappears from the desktop before it’s flushed everything to the drive. This is really annoying. If the drive isn’t ready to be removed, don’t remove the icon. With most of my USB drives, an LED lets me know when it’s done flushing data. But not all.

Carduino

I’ve been working on a small Arduino project to datalog my commute. I’m using an Arduino Uno with SK Pang’s CAN Bus Shield. I also have added the optional GPS and LCD to the mix. There is an micro-SD card slot for storage.

sIMG_20130129_191447

The aim of the project is just to collect data. As much as I can put into the SD card. I plan on calculating driving efficiency using somewhat arbitrary measures like throttle modulation, temperature, etc.

Hardware:

So, all-in-all, about $170.

 

sIMG_20130129_184137

Here are most of the parts before soldering the JST stuff on.

sIMG_20130129_184208

The actual JST socket should be on the other side of the PCB. Oops. And I wish the “joystick” wasn’t soldered on from the get-go, so I could mount it (or something similar) somewhere else.

I’ve gotten the (horribly written) example code working, and know that it will work with my car. I’m attempting to modularize the example code and mix it with my own to make a slightly better designed program.

The repository is public.

I might also incorporate parts of OpenXC in this as well. And I’ve forked OpenXC in the hopes of one day porting it to work with this CAN Bus shield.

I followed this guide to work in Eclipse.

BBC’s Top Gear > Top Gear USA

BBC’s Top Gear resumes today! I can’t wait to watch it. It’s been a while since they left off, and I’ve been watchin TG:USA in the meantime during my lunch breaks.

TG:USA, will it really work? It just feels so scripted. I know, BBC’s Top Gear had a rough start too, like many shows. But, I’m watching season 2 right now, and the chemistry just hasn’t happened.

I like Tanner, he actually has lines that seem natural. Adam, by a decent amount, annoys me and just seems totally out of place. Rutledge, meh, sometimes he’s funny, sometimes it sounds like he’s having a hard time reading the teleprompter. All-in-all, they still don’t have much on the original. They don’t seem to dare say anything scandalous (politically, or otherwise), for fear of losing viewers. I guess I can’t blame them too much, the US is way more divided than the UK/EU. I mean, as far as my American brain knows.

I’ll still watch it, it’s an American, non-NASCAR car show. It’s pretty much all we’ve got.

Switched themes

I’ve switch to Auttomatic’s “Toolbox” theme which is a barebones type WordPress theme that allows the user to tweak (tweak? More like create from scratch) the CSS to format their site the way they want.

I’m giving it a try. I don’t have enough time to make my own CMS. where I’d spend more time posting using it rather than coding it. I’m not liking the endless fixes and updates of WordPress, but I think I can live with that if I can drive the style of it more.

Without going into custom themes or templates, which seems close to redundant if I can just make my own CMS.

Home server is back online

I’ve pulled power and cable from the attic and just powered up the home server again. It’s been asleep for 5 months until now. I’ve just done an emerge –sync, and it took about 10 minutes to complete.

However, it went up without any problems, which is good. Considering I turned it off in a working state. I was tempted to backup all my config files and start fresh with, say, Arch Linux, but that would take all weekend. So, I’ll stick with Gentoo until I replace this aging 1.6GHz Atom server.

Well, now to start the long process of updating crucial services and resolving dozens of package conflicts. Fun!

Just noticing things

The local government websites in Arlington, TX were bad. But I didn’t know what bad was.

The NJ ones are way worse. Paying your water bill online requires you to look for a specific link. No searching, no way to get to it from the utilities front page.

And why is my bill pay confirmation email coming from industrialtours.com?

 

Refactoring with regular expressions

I’m re-learning JavaScript, and I noticed I was refactoring functions a lot on some old code:

Using Eclipse, you can convert between the different access levels (or whatever it’s called in JS):

aFunc(blah) → this.aFunc = function(blah)

Find: function (\w+)\(

Replace with: this.\1 = function\(

 

To go the other way:

Find: \t(\w+)\s=\sfunction\(

Replace with: \tfunction \1\(

 

Change aFunc(blah) to SOME.qualifier.aFunc(blah)

Find: \t(\w+\()

Replace with: \tSOME.qualifier.\1