Gob's OS
I'm a hipster so I like Arrested Development. Ever see the one with Gob's Program? Well, it got promoted to a x86 operating system.

source code
floppy disk image
If you have QEMU installed you can run it like this: qemu -fda gob.flp
Or if you have a 32 bit machine you can put this on a cd or usb drive or whatever and it should boot no problem.
FlipPanel
I wrote an article on Codeproject a few years ago about a Panel control that has two sides. The idea is that you maybe want to display different sets of similar information, but not at the same time. So, you put one set on the back and one on the front and you can flip it over. it animates the transition as you can see in the low-quality .gif
source code with test program
original codeproject article
LCalc
i got an android phone a while ago, and i've been working on a calculator for it. i found that there wasn't a powerful calculator available that can do things like mod and natural logs and show you the calculation history, so i started writing one. its turned out to be a lot of work, but its pretty useful. my calculator is based off of a sablecc generated compiler, so its a lot more like matlab than a regular desk calculator.
since i often end up wanting to do calculations not on my phone, i put a java gui around the math classes and here it is.

lcalc jar file
run it with java -jar lcalc.jar
how to owner draw a UI component in java
hoo boy. i just spent like an hour trying to figure out how to draw a custom JButton. what a pain. i think i may have just searched for the wrong words since i keep thinking of it in terms of C#. the key part is the paintComponent method at the bottom. anyways, here's some code:
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.JFrame;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.*;
import java.awt.FontMetrics;
public class javaTest
{
public javaTest() {
initComponents();
}
private void initComponents()
{
AwesomeButton ab = new AwesomeButton("zomg");
ab.setSize(50, 100);
ab.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("pushed");
}
});
JFrame frame = new JFrame("button test");
frame.setLayout(new GridLayout(2, 2));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(ab);
frame.setSize(200, 200);
frame.setVisible(true);
}
public static void main(String[] args)
{
javaTest jt = new javaTest();
}
}
class AwesomeButton extends JButton
{
public AwesomeButton(String text)
{
super(text);
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
System.out.println("paint");
if(getModel().isPressed())
g.setColor(Color.black);
else
g.setColor(Color.blue);
g.fillRect(0, 0, this.getWidth(), this.getHeight());
g.drawLine(0, 0, this.getWidth(), this.getHeight());
g.drawLine(this.getWidth(), 0, 0, this.getHeight());
if(getModel().isPressed())
g.setColor(Color.blue);
else
g.setColor(Color.black);
FontMetrics fm = g.getFontMetrics();
g.drawString(getText(), this.getWidth() - fm.stringWidth(getText()),
this.getHeight() - fm.getHeight() / 2);
}
}
glCovers
Ok, I got a working alpha version of my CoverFlow clone working. It's really buggy though, so use it at your own risk. Here's a screenshot:
The biggest known issues with it right now are:
- You have to manually add records one at a time
- When you add a record, it doesn't show the cover until next time you run
- It's pretty easy to crash the app if you press the wrong button while it's playing a record
- It gets easily confused about what record you're trying to get at. Here's a hint: the text at the bottom is more reliable than the picture.
bzzVS
I've got a real problem with code versioning systems. It's that they have a lot of features. I'm not interested in that mess. So, I made a program that doesn't have any features. What I really want to do is have a thumbdrive that I store all of my versions on and I can check those versions out and modify them. So, I did that. It's called bzzVS. It's sort of lame, but I find it more useful than subversion or CVS. I guess that's since I constantly have to move code between computers that aren't networked. Anyways, once you install this program, you can drag folders onto it, and it archives them. I use it by putting the executable on a thumbdrive, and at the end of the day when I want to save some source file, I drag the folder onto that icon, and it takes care of the rest. Then, the next day, I can double-click the icon and see what versions I have. If you right-click on a version, you can check it out to any folder. Oh yeah, it's hot.
Screen ShotSource Code and Executable
Cowgirl Platform Simulator
Here's the simulation environment for my Cowgirl Platform. It's a pretty good example of how to simulate assembly code, although it's not exactly complete. I'll be working on it a little more. What I really need for it is a way to manipulate bits using C#.
Executable and Sample Assembly FileSource Code
StarScream
Here's an exciting sound experiment. It's based on Conway's Game of Life, but instead of being a boring zero-player game, it generates music. It's pretty beta right now, but I've proven to myself that it can generate interesting sounds, so I'll probably do some more work on it. Even though it's beta, it's stable, so it shouldn't crash. If it does, let me know so I can fix it.
I've just written some software to create html out of a Visual Studio project, so I've used it to create an area to browse through to code. Click on the Code Browser link below to look at it.
StarScream.zipCode Browser
Screen Shot
CodeSiter
Alright, I did some updating of this code, because I've found it to be very useful for some things, but it was barely usable. So, here are the features I've added:
- Plugin architecture for document generators
- PDF and HTML generator plugins
- Support for VS 2005 solution and project files
- Syntax coloring for PDF
- Ability to generate project summary files
- Ability to create either multiple or single files from a project
I'm pretty sure I broke some of the old features when I added these, but they weren't very useful features anyways. I don't have a lot to do today, so maybe I'll fix those.
Code Browser SampleSource and Executable