Archive for the ‘Software’ Category
anki, review, Software
In Software, Technology on Monday, December 8, 2008 at 3:49 pm
Recently, while studying for my upcoming Grade 2 music theory examination, I started looking for free, open-source flashcards software programs to use for studying musical terms. (Contrary to popular belief, there’s plenty of good free software out there.) I looked at command-line applications, Linux GUI applications, Windows GUI applications–nothing. So I decided to write my own. I started writing a backend, first in C#, then in Python, then in C# again. I started working on Windows UI mockups. Then, in the midst of it all, I discovered Anki.
Strange name, I know, but it’s great software. Anki epitomizes everything good free software is – it’s fast, reliable, easy to use, cross-platform; it even has a really good-looking UI. Although designed for language vocabulary practice (with a focus on Japanese, a language I will probably never learn), it works just fine for anything.
Anki doesn’t limit you to having cards with just fronts and backs. You can have complicated cards with one front and numerous backs; for instance, a verb and its conjugations. Neither does it limit you to plain text: you can input formatted text, pictures, audio; even mathematical equations, with practice. One thing I would like would be the ability to input musical notation, preferably using Lilypond notation. It’s easy to input flashcards quickly into Anki; I was able to type 120 cards, front and back, in about half an hour, on a laptop keyboard.
The software’s practice interface is equally good. You can customize the formatting used to display the cards on the screen, but the default looks good enough that such action is unnecessary. You can grade how difficult the card was on a scale of one to five; the software will schedule the next appearance of the card based on your selection. This method, the Leitner Flash Card System, ensures that you get the most practice on the cards you find most difficult.
I remember hearing once that the computer platform with the most software written for it was the Commodore 64; but these days, that’s somewhat hard to believe, considering how much software has been written for Windows. Yes, there is much in the way of useless free software out there these days, but there are gems to be found, and Anki is one of them. I highly recommend this software.
excel, ui
In Software, Technology on Friday, October 31, 2008 at 1:29 pm
Okay, so UI design isn’t the easiest thing in the world. Still, though, some parts of it are pretty consistent across applications, even across operating systems. Take, for example, the image below – a bunch of forward-back (or next-previous) buttons from different real applications.

Pretty simple, isn’t it? The forward button goes on the left. The back button goes on the right. They have nice icons pointing in the right direction. Now, look at the buttons in Excel 2003’s Print Preview window.

