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!
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:
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:
Two projects. One is scraping and indexing data on corporations registered in tax havens, mainly for the purpose of helping transparency researchers follow the activities and connections of businessmen, politicians, etc. I've done Panama, and am now working on a couple of others:
The second project is building a decent interface to the first edition of the Oxford English Dictionary. The current edition is online, charging ~$200/year for access, but the first edition is out of copyright, sitting on archive.org, and just waiting for somebody to make it accessible without the need to download several GB of scans.
I've been working on my Z-Machine interpreter library again. It basically started as a project to turn Frotz into a Ruby extension (Frotz, probably the most popular interpreter, is written in C).
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:
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).
Right now (please call me on this sometime, it'd help me) I'm working on a clone of Burp, the industry standard web penetration testing tool, in Cocoa. I started with RubyCocoa, but I've ditched it for Objective C. It is (surprisingly) liberating to work in C after spending a year in Ruby; any time something looks expensive or naive, you just tell yourself, "what I'm doing here can't possibly be more expensive than what MRI Ruby would have done", and you go about your day. Highly recommended.
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:
Never had I felt more like I was tricking software into doing what I want to do than when I was trying to use Peach. I mean Michael's a nice guy, but you email the peachfuzz list or him personally on issues you're having and he convinces you that it's you not using the tool correctly and that you really don't want the feature you're asking. Modifying code was hellish because it's just thousands of lines of kludge, written as far from Python's usual styles as possible.
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'm working on a programming language that has builtin support for reloading code at runtime. It'll also support various ways of modifying code at runtime, like with visual interfaces. The primary usage is for making interactive graphical apps, like games.
Looks like a cool little project. You should, however take a look at how most Lisps do something similar. You appear to be trying to take it farther than most Lisps do, but do have a look so as to not reinvent the wheel.
I'm actually looking for a new name for my project, so maybe someone here will have a good idea?
It's a framework for writing, running and analyzing simulations. It could take any kind of simulation: Physics, game theory, epidemic spread, electronics, whatever.
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.
A .NET interpreter for embedded/constrained systems where MS.NET or Mono aren't suitable: http://www.dotnetanywhere.org/
It now implements most of the core .NET 2.0 spec, a usable subset of the base class library, and an implementation of a Graphics device suitable for embedded devices.
Not the fastest of .NET runtimes, but its disk/memory footprint is surprisingly small, and it (mostly) works!
I will have to give this a shot :) I've been looking for good high level ways to program embedded boards (like the Beagleboard)... definitely going to give this a try.
Right now I'm working on a natural language task management system. Basically you enter something like "12 page paper in project hist201, due apr 23 est. 8h high priority" and it understands what the hell you're trying to say: project, deadline, estimated time, priority. It also checks similar tasks (using naive Bayesian classifiers) and gets you a probability distribution of velocities (estimated / actual / relevance for a word), and supposedly, but I am still working on it, will show you a probability of finishing it on time given past history of similar workload.
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.
Great idea, I have a ton of one-off side projects I'd love to share (and get some awesome hacker critique as well)
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
I'm working on an interactive fiction framework with a web framework flavour. It's my first Ruby project and depends on Shoes for cross-platform UI. Defining rooms, items, and non-player characters is done in YAML.
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.
I'm working on an experimental semantic web browser for Android called Mosembro. The point of the project is to show that semantic meta data can be used to make some tasks much less painful to perform while using a mobile web browser.
Rudy! It's a development and deployment tool for Amazon Web Services that's configured via a Ruby DSL. It helps organize EC2 infrastructures into environments and roles (plus some other cool stuff).
environment :stage do
ami "ami-5394733a"
size 'm1.small'
role :app do
positions 2
addresses '11.22.33.44', '55.66.77.88'
disks do # EBS volumes
path "/rudy/disk1" do
size 2
device "/dev/sdr"
end
end
end
role :analyzer do
ami "ami-6aff24aa"
end
end
I'm working on implementing a hyperspatial text classifier in Haskell. It's conceptually similar to the hyperspace classifier in CRM114 (essentially a weighted nearest-neighbor search), but shouldn't crash as much or corrupt its data files. I've thought of some interesting problems to point a fast and effective classifier at that aren't spam detection.
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).
Zak, by classifier I hope you mean "categorizer". i.e. given a text and a list of categories, return which categories the text belongs to, along with a confidence number.
If so, I say chase that thought a bit. You might save me from actually messing with NLP.
Eventlet is a networking library that uses greenlet, Python implementation of
coroutines [http://codespeak.net/py/0.9.2/greenlet.html] to handle
asynchronous events in a synchronous way. Greenlet can be thought as an
analogue to Python's enhanced generator, however, without "yield" keyword
and the limitations it brings.
For the applications that are network-bounded it effectively brings Erlang-like
scalability in Python: you can spawn as many greenlets as you like (they're cheap)
(e.g. one or several per incoming connection), control their execution, etc.
If that sounds unclear, just look at the examples:
Compared to the original eventlet (home - http://wiki.secondlife.com/wiki/Eventlet)
our branch has
- a number of bugs fixed and "onions" removed
- twisted integration - you can use any twisted reactor or twisted protocol or
any other feature you like (this part is heavily influenced by corotwine)
- proc module for advanced coroutine control (spawn, link, waitall, etc)
I'm not doing any fancy compiler stuff - the target language is Haskell so that's all done for me.
*Edit: And I should probably say something about it :)
Its an s-expression based language so it looks like a Lisp and you can use macros on it, it also reads by indentation if you want it to look like Python, and then the rest of it just comes from Haskell :)
I'm working on a short product(license) key generation and validation framework for Mac OS X based on elliptic curve digital signatures. The goal is to write a replacement for AquanticPrime (which uses long RSA signatures). It's based on OpenSSL.
Working on a messaging client that integrates Twitter and GTalk... And I mean really integrates. The end user doesn't know the difference between IM and twitter but the context in which the user sends a message decides the service to use. It's C# and WPF.
Mentioned in some comment thread, but I just fixed LuckyTubes
(http://www-personal.umich.edu/~swolchok/luckytubes/), my YouTube
search/download/rip tool using youtube-dl and ffmpeg, to correctly rip
the audio stream from the downloaded video without transcoding to 64
kbps MP3 (oops). It's called LuckyTubes because it does a "feeling
lucky" YT search for the terms you type in. Code is at
http://github.com/swolchok/luckytubes/ .
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 .
Back-testing a support vector machine -based text classification system that models daily stock news, looking for mispriced volatility. A big stealth project, with just the Ruby option pricer here:
[+] [-] aboodman|17 years ago|reply
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...
[+] [-] danohuiginn|17 years ago|reply
http://ohuiginn.net/panama
http://www.ohuiginn.net/mt/2008/12/opening_up_a_tax_haven.ht...
The second project is building a decent interface to the first edition of the Oxford English Dictionary. The current edition is online, charging ~$200/year for access, but the first edition is out of copyright, sitting on archive.org, and just waiting for somebody to make it accessible without the need to download several GB of scans.
[+] [-] biohacker42|17 years ago|reply
[+] [-] Agathos|17 years ago|reply
[+] [-] Locke|17 years ago|reply
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
[+] [-] tptacek|17 years ago|reply
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
[+] [-] yan|17 years ago|reply
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.
[+] [-] barrybe|17 years ago|reply
Intro is here: http://andyfischer.github.com/circa/intro.html
code is here: http://github.com/andyfischer/circa/tree/master
[+] [-] bokonist|17 years ago|reply
[+] [-] cool-RR|17 years ago|reply
[+] [-] Zak|17 years ago|reply
[+] [-] bsaunder|17 years ago|reply
[+] [-] cool-RR|17 years ago|reply
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?
[+] [-] nimbix|17 years ago|reply
[+] [-] hipsterelitist|17 years ago|reply
http://en.wikipedia.org/wiki/Phusis
[+] [-] ericb|17 years ago|reply
analyzix.com datazics.com physulate.com runulator.com simerator.com simalyzer.com simzix.com
[+] [-] phugoid|17 years ago|reply
[+] [-] barrybe|17 years ago|reply
[+] [-] PostOnce|17 years ago|reply
[+] [-] thorax|17 years ago|reply
[+] [-] rudyfink|17 years ago|reply
[+] [-] dcminter|17 years ago|reply
[+] [-] chrisb|17 years ago|reply
It now implements most of the core .NET 2.0 spec, a usable subset of the base class library, and an implementation of a Graphics device suitable for embedded devices.
Not the fastest of .NET runtimes, but its disk/memory footprint is surprisingly small, and it (mostly) works!
[+] [-] potatolicious|17 years ago|reply
[+] [-] mannicken|17 years ago|reply
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.
[+] [-] jcapote|17 years ago|reply
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
[+] [-] mcantelon|17 years ago|reply
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
[+] [-] nimbix|17 years ago|reply
Project page: http://lexandera.com/mosembro/ Source code: http://code.google.com/p/mosembro/source/browse/
[+] [-] delano|17 years ago|reply
http://github.com/solutious/rudy
[+] [-] Zak|17 years ago|reply
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).
[+] [-] mahmud|17 years ago|reply
If so, I say chase that thought a bit. You might save me from actually messing with NLP.
[+] [-] denik|17 years ago|reply
Eventlet is a networking library that uses greenlet, Python implementation of coroutines [http://codespeak.net/py/0.9.2/greenlet.html] to handle asynchronous events in a synchronous way. Greenlet can be thought as an analogue to Python's enhanced generator, however, without "yield" keyword and the limitations it brings.
For the applications that are network-bounded it effectively brings Erlang-like scalability in Python: you can spawn as many greenlets as you like (they're cheap) (e.g. one or several per incoming connection), control their execution, etc.
If that sounds unclear, just look at the examples:
http://devel.ag-projects.com/~denis/cgi-bin/hgweb.cgi/file/t... http://devel.ag-projects.com/~denis/cgi-bin/hgweb.cgi/file/t... http://devel.ag-projects.com/~denis/cgi-bin/hgweb.cgi/file/t...
Compared to the original eventlet (home - http://wiki.secondlife.com/wiki/Eventlet) our branch has - a number of bugs fixed and "onions" removed - twisted integration - you can use any twisted reactor or twisted protocol or any other feature you like (this part is heavily influenced by corotwine) - proc module for advanced coroutine control (spawn, link, waitall, etc)
[+] [-] anc2020|17 years ago|reply
I'm not doing any fancy compiler stuff - the target language is Haskell so that's all done for me.
*Edit: And I should probably say something about it :) Its an s-expression based language so it looks like a Lisp and you can use macros on it, it also reads by indentation if you want it to look like Python, and then the rest of it just comes from Haskell :)
[+] [-] dchest|17 years ago|reply
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
[+] [-] fcoury|17 years ago|reply
http://github.com/fcoury/octopi
Documentation will be updated here as well: http://rdoc.info/projects/fcoury/octopi
[+] [-] jcbozonier|17 years ago|reply
http://github.com/jcbozonier/alloy/tree/master
[+] [-] agrinshtein|17 years ago|reply
[+] [-] swolchok|17 years ago|reply
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 .
[+] [-] bgimpert|17 years ago|reply
http://tinyurl.com/chmk7p
Need much more realism than Black-Scholes for the model training!