Difference between revisions of "User:MathematicalOrchid"
From HaskellWiki
(8 intermediate revisions by 2 users not shown)  
Line 1:  Line 1:  
−  '''Status''': Enthusiastic Haskell newbie. 

+  === Status === 

−  '''Main Interests''': 

+  Enthusiastic Haskell newbie. 

−  * Using Haskell to write triposcopic mathematical algorithms in tiny amounts of code. 

+  === Main Interests === 

+  
+  * Using Haskell to write triposcopic mathematical algorithms with only a tiny amount of code. 

* Using Haskell to do seriously computebounded work in a multiprocessor setup. 
* Using Haskell to do seriously computebounded work in a multiprocessor setup. 

−  +  === Projects === 

−  * Haskell to Java compiler. 

+  ==== Active ==== 

−  * Interactive Haskell stepline debugger. 

−  * Program to convert my custom markup to HTML and LaTeX. 

−  '''Projects On Hold''': 

+  * Toy compression implementations in Haskell. 

+  ==== On Hold ==== 

+  
+  * ''Indoculate'' — Program to convert a single (custom) source to both HTML and LaTeX, and also do crosslinking. (Status: in production use) 

+  * ''Chaos'' — chaos pendulum simulator (Status: moderately working, needs UI) 

+  * ''Haktal'' — fractal generator. (Status: minimal functionality) 

+  * ''HoJ'' — Haskell to Java compiler. (Status: skeletal) 

+  * ''Evlor'' — Interactive Haskell stepline debugger. (Status: skeletal) 

* Sorting algorithm benchmarks. 
* Sorting algorithm benchmarks. 

* Audio DSP in Haskell. 
* Audio DSP in Haskell. 

−  * Haskell implementation of compression algorithms. 

