|
I'm developing a very simple charting library in .Net. There's probably a billion of those already, so I'm only doing it for the fun. It's all plain c#, supports a bunch of different chart types, and a has a few features like: - "Understands" equations. Adding new EquationItem("x/pi + tan(cos(x)") adds a new graph. - Automatic fitting (not having to set a x & y range) - Automatically picks matching(somewhat) colors if you don't specify how to color stuff. Uses a similar solution to that of http://colorblender.com/ A sample of stuff it can chart (without matched colors..) Here's a sample of what i used it for today. This image shows some tax-data for ~60 people. X-axis is year of birth(1940->1990) and Y-axis is income for 2006. The same data colored for gender (each vertical step is $10000).
|
# ¿ May 15, 2008 18:17 |
|
|
# ¿ May 5, 2024 08:25 |
|
Wanted to have an Android app under my belt, so I decided on a Scrabble/Wordfeud helper (one of many, I know). You enter the letters in your rack and the app finds all possible words. Wildcards and some filtering is supported. The word-cruncher is hosted on Azure, so the app itself is quite small. I tried a simple search where I loaded all the words into memory (over 300.000 in some languages), but that was way to slow to support multiple simultaneous users. A Trie structure worked wonderfully, and a search with 7 random letters against 300.000 words tok less than 20 milliseconds. Problem was that the in-memory tree took > 700MBs. The reason for this is that the words BALL, HALL and MALL all get 4 individual nodes (B-A-L-L, H-A-L-L, M-A-L-L). The solution was to tie together equal "tails" so we're left with B/H/M-(A-L-L), where the *ALL-ending is referenced 3 times, cutting the number of nodes in half (from 12 to 6). This resulted in much better memory-usage, and enabled in-memory storage of multiple dictionaries on the server. This structure is called a DAWG (yo). The serialized word-tree is 2MB for 280.000 words (using protobuf-net). Link to app: Wordwell esp fucked around with this message at 23:05 on Jan 28, 2012 |
# ¿ Jan 28, 2012 22:44 |