Projects

Here are some personal software projects I've worked on over the years, in no particular order, with screenshots and videos where appropriate.

iMeme

http://www.michaelfogleman.com/imeme/

iMeme is a meme generator for Mac OS X and Windows.

  • Over 50 built-in templates.
  • Enter your own header and footer text.
  • Adjustable text size and alignment.
  • Use your own images.
  • Save as PNG or copy to the clipboard.
  • Print directly from the app.
  • Automatically upload to imgur.
  • Automatically post to reddit.

Screenshot of iMeme on Mac OS X Lion.

Feed Notifier

http://www.feednotifier.com/

Feed Notifier is a Windows application that resides in the system tray and displays pop-up notifications on your desktop when new items arrive in your subscribed RSS or Atom feeds.

  • Supports all common RSS and Atom web feed protocols.
  • Clean look and feel that doesn't get in your way.
  • Lots of configuration options.
  • Popups do not steal keyboard or mouse focus from other applications.
  • Advanced keyword filtering options.
  • Deactivates when user is idle to save bandwidth and processing time.
  • Supports authenticated feeds that require a username and password.
  • Supports using a proxy server.

Feed Notifier is for you if you want a news aggregator that focuses on real-time feed notifications and leaves out all the other stuff that comes with most news readers.

Screenshot of Feed Notifier on Windows XP.

Star Rocket

http://www.star-rocket.com/

Star Rocket is a cartoon-themed space game with over 120 action-packed levels! Navigate your rocket through a universe filled with planets, asteroids, bumpers, teleports and items... collecting all of the stars as you go!

Objectives

  • Collect all of the stars in each level.
  • Complete each level as quickly as possible. You will be rewarded 1, 2 or 3 stars for each level, depending on your time.

Details

  • Planets exert gravity on your rocket - don't get too close or you won't be able to escape the pull of the gravity!
  • Magnets let you attract and collect stars from a greater distance!
  • Shields let you plow through and destroy asteroids!
  • Flames give you an instant boost in the direction you are pointing.
  • Your rocket will bounce off of bumpers. Try it - it's fun (but not always helpful)!
  • Teleports instantly transport you to another teleport location.

Video trailer for Star Rocket.

Ricochet Robot

http://fogleman.tumblr.com/post/10962311432/ricochet-robot

My friend introduced me to a board game called Ricochet Robot (or Rasende Roboter in its original German form). It's a fun game, but I found it even more fun as a programming problem. I implemented the game in Python, including a user interface and a solver. After that, I sped up the solver tremendously by porting it to C.

Screenshot of Ricochet Robot.

Fogle's Fotos

http://www.foglesfotos.com/

Fogle's Fotos is my own personal photo blog. It is a home-grown Django application.

Screenshot of Fogle's Fotos.

Word Impostors

Word Impostors is a unique word game. In each round, you are presented with three fake words (computer-generated) and one real word, the four of which are ordered randomly. The objective is to select the real word. The game ends when you get five rounds wrong.

The game is tricky because the made-up words look pretty realisitic. They are are generated using a 5th-order Markov chain that is modeled upon the dictionary of real words.

http://www.wordimpostors.com/

Boggle

http://mfogleman.webfactional.com/boggle/

A classic Boggle implementation, written in Python using the Flask web framework.

Word Warrior

Word Warrior is an alternative desktop client for playing games on the Internet Scrabble Club. It can also be used as a standalone Scrabble application to play against the computer, analyze games and more.

  • Offline Play: Play against the computer or your friend next door. No need to connect to ISC.
  • Multiple Games at Once: More than one game board can be open at any given time.
  • Custom Layout: Rearrange the views in the application to your liking.
  • Analysis Tools: Analyze games to improve your skills.
  • Player Search: Easier to use than the WordBiz console-based "who" command.
  • Move List: Shows each move in the game in a clean tabular format.
  • Full Clabbers Support: Including proper dictionary checking.

Screenshot of Word Warrior on Windows XP.

wxSnow

http://www.softpedia.com/get/Desktop-Enhancements/Other-Desktop-Enhancements/wxSnow.shtml

wxSnow is a festive application that draws snowflakes falling on your desktop, but behind other windows as to not be too distracting.

  • Eight different snowflake bitmaps.
  • Show more or less snowflakes (100 to 500).
  • Make snowflakes fall faster or slower.
  • Make snowflakes rotate or not rotate. (Rotation takes more CPU power.)
  • System tray icon to change settings or exit the application.

Dr. Mario

I enjoyed playing Dr. Mario on my Game Boy as a kid. Recently, I got hooked on it on the Wii. While on a business trip, and having much idle time in the airport, I challenged my co-worker to see who could implement a Dr. Mario clone the fastest. This is what I came up with.

It's implemented in Python and includes AI. The AI finds all possible resting positions for the pill and uses Dijkstra's algorithm to find a path of "moves" (left, right, down) to get the pill there. Each position is evaluated and the AI follows the moves to the best position.

Screenshot of Dr. Mario on Windows XP.

Text Editor

Pac-Man

Pac-Man clone written in Java using SWT for the graphics.

Extreme Blue

http://www.michaelfogleman.com/static/eb/index.html

Toward the end of the "Golden Gate" Extreme Blue project, a simulated pipeline was constructed to showcase the features of our software. Specifically, we wanted to demonstrate our ability to perform well in the Industrial Automation field. During an exciting two weeks, a lot of effort was put forth to complete this task.

Picture of the Extreme Blue demo setup.

Piet

http://fogleman.tumblr.com/post/11959143268/procedurally-generating-images-in-the-style-of-piet

Piet Mondrian was a Dutch painter. His paintings with orthogonal lines and rectangular splashes of primary colors on white backgrounds are very recognizable.

I wondered what it would take to programmatically generate Mondrian-esque images. Here’s what I came up with.