Ask HN: Show us your abandoned (and probably incomplete) side projects

72 points by fotcorn ↗ HN
I think most of us have some abandoned projects collecting dust on Github. Post them here so others can work on it or you even get enough motivation to start working on it again.

For example, I started an user mode network stack in Python: https://github.com/fotcorn/pynetworkstack which responses to ping requests, but nothing more.

60 comments

[ 5.5 ms ] story [ 118 ms ] thread
Command-line n-dimensional plot tool-- it works, but haven't touched it in ages:

http://adam.ierymenko.name/flatland.shtml

https://github.com/adamierymenko/flatland

An evolvable code artificial life engine that I wrote while in college-- its quite sophisticated and still runs:

https://github.com/adamierymenko/archis

Nanopond is another, an attempt to condense the above into its smallest possible essence and in C. A number of folks have ported it to other languages, and I got one e-mail a while back that they were using it for burn-in testing on some supercomputing hardware at Lawrence Livermore:

http://adam.ierymenko.name/nanopond.shtml

Java n-dimensional array library-- also works but haven't touched in a long time:

https://github.com/adamierymenko/hyperdrive

http://github.com/Hardmath123/nearley -- A (rather powerful) JS parser generator. I lost interest in optimizing it; all the papers on optimizing Earley parsers are intimidating… I'd be really grateful if someone could either explain them to me, or even go ahead and implement them.
Developed this "Remote firewall as a web service. REST API for iptables" https://pypi.python.org/pypi/rfw but later changed the concept to pull the firewall rules instead of pushing them. Still some TODOs in the code for extra functionality but it worked well live.
Summarizing / skimming tool: http://bookshrink.com. I wanted to write a browser extension that took advantage of the tech, never got around to it. Even a nice "enter any website URL and get the text of that page summarized" would be better than the current "paste things into this text box" approach. Considered building a speed-grading tool for teachers, too. All open source at https://github.com/peterldowns/bookshrink if you're interested in the code.
Very nice. I tried it against some of my blog posts and I really like the snippets it produced.

What licence is the code under? I would like to take some sections of it.

I'm glad you think it's interesting! Just pushed a LICENSE file (MIT). Let me know if you build anything cool :)
Thank you. Have emailed you with the details of what I am doing.
Here's a simple scripting language inspired by Apache Pig. It implements some of the most useful operators including FOREACH, FILTER, GROUP, SORT, in addition to the LOAD and STORE operators.

While it doesn't use Hadoop, you can run it standalone to process datasets using the Pig model.

https://code.google.com/p/piglet-mtj/

Open Pixel Platformer: https://github.com/DDR0/open_pixel_platformer A sample game using a custom engine. However, the organizer, Hapiel iirc, got busy. I got busy and couldn't take over, but it had some nice support from the artists at Pixel Joint, and I'd be willing to continue implementation work on it. I don't feel I have the time at the moment to organize it, though. Currently, you can walk around, and ctrl-e gets you an editor.

Editabled, the editable pixel editor: https://dl.dropboxusercontent.com/u/138485812/editabled/full... (live demo) Broken on chrome, because they effed around with web workers. So I need to look at that. It's basically a JS-based rendering engine. If you look closely, you'll note the lines you draw aren't antiailiased, which lines drawn with the canvas2d API are. Fast compositing engine using typed arrays. Async rendering using Web Workers. Infinite canvas, you can scroll with the arrow keys and no matter how large it gets it never seems to slow down. ^_^ Potential, might have the time to pick it up again, but that was before I was properly employed. Very technical atm, but I might get back around to it in a bit. :/ That's about it here. There's also http://ddr0.github.io/cube%20trains/index.html, my attempt at an indie game, which is downloadable from Github. I am no marketer, so I only sold a handful of units. (ie, I can count sales on one hand) Also available on http://ddr.itch.io/cube-trains. There's more potential here, and I think it's pretty easy to extend. The game comes with an editor, so you can make and share your own maps. Sort of cute, really pushing my graphics abilities, and ended up with it's own pathing algorithm which I never did add the people for. It was scheduled for v2, but I was pretty tired of the project by then.

Eh, hardly an impressive folder compared to some of this stuff (nanopond), but oh well.

Update: Both hands. This week in emails, some people bought it off of the itch.io site.
For my first go project, I decided to emulate Perl's popular Params::Validate library: https://github.com/joslinm/validate

Honestly though, I got sick of go and sick of writing the library. I'm not much of a fanboy of anything, but ya generics. They woulda been nice. I operated on the blank interface type a lot, and it's honestly just annoying doing all those case statements checking what type it is when I coulda just wrote a polymorphic method for the types I support. I always read on here though that you gotta adapt to the go style.. so maybe there's some more elegant way to go about it than I was, but meh, not worth diving into for me personally.

Now I'm writing my first Scala library and I looove Scala! I'm taking this library very seriously and expect to have a Show HN within a month or two.

An ECMAScript to C compiler. Sort of the inverse of Emscripten. The goal was to compile ECMAScript to LLVM IR but it's not quite there yet. It currently implements version 5.1 and nearly has full test262 coverage: https://github.com/kindahl/descripten
This one could actually be very useful for selectively optimising JavaScript modules by transpiling to C, optimising it, then transpiling it back with Emscripten.

For that kind of work it doesn't need to be perfect. The output doesn't even need to compile first time. It's just a way to save time by starting with a scaffold and refactoring, rather than writing from scratch.

Not sure if I'll get around to forking it anytime soon, but I've bookmarked it for future reference, as I could see myself using it in the not-too-distant future.