What? The Next button is on the left. The Previous button is on the right. Seriously, what were they thinking?
Games, openttd
In Software on Thursday, August 14, 2008 at 7:55 pm
I don’t really play a lot of computer games. I like computers, but most games leave me a bit cold. People often ask me, “So, what do you enjoy doing?” “Computers,” I say. “You mean, like, games?” they ask. “Well, uh, no, not really.”
One of my favourite games, though, was RollerCoaster Tycoon 2. The combination of the funky 16-bit, isometric graphics and the unique plot was perfect. For the same reason, I was very excited to discover Transport Tycoon Deluxe (TTD). Created by Chris Sawyer, the same guy who created RollerCoaster Tycoon, it involves not a theme park, but a transport company. You build railways, roads, seaways, and airlines that transport all sorts of goods to and from factories, mines, farms, forests, and towns. As you build your business, the surrounding towns grow.
Transport Tycoon Deluxe is no longer manufactured; however, the good people over at the OpenTTD project disassembled its code and ported it to first C and then C++, allowing it to run on many different platforms, including the iPhone. OpenTTD has many new features that improve the gameplay, including the autorail tool, 32-bit graphic support, a console, and an online multiplayer mode. It’s not too hard to play, and it’s a lot of fun, at least in the “easy” difficulty level. (I myself have not yet been able to conquer the “hard” level.)
What I like:
- It’s fun to watch the artificial intelligence work. (Intelligence? What intelligence?)
- The graphics are really cool. Not at all modern – they look like something from the nineties – but cool.
- The sound effects are cool, too. I haven’t been able to get the music working on Linux, but I’m sure it’s cool. Shoot, the song titles are cool. (“Aliens Destroyed my Runway” is one of them.)
- The vehicles are all actually real vechiles, but with different names. For example, the Concorde is now called a “Yate Haugan”. The Boeing 747 is a “Darwin 300″.
- The towns all have odd names. (Gintfingburg. Tunningway-on-sea. Nafingbourne.)
What I don’t like:
- The timing of the game is way off. For instance, a typical flight takes around three months. Six months round-trip.
- Rails are a real pain to put in. You have to first find the best route, then level the hills, then put in the rails. It would be nice if the autorail tool really did do it all automatically.
- The AI, as mentioned, is really dumb. The way their railways loop back around each other is hilarious. I’ve seen an AI build a road that needlessly crossed a railway, drove on the other side for a few squares, and then crossed back over.
All in all, OpenTTD is a great game that is very addictive and fun to play. I took a bunch of screenshots of the game, which you can see below. If you’re looking for an intelligent game to play, OpenTTD may be the answer, although I will not guarantee that it is less mind-rotting than other games.
Games, Minesweeper, Vista, Windows
In Software on Thursday, July 24, 2008 at 3:07 pm
Since the long-gone dawn of Windows 3.1, Microsoft bundled Minesweeper – a game that everybody knows about and sort of knows how to play, but nobody is really good at – with Windows. The Windows version of the game remained basically unchanged right through Windows XP, except that with the release of Windows 2000, the beginner level was enlarged from 8×8 to 9×9.
Among the notable features of this version of Minesweeper were the charming “smiley face” button at the top of the screen (he would scowl if you lost, and clicking him would start a new game.) Also, you could cheat: if you typed “xyzzy” and then pressed Shift+Enter, hovering over a mine would cause the upper left-hand pixel of your monitor to turn black. Hovering over a non-mine square would turn the pixel white.
Sadly, however, this version of everybody’s favorite game is now gone forever. For Windows Vista, Microsoft got an independent game developer, Oberon Games, to create a new version. Gone is the smiley face; gone is the cheat mode. Gone forever are the cool 16-bit graphics that haunted the game from Windows 95 onward. Worst of all, you can now cheat in a perfectly legal way: because you can save your game and start over, people just click on a mine, take a screenshot, and then start from the saved point, using the screenshot as a reference as to which squares are mines. Farewell, Minesweeper. You will be missed.
ads, Gmail, Spam
In Internet, Software on Wednesday, July 16, 2008 at 9:59 am
The GMail web app is supported by “featured content” – a sneaky way of saying text link ads – at the top of every page. Among the more interesting ads are those in the spam folder: they are all links to recipes that have spam (the food, not the emails) as an ingredient. There don’t seem to be very many spam recipes on the internet, however. The only four I am seeing:
Apple, iPhone
In Hardware, Software on Tuesday, July 15, 2008 at 2:05 pm
I went to the mall this morning with the intention of buying some clothing. (Yes, nerds shop for clothing.) So after we stopped at Tim Hortons, which is the Canadian equivalent of Dunkin’ Donuts, we walked over towards Sears. On our way, we walked past a Rogers Wireless store.
And there it was, the iPhone, in all its glory, sitting on the counter, practically begging to be handled. (It was protected from theivery, though, by a cable attached to it and by the guy behind the counter who watched my every move.) I only had a few minutes to play around with it, but from what I could tell, the thing is great. A few small observations:
- The device feels great in your hands. Really great.
- Furthermore, it is incredibly thin.
- The screen is amazingly bright, with no glare or reflection whatsoever, and absolutely amazing resolution.
- Multi-touch is cool.
- The GPS works perfectly.
- The camera stinks. The resolution is terrible, and the camera itself is right where you want to put your finger.
- The accelerometer, for some reason, was disabled on the display devices. And no, it was not just broken, because I stopped at a Wireless Wave store later in the same mall and had the same experience.
- The keyboard is really not as bad as you might think. I, however, had a very hard time hitting the “s” key. Because the accelerometer wasn’t working, I couldn’t try the landscape mode.
- The store device came preloaded with a bunch of stock images. (And while I’m on the topic, pinching to zoom is very, very cool. If you haven’t used a multi-touch display before, you should really go down to your nearest iPhone retailer and try the thing out.)
- The lack of physical buttons is not a problem.
- The UI has lots of cool animations and such. For example, the glow on the “Slide to Unlock” text slides from left to right. Also, when you press the home button, the icons zoom into place from the sides.
- The way the icons jiggle when you want to move them is positively nauseating.
I got back in the car with my brother, Arie (who plays Scrabble at a professional level) and had this irritating discussion with him:
ME: The 3G iPhone is so cool.
ARIE: What’s so much better about the new iPhone?
ME: It has, um, welll… it has, uh, three G’s.
ARIE: So? The word gagger has three G’s too. Gagging has four.
ME: Uh…. well…
iPhone, Mobile Me
In Hardware, Internet, Miscellaneous, Software on Monday, June 9, 2008 at 7:53 pm
After a furlough of around two months, I’m back at blogging. I was a bit lazy about it for a while there, but now that I’ve finished school for the year, I’ll have plenty of time to write. I’ll get some Recommended Reading up as soon as possible, as well as some Recommended Listening.
In unrelated news, Steve Jobs announced the 3G (second generation, but three G’s of wireless connectivity) iPhone today at Apple’s Worldwide Developer Conference. The other big news item was a new service, or rather a rebranding of .Mac: Mobile Me. Before the keynote, this name was rumored and hated by all; now that it’s over, somehow it seems just great. Steve Jobs has this way of making anything seem a lot better, I guess.
metaWebLog, Programming, Python, Recommended Reading, XMLRPC
In Internet, Recommended Reading, Software on Thursday, April 10, 2008 at 11:04 am
I recently introduced a new feature: Recommended Reading. My goal for this feature was to be able to take a list of my favorite blog posts from Google Reader and automatically post them to my blog with a python script. The way I eventually implemented this was by ripping the Atom feed from my Google Reader Shared Items Page, take each item in it and format it as a <ul>, and then post it to my blog using XMLRPC/metaWebLog. Here’s the script, commented for your reading pleasure.
# Import a bunch of things we'll need.
# feedparser is from http://www.feedparser.org/
import feedparser
import time
import xmlrpclib
from xml.dom import minidom
from pprint import pprint
# Defines how to post to the blog.
def blogPost( server, username, password, date, title, content ):
datastruct = {'pubDate': date, 'description':content, 'title':title}
returncode = server.metaWeblog.newPost('1',username,password,datastruct,1)
print returncode
# Initialize some details.
# You would need to put your real blog url, username, and password here, though.
servname = xmlrpclib.Server("http://iansinke.wordpress.com/xmlrpc.php")
username = 'xxxxx'
password = 'xxxxx'
# Check to make sure it's working.
pprint(servname.system.listMethods())
# Set up the post data.
Title = "Recommended Reading"
Date = ""
Content = ""
# Parse the feed.
# You would need to replace the URL with your google reader account's \
# shared page URL, or some other RSS or Atom feed.
f = feedparser.parse("http://www.google.com/reader/public/atom/user/15838963114361614548/state/com.google/broadcast")
ontent = Content + '<p>(Every Friday, I post my favorite blog posts of the week under the title "Recommended Reading".)</p>'
Content = Content + '<ul>'
for item in f.entries:
Content = Content + '<li><a href="' + item.link + '">' + item.title + '</a></li>'
Content = Content + '</ul>'
Content = Content + '<p> </p>'
# Post to the blog.
blogPost(servname, username, password, Date, Title, Content)
This took me about two hours to figure out and implement. Feel free to use it however you want.
.Net, Android, Cross-platform, Internet Explorer, iPhone, Linux, Mac, Mac OS X, Microsoft, Open Letter, Windows
In Software on Tuesday, April 8, 2008 at 7:37 am
Dearest Microsoft [sic],
Some twenty-two years ago, you introduced Windows 1.0. Since then, you’ve released five major updates to the Windows kernel, including Windows NT, which changed everything. However, I’ve noticed lately that you’ve been doing a lot more with Windows.
Let’s get one thing straight: Windows is a business desktop operating system. It performs excellently in offices, stores, point-of-sale applications, etc. However, it is not a real consumer operating system. The Windows NT complexity built into Windows XP and Vista has complicated things beyond redemption for end users. Most people don’t even have a network in their home, never mind a server. Most people would be much happier with Mac OS X, if only it were a smidgen cheaper. (You hear me, Apple!?)
Furthermore, Windows is not a server operating system. Nor is it a developer’s operating system. For years upon years Linux has served the best servers and developers. Linux simply is better at this kind of stuff. It’s faster, simpler, more modular. And it’s open source and free – a developer’s dream. Most servers and developers don’t need the kind of functionality Windows provides. Most servers and developers would be happier with Linux. (Are you beginning to see a pattern, Microsoft?)
There’s one more thing, Microsoft, as Steve Jobs would say. There’s one more thing. Windows is not – has never been, will never be – a mobile operating system. Period. There’s not so much to say here – as of yet, there aren’t really any superb mobile operating systems out there. Perhaps Android is the next big thing; perhaps it’s the iPhone’s operating system. Who knows; maybe it’s even Symbian. It’s not Windows Mobile, that’s for sure.
Please, Microsoft, leave Windows on the business desktop, where it belongs, and start developing cross-platform software for those smarter people out there who’ve already abandoned Windows. I’d love to see .Net go truly cross-platform. Don’t port Internet Explorer, though. It just wouldn’t be worth the effort.
Affectionately Yours, [sic]
Ian Sinke
blogs, ping-bots, pingback, pingback-bot, Spam
In Internet, Software on Tuesday, April 8, 2008 at 6:23 am
Not long ago, Raymond Chen blogged about those spam pingback-bots:
Last December, some people started to get annoyed by the pingback-bots, and others were confused by them. What’s the deal with those pingback-bots?
It’s all about fooling the search engines in order to make money, taking advantage of friendly policies at domain registrars to make it less costly an undertaking.
Step one: Register a bunch of domains with a domain registrar that includes a money-back guarantee.
Step two: Set up fake blogs on each of those sites, with different keywords.
Step three: Use a script to search the blogosphere for articles that contain keywords that match your site. (There appears to be a single script that 90% of the spam blogs use, since they all look exactly the same, and have the same bugs!)
Step four: Create a bogus blog entry for each one that say something like “Hey, here’s something interesting I found on the Internet” and then reprints the article in question. (You may notice that many of these sites mis-attribute the authorship; some of them even claim to have written the article themselves!)
Step five: Host ads on the site.
Step six: Just before the money-back guarantee period expires, look at each of your fake blogs to see which ones have made money from the ads and which ones haven’t. Cancel the domain registrations of the ones that didn’t make money.
Well, yesterday morning I logged into my wordpress admin dashboard and saw that I, too, had been attacked by a spam ping-bot. The website: a fake hair cair blog. Wait: a hair care blog!? Yes, they linked to my Recommended Listening post of last week. What does hair care have to do with classical music? Well, the title of the song I was reccommending in the post was The Girl with the Flaxen Hair. That might explain that bit.
This is where the story takes a turn for the worse. I should have blogged about it yesterday, but no, I put it off until today – and what do you know, the blog has gone out of style, as Raymond predicts:
Most of these sites are in existence for only a few days, so trying to stop each individual site is a waste of effort; the site is going away soon anyway.
The moral of the story: Don’t procrastinate.
Backup, Linux
In Software on Wednesday, February 20, 2008 at 8:45 pm
Linux is easier to just do things on than most operating systems. It especially shines, however, when it comes to shell scripting. With bash and a text editor, there’s not much you can’t automate. Today I wrote a shell script to back up my documents (which can be found in /home/yourname on just about any Linux system) to a USB flash drive mounted as disk The script, incidentally, is three lines long.
1. #!/bin/bash
2. cd /home
3. tar czvf "/media/disk-1/backup/backup-`date +%s`.tar.gz" /home/ian
That’s it. This backs up /home/ian with tar to a compressed file with the name equal to “backup-” + the number of seconds since midnight on January 1, 1970 + “.tar.gz”.
If you want to exclude files or folders from the backup, just add “–exclude=filename” to line 3.
Aperture, Apple, Apple TV, iPhone, iPod Touch, iTunes Movie Rentals, Mac Pro, MacBook Air, Time Machine
In Hardware, Software on Friday, February 15, 2008 at 8:35 am

