Here's how to build your own fast USB/Serial-based EPROM/EEPROM/Flash programmer you have a spare Atmega microcontroller, FTDI cable or board and a few serial-in/parallel-out shift registers. The article contains schematics and platform-independent software.
Python
mcasm — A Microcode Assembler
This is a simple microcode assembler (or microassembler). It can be used to generate wide, horizontal microcode ROMs for relatively simple CPU architectures. Using a description of the microcode, it generates one or more ROM, EPROM, EEPROM, Flash et cetera images suitable for inclusing in a software emulator, a hardware device, or for use in a hardware description language such as Verilog or VHDL.
ROMtools — Create ROM tables with Python
If you're building complex hardware devices like home-designed CPUs, this may come in handy! Prototyping home-designed CPUs isn't an easy task at all. One might say designing one is difficult, but let's assume you've already done that. State machines and function generation can be a nightmare to debug.
Convert TTY encodings with ttyconv
This is a convenient little hack based on GNU iconv. Unlike that utility, which converts files, TTYConv converts interactive sessions, performing two-way conversion and taking care of other issues with interactive sessions.
Pascal's Triangle in Python
You need to generate Pascal's Triangle in Python, and you're lazy (an admirable trait). Alternatively, you're looking for a Pascal's Triangle generator that can show really high-ranking rows, ones with multi-hundred-digit (or multi-million-digit) coefficients.
Pascal's Triangle for LaTeX
You need to display Pascal's Triangle in a LaTeX document and whenever you hear ‘ampersand’ or ‘smallskip’, you go into a homicidal rage, leaving behind you a trail of viscera and blood-stained Lion Book pages. Also, you're lazy. Put that chainsaw down, this recipe is for you.
Python Bindings for DungeonSpawn
This project aims to bring the power of DungeonSpawn to Python. It originally started as a set of bindings for DungeonMaker, but my own needs steered it away from that and prompted various extensions to the original code.
