views:

5962

answers:

115

I don't mean scripts or tools for your work project. I mean actual software for your personal use, such as party organizer, CD administrator, whatever.

+87  A: 

A clock, which shows money not time, a brilliant way to stay focused at work. I toyed with creating a multi-user version, known as the meeting clock, where we could cost the meeting in realtime, really good for keeping meetings short, but it didn't catch on as everyone would then know who earned what.

MrTelly
Have you uploaded it anywhere?
Shoban
Unfortunately not, this pre-dated the web by a good few years - VB3, maybe I'll recreate it in Silverlight?
MrTelly
That will be good ;-)
Shoban
This is actually a pretty cool idea. Would like to find a hardware version of a desk clock that did this!
Kelsey
I agree, when my current startup has made me an affluent developer I'll get Jonathan Ive to design it. Alternatively the IPhone must be the obvious platform? Especially if you can share it across multiple handsets, anyone want to take this offline (well off SO) ...
MrTelly
ooo please you gotta do it xD hahaha
Luis Armando
Very nice idea. I've heard it before, but I don't remember where.
BenMaddox
This was a bad idea. Shit my thought just cost me one buck. Shit one more. Shit once again. Stop!! I don't have time for anything now. Everything I do cost money!
Flinkman
I'd love to see this. I'm often sitting in meetings with a headcount of 10+ and I begin to add up the hourly cost in my head.
Some Canuck
Nice. My very first C++ program in the 90s was the single user version of this.
Damo
http://www.expensivemeeting.com/
Jim Puls
I did this in VB6 at my first coding job over 10 years ago.
Neil N
+3  A: 

I've tried several Mac OS X dashboard widgets that retrieve lyrics from the Internet, but I never found one that I liked. So I wrote my own.

cobbal
+12  A: 

I wrote a ScreenSaver that rendered the US (with US Presidential Polling Data), but I couldn't find decent geometry data for all the states. So I wrote a Python tool to trace out textures on a image.

I had fun one night loading up a high resolution Google map of the US into my Python tool and then painstakingly tracing each state and saving the data to individual files. I now have a pretty decent set of geometry data for North American states.

Cannonade
Are you afraid of CRT burn-in?
Steve Kuo
Heheh. It keeps me up at night.
Cannonade
You must have thought it was going to be close...
RSolberg
When I started writing it, it was fairly close. I started consuming data right after the Republican convention. I'll have to break it out again in four years.
Cannonade
+6  A: 

I wrote a neat system to organize my snippets. I had literally thousands of them consisting of various mini libraries for conf file parsing, malloc() logging / debugging, general logging, socket functions, all kinds of stuff.

I had to be able to search for what I wanted and easily 'grab' the snippets via the command line. So, I could:

mkdir newprog
cd newprog
snippy search "foo"
 * bar1 - replacement for foo that does better logging
 * bar2 - replacement for foo that cuts your lawn

snippy insert bar2 libs/

Voila, done. I did it with sqlite3, I may even release it one day once I clean it up.

Tim Post
HEY!!! I did the same thing, but did a Winforms App since I do .NET dev all day. Keep my SQL/HTML/comment scripts in there, and liked how I could easily drag drop. SQLite rocks!!!
Dillie-O
I'm actually thinking of doing this one too but using ncurses and console so that I can use it from anywhere with a terminal window :)
Pharaun
+2  A: 

I wrote a templating language for a website. It's pretty simple, but effective. The main requirement was so that I could add new articles to a list-like page by adding a few lines in one file, instead of modifying four files in just the right way.

I'm still impressed by how useful it is.

staticsan
+21  A: 

In 11th grade, I was presented 200 words to define with synonyms. Rather than complete the assignment as given, I downloaded an online dictionary (Project Gutenberg) and created a mass word definer. Most students took 8 hours to complete the project, as the rules for definitions were rather strict. It took me 1 hour, and none of that time was spent doing laborious copying.

The MassWordDefiner sat on Download.com for a while. You can still find remnants of it if you do a Google search.

Stefan Kendall
That sounds incredibly useful! Unfortunately, my English instructor still requires that we write definitions by hand. :(
David Brown
@David Brown: Why do you think Comic Sans MS is included on your computer?
chpwn
+57  A: 

Like many programmers, I tried doing Sudokus, then felt compelled to save time by writing a program that solves them by brute force.

I triumphantly showed it to my wife, who just shook her head.

Andrew Shepherd
haa yes... Sudoku solvers, minesweeper solver.. I mean the real fun in these games is not to play them but to program something that will play them for you !
Newtopian
That is one fun. I get more fun solving it manually.
chappar
Yep, definitely identify with this one. Python script to play menial repetitive web based games comes to mind.
Cannonade
yeah lol that was the first 'real' program I wrote, did it in Python and ran it on Google AppEngine ;P
mike nvck
What you have done is PROVE that Sudoku is a pointless waste of time.
Peter Wone
Peter Norvig (Google's director of research) did the same thing: http://norvig.com/sudoku.html. Of course the irony is that people are still writing programs to solve sudoku, when that program in itself is an already solved problem ;-)
Greg Beech
I had to do this for my algorithms course 2 years ago. I may have to write a parallel version of the sudoku solver for my parallel and distributed computing course now
phsr
Greg: Does that suggest that somebody should write a program that writes programs that solves sudoku puzzles?
Erik Forbes
I have no idea what Sudoku is... I guess it is worth checking out.
Sung Meister
I wrote a Sudoku solver (brute force as well) in Java last year.
Dennis
A legendary Diablo II bot: teleport to boss, cast area-effect spell, collect all loot, teleport to town, sell all loot, repeat. What made it special: superimposed on the playscreen was a Tetris game, so you could play Tetris while your bot played Diablo II.
Thomas L Holaday
Newtopian, solving Minesweeper is easy, and isn't any harder without assistance. The skill (and thus the fun) is in solving it in a shorter time. Writing a program to solve it for you doesn't make you a faster player. As someone who has twice placed on one of the [unofficial] "world records" lists (by combined Beginner, Intermediate and Expert scores being less than 100; current are 4, 19 and 72, though my previous low Beginner was 2), I find the idea of a solver program silly. :)
eyelidlessness
+13  A: 

A desktop application named 'IOU' that my girlfriend and I use to keep track of how much we owe each other. It has two tables of data, one where we enter money that we lent each other, and another where we enter joint expenses that were paid for by me/her/both. It assumes that each party is responsible for 50% of joint expenses and shows how much I owe her (or vice versa). It also has an 'archive' feature which hides all previous transactions, but preserves the balance owed.

Prior to IOU we used to use a spreadsheet, but her Excel-foo is weak, so she kept overwriting the cells containing formulae.

Don
Cripes, mate, just marry her. Then you won't have to worry about who owns what (it'll all be hers :-).
paxdiablo
I have a google spreadsheet for recording our expenses, used the forms feature to make it a lot easier to enter costs. Works great!
macbirdie
I've used an OO spreadsheet for this for the past year and a half. I invoice him for everything he owes me at the end of the month, it's been working well for us.
Heather
You invoice him??? And I though I was unromantic.....
Don
Ehhh... dude... you can lock the formulas in Excel, you know... ;-)
peSHIr
@peSHIr - true, but you can only define the forulae to work on a fixed range of cells. There's no way (that I know of) to define a formula such as (colC = colA + colB) for every row in the worksheet that has a value in colA and colB
Don
@theycallmemorty - https://www.billmonk.com/ is another online solution
Don
@Pax: doesn't work that way with some relationship. My sister-in-law has her money separate from her husbands. They are always lending each other money... I don't understand it.
Bobby Cannon
Chris Kaminski
@paxdiablo `"Then you won't have to worry about who owns what..."` But probably start worrying about who owns _whom_.
mlvljr
+3  A: 