Every Tuesday so far this year, Apple has released a product. Some Tuesdays, more than one. There’s been the new Mac Pros, the MacBook Air, Time Machine, iTunes Movie Rentals, the new Apple TV software, new iPod Touch and new iPhones, and now Aperture 2.
This is a record on the part of Apple; 8 new products in only 7 Tuesdays. If they keep this up, they’ll have introduced more than 60 new products by the end of the year. How long do you think they’ll be able to hold out?
Apple, Laptop, MacBook, MacBook Air
In Hardware, Software on Wednesday, January 16, 2008 at 7:52 am

Apple released the highly rumored MacBook Air yesterday at the Stevenote at Macworld Conference and Expo 2008! The MacBook Air is a new, ultra-thin, void-of-optical-drive sub-notebook that will ship in two weeks. Whether it’s worth the $1799.99, of course, is still up in the air.
Android, Google, Google Android, Mobile, Programming
In Software on Tuesday, November 13, 2007 at 8:47 am
Programming, Python
In Software on Friday, November 9, 2007 at 8:38 pm

I’ve been programming in Python for a couple of days now, and I love it. The tab-delineated code blocks are extremely easy to use, and everything’s very simple to understand. It’s extremely object-oriented (check this out: you can do things like "string literal".join(x)) It works great on Linux, Windows, and Mac OS X. The error handling is superb – it shows exactly where the error is, right in the console output. Get it today, will you?
Compiz Fusion, Fedora, Fedora 8, Linux
In Software on Friday, November 9, 2007 at 3:20 pm
Contests, The Code Project
In Hardware, Internet, Software on Thursday, November 8, 2007 at 5:39 pm
The Code Project Visual Studio 2008 Beta Competition