When Flickr announced 1TB of free storage, I thought it'd be funny to build a way of mounting it as a filesystem which encoded your files as pictures. It reliably stores files and trees, I just never finished up the FUSE binding:

https://github.com/zackbloom/flickrfs

https://github.com/infincia/TokenTools

A small bit of python built to use the (hopefully true/reliable/trustworthy) hardware RNG in most cryptographic tokens/smartcards, to feed the Linux kernel entropy pool (which /dev/random pulls from, etc). I built it to replace an older, (now completely unusable) C program for the same purpose called CardRand, which is mentioned and linked to in the project. TokenTools uses standard PKCS#11 libraries (even binary, proprietary ones) to handle talking to smartcards, so it should be broadly compatible and non-fragile, whereas CardRand wasn't.

TokenTools isn't strictly "abandoned", and it does work pretty well I've been using it for a long time but I haven't touched the code in a while and it could probably use some testing with different cards and PKCS#11 libraries.

https://github.com/infincia/NetRNG

A client/server python system that uses the (again, hopefully trustworthy) hardware RNG found on inexpensive ARM boards like the Raspberry PI and Beaglebone to provide entropy samples to other machines on a LAN, and again feed them into the Linux kernel entropy pool there. I've been using this one for a long time too. However there are 2 branches, one based on ZeroMQ which I use, and the other which directly uses sockets. The socket branch has some issues directly related to the socket communication, which is why I'm not using it myself but I'd like to go that route and drop ZeroMQ for a variety of reasons.

I have a bit of an obsession with RNGs :)

I created a free mini-book (in Spanish) about development and packaging of desktop applications for Ubuntu, including examples in C, Python, C# (using Mono) and Java. It's outdated now, probably easy to update to cover some of the latest changes.

https://github.com/dfuenzalida/desarrollo-ubuntu/

Also, long ago I used to download files which were too large to be transfered to another PC over the network, some even didn't fit the USB thumb drives I had at hand; so I created this desktop app which splits large files into smaller volumes, which you can copy around easier and then use the same program to join the pieces and get the original file.

I was very happy to receive requests from other people who contributed with traslations to the UI messages.

It's written in Python (not very elegantly) and I haven't touched it in ages:

https://github.com/dfuenzalida/gtkfilesplitter

Finally, another small project: a plugin for the gEdit text editor which shows the git branch of the file being edited (if any). It should still work in the most recent GNOME desktops, but I do most of my editing in other text editors now.

https://github.com/dfuenzalida/gedit-git-branch-statusbar

Here's a few days work attempting to clone Master of Orion in javascript:

http://www.expatsoftware.com/orion/orion.html

It's quite playable (though save/load don't work), and surprisingly hard to beat the AI. Sadly, it seems completely useless on a mobile device since it relies on the mousewheel for zooming. [Edit: mousewheels are things people used to scroll and zoom with back in 2009 before they realized they could just pinch the screen.]

Give it a big galaxy with lots of planets then let the various AIs fight each other at full speed.

(comment deleted)
https://github.com/senotrusov/march

A social content creation tool with cartography features.

A document consist of sections, sections contain paragraphs. One single paragraph may have many instances across different documents.

Users can repost paragraphs, createdby someone else. When the original author updates the paragraph then that update propagates to all the instances.

Similar, one section may simultaneously exists in different documents. Any changes in that section are visible in all that documents.

Forced anonymity but you can track individual contributor in the scope of a single discussion (visible user ids started from 1 for each thread).

https://github.com/senotrusov/workety - A library to run Ruby classes as daemons. Process start, signal handling, logfile/pidfile, restart by watchdog, exception handling, reporting to Airbrake and Exceptional, Rails environment load, multithreaded workers.

https://github.com/senotrusov/redis-call - A Ruby library to access Redis using Hiredis takes care of thread-aware connections, handy API for keys' names construction, transactions and queues.

https://github.com/kennethrapp/phasher - a perceptual hashing class for PHP, abandoned because I suck at algorithms. It's also old and badly written. But it works and for some reason people fork it so have fun.

https://github.com/kennethrapp/journalist - general purpose livejournal client (PHP), created so I could write my own blog client for my website and crosspost, but I no longer really care about livejournal so meh.

https://github.com/kennethrapp/embedbug - page crawler and attempt at an open souce embed.ly-ish plugin (PHP) - it does work but every project i've started which uses it has been abandoned because I don't have the time.

I've currently got a PHP/Laravel clone of Hacker News which kind of sort of works but not well enough that I'd want to push it to github unless people really want to dig into that. I barely work on it anymore and there's no documentation all.

Also i'm working on some c++ and C# projects, including a todo list based on my final project this semester. I'll probably either post it in a week or two or just forget it ever happened.

And this (https://gist.github.com/kennethrapp/0ef17d2145f2a6e38cca) was going to be a general purpose Hacker News userscript. I got as far as getting the callbacks to work before just giving up and using other people's already working scripts. Someone might find it useful.

Originally abandoned https://github.com/andrewchambers/pycc which is a C compiler in python.

Swapped work to this:

https://github.com/andrewchambers/cc A C preprocessor and a C parser, both partially complete.

All in Go. Want to finish this, but sometimes go a week or two with no work.

Various mips emulators:

https://github.com/andrewchambers/cmips (boots linux, I intended to compile it with emscripten)

https://github.com/andrewchambers/luamips (Not as complete as cmips, i intended for it to boot inside gmod)