Ummm... quite a bit. Some of the more interesting ones:

  • a podcatcher. I plan to release this one some day (this is recent).
  • my own music tagger. Not many existing ones handle classical music well. Need to rewrite this someday. Then maybe release it.
  • a web app to track the soda inventory sitting in my small fridge :-D
  • a distributed computing platform, used to encode ogg files faster. Sort-of released publically (this was back when a dual PII-450 was fast)
  • web front-end to linux tc
  • my own time tracking/invoicing/billing system. Twice. One of them was in HyperCard, which you've probably never heard of...
  • my own bug tracking system. At least once.
  • a web-based dungeon crawler. Think web-enabled adventure. Back in, umm, '97 was it? Come to think of it, it's still on line. (please forgive the code, I was in middle school at the time!)

No doubt I've missed a lot. Those are just ones that I quickly saw sitting around in a version control repository...

derobert
I remember playing with HyperCard when I was in 3rd grade!
Angela
+2  A: 

A program that computes the date of transition from standart time to daylight savings time and back in any given year.

It's ironic that Windows knows when it is to happen, but never tells in advance, it only does tell post-mortem. And I don't want to painfully recall or find this online.

sharptooth
+7  A: 

When I switched from Windows to Linux, I was glad to finally get rid of Quickbooks for my tiny investment company. So I took the opportunity to also switch from Excel to OOoCalc.

I put together a double-entry bookkeeping (did you know that's the only English word with three consecutive double-letters (well, other than bookkeeper)?) into which I could just enter balanced multi-line transactions and it would check them produce nicely formatted reports (P&L, balance sheet and transaction lists for both).

Then I just hand that over to the accountant at the end of the year. He's actually expressed an interest in marketing it to several of his smaller clients and I'm in the process of polishing it up and providing a direct feed into his own accounting package.

Other than that, I've got spreadsheets in OOoCalc for managing the share portfolios. Not much else that isn't toy stuff (connect4 and maze games for the kids).

paxdiablo
How does it compare to http://wiki.github.com/jwiegley/ledger?
Eugene Morozov
+1 for the comments on 'bookkeeping' trivia.
Jonathan Leffler
I'm also told that sugar is the only word where 's' is pronounced as 'sh' but sometimes it's hard to be sure.
paxdiablo
subbookkeeper, although admittedly not all dictionaries have it.
Loren Pechtel
It's true! egrep -i '(.)\1(.)\2(.)\3' /usr/share/dict/words
Frank Farmer
+16  A: 

AnyGen. A program that can be used for generating random stuff.

I used it as a vehicle for learning C#. It lets you create tables, reference other tables, and give weighted values to items in the tables. Some of the tables I created were:

  • name generator
  • inn name generator
  • inn menu generator
  • weather generator
  • critical hit table
  • full treasure generator for DnD 3.0. All 20 levels.
digitaljoel
Ah yes, the RPG-related programs :)
Jacco
The mark of a true dork :)
digitaljoel
halfway through making one of these myself! pen + paper RPGs taught me Java :D
frezned
it's a great way to learn because it's interesting to you, and it's not a super hard problem.
digitaljoel
critical awesome
elliot42
this sounds great.
Noon Silk
Thanks silky. I've though many times over the last 5 years about putting it on the web and crowd-sourcing the creation of tables Maybe I should start looking into that...
digitaljoel
+1  A: 

Replacement for the calculator included with Windows Vista is something I wrote for myself last night in Clojure using Swing. Simple enough and fun, maybe even useful. http://www.acidrayne.net/node/52

Rayne
+13  A: 

The most recent thing I have written for personal use was to address problems with this digital frame I own that has a lack of features such as random picture viewing and max delay of 30 seconds for a picture. I wrote a quick win app to solve it.

To solve the random issue, it takes a directory and then randomly generates filenames for all the pictures.

To solve the problem of wanting a longer delay it then uses the random filename and adds and number to it makes duplicate images for every 30 seconds of delaying that I want. So if I want it to cycle pictures every 5 mins, it makes 10 identical pictures.

Space became an issue with the delay making all the duplicates so I built in picture resizing to match the frames resolution and converting to jpg. It actually ended up doing a better job of resizing than the frame was doing so as a side effect I actually got better looking pictures displaying as well :)

I have also written many tools for online games to help me in a variety of ways.

Kelsey
awesome... never would have thought about that :p
Svish
+4  A: 

Does a generational AI solver for the light-bot game because i simply couldn't figure it out count?

http://splinter.com.au/blog/?p=38

Chris
+2  A: 
  1. As I lost all of the Music Library on my PC that I had synced with iPod and that iPod stores the files with some weird names, I used a Java API to read the ID3 tags and reorganize the music files with titles as names and Album names as folders.
  2. The other one was that for one of the Internal Audits that were conducted in my company to check for media files stored on the PC, I wrote code to flip the first bit and rename the file as DLL and with some randomly generated name and move them under C:\Windows\System32. In this program I created a map and stored as another DLL under the same folder and after the audit undid the same process.

These two are the favourite ones that I wrote for personal use.

Shyam
@ point 2: oooh nasty. Hope you don't get caught. Why not just write a kernel-level filesystem plugin to simply hide the directory of media files from anyone who isn't you?
Adam Hawes
that was not the case, they had a utility to understand what content is in the file by looking at some of the data. To circumvent that I had to do this. :)
Shyam
@1, pretty awesome that you were able to do this, but if you were to import the songs into iTunes, and let it reorganize your music, you'd be all set.
drhorrible
@drhorrible. It won't rename them on your file system [email protected] Please Opensource #1. I've been wanted to write the same thing!
prestomation
@1 Imagine that your iPod decides to loose the ID tags for some tracks as well.I am so pissed at apple.
the_drow
+6  A: 

Rest and Stretch - a program to manage my RSI by not allowing too much keyboard or mouse activity.

Dialog Automation - automates responses to dialogs and windows as they appear.

Keyword Expander - can automatically resize dialog and windows to make bigger or move around - also can resize and move child elements of the dialogs

Do your Homework - stops me playing on facebook or stack overflow too much.

A Program to reset the corporate mandated screen saver timeout.

Podcast filler - fills my music player with random un-heard so far podcasts that I've subscribed to, keeps track of 'em so I can't listen more than once.

Seems I'm both lazy and undisciplined.

Martlark
Care to share? The last one seems very useful.
the_drow
ken, ani yechol. Eza email shel cha? Enli www achshuv.
Martlark
+3  A: 

At the moment I'm working on a "run" program for Windows that functions similarly to the Vista start menu. Type in what you want to run and it lists the results.

I built it because of my hate of using the start menu in Windows. Click click click.

Simon Hartcher
You need some Launchy in your life
Lunatik
Far out. Thanks for that. I'll have to give it a go. Looks quite similar to what I've done except its UI is far superior :P
Simon Hartcher
Or, you could learn some keyboard shortcuts like Window+R
Peter Wone
Just installed launchy. Thanks for the pointer.
digitaljoel
@Peter Wow thats really intuitive...
Simon Hartcher
Move to Windows 7. Much better :)
Svish
@Svish - I already have :) Given that this answer was 8 months ago now...
Simon Hartcher
+7  A: 

Versioning File System for Windows built using IFS Kit. Quite similar to DEC VMS file versions - every revision of any file in protected directories are retained automatically. Complete with file explorer with adjustable timeline. Pretty cool actually. Was going to market it but didn't detect much demand so I use it myself for some projects. [movie]

Scott Evernden
That's pretty cool =)
Erik Forbes
+1 because I started down this road using FUSE and gave up because my forked processes needed attention (the kids).
Adam Hawes
>>Quite similar to DEC VMS file versions Oh god, that brought back deeply-buried memories of my first (and only) experiences using DEC VMS at an internship at a large company. In 2006.
notJim
I *WANT*, please. :)
Chris Kaminski
+2  A: 

When my wife got pregnant the first time I wrote a due date calculator. I also wrote my own app to copy images off of my digital camera. It did rotation and a few other tricks, but nothing too fancy.

