Personal tools

User:MathematicalOrchid

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
(New projects, better formatting, etc.)
 
(2 intermediate revisions by one user not shown)
Line 1: Line 1:
'''Status''': Enthusiastic Haskell newbie.
+
=== Status ===
  +
  +
Enthusiastic Haskell newbie.
   
 
=== Main Interests ===
 
=== Main Interests ===
Line 6: Line 6:
 
* Using Haskell to do seriously compute-bounded work in a multiprocessor setup.
 
* Using Haskell to do seriously compute-bounded work in a multiprocessor setup.
   
=== Current Projects ===
+
=== Projects ===
   
* (no name) — chaos pendulum simulator (Status: moderately working, needs UI)
+
==== Active ====
  +
  +
* Toy compression implementations in Haskell.
  +
  +
==== On Hold ====
  +
  +
* ''Indoculate'' — Program to convert a single (custom) source to both HTML and LaTeX, and also do cross-linking. (Status: in production use)
  +
* ''Chaos'' — chaos pendulum simulator (Status: moderately working, needs UI)
 
* ''Haktal'' — fractal generator. (Status: minimal functionality)
 
* ''Haktal'' — fractal generator. (Status: minimal functionality)
 
* ''HoJ'' — Haskell to Java compiler. (Status: skeletal)
 
* ''HoJ'' — Haskell to Java compiler. (Status: skeletal)
 
* ''Evlor'' — Interactive Haskell step-line debugger. (Status: skeletal)
 
* ''Evlor'' — Interactive Haskell step-line debugger. (Status: skeletal)
* ''Indoculate'' — Program to convert a single (custom) source to both HTML and LaTeX, and also do cross-linking. (Status: in production use)
 
 
=== Projects On Hold ===
 
 
 
* Sorting algorithm benchmarks.
 
* Sorting algorithm benchmarks.
 
* Audio DSP in Haskell.
 
* Audio DSP in Haskell.
* [[Toy compression implementations|Haskell implementation of compression algorithms]].
 
 
* [[POV-Ray SDL project|Haskell SDL]] for [http://www.povray.org/ POV-Ray].
 
* [[POV-Ray SDL project|Haskell SDL]] for [http://www.povray.org/ POV-Ray].
   
=== Failed Projects ===
+
==== Failed ====
   
 
* Haskell ray tracer.
 
* Haskell ray tracer.
  +
* Haskell type deducer.
 
* Haskell program to cause world peace.
 
* Haskell program to cause world peace.
  +
  +
=== 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>file-algorithm</code>.)
  +
* <code>Decode algorithm file</code> (Decompress <code>file</code> using specified algorithm, and save as <code>file-unalgorithm</code>.)
  +
  +
Currently working algorithms:
  +
* '<code>RLE</code>': ''Run-length encoding''. Works well on files containing lots of 'runs' of the same value - e.g., pixel data. Works horribly on text.
  +
* '<code>BWT</code>': ''Burrows-Wheeler transform''. Doesn't actually do any compression, but tends to make data more compressible.
  +
* '<code>MTF</code>': ''Move-to-front 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>':'' Lempel-Ziv-Welch''. 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 ===
 
=== Contributed Code ===
Line 32: Line 64:
 
* [[Library for colours]]
 
* [[Library for colours]]
 
* [[Library for PPM images]]
 
* [[Library for PPM images]]
  +
* [[Toy compression implementations]]
   
 
=== Current Unsolved Questions ===
 
=== Current Unsolved Questions ===

Latest revision as of 12:36, 9 July 2007

Contents

[edit] 1 Status

Enthusiastic Haskell newbie.

[edit] 2 Main Interests

  • Using Haskell to write triposcopic mathematical algorithms with only a tiny amount of code.
  • Using Haskell to do seriously compute-bounded work in a multiprocessor setup.

[edit] 3 Projects

[edit] 3.1 Active

  • Toy compression implementations in Haskell.

[edit] 3.2 On Hold

  • Indoculate — Program to convert a single (custom) source to both HTML and LaTeX, and also do cross-linking. (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 step-line debugger. (Status: skeletal)
  • Sorting algorithm benchmarks.
  • Audio DSP in Haskell.
  • Haskell SDL for POV-Ray.

[edit] 3.3 Failed

  • Haskell ray tracer.
  • Haskell type deducer.
  • Haskell program to cause world peace.

[edit] 4 Darcs

[edit] 4.1 Indoculate

[edit] 4.2 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!

[edit] 4.3 Toy Compression

  • darcs get http://www.orphi.me.uk/darcs/ToyCompression
  • ghc -O2 --make Encode
  • ghc -O2 --make Decode
  • Encode algorithm file (Compress file using specified algorithm, and save as file-algorithm.)
  • Decode algorithm file (Decompress file using specified algorithm, and save as file-unalgorithm.)

Currently working algorithms:

  • 'RLE': Run-length encoding. Works well on files containing lots of 'runs' of the same value - e.g., pixel data. Works horribly on text.
  • 'BWT': Burrows-Wheeler transform. Doesn't actually do any compression, but tends to make data more compressible.
  • 'MTF': Move-to-front encoding. Again, doesn't compress, but makes the data more compressible.
  • 'Fib': Fibonacci codes. Low numbers take up fewer bits than large numbers.
  • 'LZW': Lempel-Ziv-Welch. 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...

[edit] 5 Contributed Code

[edit] 6 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 single-linked lists and binary trees?
  • Why is
    putStr xs1; putStr xs2
    slower than
    putStr (xs1 ++ xs2)
    ?