software

i wrote the following software/documentation for various projects. they are released under GPL.

  1. Tweaker - A convenient frontend for Stochastirator.
  2. stochastirator is a stochastic mathematical framework to simulate chemical and biological reaction networks. in stochastirator, the reactions can be run at different "rates". running the reactions at different rates might lead to interesting insights about the simulated system. however, changing the rates for different reactions, executing and plotting the results manually can be tedious, as the number of possible combinations can be huge.

    this perl script is an attempt in automating this tweaking process. this script runs the reactions under specified parameter ranges and produces a single postscript file that contains the plots of each run. since all the runs are in a single file, results can be conveniently browsed thru.

    Click here to download: tweaker.tar.gz

  3. Simulpic 2.0 - Microchip PIC 16F84 Simulator
  4. Simulpic was originally written by Tommaso Cucinotta, Alessandro Evangelista and Luigi Rizzo. Their code was simulating Microchip PIC 16C84, a microcontroller that has been obsoleted by 16F84. i upgraded the code to simulate 16F84 and fixed some of the bugs in the system. also, added docs in english (courtesy: Stefan Marti). Here is the latest version: simulpic.tar.gz

    i could hear you saying why another 16F84 simulator when there is gpsim and others. i think the significance of Simulpic lies in its simplicity; the system is easy to understand, use and modify. i built a distributed embedded system simulator that is composed of thousands of 16F84's and i found Simulpic to be amenable to hacking. you might find it useful as a stand-alone simulator and/or as a building block for more complex systems.

  5. KSS- Kernel Socket Server
  6. to cope with the demand for faster webservers, developers have created servers that run in kernel space to get better performance. the article, The Design of an In-Kernel Server is a good introduction to this approach. The paper The TUX web server: An analysis presents an analysis of one of the kernel space webservers. i have written a skeleton kernel space server that can be customized to the application needs. you need to add the code for parsing header and data to make it work for your needs. here is skeletal Kernel Space Socket server: kss.tar.gz

  7. RLE Compression/Decompression Library
  8. i was looking for 16-bit rle encoding/decoding libraries. i couldn't find any (i guess i have to improve my googling skills). i wrote this library. rle.tar.gz will be released soon.

  9. Custom File Reader in Java
  10. i wrote these java classes for reading files of fixed-length records. fields in the record can be accessed using their *unique* names. here it is: fileutils.tar.gz.

  11. Driver for Optrex LCD Module DMC 20481
  12. optrex-lcd-driver.zip is a driver written using CCS C for the Optrex LCD Module. this driver was tested on Microchip PIC 18 series devices. it can be easily modified to run on other PIC devices.

  13. Intel HexFile Parser in Java
  14. HexFileParser.java is a simple java class that allows you to read Intel Hex Files, which are popular in the microcontroller world.