Thursday, January 30, 2014

How to Downgrade iPhone 2G to iOS 1.0

I recently worked out a flawless method to downgrade iPhone 2G to iOS 1.0, as well as how to jailbreak, activate and unlock it.  It's fairly straightforward as long as you follow these directions exactly.


Requirements

A virtual machine or computer running Windows XP**
An iPhone 2G (derp!)

**NOTE:
I personally used VMware Workstation 8 to create a virtual machine using my old copy of Windows XP Professional (fresh install) in order to do most of this.  You could also likely use Windows XP Mode (if you have Windows 7 Pro/Ultimate/Enterprise).  An obvious option is a computer running Windows XP, however if it's already had a newer version of iTunes installed on it you may run into issues.


Before you begin, some things you should know

First things first -- credit where credit is due:
            George Zhu - for iLiberty+ and his great blog
            iphone-elite - for information on how to patch lockdownd to be activated
            SonnyDickson (Modmyi forums) - for posting the iTunes version & OS needed
            ... and of course everyone else that contributed to the scene that made this possible.

It should be stated that I have gone through this entire process with a fine-toothed comb in terms of every detail.  I have run through this many, many times on my phone in order to make sure this process works without a hitch.

And don't be scared -- if anything goes wrong at all, you can always start fresh with a DFU mode restore to iOS 3.1.3 and start everything over again.  Trust me, I have done it about 30-40 times now. :)

Also, it should be noted that after jailbreaking iOS 1.0, iTunes doesn't seem to recognize the phone anymore.  It appears for a split second, then disappears.  I'm not sure how to resolve this issue, it might simply be an effect of the iOS 1.0 jailbreak itself.


The Long-Winded Background Story

I repair iPhones as a side business, and over the years I started to collect iPhones.  One day I decided I would buy an iPhone 2G (the original iPhone) to have in my collection.  I managed to get one off eBay that was in decent condition and in the original box.

When it arrived, I wasn't surprised that it had iOS 3.1.3 installed on it, since the owner had likely restored the phone before selling it.  At that point I made it my goal to see if I could somehow get the original iOS 1.0 (technically iPhoneOS 1.0) installed on it.

Initial attempts to downgrade the iPhone 2G to iOS 1.0 using the latest iTunes failed miserably.  I started trying older versions, one by one, without success.  I even had Mac OSX running in a virtual machine and tried multiple versions there, again without success.  I kept plugging away at it, figuring it must be possible.  As Henry Ford said, "Whether you think you can, or you think you can't -- you're right."

After much time spent searching, reading, trial and error, followed by more searching, I finally found the key that makes this work.  Proper credit must be given to SonnyDickson of Modmyi forums, who posted the proper iTunes and OS versions required to downgrade properly.

It turns out that you must use iTunes 7.5.0.20 running under Windows XP in order to ensure a smooth downgrade to iOS 1.0.  If you do not use this exact combo, you will almost certainly run into iTunes error 20, error 1600, error 1601, 1602, etc.  While it is possible that other iTunes versions or OS's may work, I'm simply sharing what has worked for me.  If you know of another iTunes version or OS that will work, let me know and I will post an update.

So after a lot of fighting with my iPhone 2G, I finally managed to get iOS 1.0 installed on it.  Yay! Good times, right?  Well, sort of.  Even though it starts up fine, the phone is stuck at the 'Activate iPhone' screen.  Since Apple has deactivated their 2G activation servers, there is unfortunately no way to legitimately activate an iPhone 2G.  Which means we must turn to software modifications at this point.

I stumbled across a forum post on the MacRumors forums where hackerwayne mentioned he was able to hacktivate iOS 1.0 successfully using a modified version of iLiberty+.  I started looking into it and found that iLiberty+ comes with a package to activate iOS 1.0.2 - 1.1.4, but without support for iOS 1.0.

I opened the script file, and noticed it checking iOS versions before applying patches.  Somewhat haphazardly, I decided to modify the value it was looking for so that "1.0" would install the patch for iOS 1.0.2.  Guess what... it worked!