Then there are 100 other project I've started but never finished.

Chris Brandsma
+8  A: 

I wrote a "secret santa" program for a gift exchance between friends. It accepts a list of people along with blacklists, gift suggestions, etc. The results are mailed out to the recipients so not even the person running it needs to know who has whose name. The initial version was written in C about 10 years ago. It then migrated to C++ and finally to C#. We still use it yearly.

Steve Rowe
I do the same thing, except I use it for family members. Started in '97 with C, then migrated all logic to SQL Server. Now I use C# to handle the emails, including the ability for people to email each other anonymously.
beach
Anonymous email handling, now that's pretty cool.
BradC
+7  A: 

I wrote a plugin for Windows Media Center that displays in how many minutes buses and trams arrrive at my stop. Parsed from the traffic-company website.

Glenn
nice, I've done the same but it was a firefox plugin :)
Gaetan Dubar
ghaha, have been contemplating the same.
Nailer
Nice, but why WMC? Because you're always watching TV before you need to catch the bus?
BradC
now I feel like writing some kind of plugin to show time till next train
+1  A: 

The last one I wrote was a simple accounting application for tracking daily expenses. It was a Windows Mobile application.

Priyan R
+1  A: 

3-4 years ago I wrote a Windows Desktop Wallpaper changer that allowed you to select a set of image files and have them change at configurable intervals in sequence or randomly with options to set the mode for stretching/tiling etc.

I still use it on all my machines. However it looks like Windows 7 has added this functionality to its wallpaper option in Control Panel - so it looks like it might be obsolete in the near future.

A while back, I also wrote a piano chord/scale finder utility for personal use - it displays the notes of a chord and/or scale on a piano keyboard, plays the chord and features inversions and quite a few other things. It was originally written in VB6.0 and I am currently porting it to a Silverlight version.

Gordon Mackie JoanMiro
+2  A: 

A small program that would take a bunch of IP addresses (of proxy servers), ping them and separate them into two lists - dead and good ones. Still use it once in a while.

MK_Dev
+154  A: 

I wrote my wife an app that allowed her to tap the spacebar to indicate the start and end of her contractions (about all you can do at this stage, apparently!). This then gave her a precise indication of how far apart her contractions were (with a nice chart, of course).

When the midwives arrived I could tell that they were impressed, even if they didn't want to admit it!

Lunatik
I voted this up because it's just astonishly geeky, cool, romantic and a whole bunch of other words, all at once.
Kaz Dragon
+1, that was so cool of you to do that for her.
Heather
I didn't see the last line at first and was trying to figure out why apostrophes weren't sufficient indicators. >.<
Ben Blank
I'll find a way to +2 this if you tell me you did it AFTER she went into labour.
Adam Hawes
For us unwed lots, can you guys explain how (if) it is important to keep track of contractions?
maayank
The time between contractions is an indicator of how close the baby is to arriving; there's a pretty strong correlation between this and the dilation of the cervix. We were having a home birth and didn't want to call on the midwives too early.
Lunatik
lol! I imagine most thoughtful partners would be packing the hospital bag, getting their wife a drink, massage, mop brow etc, not you! You fire up VS. What a guy :D +1
demoncodemonkey
You should provide it in open source.
Uri
This definitely qualifies as an xkcd moment...
Joe Internet
A: 

I DL a lot of radio shows and I wanted to automate the process of organising them into folders. The files generally don't have ID3 tags, or tagging is patchy or inconsistent. They do tend to have useful names though, like "I Clavdivs", "Clavdivs the God", "Documentary on Clavdivs".

I wrote a C# app that parses a directory files and, with a bit of jiggery-pokery, it matches file names to common sub-sequences and uses a ranking to find the most "popular" sub-sequences, which it then uses as the basis for folder names.

To cut a long story short, I can run it on a folder of files and in a few seconds everything is organised into meaningful folder names. For the example 3 file names above, I get a folder "Clavdivs" with all three files inside. Sweet!

As it does not rely on ID3 it works on any file types: it's equally good at organising photos, data files, movies, rar & par sets, etc.

PaulS

I, Claudius was made into a radio show? I had no idea. I remember when the TV show was made. It was great. And I read the books, of course.
Nosredna
+9  A: 

I wrote an app that compares cell phone costs across the spectrum. It was a few years back, when the 3 national operators were doing all they could to obfuscate costs so we couldn't compare apples with apples.

My app would take your itemised bill (csv file), and calculate against a selection of packages. It worked well, and I learned a great deal while writing it.

Raithlin
I'd be surprised if you didn't have a lot of interest in this.
Kelly French
It didn't ever generate enough interest for me to complete it, sadly. These days the banks have cleaned up their act and done their own comparisons. :/
Raithlin
+2  A: 

AssetsGraphed for tracking my personal finances. It was my first Ruby on Rails application.

John Topley
I signed up.Looks like a great app :)I am wondering where's the Google AdSense :)Can you add other currencies?
the_drow
Thanks. Let me know what currencies you want adding and I'll add them.
John Topley
+2  A: 

Back in the mid 1990s, I wrote a repeating alarm clock called OOSAlarm to remind me to take Micropauses (12 second pause every 4 minutes) recommended by my physiotherapist. I've had it available for download on my website ever since.

Every time I get a new PC, whether at work or home, OOSAlarm is one of the first tools I install. It bugs the living daylights out of me - but has undoubtedly helped me stay healthy.

Bevan
A: 

I used to use a PVR system called GB-PVR. When I needed to upgrade to newer hardware I didn't want to lose the recordings from the recordings screen. I could have just copied them over to the new PC and added them to the video library, but that didn't feel right.

So, I wrote a tool that scanned a folder for all MPG files, created an import xml file and ran the built-in recordings import function of the GB-PVR software. It worked great, but I did have to do a bit of testing with a test installation of the GB-PVR software. I released the software to the GB-PVR community and started to get some positive comments along with feature requests. So, it grew for a while. But I began to lose interest in maintaining it when I moved over to MediaPortal, so I released the source code in case anyone else wanted to make changes to it.

I just checked an it's still on the wiki here. It was interesting for a while as I learnt a few things while doing it.

Antony Scott
+1  A: 

My own torrent website. Yeah, got bored one day and made my own torrent website/search engine. Full system too (sorta?). Check it out here: http://torrentino.info Also made my own blogging system and a full featured website/server pinging script too.

+2  A: 

I wrote a one-pager web application using PHP and jQuery UI to load batches of images from a subdirectory and display as stacks using CSS on an interface where I can drag, position, and clear them.

I use these images as reference for when I am drawing. I keep it on my local XAMPP install and bookmarked it with Prism as an application so it opens in its own window. I call the application Corkboard and find it way more useful than Windows Preview or any other application since they don't allow seeing full-resolution versions of multiple images.

hlfcoding
+2  A: 

A glut of AutoHotkey functions. Technically, it's all one program, but the code is pretty modular, and a lot of it consists of what you can get in the form of smaller apps. The modules include a clock/uptime tooltip, a take-a-break reminder, a stacked clipboard manager, cycling wallpaper, and a grid-based window mover/resizer that allows me to manipulate GUI windows with OCD precision without having to rely upon the mouse. The rest of the AHK stuff consists of hotkeys and automations for programs with accessibility problems.

When I was 12 or so, I wrote a QBASIC program to help me improve my math skills. Later, I made a few Dragonball Z inspired typing games to help me increase my speed. (Alas, none of them were over 9000.)