Criterion: Write a great Visual Studio 2008 Beta article. Post it on CodeProject.com. Wait.
Prize(s): $1,000 cash, a copy of Visual Studio 2008 Professional, and more.
Find out more.
The Code Project Monthly Competitions

Criterion: Write a great .Net/ASP.Net/MFC article. Post it on CodeProject.com. Wait.
Prize(s): Everything from control libraries to software to books.
Find out more.
The DotNetSlackers Forum Posting Challenge

Criterion: Post lots, lots, lots of posts on the DotNetSlackers.com forums.
Prize(s): Telerik RADControls, Xbox 360 Elite, software, books
Find out more.
Linux, Ubuntu
In Software on Thursday, November 8, 2007 at 12:43 pm

You knew it was coming up sometime soon. Ubuntu Linux is this week’s DOTW. I recently installed Ubuntu (Parts 1, 2, and 3) and love it. The Unix enviroment is so much more powerful and much easier to code on than Windows ever was or will be. Get it now, please.
Coding, Programming, TIOBE Index
In Software on Thursday, November 8, 2007 at 8:19 am
Programming language, that is. The TIOBE index updates its list of the 50 most popular programming monthly. Check out their website for lots of cool graphs and historical info. Here’s this month’s list.
- Java
- C
- Visual Basic
- C++
- PHP
- Perl
- Python
- C#
- Ruby
- Javascript
- Delphi
- D
- PL/SQL
- SAS
- Lisp/Scheme
- Lua
- Cobol
- ABAP
- Pascal
- Ada
- Fortran
- Transact-SQL
- Logo
- MATLAB
- Actionscript
- ColdFusion
- Prolog
- FoxPro/xBase
- Awk
- Labview
- RPG
- ML
- Haskell
- Bash
- Groovy
- Smalltalk
- Natural
- Tcl/Tk
- Erlang
- CL (OS/400)
- Forth
- Focus
- APL
- VBScript
- Scala
- Icon
- Factor
- IDL
- Objective-C
- PL/I
Chandler
In Software on Thursday, November 8, 2007 at 4:57 am