I wasn't satisfied, though... I wanted the phone to be unlocked, to see if there was a chance it would work on my carrier (spoiler alert: it doesn't).  The unlock only supports baseband 03.14.08 to 04.04.05, and since iOS 1.0 uses 03.12.08 it doesn't work.  Using files from George Zhu's blog, I created my own script to reflash the bootloader to 03.14.08 (download here if you have any use for it).  However the unlock didn't want to work on 03.14.08, so that seems to have been a wasted effort.

I also didn't feel right using the 1.0.2 version of lockdownd on iOS 1.0, so I decided to see if I could make my own patched lockdownd for iOS 1.0.  I managed to find a fantastic post on George Zhu's blog that describes the differences between lockdownd patches by iOS version, and it lists the patches required for iOS 1.0 and 1.0.1.  Sure enough, they are at different offsets than the one for iOS 1.0.2, so I decided I'd make my own Activation script for 1.0 and 1.0.1.

After some research, I figured out how to extract content from IPSW files and after a few minutes with a hex editor I had a patched copy of lockdownd for iOS 1.0.  While I was at it I decided to extract and patch lockdownd for iOS 1.0.1 as well, in order to give iLiberty+ the ability to activate the full range of iOS 1 versions.

I also managed to find an app called iPatcher by iphone-elite, which should activate iOS 1.0 to iOS 1.1.2.  I created a script that runs it (download it here if you like), however it doesn't seem to work.  I may have done something wrong, if anyone is able to get it working please let me know.

After all this work, I decided to make a blog post about it in case anyone wants to replicate what I've done.  I hope you enjoy it as much as I enjoyed working on it. :)


Phase 1 - Restore to iOS 3.1.3, without syncing

First you will need to restore the iPhone to iOS 3.1.3.  You should do a DFU mode restore to ensure a clean, fresh install.  It doesn't matter which version of iTunes or which OS you use to accomplish this.  For reference, I'm using iTunes 11.1.0.126 on Windows 7 Home Premium.

NOTE: It's very important that you do not let iTunes sync the phone after restoring to iOS 3.1.3, otherwise the downgrade may fail and you'll have to start over again.  To save yourself some hassle, keep an eye on the restore progress and as soon as the phone restarts, be ready to unplug it.  Keep watching the screen (and pressing home to keep it lit) until it changes from the "Connect to iTunes" background to the battery icon.  At that point immediately unplug it before iTunes has a chance to sync.  You can now close iTunes and move on to Phase 2.

HILARIOUS: After the phone is done restoring, and if you have a valid SIM inserted, the iPhone may display the message "Waiting for activation. This may take some time."  That's a bit of an understatement, considering Apple's no longer running activation servers for the iPhone 2G. :-/


Phase 2 - Downgrade to iOS 1.0

Now it's time to prepare your Windows XP computer or virtual machine.  You will need to download the iOS 1.0 firmware file, iTunes 7.5.0.20 as well as iLiberty+ 1.3.0.113.  After installing iTunes and iLiberty, make sure you extract the Activate 1.0 - 1.0.1 payload into iLiberty's payloads folder.  The default location is C:\Program Files\iLiberty\payloads.

Start iTunes 7.5 and connect the iPhone.  iTunes will warn you that you need version 8.2 or higher, click OK.  Put the phone into DFU mode.  Once the phone is detected, hold Shift and click Restore, then select the iOS 1.0 firmware file. 

iTunes will display "Extracting software", followed by "Preparing iPhone for restore".  The screen on the phone will turn white, then display the Apple logo, and shortly afterward display the 'spinning' icon at the bottom of the screen.  iTunes will go through the typical restore procedure, and after about 5-10 minutes or so, your phone should restart into iOS 1.0. :)

After the restore is done, iTunes will show a message saying you need iTunes 10 or higher (for which reason I do not understand).  Close iTunes and move on to Phase 3.