Duke Navarre
+3  A: 
  • Wrote a calculator that takes expressions ('3^2+5cospi'), also can draw graphs. Still have it online somewhere. But that was years ago...
  • Wrote a systray app that toggles the screen saver. My sister wanted to disable the screen saver when she's watching long movies online.
  • My girlfriend Suzi exported her SMSs using the cellphone's program, which resulted in hundreds of text files (!). I wrote her a program that parses these files and creates an Excel file, with all data arranged in columns.
  • Wrote a tiny program that delays subtitles by a few milliseconds (open file, add number, save file). Not needed these days.
  • Wrote Suzi a GreaseMonkey + jQuery script to make a web site much more usable - each image was on a different HTML page, so I used ajax to put them all together.

  • Now I'm working on something to keep track on my expenses. I'm planning to do that with my girlfriend, I want to teach her some web development.

Kobi
"Wrote a tiny program that delays subtitles by a few milliseconds (open file, add number, save file). Not needed these days."I did the same thing too :P
Edison Gustavo Muenz
+1  A: 

I had developed a simple "take a break indicator"

Ngm
+18  A: 

After being fed up with people asking me to create a website for them, I wrote a program which can create and upload them automatically. I just select a template, enter the text they want to appear and select a few pictures. It then compiles everything and spits out a XHTML1/CSS2 compliant website straight to their webspace. Written in C# and .NET 2.0 with the templates in XHTML/CSS/etc. and all dynamic content handled using JSON. I'm even thinking of marketing it.

Gary Willoughby
I Did something like this but for forms on pages because I got tired of writing the exact same things over and over.
corymathews
+1  A: 

At one point we had some fairly flaky servers in our organisation. I wrote a screensaver for my machine which showed the Processor % for the various servers, much like the graph in Task Manager, but full screen (and showing processor usage from various machines).

The idea being, even if my machine was locked and I was sat in a meeting on the other side of the office, I had a pretty good idea if one of the servers had spiked (or conversely, if one died).

Damien_The_Unbeliever
+29  A: 

I've written an application that takes an dictionary and returns all words ending in a specific extension. For example cyb.org

The purpose was to search a nice domain name.

Alex
I like this one.
Kurt W. Leucht
+1 You didn't happen to put that program online anywhere, did you? >_>
Brandon
Brandon: http://xona.com/domainhacks/ does something similar
dbr
I like this one
Amr Elsehemy
`egrep "org$" /usr/dict/words`
SF.
+1  A: 

I wrote a page in PHP scraper that extracted all the movie info from a movies page on IMDB for a large list of movie IDs, and put it into a database. A script would then read the info stored in the database, and generate an entirely different movies portal of my own, with full pagination, images, and so on. Another script would pull relevant products out of Amazon and Art.com and display products related to each movie on each movie page.

To increase the size of the portal, I simply had to add more movie IDs into the database and re-execute the script.

I learned so much from that experiment, I get a happy, warm fuzzy feeling whenever I recall....

karim79
+1  A: 

I implemented this with ASP.NET a few weeks ago:

http://www.primroseleague.co.uk/

It has my own songs on it, with lyrics, free .mp3 downloads, comments, the usual stuff.

I would have used ASP.NET MVC but the hosting service only supports .NET 2.0. I found it easy enough to get something like an MVC architecture.

When I get some time, I'm going to get into jQuery and plaster it with ajax for no good reason.

Daniel Earwicker
A: 
  1. Some simple scripts to organize the pictures into HTML galleries, resize them and generate thumbnails.
  2. A backup system in Bash with DVD burning option.
  3. Chatbot with silly sentence generating algorithm that gives pretty amazing (mostly funny) results. It was written in D and once I lost my notebook for 5 hours, because my friends kept talking with it and did not want to end :).

And I wrote my own blogging script for my website.

Zyx
+1  A: 

I wrote a simple widget for Mac to convert back and forth between decimal and binary notation. For a bigger application I was working on, it became convenient to store "12345" as 2^1 + 2^2 + 2^3 + 2^4 + 2^5 = 62. So I wrote a widget that went from "12345" to "111110" to "62" so that I could see what I was actually working with when I debugged.

In another moment of fun, I rebuilt the NY Times flashed based "kendoku" game into a standards compliant xhtml/javascript/css version as a proof that some flash games don't need to be flash. I ended up with a near identical version of their game, exact same functionality, plus some extras that I felt like they were missing. Good experience.

Perchik
A: 

I wrote a program to generate statistics from an XML database of raids in World of Warcraft that my guild had done, and to convert it to BBCode on our forums, because I got really tired of figuring it all out myself each week.

Kaz Dragon
A: 

I have a rather large DVD collection and I got tired of scanning the shelves to decide which one to watch. So I wrote an app that would keep track of my library and allow me to search for types of movies I wanted to watch.

Mr. Will
+2  A: 

Back in high school I wrote a garbage collector/defragger for my calculator.

Last year I wrote myself an alarm clock that required entering a sequence of numbers, to force myself out of bed and my brain to start working coherently. Worked well for a few weeks but I began to mistrust the accuracy and stopped using it.

Scott
+3  A: 

A firefox plugin to collect images. It does all the work of saving them, recording where I got them, renaming duplicate file names, and putting that info into a database for me.

Jay
Would it be possible for you to put up that plugin somewhere? I would like a copy
Pharaun
+1  A: 

Back in the "good old days of VB3" I made a number of tools for my personal arsenal.

1) A program for auto-loading videos on cd/dvd that displayed cover art, a link to imdb and a play button.

2) A tool that did file comparisons. This one was my favorite. When I first got interested in programing it was for AOL2.5-AOL3.0 "proggies", "punters", "scrollers" and other damned annoying crap were the big thing. I didnt make those programs, thankfully.

Someone released a program that would allow you to decompile them to VB3 source. Sure, the code looked like crap, all the varibles meant nothing, but you could change a few things, recompile the source if you wanted and make it "yours".

Then someone came up with this idea to change a few bytes in the header of the VB3 program which would cause the decompiler to think the executable wasnt a valid VB3 file. Then out of no where, everyone was making their own 'decompile protectors'.

So, I made a small 1 form, 1 label program and would run the so-called protector against it and do a file compare and undo what ever it was that they did to protect it. For the most part this was a simple byte change some where around byte 34 of the file.

Then I added their changes to the list of changes my program watched for and undid them, leaving the program unprotected. The fun thing was, these "protectors" were protected by their own scheme. I would undo it, decompile it and post the source. Needless to say, some people didnt like it.

I never released this program into the wild, but it had a ton of other things it could do, like generate subclassing code to get rid of the standard title bar of a program and make some gradiant thing instead. It also served as a very very bad screen saver.

Sadly, a few years ago (something like 8 years ago) the harddrive it was saved to crashed and began making the dreaded click noises. Still to this day I wish that drive was good and I could go back and look at the code. Nostalgia at its finest.

3) I also made a very very basic game that subclassed AOL chat rooms and watched for commands. The game was called 'Wizards and Warriors'. It was a turn based two player game. It had something like 7 different attacks that varied in damage dealt and based on a random roll for if the attack landed, and what range of damage it would do. Was a fair amount of fun as it kept a scoreboard for kills based on the player's screename.

Those were the Good Old Days :)

Jayrox
A: 

I'm working on a Django app to record votes + manage setlists on cover songs for my band.

Basically, we suggest and vote on songs every now and then, in a few stages. Currently we use a wiki but it's hard to keep it updated and votes aren't as anonymous as one would like.

I've also written a page that allows set-list editing via drag-and-drop, and it also keeps track of various data per song (acoustic/electric guitar) and marks these changes in the printed setlist, so everyone knows when we have to wait a bit between songs.

Marcus Lindblom
A: 

Programs I wrote in C# for personal use:

  1. Organize my digital photos and sort them so I can quickly backup them to DVD without wasted space on each disc
  2. Display photos from different digital cameras in a timeline format so I can adjust incorrect date and time in the EXIF metadata easily.
  3. A Family Tree manager that allowed me to print a PDF of my family tree (Huge! close to a hundred pages)
  4. A file renamer.
  5. Duplicate image finder (related to 1 and 2).
