Buying A House

This weekend Adrienne and I went to Burlington to look at houses with a real estate agent. We saw three houses but only one was of any real interest. We were so interested in the very first one we saw that we actually went back to look at it again with Adrienne’s parents. Surprisingly everyone was in an agreement that it was a nice house. We decided we would put an offer in and….the house has uriea fermeldehyde.

No comments

Winter

I’m glad winter is finally here. I think I say this every year, but I love winter. Adrienne and I went to the market on Saturday and it was apparently cold enough outside that the ground beef I purchased started to freeze on the way back. That’s awesome.

No comments

Snow

I got a video camera for Christmas and its snowing. I tried to make a nice little video, but the result will probably make you motion sick. Also, I’m still trying to figure out how to use ffmpeg to make the uncompressed videos that come of the camera into something more useful.


No comments

My arm is sore

On Friday I happen to look at my desktop computer, which I don’t use often. Apparently, since my birthday, some internet zombie thing, possibly Asian in origin, had been attempting to gain access to my computer through ssh. I recently changed my ssh port back to the default one, because I had become annoyed with having to specify a port all the time. Apparently there are still hackbots roaming the interwebs. As far as I can tell, nothing had success getting access to my computer. Probably since the root user is not allowed to log in. Nor are any of those non-existent user’s that were attempted. Also, I don’t even allow login through passwords so….

In other news, Adrienne and I went to see Weezer on Saturday evening. The concert was good, although too loud like all concerts. Originally it started out nice, but then got way too loud. I find that concerts just get so loud the sound gets distorted, and then I wonder why everyone wants to listen to the music that way. But anyway, the concert was good, and rather unique. We also got popcorn. The venue was the ACC. I’ve never been to the ACC, it was smaller than I expected. Adrienne and I were surprised by the price discrepancies between the vendors. I also found the kosher hot dog vendor with a certificate amusing.

Today I got my H1N1 shoot, and have been mocked ever since.

1 comment

Cuties

Normally I don’t directly mention things I’ve done at work, but I think this is neat.

I blog before about decrypting some image files. That work was related to something that was just released today. For a limited time, if you happen to have Windows and want to play some games check out this special Cuties Games section of the MostFun.com website. All of the games are similar, part of the ‘Match 3′ category of games. In each game I have replaced a playable item in the game, with a Cutie. The different games have different effects related to the game play pieces. In some case I had to make graphics including these effects, in other cases the game did it form me.

Also, since I’m already bragging about work, I should point out that I’m responsible for and have written large portions of the current game installer. And we recently deployed ‘Community Phase 1′ a small step in a much larger community project vision. I was responsible for the majority of the functional, although ugly, user visible portions of this phase.

Cuties_Character

No comments

Misc

This week I install Windows 7 at work. With the intent to start using it as my primary desktop environment. I installed a new 500GB hard drive in my work computer, split it into two partitions and installed the OS. So far my very cursory and high level opinion is that Windows 7 is like XP but with a fancier UI and some much needed usability improvements. There are two reasons I choose to upgrade. First, I’m so used to ability to quickly get to programs/files through Spotlight in OS X, I was starting to miss it at work. Second, I have a faint glimmer of hope that sometime within the last 9ish years someone at Microsoft managed to improve to the OS’s CPU, IO and VM schedulers to the point where they can handle more than the most trivial work loads. Lately at work I’ve been doing a lot of CPU/Memory intensive scripting to analyze log files log files and getting generally perturbed when my multi cpu machine was brought to its knees because of them. The UAC stuff in Windows 7 seems to better thought out (it was ridiculously badly done in Vista), but I’m not sure they still have it quite perfected. From what I can tell one can’t reasonably do development work with it turned on. Visual Studio requires admin privileges in order to debug process belonging to other users (completely reasonable) but can’t be bothered to attempt to run as an administrator by default. I also had issues with launching things that need admin privileges from the command line but that could be related to cygwin.

I’m having a lot of fun using Git for my current IPhone development work. The main repository is svn, but I’m keeping track of my local changes with Git. When I decided to work on a bug, I create a new branch, switch to that branch and start working. Each evening I check in whatever working changes I have. Then when I’ve fixed the bug I switch back to the master branch and ‘poof’ all those changes disappear until I want them again. When I’m working on a bug, if I want to compare my changes to the original code than I can temporarily switch back to the master branch and do a build. When I’m ready to actually commit my changes all I have to do is merge the branch for a bug into the master branch and then commit to svn. This workflow will also mean that as far as subversion is concerned all of my bug fixes are self contained in a single revision.

Last weekend I went to Waterloo with Sue to visit Verna. We went for a nice walk and I took some pictures


No comments

Misc

This Saturday Adrienne and I took a trip to Scarborough. Interestingly we managed to get from Front and Spadina to Kennedy station in around 30min using the TTC. Scarborough was much as I remember from my last visit. Possibly the most amusing thing we saw was a used hotel furniture store.

On the way back we hand a chance to try out the accessibility features provided by the TTC. (We had a large heavy object.) We spent a lot of time being confused and wandering back and forth trying to find elevators.