TROUBLESHOOTING: If you get error 1604 and your phone displays the regular "Connect to iTunes" screen, it means your iPhone may have synced after restoring to iOS 3.1.3.  Try the above steps once more, if you end up with the same result you should start over with a DFU mode restore to a fresh iOS 3.1.3 and be careful to not let iTunes sync it when the restore is done.


Phase 3 - Jailbreak, Activate, and Unlock using iLiberty+

The first thing you want to do in iLiberty+ is update the address for the repo.  Go to Tools, Options, and replace the old address with the new one:

http://iliberty.insideiphone.com/repo.plist

Do not check anything on the main screen (Standard tab).  Instead, select the Advanced tab, and then click the Refresh button.  Then select the "Available On Repo" tab (at the bottom), scroll down until you locate "Reflash baseband to 04.04.05_G (BL3.9 only)", check it off and click Download.

Next, click the Local tab (at the bottom) and check off the following payloads:
- Activate 1.0 - 1.0.1
- Downgrade bootloader from 4.6 to 3.9 (if you are certain that your phone has bootloader 3.9 you can leave this unchecked -- it's harmless if you're on 3.9)
- Reflash baseband to 04.04.05_G (BL3.9 only)
- Unlock 03.14.08_G - 04.04.05_G

Cydia is included, however it's a very old version and not well supported as I'm sure you can imagine.  It does work, but it sure doesn't like talking to the repo.  There are also very limited options for software.  I personally chose to leave it off my phone to keep the stock home screen.

When you're ready, click Go for it! After a couple seconds iLiberty should ask you to disconnect and reconnect the phone.  After doing so click OK.  You should then see a progress bar as the ramdisk is uploaded, and the status bar (at the bottom) will say "Sending ramdisk to device..." followed by "Booting ramdisk..."

Once it says "Booting ramdisk..." click the Other Tools tab and the 'Jump Out of Recovery Mode' button which should kick-start the process.

Pass 1 of iLiberty+ should now run, which looks like a lot of text scrolling on your screen.  After 20-30 seconds your phone will reboot and display the Apple logo, followed by iLiberty Pass 2. 


Wait for Pass 2 to finish (takes about 7-8 minutes for everything to complete), after which your phone will reboot.  Everything should now be hunky dory.  Enjoy iOS 1.0! :)

Saturday, September 24, 2011

Upgrading a BlackBerry Curve 8330 to OS 5.0

This is how I upgraded my BlackBerry Curve 8330 to OS 5.0.

First, a warning: this is DEFINITELY not for the faint of heart. Do this at your own risk, as we're messing with the phone's OS here you may end up bricking your phone if you don't do it properly. I accept no responsibility if this doesn't work on your phone.

As of the writing of this post, the current RIM OS is version 7, however those of us who don't upgrade their phone hardware every couple of months may be stuck on an older OS, such as version 4.5 as I was on my Curve 8330.

Since OS 5.0 was released, RIM has supported it on the Curve 8330. However, at the time of the release of OS5 there were other devices on the market, and IMHO most carriers chose not to release an upgrade to OS5 on older devices in order to encourage the purchase of new devices.

The main reason for upgrading your Curve 8330 to OS5 is the plethora of new features: upgraded web browser, BBM-style chat for SMS texts, improved media player, support for the latest RIM apps, nicer alarm/clock application, nicer boot screen, built-in safe mode and other minor improvements. Your device will also run much faster after a wipe/reload of the OS software; the performance improvement is akin to having a fresh copy of Windows installed on your computer.


Getting OS5 for Curve 8330

Even though most carriers don't officially support OS 5.0 on the Curve 8330, thankfully one North American carrier -- Boost Mobile -- decided to officially release OS 5.0 for their customers. Start by going to the Device Software download page, and select Boost Mobile (near the bottom under North America):

Link: BlackBerry Desktop and Device Software Download Sites

Under Boost Mobile's page for the Curve 8330, you should see the following listed:

BlackBerry Handheld Software v5.0.0.724 (Multilanguage)

Package Version: 5.0.0.724
Consisting of:
  • Applications: 5.0.0.438
  • Software Platform: 3.5.0.44
  • File name: 8330AMEA_PBr5.0.0_rel724_PL3.5.0.44_A5.0.0.438_Boost_Mobile.exe
  • File size: 90.38MB
Go ahead and download that file. After the file is done downloading simply install it as you would any other program. For reference, the
OS files will be installed to the following folder: C:\Program Files\Common Files\Research In Motion\Shared\Loader Files.


Backing up your Data & Apps

A crucial step of course is backing up all your current settings, data and messages using BlackBerry Desktop Software (BBDS for short). I did a full backup which includes everything except applications. A really great feature of BBDS is that the backups seem to be version agnostic; in other words a backup made while on OS 4.5 can be restored to OS 5.0 and nearly all settings will return to the same condition.

After using BBDS to backup your data, settings and messages, the next step is to backup your applications. The easiest way I've found to do this is a handy application called BlackBerry Swiss Army Knife (BBSAK for short). With BBDS closed, start BBSAK (password is blank) and let it connect to your device. Once it's connected, use the Backup Apps button in order to save your apps.

Finally, as an extra precaution, if you use BBM be sure to go into BBM's Options menu and choose Backup Contact List, and save a backup to the microSD card. BBDS's backup feature should save/restore all your contacts, but you can never have too many backups just in case.


Wiping your BlackBerry

This step is optional, however wiping your BlackBerry will ensure it runs at its full potential. Data and settings from the original OS during an upgrade will impede performance and reduce the amount of memory available. By wiping it, you stand to reclaim a significant amount of the 96mb flash memory that the Curve 8330 has. OS 5.0 is a bit larger than OS 4.5, and because of the wipe -- even with the larger OS -- my BlackBerry has more space than it has ever had before.

The only disadvantage I have seen so far is the AppWorld no longer recognizes my previous app purchases, and presumably won't offer me any upgrades for my purchased apps. I have PayPal receipts for the apps I bought, so it's likely that I could get the purchase history restored with a call to RIM, however since I was able to restore all my apps using BBSAK I won't worry about that for now.

To wipe your BlackBerry, start BBSAK and once your device is connected, click the Wipe Device button. If you're absolutely positive you've backed up everything (and double checked the backups just to be sure), click Yes to proceed and wipe your device. It should only take a few seconds and your phone will restart. Note: this will not affect the data on your microSD.

Instead of your phone starting up like normal, you should see an unsettling screen that implies "no programs installed" with an error code underneath: error 507. This is actually a good sign, it means that the OS on the BlackBerry has been erased and the device is ready to accept new software.


Loading OS 5.0 onto your Curve 8330

After you've backed up your device, and wiped it (if you chose to do so), you are ready to load OS 5.0 onto it. If you haven't already installed OS 5.0 using the installer mentioned above, do so now. After installing it, navigate to the following folder: C:\Program Files\Common Files\Research In Motion\AppLoader\.

Next, delete the vendor.xml in the AppLoader folder. This will prevent AppLoader from blocking OS 5.0 from appearing based on the mismatch between your carrier and Boost Mobile. Note: No actual difference exists that I can find between my carrier's OS and the Boost Mobile OS.

After you've deleted vendor.xml, start the program using the Loader executable. Click Next, and Next again. At this point it may take about 30-60 seconds for the program to detect your device. After loading it should show you a list of options to select in OS 5.0 before loading to your device.

Note: Before going any further, click the Add button near the top of the window. Browse to C:\Program Files\Common Files\Research In Motion\Shared\Loader Files\8330AMEA_v5.0.0.438_P3.5.0.44\ and it should list all the application files contained within. Select 'BISThickClient' at the top, hold shift and select 'Tasks-Java' at the bottom in order to select and add all the application files. Failure to add all the application files as described herein will result in a crippled OS being loaded to your phone. It won't wreck anything, it simply won't work and you'll have to start over again.