A: 
  • a Visual Novel engine in DX 'cause i wanted to know how they may work

  • a cheap, tiny (but incredibly usefull) C binary which allowed me to switch the icon view of the desktop to whatever mode the listview supports 'cause in some bad cases i had more than 120 items on it at a resolution of 1024x786 [sadly it doesn't work on Win7 anymore - can't get the handle to the programmanager window for some unknown reason]

+8  A: 

dailystrips, a program to automatically download multiple daily webcomics.

Andrew Medico
Ummm . . . Google Reader?
JasonFruit
Yeah, I had one of those for a while - lots of fun, and a great way to keep your scripting-skills up to date. But I've recently switched to using the Darkgate Comic Slurper as an RSS feed. Mostly, this saves me having to keep the auto-download script up to date all the time...
scraimer
A: 

Instead of iTunes, we use Media Monkey. We love it except for when we added a remote control. The UI uses very small fonts that makes it very difficult to use a clumsy remote pointer to do much unless you are close enough to just use a mouse anyway. So I made an alternate UI for it. It's big and ugly and really functional. The buttons go to the edge of the screen with no buffer zone. Everything is in black and white and where ever the cursor is gets highlighted. We use it daily and love it.

Dinah
A: 

I used to do extemporaneous speaking in high school. I used a lot of online sources but you couldn't have computers in the prep room - just paper (you carried HUGE file tubs with newspaper clippings, magazine articles, etc around. They probably still do). I had to print out all of these online articles and make notes of dates accessed, authors, etc. But the graphics were awful on our printer, so I made a program to strip out IMG tags, then other graphics-intensive tags that were extraneous, and then I standardized font sizes, spacing, etc so it was easier to read in print. Kind of an automatic print version.

Stephen Friederichs
A: 

"Who's round is it?"

Many moons ago in my first job we went to the pub every lunchtime. Every day someone bought a round of beers for the team. Problem was there were one or two tight-wads who always had to nip to the loo or had a coughing fit when the question was asked: "Who's round is it?"

So I wrote a desktop app in Delphi that listed on pub attendees and kept a score of number of times they'd been to the pub and the number of rounds bought. I think it also factored in how many beers they bought on their round.

Very useful but there was still one guy who simply never bought a round, ever.

Steve Claridge
So you brought this to the pub and entered in the data while drinking? That just seems annoying.Or.. you did this at home and didn't share it. That just seems weird!
GreenRails
Heh. We only used it at lunch times during the week, when we would all go for a pint or two at lunch. We ran the app before we left to see who had to buy and updated the DB when we got back with the number bought.
Steve Claridge
+8  A: 

I wrote a Valentine's day program for my husband that used the Microsoft Agent w/voice (think the characters that appear on the search screen by default in WinXP) to read him his Valentine's greeting out loud. What looked good on paper, sounded really creepy when the Wizard started reading it. We had a good laugh though!

Heather
A: 

I started writing an app for Debian systems which works kind of like the RedHat network does. I had every intention of finishing it off some day but for the past 2 years it's sat idle, barely able to read the package database, detect available updates and schedule scripted tasks. I guess I should get around to implementing the server so that it can be controlled...

Adam Hawes
A: 

I made a converter from color document (highlighted code in HTML) to a nicely grayscaled document. So when I print my code with syntax highlights on a black-white laser printer, it is easy to read.

Sergey
+3  A: 

A few years ago, my internet connection was provided by the computer centre of my university. The only way to access the internet was to login via Cisco VPN. Now the problem was/is, that the cisco Client is (still) unable to keep your connection up 24/7. That's because as soon as the connection breaks (for whatever reason), the client displays a messagebox informing you that the connection broke. Great! Long story short: i reverse engineered the local Cisco protocoll and wrote my own client, namely the Evil Client. Many students at my place and even a few profs use it since then :)

jn_
+3  A: 

I wrote an app that finds my wife a temp job (so important in today's economy). It logs into a website, keeps refreshing the list of available jobs, and if there is anything in the list, it selects a gig based on certain criteria.

And I may not be the direct user, but I do directly benefit :-)

runrig
A: 

Most important right now: my own Windows Mobile Twitter client.

peSHIr
+1  A: 

I bought a DVD + SD card camcorder and found out that it wouldn't record video to the SD card, nor could one copy videos from the DVD-VR discs it created. So I wrote a program to extract the individual programs from the DVD-VR: http://www.pixelbeat.org/programs/dvd-vr/

pixelbeat
A: 

Dragonpaint (Dragon 32 BASIC)

When I was a kid (in the eighties) I wrote this application which mimicked MacPaint after seeing a MacSE for the first time. I wrote it in BASIC. It had some nice features like UNDO and printing. It used the joystick as a mouse.

File Sieve (Ruby)

This very naive script sorts the file in a directory according to the tags. Saves lots of time.

Many small scripts (Autohotkey, Javascript, Ruby...)

I love to automate small tasks (like grabbing some files from a web site, generate code, autologin to some site, etc.) and I have various scripts in different languages.

Manrico Corazzi
+1  A: 

I created a learning tool, to learn the vocabulary of a new language (it shows you your progression, ask questions, and you can easily extend your vocabulary sheet)

Nicolas Dorier
+2  A: 

I wrote (or more accurately hacked up) an online photo gallery in PHP for use by myself and a group of friends. It's now got over 7,500 images on it and Twitters whenever someone uploads.

Damo
A: 

I wrote a chess clock that runs in the browser using jquery. It supports 5 different time control modes. You enter the time for the players and the time control settings, start the game by pressing s, and end your turn by pressing the space bar.
I'd be happy to get some feedback.

Kim
A: 

I've written these Firefox addons:

Affiliator - Generates Amazon affiliate links with one click from any page on Amazon.com

baNdit - A port of Farkit for banniNation.com, with a bunch of additional features, like the ability to ignore users, paste links or images from the clipboard as formatted HTML tags, and copy/paste memes with a few clicks.

CopyURL - Copies the current page or image URL to the clipboard, wrapped in an anchor or image tag. It defaults to HTML, but comes with BBCode and Wiki formats, or you can build your own.

TextSaver - I built this in 3 days for the Extend Firefox 3 competition, and to keep my wife from getting upset when she spent a lot of time on a post or email, then accidentally closed the tab and couldn't get it back. It's not maintained, and I've since written a much smaller GreaseMonkey script after being inspired by StackOverflow's feature that stops you from closing the tab if you've started typing an answer.

Chris Doggett
A: 

A few years ago I was taking a finite mathematics course, and one of the topics we had to learn was matrix multiplication. I learned the technique pretty quickly, but solving them by hand was frustrating - you might not catch one little mistake until several pages later.

The process of multiplying matrices is very algorithmic, of course, and so is the perfect kind of thing for a computer to do. I reasoned that if the purpose of the course was to learn how to do matrix multiplication, writing a program to do it would demonstrate an adequate mastery of the subject.

The end result isn't exactly a beautiful work of art, but it functions quite well. I decided to release it as freeware...

MatrixCalc

A: 

I've written quite a few toy programs. The recent one was a bit serious one. We are using DAL (generated by SubSonic) in our project. It is a big project so there was to be a business logic layer (BLL). We didn't want to access the DAL objects directly from UI layer. So we had to implement properties of DAL objects in bll objects. My colleagues were very opposed to the idea. They were not able to see the benefit of separating the responsibilities.

So I wrote a code generator using C# utilizing Reflection which took DAL Assembly generated by SubSonic, browsed for the types implementing ActiveRecord and generated a stub class exposing the (column) properties in DAL objects through BLL objects and writing constructor and save method.

TheVillageIdiot
A: 

Simple requirement management tool - it took me one week. Buying commercial package would cost me few months of my work at the time, so it was a good deal.

smok1
+1  A: 

I code demo effects and 3D engines for my own pleasure.

SurvivalMachine
A: 

