Frank DENIS random thoughts.

A messy list of worthy software, part #1

For a long time, when I notice something that sounds cool, I write a few words about it in a very messy text file called "tools.txt". Then, I review these tools. If they suck, they are removed from the "tools.txt" file. If they are actually cool and useful, they stay.

While I really can't share the "tools.txt" file (way too messy), I'll try to share a summary of its content on that blog. Since it's quite long, it will be split into several blog articles. Older things first.

Drawing charts on web pages

  • Open Flash Chart is a program for creating charts in Flash to display in Web pages. You can create bar, line, area, and pie charts. It also includes server side classes to help generate the data file used as input. At the moment, there are classes for PHP, Perl, and Python.

  • Google Chart API lets you dynamically generate charts using Google.

  • Gruff for Javascript : Bluff is a JavaScript port of the Gruff graphing library for Ruby. It is designed to support all the features of Gruff with minimal dependencies.

Shared calendars

  • Cosmo project aims to provide a web calendaring application to support the Chandler project. In addition, it is a content/calendar sharing server to support collaboration with Chandler users. Chandler users will be able to share calendar collections with friends who do not use Chandler, iCal or any other desktop clients by providing them with Cosmo URLs for the collections.
  • Bongo is an easy-to-use mail and calendar system, offering a simple yet powerful user interface. The goal is to make sharing, organisation, and communication simpler, quicker, and more useful.

Rescue disks

  • Super Grub Disk - We want Linux newbies to restore their new toy, but also help the Linux advanced user make potentially dangerous operations to the MBR in a safe way. Super Grub Disk is also a teaching tool to help you learn more about bootloaders and the booting process. After all, booting is the most important thing your computer does -- without the boot process, you would not have an operating system to use!

Rich Text Editors

Memory leaks


  • ModX
  • Krang - great for things like online magazines


How to use Time Machine on an unsupported network volume :

defaults write TMShowUnsupportedNetworkVolumes 1

Memory data storage

  • Memory Structure Library - MEMSL is a complete data structures/collection classes library with memory tracing, memory debugging, entry/exit tracing, exception handling, definable memory handlers, built-in thread support, and much more. It supports single, double, and circular linked lists, AVL balanced and threaded binary trees, dynamic hashing tables, stacks, queues and dequeues (using arrays or linked lists), sets (Pascal implementation, with union, difference, intersection, etc.), bags, tables and dictionaries, priority heap, priority search queue, and more.
  • JumboMem gives unmodified binaries transparent access to memory spread across multiple computers. The goal is to improve the performance of memory-hungry applications by replacing accesses to a slow paging device (a disk) with accesses to fast RAM located across a high-speed network. Unlike other memory servers, JumboMem does not need administrator privileges either to install or run.
  • CSQL is updateable bi-directional table level caching solution to improve application performance by 20-100 times. It can also be used as ultra fast stand alone SQL Main Memory Database.
  • The Erwin library is a very efficient and robust data structure template library for C and C++. No templates are used; a Perl script generates C files. Vectors (dynamic arrays), lists, and hash tables (maps) of arbitrary key and value types are provided. Several tools are included for auto-generating a C interface around C++ libraries, C++ extensions like slots/properties, symbol (=hashed string) management, sophisticated assertion macros, and documentation extraction.
  • Memagent is a simple but useful proxy program for memcached servers. Supports ketama algorithm.
  • Flared is Yet Another Memcached (but disk based). This software provides high-performance, distributed and fault tolerant objectstorage system w/ almost-memcached-compatible I/O interfaces.
  • memcache-pro is a patch memcached for adding "cget","cappend" and "cprepend" commands. cget-allow you get a key-value then clear value(not delete) in a atomic operation. cappend-allow you append a value to a key, then cut the value to the max length you set in command in a atomic operation. cprepend-allow you prepend a value to a key, then cut the value to the max length you set in command in a atomic operation.
  • memcacheq - queue service over memcache - uses BDB (unfortunately)
  • Sparrow is a really fast lightweight queue written in Ruby that speaks memcache. Sparrow keeps messages in memory, but persists them to disk, using Sqlite, when the queue is shutdown. Basic tests shows that Sparrow processes messages at a rate of around 1660 per second. The load Sparrow can cope with increases exponentially as you add to the cluster. Sparrow also takes advantage of eventmachine, which uses a non-blocking io, offering great performance.