After you've added all the application files, you can review the list and choose to add/remove features that you so desire on your device. Once you're satisfied, click Next to proceed.

At this point, if you didn't wipe your device the Loader may ask if you want to backup your settings and data before proceeding and automatically restore afterwards. I usually choose not to, since I prefer to back everything up manually. It's up to you whether you want to do the automatic option or not.

Finally, the Loader will begin to load OS 5.0 to your device. It may take a while at the 'Erasing applications' and 'Loading system software' stages, but be patient. Whatever you do, don't disconnect the cable at any point during this crucial operation.


First Boot into OS 5.0

After the Loader is finished, your device will restart automatically. The first thing you'll notice is a new boot screen: the BlackBerry logo in the center with a progress bar across the bottom. It will likely freeze around the 60% mark, and stay there for quite some time. Initially this really scared me; I thought my device was frozen entirely. Be patient; after about 10-15 minutes your Curve 8330 will be like a brand new phone.

After your phone has finished loading, feel free to connect it to BBDS and do a restore to bring back all your contacts and settings. Then, fire up BBSAK and choose Restore Apps to load all your apps back onto your device. After it restarts your phone should look and feel very familar, except now it will have upgraded software on it.

Note: Check to see if MemoPad is installed, as it wasn't installed when I loaded OS5 onto my device. To get it loaded I used BBSAK's Install COD(s) feature on the Modify COD(s) tab to install it manually. The application file for MemoPad is located at: C:\Program Files\Common Files\Research In Motion\Shared\Loader Files\8330AMEA_v5.0.0.438_P3.5.0.44\Java\net_rim_bb_memo_app.cod.

Congratulations, your Curve 8330 now has the latest available software for it. Enjoy the new features! :)


Troubleshooting

There are a few issues I ran into that you may run into as well:

- If your device won't connect to BBDS or BBSAK, start Task Manager (using Ctrl+Alt+Del) and end the following processes if they're running: BbDevMgr.exe, RIMDevMgr.exe, RIMBBLauncher.exe, or any other process starting with Bb or RIM that relates to BlackBerry. Then try again.

- If you can't find BBM anywhere and you're positive you've installed it see below about OS modifications and OS shrinking.

- If when OS 5.0 starts for the first time it simply shows "Platform 3.5.0.44" at the top of your screen and a notepad-style list of applications that don't even start properly (with module missing errors, etc), you need to reload your OS and this time make sure to add the rest of the applications in the OS folder as described above in the 4th paragraph after 'Loading OS 5.0 onto your Curve 8330'.


OS Shrinking and Modifications

Don't get too fancy like I tried and use Shrink-A-OS or another tool to try and shrink your OS down. It works great in every sense except one: BBM will not function at all on a device that has a modified OS. If you don't use BBM at all then feel free to try Shrink-A-OS or another tool to gain even more space on your device by removing built-in features that you don't normally use.

If you try to use BBM with a modified OS, the BBM icon will go missing and you won't be able to start BBM at all. You'll be able to install and uninstall BBM, and it will show up in your application list (under Options), however you won't see a BBM icon anywhere on your home screen and you will be forced to reload a stock OS if you want to use BBM.


Thanks

I want to thank the authors of BBSAK for their hard work on such a great program. If you found this blog post useful, please donate a few bucks to the BBSAK authors to keep the development alive. Feel free to post comments below as well if this blog post helped you in any way. :)

Sunday, February 22, 2009

Microsoft Office 2003 MSRCLR40.DLL Fix

I have Microsoft Office 2003 installed on a work computer that uses Windows Fundamentals for Legacy PC's (also known as WinFLP). When installing it would give me Error 1904, something to do with MSRCLR40.DLL failing to register. On my install it would prevent Outlook 2003 from working properly, so something had to be done to fix it.