A few years ago I wrote a Family Tree website in ASP.NET for my own use that I am still using. It is not focused on graphics at this point. More with storing of the data and detailed notes about events and people and connecting all of the relationships. It also has pages that show aggregates of the data, like number of people with a surname and pins on a map for births, deaths, weddings, etc.

Like someone else mentioned in a previous answer, soon I'll throw a bunch of jQuery, ajax and probably convert to ASP.NET MVC for no specific reason.

slolife
+5  A: 

I wrote a throw-away utility (using D) to re-arrange large volumes of detective conan manga.

The manga I downloaded was organized in volume/chapter hierarchy with different style for naming (e.g. Chapter 10, Ch11, etc), the files inside them were numbered in all different kinds of ways.

I wanted to re-organize them into stories/episodes.

So the command line tool would receive a range of chapters and a name, and would pull all images from those chapters and rename them and put them inside a folder called [v.ch][v.ch]Episode Title

i.e.:

[01.01][01.02]Shinichi Shrinks [Episode 001]
[01.03][01.05]Kidnapped Girl
[01.06][01.09]Idol's Locked Room Case [Yoko]
[02.01][02.03]Perfect Alibai
[02.04][02.07]100 Million Yen Robbery [Miyano Akimi]
[02.08][02.10]Imprisoned Killer in Haunted Mansion [Shonen Tantei]
[03.01][03.06]Hatamato Family Ship Murder
[03.06][03.10]Strange Presents
[04.01][04.03]Art Museum Murder
[04.04][04.06]Train Bomb [Gin][Vodka]
[04.07][04.10]Treasure Code of Italian Gang
[05.01][05.05]Bandaged Man
[05.06][05.09]Karaoke Case
[05.10][06.01]Conan Kidnapping [Shinichi's Parents]
[06.02][06.05]Three Visitors
..... etc
hasen j
+1 for detective conan!
ebrown
Pharaun
A: 

All my open source projects were written for my own benefit - going back 20 years or more. They ranged from screenblankers to image views to games played on calculators. My sourceforge projects are the same - AstroInfo, PDF2PSP, HPConnect, Sound Bridge Commander were all written for my own use and shared out. Even the facebook app I wrote is really for my own use.

Mike Heinz
+1  A: 

I wrote a drum machine back in 2005. http://gneutronica.sourceforge.net I had come up with a guitar riff that had 13 (or 26, depending how you count it) beats, and the riff resisted any effort to add or subtract beats by losing it's coolness. The only real linux drum machine at the time was hydrogen, and it didn't do weird timings. I wanted to learn gtk, had some MIDI synths lying around, and wanted to know how to drive those as well... so I wrote a step sequencer (a drum machine interface) that can handle arbitrary steps and timing. Probably the neatest feature it has is that you can cut/paste ascii drum tablature directly into it.

It doesn't make any sound on its own, it just drives MIDI devices. (you can drive a softsynth with it though.)

smcameron
A: 

Blog app where 90% of the interface is the texteditor.

Of course I stopped using it altogether after a few weeks, but it certainly had a nice interface.

whichdan
A: 

A screenshot taking app called Screeny.

When I was 16 and first learning C# (And was enthusiastic with how easy it was to write programs as opposed to C++, in MY case), I used to use a certain screenshot taking app (It looks different now) that was actually a trial. I didn't have the money to buy it, so I decided to shoot down two birds with one stone by trying to write one myself: I would have my screenshot taking app and I would learn a bit more about C#. I ended up modeling it exactly like the trial app down to the UI and functionality, and called it Screeny. It was my first full-blown app I wrote. I then added some extra functionality and many of my friends also used the app.

Now I'm mostly on my MacBook, OS X, which has some pretty good screenshot taking functionality built in that suffices for me. I haven't used Screeny in a while, I wouldn't be surprised if it doesn't work on newer systems (Vista or 7), and some friends told me there were some bugs with multi-monitor setups, that I never got around to fixing. But it did serve it's purpose a few years ago and helped to motivate me to continue learning about programming :)

Jorge Israel Peña
A: 

Filling, an implementation of the `Fillomino' puzzle as seen on http://nikoli.co.jp. Find my implementation at http://www.chiark.greenend.org.uk/~sgtatham/puzzles/java/filling.html.

The rules are simple: fill an n-by-m grid with numbers; coalesce the numbers into maximal chunks such that there are no two different numbers in any chunk. The size of each chunk must be equal to the number it contains.

I did it mostly for the fun and challenge of writing it, but I've played it a few times too, so I guess it counts :)

Jonas Kölker
+6  A: 

Wiitones, an application that lets you play music with a Wii Remote (and Nunchuk).

The application has three channels.

Channel 1:

  • A: enable sound
  • vertical angle of the Wii Remote (i.e. its pitch): control the pitch (i.e. tone) of the channel, in semi-tone steps (frequency factor: 12th root of 2) over 441 Hz.
  • B: enable bend
  • Wii Remote roll (i.e. angle around the vector from the expansion slot to the IR camera): control the bend. Vertical is none, each 90 degrees (left=down, right=up) is one semitone. (Or was it two?)

Channel 2:

  • C: enable sound
  • pitch of Nunchuk: control pitch (also from 441 Hz in 2(1/12)-factor steps)
  • always bends
  • Nunchuk stick, x axis: control the bend (full range is one or two semitones)

Channel 3:

  • Z enable sound
  • roll of Nunchuk: controls the pitch
  • always bends
  • Nuchuk stick, y axis: control the bend (full range is one or two semitones)

Use + and - to control the volume (shown in binary on the wiimote LEDs). Use the d-pad plus 1 and 2 to offset the channels by an octave. Home quits, IIRC.

The tones are all sinus tones; Hand-computed sound waves, ftw. :)

It's kind of tricky, though. When the user disengages a tone, you have to continue the sound wave until the elongation hits 0, or else you'll get clicks. While keeping track of the fact that you're going to zero, you also have to deal with the user re-engaging the tone. And you need to do good mixing (hopefully without overflows). And you need to deal with the tone changing frequency not at (conceptual) wavelength markers, but in mid-wave.

Jonas Kölker
+1 for developing on the Wii
scraimer
It's developed on PC, for PC. And my wiimote library is Linux only...
Jonas Kölker
Theremin 2.0
DR
+1  A: 
  1. I play Nexuiz against a girl I just met, beating her silly
  2. I implement a handicap system. You ask for a damage multiplier (between 1 and 100); all damage dealt to you is modified by that multiplier.
  3. I play Nexuiz against her again, this time beating her (but not silly).

Three lines of code. Profound change in game balance. Pretty nifty :-)

Jonas Kölker
+1  A: 

Wiimote XEvent Synthesizer.

A program to listen to a wiimote for button presses (etc.) and generate X events (via the XTest extension), so that I can control my computer with my wiimote. Useful for running Elisa with my computer hooked to my TV.

There are probably many other programs like it; for one, wminput. However, I've grown tired of it---it needs write access to /dev/uinput (bad for security), I need to tell it to synthesize keys pre-keyboard-mapping (so, since I'm using dvorak, I have to say "generate an s" if I want an o). And it really doesn't work well if you want to control the mouse with a nunchuk.

So I wrote my own (in C). It embeds Guile (the GNU embeddable scheme implementation), and I do most of the heavy lifting in Scheme.

Jonas Kölker
+7  A: 

I used to have a logic puzzle addiction.

an example of a logic puzzle grid

But I got sick of making mistakes in "the monkey work". A simple typographical mistake like misplacing an "X" could take an hour to locate, and 2 seconds to fix;-), more often than not leading to an uncompleted puzzle, which allways feels like a failure, even if it's not worth diddly outside your own head. It just NEEDS to be solved, like a spotty Rubics Cube sitting on a bookshelf. Ergo: No fun!

SO... I wrote a VB5 app (hey, it was the 1990s) which read the Categories and Values from a text file, and rendered the game-matrix (as pictured above) in a picture box. I even rotated the top-vertex labels 90 degrees (creating a rotated fontset) by bit-sampling the painted font and transposing x and y.

I started out with a dumb (purely human driven) interface: - left-click to place an X; - right-click to place a O in the matrix.

Then I added automatic X'ing when you placed a 0:

  • which led to X'ing all other impossibilities;
  • which led to automatic O'ing when 1 possibility remained;
  • Recursion is fun!

This gave me with a "half automated" problem solver which totally sucked because it was "stealing my thinking" but only half-doing the job. I still had to go through every "rule" iteratively to check that every implied oxymoron was X'ed. It was time to step-up to the next level.

So... I wrote a simple "rule engine" to ease the pain.

Let's take a simple example: In the above puzzle you might be given the statement: Lauren doesn't like soft cheese or red wine. Which implies that:

  • Lauren is not associated with feta.
  • Lauren is not associated with (merlot, pinot noir, port, or zinfadnel); and therefore Lauren must like champagne.

So the rules might be:

  • person[Lauren] != cheese[feta]
  • person[Lauren] == wine[champagne]

So then you simply parse each rule and place the appropriate O(s) and/or X(s) letting the "consequence engine" developed above fill in the rest of the matrix.

Did I mention that the fun part is the recursion? You need to reparse every rule every time the board changes, which changes the board, which must eventually (but NOT immediately) trigger a complete reparse, until all rules are parsed and nothing new is "learned".

This was an "interesting little problem" and the "genericness" of the matrix and rule engine make it more widely applicable. It's sort of primitive decision support system, fringing on an AI. Good fun.

corlettk
+1  A: 

A program that took a list of track times on a CD, and figured out what tracks to pick to fit nicely onto each side of a cassette tape without cutting off half-way through a song.

Craig McQueen
A: 

Most of the items on this page are things I wrote for personal usage. http://riteshnayak.com/hacks.html

Ritesh M Nayak
+1  A: 

I wrote a Windows Service that counted down the time to the first Lord of the Rings release. It had a One Ring that would sit in the system tray, and when you hovered over it would tell you the time remaining. There were other options when you clicked on the ring - I think opening the LOTR web page or something like that.

Nathan DeWitt
+1  A: 

Last one was a program that tracks and saves song names from shoutcast radios I listen to. So later, I could use online music services to directly listen to lovely ones by just clicking on them.

ercu
+1  A: 

Key-mapping utility, that removes the need for shift and altgr keys. By using it you can press '1' simultaneously with any key lower to it, and get '!'-character. Pressing 2 and any key lower to it will in turn result in "-mark and so on. In the similar way you can input lowest row characters ",.-", by pressing them simultaneously with any key above them ("JKL") or left to them ("M,."). First combination will result in ";:_"-characters, second in "<>|"-characters (based partially on nordic- and partially on us-layouts).

AareP
oh wow, that's brilliant. interesting concept, and i think it is quite acceptable. nice!
Noon Silk
A: 

I've done a couple of things like this myself, some of which were published in a (quazi-) finished state:

Published:

idnet - A lightweight image viewing utility.

findexe - A Windows equivalent to which on Unix. (Which i did not know about at the time... ;P)

silentcmd - Allows you to run a Windows console command without the Command Prompt showing.

Unpublished:

mpwgen - A simple random string generator.

xclip - A program to change the clipboard via the command line. (I didn't know about the Unix program of the same name at the time.)

Smartcuts - A program to modify a command line with a simple substitution language.

Gmail/Reader Notifier - Sits in the system tray and checks your Gmail inbox and Google Reader list for unread items.

TimeSync Checker - Compares clock drift over SNTP.

TempExtract - Automatically unzips ZIP and TAR files to a temporary directory.

Unfinished:

wdialog - A command-line-based wrapper for common Windows dialogs.

MiffTheFox
+21  A: 

I wrote a unix command-line to find HEX numbers that look like words, so I could use them as arbitrary numeric constants / magic numbers in code.

cat /usr/share/dict/words | grep -i '^[a-fsoi]\+$' | tr 'a-z' 'A-Z' | tr 'SOI' '501'

Got some nice constants out of it, such as:

0xCA5CADE
0xDECEA5ED
0x0B5E55ED
0x1D10C1E5
0x5EAF00D

Lots more great results when you run it.

orip
brilliantly geeky:))
mlvljr
I made a simple proggy that searches for words you can construct from a phone number, T9-like (before T9 was popular). So if you have a number 0-800-3733-2337, you could write it as 0-800-FREE-BEER.
SF.
+1  A: 

I wrote a Python script to download all the then-newly-published-online Calvin & Hobbes comics.

orip
Please publish this software :)
luc
+1  A: 

I wrote Promptu, an application launcher, to make it faster and easier to get around in my electronic world. I used SlickRun for a while, but I decided to write my own launcher because I wanted more features.

Promptu lets you associate meaningful names with programs, folders, files, URL's, etc, and access them almost instantly from your keyboard. When you press the hotkey you associate with Promptu, such as Ctrl + Q, Promptu opens a textbox for you to type in next to the mouse. As you type, Promptu suggests in a similar fashion to Visual Studio's Intellisense. When you finish typing or see the name of the command you want, press Enter and Promptu will execute the command for you.

Advanced developer-friendly features include:

  • ITL, a language for dynamically evaluating text into commands, using external .NET functions and parameters supplied to the command from the prompt.
  • The ability to use external .NET functions from the prompt and ITL.
  • Namespaces can be used to categorize your commands and functions.
  • Ability to automatically synchronize commands, functions (and their associated assemblies) between multiple computers.
Zach Johnson
A: 

I created a web interface for my home media server. Written in PHP and uses JQuery. It allows the user to "administer" the server which supports the following:

  • Search Google and other sites
  • Monitor Raid, UPS, Hard Drives and other Devices
  • Install applications
  • Keep track of torrents
  • Add movies to XMBC
  • Stream music/movies via UPnP
  • Provides a uniform web interface for my home network
A: 

A colorful notetaking program that I use for write some notes about what I need to say / ask / download / ... divided in categories.

Jesus Rodriguez
A: 

The most recent one is SWiki, essentially a standalone Wiki Software, because I was just fed up with Word for complex documents but did not want a webserver-based software as I wanted my document to be a single physical file on the hard drive.

Michael Stum
Are you familiar with tiddly-wiki: http://www.tiddlywiki.com/
Noon Silk
Yes, but I lost my data twice with it. Not sure if it was my fault or if I dod not install the java thingy correctly, but I did not like it.
Michael Stum
Ah, fair enough. I've used tiddly before, but these days everything is in trac or notebooks. Glad you've heard of it though, and hopefully improved on it :)
Noon Silk
A: 

I wrote a Recipe/Shopping program. It stores a list of recipes and lets you plan a menu for the week. Then puts together your shopping list for you. I love to cook and it was a great way to control food expenses. With 5 kids and my wife controlling food expenses is important. :-) That was probably the most useful and money saving one.

Besides that I've written:

  • Conways game of life in multiple languages. (it's my standard learn this language app)
  • eTap an erlang tap testing library
  • Test.Tap an lighter-weight simpler to use and set up Javascript TAP protocol testing library (specializes in command line javascript tests using prove from perl)
  • A templating engine (what programmer in web dev more than 5 years ago hasn't built one of those?)
  • Lots of other libraries of useful stuff I can't list right now.
Jeremy Wall
can you publish the recipes app someplaces ? i would really like a copy of it :D
solomongaby
I really should get it into publishing shape sometime. I just never seem to get the time to do so.
Jeremy Wall
+1  A: 

I wrote a Twitter-like system but with some additional features and a change in model, such that it's installed on your own server and basically replaces your blog. It's not social, just like me.

Noon Silk
+1  A: 

Flight logbook, freefall calculator (after years of jumping and not totaling all those seconds of freefall time got curious how long I've been in freefall, literally ;-) should make a full blown skydive logbook out of it.

vector
+1  A: 

Too many to list. I've probably written more code for myself than all the code I've written for all my previous and current employers combined. Among the more notable highlights that I really, really like:

  1. My own web server. Fully HTTP/1.0 compliant and almost HTTP/1.1 compliant - the only thing not implemented is chunked transfer encoding. I learned a lot about script kiddies and worms from doing this (when you're merely USING one, most hacking attempts are simply ignored and don't get logged).

  2. My own console text editor: http://wiki.tcl.tk/16056. I use this a lot. I wrote it simply because I hate the fact that all other console text editors break convention when it comes to use and feel. I mean, all GUI editors use Ctrl-S for save, Ctrl-F for find, F3 to find again, etc. Why do console editors insist on ignoring this?!

  3. Scrolling LED display. OK, this one is both software and hardware. I built it mainly to impress my co-workers (one of whom immediately rose to the challenge and built one that's not only larger but tri-color to boot!).

And about a couple dozen more large, multi-weekend projects. I'm not even counting the small did-it-during-lunch-hour projects like my batch thumbnail generation script etc.

slebetman
+15  A: 

In our grade 12 computer class, we had to write an application that would encrypt a file by taking the first letter of a password, xor'ing it with the first character in the file, then the second letter of the password with the second character, and then just keep rotating through the password.

That night I was thinking, if the text was long enough and you knew the most common letter was E (and you knew how long the password was, say 5 chars), you could take the 1st, 6th, 11th, etc. chars from the encrypted file, count the highest occurrence, assume it was an E and figure out the password char used to encrypt it. So I wrote it... but it turns out I was completely wrong - obviously the most common character in the file was a space, which actually made it extremely easy to use this method. In order to find the length of the password, I just had it attempt with a length of 1, show the result, and you just kept hitting the spacebar (making it try a password one character larger) until the result was readable.

Used it to tell everyone what their password was the next day at school.

Scott Whitlock
A: 

Both of these were in Django:
I have a logger which I use consistently.
I also have a commenting system -- basically it lets me track code updates for local histories and builds (between SVN comments)

There are a lot of .bat files I use daily -- most commonly, I wrote a command which force terminates Windows (a beefed up version of using the Windows button to call shut-down). I also wrote a .bat file once which compiles a list of .fla files and then pumps them into Flash so that they can be easily turned into SWF's. That's saved me probably as much time as it took to build it, but just barely.

Christopher W. Allen-Poole
A: 
  • iTunes to Banshee ratings transfer
  • BT Transmission "auto-stop when finished"
  • Stackoverflow Google Chrome extension
  • "Auto-Reload" extension for Chrome
  • Garage doors monitoring (uses Phidgets devices)
  • Erlang Port API library
  • Inter-thread messaging library
  • Mindmeister automated backup tools
  • Gliffy diagrams automated backup tools
  • Feedburner Awareness Data to RSS
  • 100's of Mediawiki extensions
  • AOP library for PHP
  • State-Machine design library for Python

    etc.

jldupont
A: 

I have a big familly and for christmas we can't buy a present for everyone. So we have decided that everyone must buy a present to only one other person of the familly. That's a kind of present sort.

We have some rules to follow (can't buy for his wife or husband, not to the same one than the year before, keep the secret about who is yours....).

Moreover, we have people in different locations and it was a big headache to have everybody a few weeks before christmas to organise this present sort.

So, I wrote a tool to randomly make this sort, to check all rules are ok and send an email to everyone. I've done it with a python script and hopefully it works... everyone gets a christmas present.

luc
A: 

I wrote a load of dashboard widgets for the Mac from Man pages, Vi, Grep, SED+AWK etc just so i could reference them (and to learn Dashcode). To my surprise they are on quite a few site and as far as i can tell, not all site produce metrics, several thousand downloads as ell.

PurplePilot
A: 

I once wrote a mobile (J2ME) determinant calculator (for matrices), but I discovered a bug in a rare case, which happened to be my exam problem..and I had to solve it by hand (correctly, as it turned out).
(And of course many more programs of less interest.)

Bozho
A: 
Loadmaster
+1  A: 

Power Hour (or Century Challenge) party game. Basically it pauses music playback on your computer every 60 seconds and reminds you to take a shot or drink your beer. We probably use that one too much.

Mileage calculator in J2ME for girlfriends leased car. Every time she fires up the app it shows her the maximum amount of total miles for that day so she can easily compare it with the odometer and tell if she's over or under.

Paul U
A: 

After seeing the Millenium TV series I decided to write my own Y2K countdown timer. I wrote it in Pascal and it displayed the days left until 2000 at boot time.

Cristian Ciupitu
A: 

I've written a few things over the years: a regular expression tester, a property generator for C#/VB.NET, a password generator, some photoblogging software, a web based sql server explorer tool, an iTunes playlist utility(did that way back, should still work though) and a time tracking tool.

I've had a lot of fun and learned a lot writing my own tools. It gives me no shortage of pleasure to see other people using my stuff of thought.

David in Dakota
A: 

I must have written 4 or 5 personal movie databases over the years. One day I'll write the ultimate one. If for nothing else it's fun to see how ones programming skills evolves over the years.

sharkin
A: 

Outside of university?

So many things! Some that I can remember:

In Delphi 7 I wrote an app that displays the time much like this clock; a little tool for learning how to pronounce Japanese number 1 - 10 and an artificial neural network designer.

In QBASIC I've written a space invaders clone.

In C++ I've written a little programme that (using OpenGL) displays an L-System where each node's position is affected by that of the other nodes (that's here).

In C# I've written an app that takes in a string and outputs it in binary in ASCII, unicode or UTF-32 encoding.

There's loads more. Most of them aren't that usefull!

Matt Ellen
A: 

A small program to store simple text notes/thoughts/snippets/URLs, with keywords for quick searching later, and a command line copy program that accepts URIs for source/destination as well as local files - easy for putting in a batch file or something.

Thinking of doing a explorer/file browser application soon as the standard Windows explorer is continually annoying me, and none of the other 3rd part ones are done how I'd like.

Gareth Wilson
A: 

Wrote a python web parser for http://www.reddit.com/r/pics/ it parses 25 links, and inserts them into a new webpage with the comments in a iframe "above the picture". Comments are usally just as good as the picture itself.

And then it loads up all 25 pages in new tabs in firefox... basicly, this saves me ALOT of mouse clicks. 1 button to open 25 new tabs with comments/images.

Lazy person solves very important problem... ;(

Daniel T. Magnusson
+1  A: 

Cobian Backup was created to solve my needs, but the beast has grown out of control.

cobian
+1  A: 

A MDI (Multiple Document Interface) Notepad clone in .Net

  • to learn how MDI works
  • to learn OOP in C#
  • to get a feel for the .NET libraries

Moving from a PHP web development background to C# desktop background was a bit of a shock. Surprisingly, I had a working version with all of the basic functionality (open, save, close, print) in about 5 hours.

A Javascript collapsible tree menu on my desktop

It used an XML file to store the links in a semantic structure

The sections included:

  • quick shortcuts to the folders I used most for work
  • quick shortcuts to the folders I used for play
  • links to open mindmaps I used for reference or track work progress
  • links to the remote production webserver, local testing webserver, phpmyadmin, etc...
  • links to online references I used most
  • links to commonly used applications

I deeply loathed the 'Start Menu' back when I used Windows because it was so slow and unproductive. I wanted to be able to access the stuff I was constantly using in no more than two clicks.

For as long as it took me to write and implement it, it saved me many magnitudes more time that I would've wasted clicking through Windows explorer. Unfortunately, one of the windows updates broke active desktop and I could no longer use it.

Evan Plaice
A: 

I wrote an application in which I can save my notes. Tags are created from the notes implicitly. Then thought it would be a good application and now it is hosted at

http://www.faradaysbook.com

Prakash Raman