Ask HN: Do you have any code or projects of your own you would like to talk about instead?
Tired of other discussions dominating the front page? Tell us what you're working on right now, and please include a link to actual code. Let's get back in touch with hacking!
105 comments
[ 4.6 ms ] story [ 84.4 ms ] threadhttp://github.com/raganwald/rewrite_rails/blob/master/lib/re...
Context:
http://github.com/raganwald/homoiconic/blob/master/2009-04-2...
The last code I managed to publish was Ruckus:
http://github.com/tqbf/ruckus/
(a better description: http://wiki.github.com/tqbf/ruckus/crash-course)
Ruckus is a Ruby DSL replacement for Peach Fuzz, Mike Eddington's famous Python fuzzer library. It is distinguished by being about 100 times slower, using a DSL instead of XML, and providing a DOM-style interface to any packet format (you can tag fields, arbitrarily nested in a tree structure, with classes and id's, and then fuzz them using CSS selectors).
I have a JDWP JVM debugger (or rather a thin protocol driver) written in Ruckus if anyone's interested in seeing what it actually looks like. We never get to publish the actual protocols we build with this.
My programming "day job" (I'm one of 4 developers on the project) is Playbook:
http://runplaybook.com
Good stuff on the Burp clone. Any plans to publish it eventually?
--
As for me, the last project I was working on is a complex structure analyzer plug-in for HexFiend along with basic plug-in functionality to support it.
I don't know what I'm going to do with the Burp clone, but if you ask me for it, I'll hand it over. =)
Do you want help on wiring to hexfiend?
Intro is here: http://andyfischer.github.com/circa/intro.html
code is here: http://github.com/andyfischer/circa/tree/master
One thing is automatically preserving state across a reload. This is really hard if I allow the programmer to store state any way that they want- I can't tell which things I should preserve. So the language forces the programmer to declare their stateful things in a special way.
Another thing is introspecting on code. I want to be able to click an image and then see all of the calculations that went in to that image's position (maybe so that I can change them). But this is pretty hard in most languages. Aliasing makes it hard. So this language discourages operations which are hard to introspect.
So I could theoretically support Ruby or something, but it would turn out to be "not really Ruby", because there would be a lot of stuff you wouldn't be allowed to do.
It's a great engine in general: http://unity3d.com
... and you have about a 1/3 chance of it crashing if you are using the recompile on the fly as you edit.. command p, alt+tab, save, alt+tab, command p...
I've written a simple ruby worker management "framework" known as theman, which is a thin wrapper atop rufus-scheduler and god: http://github.com/jcapote/theman
Also, there's fieldy, a simple fixed-width field reader/writer library for ruby exposed as DSL: http://github.com/jcapote/fieldy
Lastly is AtomLog, a way to parse and expose ruby's Logger output to an atom feed: http://github.com/jcapote/atomlog
http://src.chromium.org/viewvc/chrome/trunk/src/chrome/brows...
And what I've been working on most recently is the code that renders little HTML-based toolbars. My most recent change fixed a race that caused them to not render correctly on the first run:
http://src.chromium.org/viewvc/chrome?view=rev&revision=...
I think one of the coolest parts of the system is the way that api methods are routed from JS running in extension processes to the browser process and back. The core of that is here:
http://src.chromium.org/viewvc/chrome/trunk/src/chrome/brows...
The code has undergone quite a few transformations now. Frotz uses a lot of static memory -- it's basically setup to run a single zcode program at a time. Which makes sense, of course.
For my library, I wanted to be able to run more than one program (or multiple copies of the same program) at the same time. So, I basically rewrote the core of Frotz. All the memory for a Z-Machine is broken up into structs which are passed around.
There were some fun memory management issues related to running multiple programs. The typical zcode program consists mostly of static memory (lots and lots of strings and code), so that static memory can be shared between programs. I have a test where I load something like 100,000 copies of minizork into memory and the process size "only" jumps to 118MB. Of course, normal code doesn't need that many simultaneous Z-Machine instances so garbage collection keeps memory pretty reasonable.
Last time I worked on dorothy, I setup a demo webapp here:
http://ifrotz.org
Which illustrates why I wanted to be able to run multiple programs. The demo runs minizork, dynamic memory is dumped and restored between requests. The hints, exits, and history feature is possible because the server "listens in" on your game and the games others have played.
Lately I've been working on more memory inspection stuff, and now I have to work on some of the unfinished Z-Machine features (I've only implemented the v3 screen model).
The code is on Github:
http://github.com/eki/dorothy/tree/master
No code for this project, but UmBus (http://mbusreloaded.com/umbus) is my pet project to let UMich students get the GPS-estimated arrival times for the uni buses via text messaging. If I weren't so late to the party, I would try to compete with www.nextbus.com .
It's a framework for writing, running and analyzing simulations. It could take any kind of simulation: Physics, game theory, epidemic spread, electronics, whatever.
It's in Python.
This is where it currently lives:
http://github.com/cool-RR/physicsthing/tree/master
(Keep in mind it's still a very young project)
The readme there was written when I had mostly physics simulations in mind. Now I've generalized the project to take any kind of simulation. I'll update the readme soon to reflect that, but I would really like to find a good name. Maybe something with a suffix or prefix of "Sim", but maybe not.
Anyone has any ideas?
http://en.wikipedia.org/wiki/Phusis
analyzix.com datazics.com physulate.com runulator.com simerator.com simalyzer.com simzix.com
Project page: http://lexandera.com/mosembro/ Source code: http://code.google.com/p/mosembro/source/browse/
I'm about midway through the project and, as a test and demo for the platform, am converting the 1978 game "Pirate Adventure" to the framework. Once the framework is done my partner and I plan to use it to create an adventure game based on the fashion world. This will inevitably lead to a movie deal and untold riches.
All in all, it has been fun, educational, and a nice break from my day job wrangling Drupal.
The code (so far) lives here:
http://github.com/mcantelon/fashion-quest/tree/master
http://ourdoings.com/2009-04-14
I'm using tipjoy to create an innovative revenue model.
http://github.com/fcoury/octopi
Documentation will be updated here as well: http://rdoc.info/projects/fcoury/octopi
The goal is to be able to either Tweet your new tasks, add them in bulk (several lines), or even do something like "http://taskulus.com/12 page paper in project hist201 due apr 23 est 8h high priority" and then receive a lot of analysis.
http://github.com/jcbozonier/alloy/tree/master
Practical, no. Fun, YES.
I am going back to 5 year old notes on instruction scheduling and using the same code and algorithms to deliver targeted advertisement on the net.
I hope I don't come across as rude and evasive if I said "sorry, can't give any more info; just think hard about it" :-) ]
Code: http://github.com/dchest/ellipticlicense/tree/master currently in pre-alpha stage.
Would love to get code/security review!
Also I recently wrote a very simple Bayesian classificator for spam in Python: http://github.com/dchest/pybayesantispam/tree/master
http://github.com/isaacs/k7
I'm also working on a library/framework in Clojure for apps that process a folder full of files in some way. The idea grew out of a Clojure program I wrote to make a folder full of images greyscale (http://github.com/zakwilson/imagesieve/tree/master).
If so, I say chase that thought a bit. You might save me from actually messing with NLP.
The thing is 100% statistical right? It doesn't know anything about the grammar of a natural language (say, English.) right?
The
The quick
The quick brown
The quick ... jumped
would all be features of the input "The quick brown fox jumped over the lazy dog".
It doesn't know anything about grammar, though as a performance optimization it might be useful to limit the length of features to detectable sentence boundaries. I intend to make that behavior optional. More information here: http://crm114.sourceforge.net/docs/KNN_Hyperspace_Filters/KN...
http://benjamin-meyer.blogspot.com/2008/10/git-hooks.html
http://github.com/emezeske/gpufrac/tree/master
Structural engineering software. Python-C++ mix. Wish I could say more, but can't. :)
I "write" one web server a day, mostly customizing hunchentoot in some way. I have it malleable and obedient; nothing like having total mastery over your tools. I am at the point where I can look at a Lisp web app and I can see the cost of each form; thanks to weeks of disassembly, tweaking and benchmarking.