After a couple hours of digging, I finally found the fix for this problem on a message board found via Google. Thanks to 'toasterking' at the TechArena Community for posting the solution.

The problem lies with another support DLL, called MSREPL40.DLL. This file is not included by default with WinFLP or other Embedded XP systems. To fix the problem, MSREPL40.DLL must be installed on the WinFLP (or other Embedded XP OS such as WEPOS) installation in the %SystemRoot%\system32 folder. Once MSREPL40.DLL is in place, simply do a 'Detect and Repair' in Office 2003 and it will properly register MSRCLR40.DLL.

I've created a small batch file included with MSREPL40.DLL, in order to quickly and easily copy it into the system32 folder. I hope this helps anyone who has the same problem I had, it was painful to track down the problem but thankfully it's working now!

You can download the MSRCLR40.DLL fix here (e-mail me if the links are broken):
Mirror #1
Mirror #2

Please send any feedback or suggestions to dylan(dot)cooke@gmail.com.

Thursday, June 12, 2008

BASIC Goodness

I've made good progress on the Gas Calc, so far it is working nicely. There's still some stuff to finish (mileage calculator, unit converter) but it should be done shortly.

Once it's done I'll be making a SourceForge page for it. I'll post the VB Express 2008 source code as well as the program executable along with an installation package.