I will likely be doing some IPhone development soon. I’ve recently completed reading The Object-C Programming Guide provided by apple. The guide was a pretty good overview of the language, although there were a few places where I would have liked more detail. Objective-C is a pretty interesting language. From what I can see so far, it has many of the interesting features of Java/C# but gets manages to do so without a virtual machine.

Next up I’m going to read the IPhone Development Guide and then the several XCode documents. XCode is so far very strange to me. So many windows. I’m was happy to find a ‘Jump to File’ like feature which I loved in Eclipse and miss desperately in Visual Studio. There are also ‘Find all references’ and ‘Jump to Definition’ features but at least one of those doesn’t have a convenient keyboard shortcut, which is annoying and going to make my wrist sad. However, since OS X is a useful operating system I’m pretty sure I can mange to create my own shortcuts one way or another. I also can’t find a ‘Jump to Function’, which is a bit sad.

1 comment

Christmas Shopping Done

I think I now have all my Christmas shopping complete. I’ve even wrapped many of the items. Everyone thinks I’m done crazy early and I say to them ‘It is you who are crazy’.

I walked by Metro Hall recently. People were lined up even outside. Various strange vehicles including TV station vans were parked outside. The oddity of it all made me feel like I was in a movie. I might wake up tomorrow and find everyone has either died of Swine Flu or become Vampire Zombies because of the vaccine.

No comments

Fun At Work

Recently at work I volunteered for a special project. The work has turned out to be lots of fun, like I expected. One day maybe I’ll figure out what types of programming related tasks I like the best. For now I know that this is fun.

I wanted to modify an image for a particular game. The game conveniently had an ‘images’ directory which contained all the images it used. However, the images in this directory had file extensions like: jpege, gife, pnge. I suspect that the ‘e’ stood for ‘encrypted’ or ‘encoded’ and I was right.

I opened one of the pnge files in vim. The first four bytes of the file were ˆQOF. Since I had been looking at some other png files recently I quickly noticed that Q – 1, N + 1, F + 1 = PNG. Conveniently PNGs start with a well defined header. Not only that, but many of the values in the header have a limited range of valid values. Also, each ‘chunk’ of a PNG has a checksum. So if the data contained in a chunk is small enough, even if there are unknown values in the data and the checksum, swapping bits around for a while eventually produces a valid combination. I worked my way through the PNG header and quickly found that byte values were either -1 or +1 from what they should be. After decoding a bunch of values, I looked at what I had found so far, but didn’t see any pattern in the values.

I next moved to a second PNG, in order to see if/how the encoding differed. Interestingly, I found that the only place where the values I had decoded so far differed was the width/height bytes and the header checksum. This information proved to me that the encoding was at least based on the value of a byte and likely was unrelated to its position or other attributes. With a bit more experimentation (happily I had many files to work with) and comparisons I was able to prove that the encoding was based exclusively on the byte value. Which meant things were easy. Every time I determined the correct value for a byte I added it to a list of known transitions and as I worked, more and more values were known, making it easier to find values to mach checksums or checksums bytes to mach data.

At some point I went to bed, as I was falling asleep, I wondered to myself whether maybe the encoding was completely trivial and the differences were simply based on modulus. This speculation, it turns out, was correct. Sadly it took me a while to realize that. In the morning I plotted the values I had so far, but due to lack of data, and some erroneous data I didn’t see any pattern. So I pressed on, decoding chunks of PNGs that were small enough to easily match checksums and using all the files at my disposal. Eventually I had a basic PNG decoder and about 130 of the needed 256 translations calculated.

At this point I decided to graph my numbers again. I had since corrected erroneous numbers and gained quite a few. The data made it obvious that the pattern was simply odd even. 0=>1, 1=>0, 2=>3, 3=>2 and so on. I was able to reduce my script to about 15 lines that would encode or decode the file based on the file extension. Ta da!

Luckily there was no real encryption involved. I didn’t succeed at taking cryptography at school.

No comments

CN Tower Climb

Today I participated in the Enbridge/United Way CN Tower climb. My new record time is 19:13, my previous time being 20:10. I don’t think I have any hope of ever beating Chris S who came close to hitting sub 16 minutes. I do wonder though how fast I could do the climb if I my progress wasn’t encumbered by other climbers. This climb felt like it took much less time and effort than last. I was making comments in my head about some climbers who had already stopped to take a break when someone announced that I was already half way. I have no disrespect for anyone that needs to take a break after climbing 77 flights of stairs. However, breaking, or even slowing is a bad idea and that’s why having so many other people climbing at once can sometimes be frustrating. Having to slow down for a bit is really unpleasant.

I was surprised/amused by the difference in timing technology between the two climbs. For the WWF climb we were given RFID (or similar) wrist bands which we just had to wave at someone at the start and end of the climb. Then when we went to get our shirts our times were magically available on a computer. For today’s climb we were given a card with a time stamped on it. Then when we got to the top another time was stamped. I feel sorry for anyone who brought clothing without pockets.

No comments

Next Page »