I recently read Dreaming in Code, by Scott Rosenberg. It follows Mitch Kapor and his team of programmers through their first three years of work on the Chandler project. The project is now 6 years old and has had a total of more than 11,000 bugs, numbers considerably larger than those referenced on the front cover of the book. Throughout the book, the project suffers from some unidentified phenomenon that somehow slows down progress. Near the end of the book, Scott quotes Hofstader’s Law, which states “It always takes longer than you expect, even when you take into account Hofstadter’s Law.” This is a strangely recursive law which strangely seems to epitomize the project’s schedule. (If you’re interested in more such laws, see 19 Eponymous Laws of Software Development on Haacked.com) Just read the book, OK?
C#, Coding, Programming
In Software on Wednesday, November 7, 2007 at 9:16 pm
Ironically, the five mistakes I make the most when coding (this is C#, of course – still my favorite language) are simple, stupid things. Here they are.
5. Forget to close a curly brace.
4. Forget to type the second of the parentheses.
3. Forget to close a set of quotes.
2. Forget to type a semicolon at the end of a line.
1. Use “=” instead of “==”.
Gmail, IMAP, Outlook
In Internet, Software on Friday, November 2, 2007 at 10:13 am

I’ve been using Gmail as my primary email account for a while now, but I’ve never bothered syncing it with Outlook, partly because Gmail’s web interface is great and partly because Gmail didn’t support IMAP. However, as of yesterday, the Gmail team has added the IMAP support they promised to Gmail.
Dual-Booting Ubuntu, Installation
In Hardware, Software on Thursday, November 1, 2007 at 1:49 pm

Sorry this post is so late – I’ve been having too much fun playing around with all the features in Ubuntu Linux 7.10. Installation was uneventful. The installer (live cd application) hung once because I entered a user name with a space in it, but I fixed that and it worked. Ubuntu is great – very fast, lots of cool games, and the graphics are even better than what I’ve seen on Windows Vista. The only drawback is boot time – 1:25, or One Minute and Twenty Five Seconds. Oh well, I always hibernate anyway.
Google Docs, Microsoft, Office Live Workspaces, Ripoff
In Internet, Software on Thursday, November 1, 2007 at 8:24 am
Today I got a notification by email of the beta launch of Microsoft Office Live Workspaces. I, of course, clicked the link and read more about it, before signing up for the beta. (I’m on the waiting list right now, of course.) You know, it seems to be a blatant ripoff of Google Docs – to save me time, I just cut and pasted this from the beta website:
Anywhere Access
- Store 1000+ Microsoft Office documents in one place
- Access them from almost any computer with a Web browser
- No more flash drives or sending yourself documents via e-mail
Share With Others
- Invite people to your workspace
- You control who can view, comment, and edit your documents
- Stop manually merging versions from multiple people
Works With Microsoft Office
- Open and save files directly from Word, Excel, and PowerPoint
- Synchronize contact, task, and event lists with Outlook
- No need to learn a new program
Hmm. “Anywhere Access.” “Share with others.” “Invite people to your workspace.” Where, oh where have I seen that before?
Dual-Booting Ubuntu, Partitioning
In Hardware, Software on Friday, October 19, 2007 at 5:42 pm
As I mentioned in Part 1, I needed to shrink my Windows partition before I could install Ubuntu. Before partitioning, I had one 40GB NTFS partition with Windows XP Pro and all my data on it. I wanted to shrink this partition by about 10GB so I could install Ubuntu in the remaining space.
I booted up my Ubuntu Live CD (takes forever and a day to boot from CD) and launched GParted, the GNOME Partition Editor. I chose to shrink the partition by 10GB, leaving slightly more than 10GB free space remaining.
Having already backed up my data, I clicked “Apply.” Gparted worked for a couple of minutes and then gave the ominous message “Could not complete the specified tasks” or something like that, with a big red error logo. But when I checked the disk in Ubuntu’s explorer, whatever it’s called, it said that the partition had worked.
I rebooted into Windows, expecting ChkDsk to launch. But it didn’t. All I saw was ~1/2 second of the Windows boot screen, and then blackness.
But it wasn’t silent blackness. My hard drive was making its noise. (I should really make a recording of it; it would be no harder to do so than to launch Audacity and make a recording with my laptop’s mic.) I waited for about five minutes. The hard drive was still laboring along.
So I went and had supper. When I came back, I saw the Windows welcome screen. I guess the black screen was the typical “Windows User Experience”. Logging on to Windows, I saw that the drive had correctly been resized to 27.25GB.
Defrag, Dual-Booting Ubuntu, JkDefrag
In Hardware, Software on Friday, October 19, 2007 at 8:30 am
Recently I made the decision to dual-boot Ubuntu Linux 7.10 with Windows XP Pro on my laptop. To do so, I needed to shrink my Windows partition so that I would have enough free space to install Ubuntu. There was plenty of space on my hard drive – it was a 40GB drive less than half full. However, it was extremely fragmented.
Oh well, I thought, I’ll just do a defrag. I launched Windows Disk Defragmenter and defragged the disk. When it was finished, the disk was entirely defragmented; however, there were still lots of files near the end of the disk.
Hm. I tried defragmenting a second, third, fourth, and fifth time, but nothing changed. I searched the help file, but it wasn’t very helpful. What was I to do?
I googled “disk defragmenter” and, to my surprise, there were numerous free defrag utilities available online. I chose JkDefrag. It labored along for a couple of hours and then told me it was finished. I still saw a red dot right near the end of the disk – oops, that’s my dead pixel.

(JkDefrag in action. Screenshot shamelessly robbed from the JkDefrag site.)
I launched Disk Defragmenter again, which, to my surprise, told me that the disk had a few files with fragments on it. Obviously, although JkDefrag does a better job of moving files to the front of the disk, Disk Defragmenter defragments them better.
iPhone, iPhone SDK
In Hardware, Software on Thursday, October 18, 2007 at 9:25 am

That’s right. As unbelievable as it might sound, Apple is finally giving in and creating an iPhone Software Development Kit. This was announced on Apple’s “Hot News” feed yesterday – hot news it is, for sure! Seems that from the beginning they really wanted to put third-party apps on the iPhone. Of course, third-party apps may be limited by security features that Steve Jobs wants to implement
Paint.Net
In Software on Wednesday, October 17, 2007 at 8:25 am

You knew it was coming. I love Paint.Net and I love to recommend it. It’s simply the best free, open source image editor out there. Rick Brewster, its author, also maintains a great blog with lots of information about Paint.Net and even monthly usage stats. Check it out.
Microphone Array, Windows Vista
In Hardware, Software on Saturday, September 29, 2007 at 10:47 am

Windows Vista includes a new technology called Microphone Array. Basically, it uses more than one microphone to provide a highly directional sound input. This reduces background noise and, apparently, electrical noise. Find out more.

In Software on Friday, September 28, 2007 at 3:19 pm
(Download of the week, or DOTW, is a new series on this blog. Approximately weekly I will recommend some freeware program that I have used and liked.)

This week’s download is Inkscape, a free vector drawing program. Inkscape’s tagline is “Draw Freely” and it certainly lives up to its slogan. Inkscape is 100% free and open source, and offers many features that make it nearly as good as Adobe Illustrator. Inkscape is primarily developed for Linux, but it runs on Windows, Unix, and OS X, too. It saves files in the .svg (Scalable Vector Graphic) format, which is a standard format for vector drawings. If you are looking for a good, free vector drawing program, Inkscape is for you.
Virtual GPS
In Hardware, Software on Friday, September 28, 2007 at 12:26 pm

Lately there’s been a bit of hype around Virtual GPS for cell phones. Traditional GPS requires a GPS receiver that communicates with at least two GPS satellites, triangulating to determine where on the surface of the earth you are.
However, software-based GPS solutions, such as those from Navizon, use the signals from cell phone towers, (which are basically everywhere in North America and all over the rest of the world too these days), known WiFi hotspots, and real GPS users to simulate the location-finding capabilities of a real GPS.
If this really works as well as a real GPS, I’ll be surprised; personally, I think it’s more likely that the accuracy of the Virtual GPS will be less than optimal. Oh well, it’s probably a lot more economical.
iPhone, iPhone Hacks
In Hardware, Software on Friday, September 28, 2007 at 10:27 am
Apparently, the iPhone 1.1.1 firmware update removes all third party apps and other hacks from your iPhone. I saw that one coming.
Coding, Java
In Software on Wednesday, August 1, 2007 at 8:10 am
After listening to Scott Hanselman’s Hanselminutes podcast about being a better developer, I decided to learn a new programming language. I already knew VB and C#, and was working on Ruby and C++, so after looking at the TIOBE index (which shows what the most popular programming languages are), I decided to learn Java, it being the most popular.
First, I went to the Sun web site and downloaded the Java Developer Kit. Needing an IDE, I downloaded NetBeans 5.5 (and immediately regretted not downloading 6.0 Beta, because 6.0 Beta supports Ruby and Ruby on Rails). After the downloads completed, I installed them and got right to work.
First step when testing any programming language: Hello World! I found the Java language similar to C# (but after all, C# is supposed to be similar to Java) and very easy to use. NetBeans’ code completion (Intellisense) was very nice in that it gave you HTML help right in the editor (a blessing – no other help file came with the Java SDK), but it didn’t deserve the name “code completion”, because it didn’t complete your code for you. When you pressed the spacebar, it just entered a space instead of completing the word. I did notice, however, that some really common words had shortcuts, say, if you wanted “string”, you could type “str”.
NetBeans’ debugging features were great. Errors showed up as little red X’s in the breakpoint column, with a handy “lightbulb” icon that offered a bunch of potential fixes (something like the “lightning bolt” in Word and Visual Studio).
When I successfully ran my “Hello World” application, I was surprised to see that it had adopted the Java “cross-platform” UI theme. A quick Google search and a few lines of code fixed that.
In conclusion, I’m very pleased with Java as a language and NetBeans as an SDK. Of course, Java apps are a bit slow, but the fact that they run in a Java Virtual Machine on just about any OS is great.
Windows
In Software on Friday, July 27, 2007 at 2:36 pm
The weirdest thing happened the other day. I was testing the UI of a program I was writing, so I was switching back and forth between the Luna scheme and the Windows Classic scheme. But when I switched back to Luna, the taskbar didn’t switch! It just stayed gray!
(Well, not exactly. It was more of a SystemColors.Control color. And it had the Luna fonts.) Everything else was Luna – window chrome, controls, you name it – in fact, even the start menu was Luna!
A quick reboot fixed the problem. The worst of it was, I forgot to take a screenshot.
In Software on Thursday, July 19, 2007 at 9:05 pm
As I promised, here’s a quick review of Techsmith’s new Jing project. Jing is a free screen capture and screencasting program from the makers of SnagIt and Camtasia.
Download and install was quick and easy. Jing requires the .Net Framework 3.0; but you probably have that installed already. Jing has a very cool UI, probably done with WPF. It rests in the system tray, but also permanently docked at the top of the screen (or bottom, or left, or right.) Everything in Jing is round – the windows, the buttons, etc., are all circular. The UI in general is very satisfying, if a bit slow to load.
Screenshots are very simple. You can select any window or part of a window, including the taskbar, clock, start button, and Quick Launch bar. You can do the same when selecting what you want to take a screencast of.
But there’s where the problems start. First, Jing limits your screencasts to five minutes. That’s right, five minutes. Obviously, if you want to make longer screencasts, you’ll need to either break them up into five-minute recordings, or shell out $800 for Camtasia.
Also, while you’re screencasting, the Jing window stays visible. I don’t know if this is a bug or a feature limitation, but it needs to change if Jing is going to be a professional tool.
Other than that, I have no gripes. In the past, I was using Cropper for screenshots, and found it less than satisfying, although better than the ol’ Print Screen key. I think I will be using Jing for screenshots, and possibly screencasts.
.Net, Jing
In Software on Wednesday, July 18, 2007 at 6:06 pm
I just found out about Techsmith’s new Jing project. Jing is a free screen capture program presumably based on Camtasia Studio. It does screenshots and screencasts, and appears to be written in .Net 3.0 – possibly WPF? (it requires .Net 3.0). I’m downloading it right now, so I’ll review it soon. And, oh yes, there’s a Mac OS X version, too. My guess is the Mac version is compiled with Mono.
In Software on Tuesday, July 3, 2007 at 11:53 am
That pretty much says it all. SharpDevelop is a free, open source .Net IDE written in C#.Net 2.0. The only feature I really use a lot is its built in WiX designer, but it seems to be a viable alternative to Visual Studio, and it’s better than the Express Editions on some points.
In Software on Thursday, May 10, 2007 at 8:41 pm
37Signals is a great company that creates web-based applications using Ruby on Rails. Their four flagship products are Basecamp, Backpack, Campfire, and Highrise. All of their products are available for free, but if you pay, you get more freedom and features. I will be reviewing them on this blog sometime in the near future. Check it out, if you’re interested.
In Software on Thursday, May 10, 2007 at 2:39 pm
My mom was complaining that her computer ran too slow (well, I use it too, and it was slow). The first thing I did was switch her to Firefox. An easy caper: Open Firefox, click Tools>Options, in the System Defaults section, click Check Now, and Firefox will ask you if you want it to become your default browser. Tell it yes.
The other thing I had to do was import all of her old IE favorites. (She has about a hundred of them, half of which she never uses.) Hmm… I searched for the Import feature in the Options dialog box, but I couldn’t find it. That’s when I realized: There was a Bookmarks menu; maybe the command was there instead.
Most computer users (me included) would have looked for this feature on the tools menu. Most computer users (me included) would be looking in an absolutely crazy place. The tools menu is misused all the time – hey, if there’s a bookmarks menu, maybe it makes sense to put bookmark-related commands on it. Sure enough, there on the bookmarks menu was the Bookmarks Manager. And there, on the file menu of the bookmarks manager, was the Import Bookmarks command.
P.S. If you want to speed up your mom’s computer and she lives far away, check out Fog Creek Copilot. It’s free on Mother’s day (and Father’s Day!)
In Software on Thursday, May 10, 2007 at 12:23 pm
After a long wait, the first “The History of Windows” post is here.
Introduction
Picture this: It’s 1984, a dark, dismal year (sound familiar) for PC users everywhere. Why? Well, they only have MS-DOS, while Mac users are getting a GUI (graphical user interface)! Suddenly, in 1985, Microsoft, the maker of MS-DOS, comes out with an entirely new product: Windows.
Features
Windows 1.0 was not just an operating system – it was an MS-DOS “front-end” – in other words, it was launched from MS-DOS and it ran MS-DOS applications in windows. (At this point, Windows could only tile windows, not overlap them, because this feature was patented by Apple.) However, Windows also supported a new kind of .exe file – the New Executable (NE), which only Windows could handle, and fully used the operating system. Over the years, Windows would slowly change, from Windows being part of MS-DOS to MS-DOS being part of Windows.
Four versions of Windows 1.0 were released, starting with Windows 1.01. (Windows 1.0 was never actually released; it is rumored that it was pulled because of a serious keyboard bug.) Windows 1.02 and Windows 1.03 were very close together, in May and August of 1986, respectively. They added new support for languages other than English. Windows 1.04, released in April of 1987, added VGA Graphics Adapter support. Windows 1.0 included a Shell called MS-DOS Executive, and it also included a horde of other programs: Calculator, Calendar, Cardfile (a Personal Information Management program), Clipboard viewer, Clock, Control Panel, Notepad, Paint, Reversi (a game), and Write.
In Software on Tuesday, April 24, 2007 at 1:42 pm
(Note: See the first post in the Easter Eggs category for an introduction to Easter Eggs.)
Programmers working on Microsoft Office 2003 were told not to put any easter eggs in it. They didn’t like that rule – so they “sneaked” in some Easter Eggs in a place nobody would ever think of looking: the Office Assistant.
Most users of Microsoft Office 97-2003 know that the Office Assistant exists. What few know is that he is useful and that he gives you a tip every time you start a program. And, hidden among these tips, are a bunch of irrelevant “tips”. I can’t remember them all, but among them are “Never run with scissors.”, “Never dive into murky waters.”, and “Striped shirts with plaid pants make a fashion statement.”
In Software on Friday, April 20, 2007 at 8:53 am
In Software on Saturday, April 14, 2007 at 6:25 pm
Do you know what an “easter egg” is? Until yesterday, I thought it was a colored egg that children traditionally search for on Easter. Actually, another definition of easter egg (according to Wikipedia) is “a hidden message or feature in an object such as a movie, book, CD, DVD, computer program, or video game.” There are easter eggs hidden everywhere – but my favorites are in Office 97. Word 97 has a hidden Pinball game, and Excel 97 has a hidden Flight Simulator game. Also, there is another easter egg hidden in Word 97: If you type “I’d like to see” followed by almost anything and ran it through Word’s built-in thesaurus, Word will return “I’ll drink to that!”
In Hardware, Software on Saturday, April 14, 2007 at 2:39 pm
Yesterday I promised I’d post more about a software company entrepenuer who wrote an autobiography. Well… I kind of had a different person in mind. Linus Torvalds, the man who invented Linux. Now, don’t get me wrong, I love Windows. It’s way better than Linux. But this book is just plain great. It tells all about how he got his first computer, and how he installed minix on it, and how he hated minix, and so he created Linux. (Which, incedentally, is pronounced “Lih-nux”. If you’re interested, read the book.
In Hardware, Software on Friday, April 13, 2007 at 11:30 am
A while ago I read this book, by Bill Gates: The Road Ahead. It was a fun read, considering that it was written in 1995. In the book (which is somewhat an autobiography) Bill Gates tells all about computers, and how he and Paul Allen founded Microsoft, and (this is the best part) he makes predictions about what computers and the internet are going to be like in 2005, ten years from when he wrote the book.
Well, most of his predictions turned out wrong, except for that he predicted that Moore’s Law would continue as it had been. Which turned out right
More about software entrepreneur’s autobiography tomorrow.
In Software on Friday, April 13, 2007 at 9:29 am
Soon I will be starting a new series: The History of Windows. (I was considering calling it “The Complete, Unabridged History of Microsoft Windows” but that was way to long. However, I will still be considering it to be complete and unabridged.)
The series will be in 14 parts:
- Windows 1.0
- Windows 2.0
- Windows 3.0
- Windows NT 3.0
- Windows NT 4.0
- Windows 95
- Windows NT 5.0
- Windows 98
- Windows ME
- Windows 2000
- Windows XP
- Windows Server 2003
- Windows Vista
- … The Future of Windows
Every time a new version of Windows is released, I will update the series.
In Software on Friday, April 13, 2007 at 8:12 am
For all you .Net developers out there, this is exciting news: Component Factory has released Krypton 2.5.0! Krypton is a set of components for winforms that let you make your application look a lot better. The Krypton Toolkit automatically gives your form and menus and toolbars an Office 2007 look and feel, plus, there are lots of other great controls that also support the Office 2007 style. The Krypton Navigator is the best tab control on the market (in my opinion). Finally, 2.5.0 includes the newest control, Krypton Ribbon! The Navigator and Ribbon are available as free trials; the toolkit is freeware. Expect a review soon.
In Hardware, Software on Thursday, April 12, 2007 at 3:16 pm
A year and a half ago, my dad brought home a new computer. It had a 17″ screen (Yes, that was BIG), 200 GB hard drive, 512 MB of ram, and an Intel Pentium 4 processor, plus, it had the all-new Windows XP Media Center Edition 2005. He got the folks at the store to install Microsoft Office Student & Teacher 2003 and Norton Internet Security 2005. He also got a laser printer that printed at 15 ppm. The whole thing cost him more than $1,200.
Today, for the same amount of money, you could get a new computer with Windows Vista Home Premium, 1 or 2 GB of ram, 300 GB of hard disk space, an Intel Core 2 Duo processor, Office 2007, Norton 360, and a color printer/scanner/copier.