Since I use Kubuntu as my main desktop OS, I figured I'd also create a Linux/Mac OSX version to go along with the Windows version. I figured I'd have to use KDevelop (which would be a steep learning curve for me as I don't know C++), however doing a quick Google search for "visual basic for linux", the third result is something that I've long dreamed of but never knew existed: a Visual Basic clone for Linux!!

Okay, so the developers don't want people calling it a clone, since it's not exactly the same as VB. Gambas is an acronym that stands for "Gambas Almost Means Basic". It's basically (pun intended) the same thing as Visual Basic, just not quite as full-featured. However every essential feature of Visual Basic 6.0 is included in Gambas, with some features replicated to stunning detail. The major difference of course is that Gambas lets developers create quick-and-easy applications for Linux, in a WYSIWYG development environment. Hats off to the Gambas developers for creating such a cool IDE!

Since I discovered Gambas last night, I've recreated the entire VB Express project in Gambas (imports are not supported as the code isn't 100% compatible, even though it's very similar). Everything works the same as the Windows version, including the About box. Gambas also supports console-based projects, so once I'm done with the GUI versions I'll also create a Linux console version for those who despise GUI's.

All of these projects will be posted on the SourceForge page for anyone to download. I strongly believe in open source software and the Free Software concept, so I feel like I should give back a little bit. I started with mod2avi, a script to convert JVC mod files to AVI files, and figured I might as well open source some of the other projects I'm working on such as Gas Calculator.

Saturday, June 7, 2008

Gas Calculator Algorithms

Here are the algorithms I intend to use for the Gas Calculator. Keep in mind I'm Canadian so I'll be defaulting to liters, however I intend to build in the ability to use either liters or gallons. Also even though we use metric, the car dealerships still advertise Miles Per Gallon (MPG) efficiency so that's what I'll be using.

Input Options:
- Days Per Week (default 5)
- Distance from Home to Work
- Distance from Work to Home (in case someone takes a different route home)
- Miscellaneous distance traveled in a week (recreation, etc)
- Highway distance traveled in a month
- Vehicle MPG (highway mpg as well as city mpg)

Calculations:
- Gallons burned per month = (Total city travel / city MPG) + (Total highway travel / highway MPG)
- Gas cost per month = Liters burned per month * Cost per liter

Conversions:
- 1 mile = 1.6093 kilometers
- 1 kilometer = .06214 miles
- 1 US gallon = 3.7854 liters
- 1 liter = 0.2642 US gallons

I'm also gonna make a separate area/dialog box for unit conversion. Looks like VB Express 2008 is done installing so might as well start programming. :)

Gas Prices and Dishonest People

I feel the need to rant about gas prices, and also about crooks that sell vehicles and lie through their teeth as they sell them to you.

First of all lets start with the latter. I bought a 4x4 SUV from a guy in January, since I've always wanted a 4x4 and lake season was approaching, I figured I'd get a nice little truck that I could take offroading if I want to. I should preface all this with I've learned a HUGE amount from this whole ordeal and will be handling used vehicle purchases quite differently in the future.

When I bought it from him, he insisted there was nothing wrong with it and he's always taken good care of it. He was apparently only selling it because he needed the money, he didn't really want to get rid of the vehicle. So a week after I take possession, a cold snap hits (-45c, ouch). Turns out the vehicle had weak radiator coolant (-18c test) which froze up and caused the vehicle to overheat and in turn cause damage to the radiator.

It ends up costing me a couple hundred bucks, which I'm now suing the guy for since I figure he should have had the vehicle properly winterized since I bought it from him in the middle of winter. Keep in mind this vehicle wasn't sold as is, the seller insisted the vehicle was in tip-top shape (and indeed it looked to be as such, to my untrained eye).

So that's one issue. The other issue is now I'm one of many people seriously thinking about trading my SUV for a much more gas efficient car. After appraising the vehicle, the dealership tells me it's worth about half what I paid for it, due to the vehicle's demand depreciating over high gas prices. Of course, the dealership wants to make some money on it too, so I figure they're lowballing me a little bit.

Besides the rage that I feel towards the asshole that sold me the vehicle, there are some huge lessons learned. I could have learned these lessons beforehand and it would have saved me a lot of trouble, but hey, life is a learning process.

1. Never buy from a private seller. Most of them are full of shit and the rest won't be willing or able to cover any problems you might have. That's the golden rule. But, that doesn't mean every car dealership is honest either, hence:

2. Never take their word for it. I made a mistake and fell into the trap of "this guy's a nice guy". Some people can put on a real good nice person act, and actual nice people like me (that are sometimes admittedly gullible) might fall into that trap. They'll either tell you the truth and filter out everything bad, or they'll throw some small or even large lies in there hoping that you'll bite.

3. Inspect the vehicle for yourself, don't just get someone else to do it. I had a friend look at the vehicle, he simply scanned the computer codes and said everything should be okay. If I had looked more closely at some things for myself, I might have checked the fluids instead of taking the seller's word for it. Then I would have noticed the weak radiator fluid gelling up, and of course not bought the vehicle.

I guess those are the major learning lessons. I will never buy another vehicle from a private seller; I will never simply take someone's word for it; and I will always inspect the vehicles very closely myself. It seems like simple stuff and hey, maybe it is, but now I know first-hand.

So anyways, enough of that schlock. As I mentioned, I'm trading in my SUV for something more efficient since gas prices are crazy. Gasoline here costs $1.36/L. That's $5.15/gallon. My 4x4 SUV gets 15mpg on the highway and 11mpg in the city. I've done some math and figured out buying a Cobalt will almost pay for itself in gas savings, at 43mpg on the highway and 29mpg in the city.

I was doing a whole bunch of math, and that's what made me think of the idea to make a Gas Calculator. I did a quick Google search and there's nothing quite what I'm looking for out there, so I figured since I'm handy with Visual Basic, I'll install VB Express 2008 and whip up a handy calculator. I figure it will be helpful to others, so I'll open source it and post it on this blog as well.

Finally did it

Well, I finally did it. I've created a place online where I can express some of my thoughts. It's not like it's my first webpage though, I've been creating personal websites since the late 90's. I just never really created a 'journal' type page where I can express my thoughts, sorta like people do these days with Facebook (et al). I have a Facebook account but I never really got into it, I kinda like the blog format though so I think that's what I'll stick to.

Just a note on the name of this blog, I figured I'd call it The BWAIN (Blog Without an Interesting Name). I was gonna call it Dylan's BWAIN but thought the address would be too long, plus 'bwain' and 'mybwain' were already taken. So I settle on 'thebwain'. ;)