+  * [[POVRay SDL projectHaskell SDL]] for [http://www.povray.org/ POVRay]. 

−  * Haskell DSL for [http://www.povray.org/ POVRay]. 

−  +  ==== Failed ==== 

−  * Haskell fractal generator. 

* Haskell ray tracer. 
* Haskell ray tracer. 

+  * Haskell type deducer. 

* Haskell program to cause world peace. 
* Haskell program to cause world peace. 

−  '''Current Unsolved Questions''': 

+  === Darcs === 

+  
+  ==== Indoculate ==== 

+  
+  * <code>darcs get http://www.orphi.me.uk/darcs/Indoculate</code> 

+  * <code>ghc make MakeHTML</code> 

+  * <code>ghc make MakeSite</code> 

+  * <code>ghc make MakeLaTeX</code> 

+  * Comes with a minimal manual. (<code>Manual.html</code> in the darcs repo.) 

+  
+  ==== Chaos pendulum simulator ==== 

+  
+  * <code>darcs get http://www.orphi.me.uk/darcs/Chaos</code> (Chaos pendulum simulator.) 

+  * <code>ghc O2 make System1</code> 

+  * <code>System1</code> 

+  * Go have a cup of tea, what some TV, go to bed, come back next day, and it might have finished. Will draw 500 frames at 200x200 pixels each, and save them as PPM image files. Make an animation out of these, and enjoy the light show! 

+  
+  ==== Toy Compression ==== 

+  
+  * <code>darcs get http://www.orphi.me.uk/darcs/ToyCompression</code> 

+  * <code>ghc O2 make Encode</code> 

+  * <code>ghc O2 make Decode</code> 

+  * <code>Encode algorithm file</code> (Compress <code>file</code> using specified algorithm, and save as <code>filealgorithm</code>.) 

+  * <code>Decode algorithm file</code> (Decompress <code>file</code> using specified algorithm, and save as <code>fileunalgorithm</code>.) 

+  
+  Currently working algorithms: 

+  * '<code>RLE</code>': ''Runlength encoding''. Works well on files containing lots of 'runs' of the same value  e.g., pixel data. Works horribly on text. 

+  * '<code>BWT</code>': ''BurrowsWheeler transform''. Doesn't actually do any compression, but tends to make data more compressible. 

+  * '<code>MTF</code>': ''Movetofront encoding''. Again, doesn't compress, but makes the data more compressible. 

+  * '<code>Fib</code>': ''Fibonacci codes''. Low numbers take up fewer bits than large numbers. 

+  * '<code>LZW</code>':'' LempelZivWelch''. Works well on just about everything! 

+  
+  Notes: 

+  * Danger: BWT is ''extremely'' slow. It also uses ''absurd'' amounts of RAM! Run this algorithm only on small files. (Less than about 10 KB.) 

+  * LZW works very well, but BWT+MTF+Fib is currently unbeaten... 

+  
+  === Contributed Code === 

+  
+  * [[Library for binary]] 

+  * [[Library for vectors]] 

+  * [[Library for colours]] 

+  * [[Library for PPM images]] 

+  * [[Toy compression implementations]] 

+  
+  === Current Unsolved Questions === 

−  * Why do Haskell extensions exist? 
+  * Why do Haskell language extensions exist? 
* How do you do graphics in Haskell? 
* How do you do graphics in Haskell? 

−  * Why does Hugs crash so much? 

+  * How come (e.g.) Smalltalk provides 27 different types of collection, but Haskell only ever involves singlelinked lists and binary trees? 

−  * How come (e.g.) Smalltalk provides 27 different types of collection, but in Haskell nobody ever using anything except a singlelinked list or a tree? 

+  * Why is <hask>putStr xs1; putStr xs2</hask> slower than <hask>putStr (xs1 ++ xs2)</hask>? 

−  * Is <hask>putStr xs1; putStr xs2</hask> faster or slower than <hask>putStr (xs1 ++ xs2)</hask>? 
Latest revision as of 12:36, 9 July 2007
Contents
Status
Enthusiastic Haskell newbie.
Main Interests
 Using Haskell to write triposcopic mathematical algorithms with only a tiny amount of code.
 Using Haskell to do seriously computebounded work in a multiprocessor setup.
Projects
Active
 Toy compression implementations in Haskell.
On Hold
 Indoculate — Program to convert a single (custom) source to both HTML and LaTeX, and also do crosslinking. (Status: in production use)
 Chaos — chaos pendulum simulator (Status: moderately working, needs UI)
 Haktal — fractal generator. (Status: minimal functionality)
 HoJ — Haskell to Java compiler. (Status: skeletal)
 Evlor — Interactive Haskell stepline debugger. (Status: skeletal)
 Sorting algorithm benchmarks.
 Audio DSP in Haskell.
 Haskell SDL for POVRay.
Failed
 Haskell ray tracer.
 Haskell type deducer.
 Haskell program to cause world peace.
Darcs
Indoculate

darcs get http://www.orphi.me.uk/darcs/Indoculate

ghc make MakeHTML

ghc make MakeSite

ghc make MakeLaTeX
 Comes with a minimal manual. (
Manual.html
in the darcs repo.)
Chaos pendulum simulator

darcs get http://www.orphi.me.uk/darcs/Chaos
(Chaos pendulum simulator.) 
ghc O2 make System1

System1
 Go have a cup of tea, what some TV, go to bed, come back next day, and it might have finished. Will draw 500 frames at 200x200 pixels each, and save them as PPM image files. Make an animation out of these, and enjoy the light show!
Toy Compression

darcs get http://www.orphi.me.uk/darcs/ToyCompression

ghc O2 make Encode

ghc O2 make Decode

Encode algorithm file
(Compressfile
using specified algorithm, and save asfilealgorithm
.) 
Decode algorithm file
(Decompressfile
using specified algorithm, and save asfileunalgorithm
.)
Currently working algorithms:
 '
RLE
': Runlength encoding. Works well on files containing lots of 'runs' of the same value  e.g., pixel data. Works horribly on text.  '
BWT
': BurrowsWheeler transform. Doesn't actually do any compression, but tends to make data more compressible.  '
MTF
': Movetofront encoding. Again, doesn't compress, but makes the data more compressible.  '
Fib
': Fibonacci codes. Low numbers take up fewer bits than large numbers.  '
LZW
': LempelZivWelch. Works well on just about everything!
Notes:
 Danger: BWT is extremely slow. It also uses absurd amounts of RAM! Run this algorithm only on small files. (Less than about 10 KB.)
 LZW works very well, but BWT+MTF+Fib is currently unbeaten...
Contributed Code
 Library for binary
 Library for vectors
 Library for colours
 Library for PPM images
 Toy compression implementations
Current Unsolved Questions
 Why do Haskell language extensions exist?
 How do you do graphics in Haskell?
 How come (e.g.) Smalltalk provides 27 different types of collection, but Haskell only ever involves singlelinked lists and binary trees?
 Why is
putStr xs1; putStr xs2
slower thanputStr (xs1 ++ xs2)
?