https://wiki.haskell.org/api.php?action=feedcontributions&user=Lenny222&feedformat=atomHaskellWiki - User contributions [en]2024-03-19T11:23:37ZUser contributionsMediaWiki 1.35.5https://wiki.haskell.org/index.php?title=Applications_and_libraries/Graphics&diff=57005Applications and libraries/Graphics2013-10-16T06:43:45Z<p>Lenny222: /* Libraries */ Chjlor does not exist anymore</p>
<hr />
<div>Dealing with graphics, drawing and graphics file formats. For information about libraries for graphical user interfaces, see [[Libraries and tools/GUI libraries|GUI libraries]].<br />
<br />
== Applications ==<br />
<br />
;[http://haskell.org/Blobs/ Blobs diagram editor]<br />
:Blobs is a diagram editor for directed graphs. It is written in Haskell, using the platform-independent GUI toolkit wxHaskell. Blobs is a front-end for drawing and editing graph diagrams.<br />
<br />
;[http://www.comlab.ox.ac.uk/ian.lynagh/Fraskell/ Fraskell]<br />
:A Haskell program that generates images of the Mandelbrot set.<br />
<br />
=== Ray tracing ===<br />
<br />
<!--<br />
;[http://www.cse.unsw.edu.au/~cgray/banky/ Banky : Monte Carlo ray tracing]<br />
:A monte carlo ray tracer in Haskell. Monte-Carlo ray-Tracing uses random and quasi-random techniques for improved image synthesis. Monte-carlo ray-tracers simulate global illumination and eliminates the ambient term. It does this using a set of random techniques to simulate an integration model of illumination, which is far more realistic.<br />
--><br />
<br />
;[[HRay]] A Haskell ray tracer<br />
:HRay, a ray tracer in Haskell. The goal is to show how elegant, short and maintainable a ray tracing implementation would be in a functional language, as opposed to an imperative or procedural language. It uses a formal model for the application, using the functional and declarative formalism Funmath <br />
<br />
;[http://benny.kramekweb.com/hrayt/ hrayt, A Haskell Raytracer]<br />
:A Haskell ray tracer in only a few hours.<br />
<br />
;[http://www.nobugs.org/developer/htrace/index.html Htrace, A Haskell Raytracer]<br />
:A 1 day raytracer.<br />
<br />
;[http://www.cs.mu.oz.au/~bjpop/code.html bjpop-ray]<br />
:A simple raytracer using wxHaskell for the GUI.<br />
<br />
;[http://groups.csail.mit.edu/graphics/classes/6.837/F99/projects/reports/team06.pdf Parallel Ray Tracing in pH]<br />
:A parallel ray tracer, using the parallel Haskell<br />
<br />
;Galois Ray Tracer from ICFP '00<br />
:A Galois Connections team submitted a ray tracer entry in Haskell in the 2000 ICFP contest<br />
<br />
;[http://www.macs.hw.ac.uk/~gnik/apset/ray_tracer.lhs A Ray Tracer for Spheres]<br />
:David King's Haskell port of an Id ray tracer from the Impala suite<br />
<br />
;[http://syn.cs.pdx.edu/~jsnow/glome Glome]<br />
:A ray tracer written by Jim Snow with a modern acceleration structure and a variety primitive types.<br />
<br />
== Libraries ==<br />
;[http://dockerz.net/software/chart.html Chart Library]<br />
: A simple library for drawing 2D charts, implemented in Haskell, using the [http://cairographics.org/ Cairo] graphics library for rendering. [http://hackage.haskell.org/package/Chart On Hackage]<br />
<br />
;[[Diagrams]]<br />
:Provides an embedded domain-specific language (EDSL) for creating simple pictures and diagrams in Haskell.<br />
<br />
;[http://hackage.haskell.org/package/funcmp Functional Metapost]<br />
:Functional Metapost is a Haskell binding for MetaPost, the powerful but cumbersome graphics language.<br />
<br />
;[http://www.conal.net/Fran/ Functional Reactive Animation]<br />
:FRAN is a Haskell library (or "embedded language") for interactive animations with 2D and 3D graphics and sound. It runs on Hugs under Windows 95 and Windows NT, using Win32 graphics (GDI).<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/gd GD bindings]: Bindings to a small subset of the GD graphics library.<br />
<br />
;[http://hackage.haskell.org/package/gloss Gloss]:<br />
:Get some simple vector graphics on the screen with a minimum of fuss. Gloss comes with a large number of [http://code.ouroborus.net/gloss/gloss-stable/gloss-examples/ examples] in the [http://hackage.haskell.org/package/gloss-examples gloss-examples] package.<br />
<br />
;[http://hackage.haskell.org/package/gloss-raster Gloss-raster]:<br />
:Renders raster images in parallel using the Repa array library. Gloss-raster can be used as a partial replacement for the "Processing" Java library.<br />
<br />
;[[GPipe]]<br />
:A functional graphics API for programmable GPUs.<br />
<br />
;[[Grapefruit]]<br />
:Grapefruit is a library for programming graphical animations and GUIs in a declarative way. It is based on the concepts of [[Functional Reactive Programming]].<br />
<br />
;[http://lambdacube3d.wordpress.com/ LambdaCube 3D]<br />
:LambdaCube 3D is a domain specific language and library that makes it possible to program GPUs in a purely functional style.<br />
<br />
;[http://www.haskell.org/haskellwiki/HaskLS L-systems]<br />
:A Haskell implementation for Lindenmayer Systems (L-systems). The goal is to implement L-systems in Haskell, and provide a way to visualize them using HOpenGL.<br />
<br />
;[http://haskell.org/haven/ Haven] (broken link)<br />
:Scalable Vector Graphics for Haskell. Portable, device-independent, resolution-independent library, including support for affine transformations, Bezier curves, fine-grained control of pen attributes, bounds and intersection tests, constructive area geometry, anti-aliased rendering, outline fonts, etc.<br />
<br />
;[http://vis.renci.org/jeff/hieroglyph/ Hieroglyph]<br />
<br />
;[http://haskell.org/HOpenGL/ HOpenGL]<br />
:HOpenGL is a Haskell binding for the OpenGL graphics API (GL 2.1 / GLU 1.3) and the portable OpenGL utility toolkit GLUT.<br />
<br />
;[http://hackage.haskell.org/package/HPlot HPLot]<br />
<br />
;[http://hackage.haskell.org/package/hps hps]<br />
: Partially implements the postscript drawing model. <br />
<br />
;[http://darcs.haskell.org/~lemmih/hsSDL/ hsSDL]<br />
:Contains bindings to libSDL, libSDL_gfx, libSDL_image, libSDL_mixer and libSDL_ttf.<br />
<br />
;[http://haskell.org/graphics/ The Hugs Graphics Library]<br />
:The Hugs Graphics Library supports 2-dimensional graphics operations, timers, mouse and keyboard actions and multiple windows. It runs on Hugs under both Win32 and X11. An earlier version was used for early prototypes of Fran.<br />
<br />
;[http://linuz.sns.it/~monge/wiki/index.php/Milfoh Milfoh]<br />
:An image to texture loading library. Use SDL_image (and a bare minimum of SDL), to load image files as OpenGL textures.<br />
<br />
=== Pan ===<br />
<br />
;[http://www.conal.net/pan Pan]<br />
:An embedded language and highly optimizing compiler for image synthesis and transformation, based on the simple idea of images as functions over infinite, continuous 2D space. The resulting binaries can be used as PhotoShop plugins, embedded in web pages or PowerPoint, or used in an interactive standalone viewer. The compiler contains no domain-specific knowledge, so it's very extensible. See the [http://www.conal.net/pan/Gallery/ gallery] for visual examples. Currently Windows-only, but ports are encouraged.<br />
<br />
;[http://haskell.org/edsl/pansharp.html Pan#]<br />
:Pan# is a slightly re-engineered version of Pan. It uses the same compiler but used the Microsoft .NET framework instead of visual studio, making it easier to install and use. It also has a number of new features added. While Pan is embedded in Haskell, Pan# has its own Haskell-like language built in so there is no need to use other Haskell compilers. Currently Windows-only.<br />
<br />
;[http://www.acooke.org/pancito-code/ Pancito]<br />
:Pancito is a Haskell module for manipulating functional images and then saving them to disk. It was inspired by Pan.<br />
<br />
;[http://www.cse.unsw.edu.au/~sseefried/pan/index.html Panic]<br />
:A cross-platform re-implementation of Pan in Haskell using the wxWidgets GUI library and OpenGL graphics library.<br />
<br />
=== Graphics file formats ===<br />
<br />
;[http://www.alpheccar.org/en/posts/show/82 HPDF]<br />
:A small portable Haskell library to generate PDF pictures.<br />
<br />
;[http://people.cs.uu.nl/jeroen/ Functional Specification of the JPEG algorithm], and an Implementation for Free<br />
<br />
;[http://web.archive.org/web/20010606145143/www.numeric-quest.com/haskell/gd/index.html PNG and JPEG writer]<br />
: available at internet archive; cumbersome for download<br />
<br />
;[http://web.archive.org/web/20010306041706/www.numeric-quest.com/funpdf/index.html PDF writer]<br />
: available at internet archive; cumbersome for download<br />
<br />
<br />
<br />
{{LibrariesPage}}<br />
[[Category:Graphics]]<br />
[[Category:Libraries]]<br />
[[Category:Packages]]</div>Lenny222https://wiki.haskell.org/index.php?title=Chlor&diff=57004Chlor2013-10-16T06:43:10Z<p>Lenny222: Chlor does not exist any more. Don't know how to delete this page</p>
<hr />
<div></div>Lenny222https://wiki.haskell.org/index.php?title=Talk:Cookbook&diff=55911Talk:Cookbook2013-05-13T08:07:45Z<p>Lenny222: remove my comments</p>
<hr />
<div>==Size and direction of page==<br />
Personally, it seems to me that this will be a very large and overwhelming page if it is filled out with all the items in the TOC. What about having it as a gathering page, pointing to other cookbook pages that are subs of this? [[User:BrettGiles|BrettGiles]] 17:44, 22 February 2007 (UTC)<br />
<br />
:I think we should definitely do this, but after the page has grown big. As long as it's not needed, we should stick with one page. The user can now still easily scroll the page. [[User:chriseidhof]].<br />
<br />
:As of now, the very short entries for the chapter give the page its very own charm. I like it very much and I think we should stick to that. It's more a cheatsheet than a cookbook, but who cares. -- [[User:Apfelmus|Apfelmus]] 19:19, 25 February 2007 (UTC)<br />
<br />
:: Makes sense. I like your thought of the page having "charm" :) [[User:BrettGiles|BrettGiles]] 22:27, 26 February 2007 (UTC)<br />
<br />
Do you guys know about this:<br />
http://pleac.sourceforge.net/<br />
It seems to be abandoned and it seems the Haskell part didn't go that far, but it does show up on a google search. [[User:Tanimoto|tanimoto]] 15:41, 24 April 2009 (UTC)<br />
<br />
:<strike>The haskell pleac part is a known disgrace and is not only old, but also uses horrible techniques like redefining the (.) function. It would likely be best if the pleac haskell entries be purged completely as they probably never have but certainly do not reflect current haskell best practices. --[[User:JohannesAhlmann|jethr0]] 20:30, 24 April 2009 (UTC)</strike><br />
<br />
::Seems I have to retract that as somebody went to the trouble of fixing the mess that was pleac_haskell. I wouldn't guarantee that it's the finest haskell code ever, but at least it's no longer a total disaster. Maybe we can "borrow" some ideas from the pleac set of tasks. --[[User:JohannesAhlmann|jethr0]] 20:30, 24 April 2009 (UTC)<br />
<br />
:::Actually, that was partly my point. I think it would be nice to see what we can reuse (if anything), then put a link to this Wiki entry so that people don't get confused. [[User:Tanimoto|tanimoto]] 02:24, 25 April 2009 (UTC)<br />
<br />
==Focus on Haskell concepts as well as general tasks==<br />
I like the idea of selecting typical cookbook tasks and providing haskell code snippets. Also it might be useful to provide examples of certain haskell concepts that may not be related to a specific task, like "how to use Control.Monad", "how to use list comprehensions", "how to use STM" etc,.<br />
[[User:b7j0c|b7j0c]]<br />
<br />
:As long as the focus is on practical use, yes. I think we should not provide abstract examples, but concrete examples of a practical problem. This is a bit more difficult, but way more interesting for the end-user.<br />
<br />
<br />
==Somehow use a literate Haskell Approach==<br />
to make sure that code examples actually do what they are supposed to do (i.e. with sth. like docTest)<br />
<br />
Also, I find separate pages for strings and lists superfluous. Let's have "Strings" link to "Lists" for the list functions and only describe character-specific cases for "Strings" (Unicode, upper/lowercasing, ...)<br />
--[[User:JohannesAhlmann|jethr0]] 13:17, 23 April 2009 (UTC)<br />
<br />
--[[User:JohannesAhlmann|jethr0]] 20:08, 24 April 2009 (UTC)</div>Lenny222https://wiki.haskell.org/index.php?title=Haskell_logos/New_logo_ideas&diff=55859Haskell logos/New logo ideas2013-05-06T10:48:09Z<p>Lenny222: retract my proposals</p>
<hr />
<div>== The great 2009 Haskell logo contest ==<br />
<br />
The Haskell logo has [http://www.willamette.edu/~fruehr/logos/intro.html changed over time], and the current "new" logo reflects the<br />
advanced features of Haskell. However, it is looking rather dated, and doesn't necessarily reflect the mature Haskell we have now.<br />
<br />
So, time to find a new logo. Something reflecting the modern emphasis of<br />
Haskell on purity and simplicity.<br />
<br />
=== Results ===<br />
<br />
The votes (for the first round) are in! You can view the [http://www.cs.cornell.edu/w8/~andru/cgi-perl/civs/results.pl?num_winners=1&id=E_d21b0256a4fd5ed7&algorithm=beatpath poll results] and the [http://community.haskell.org/~eelco/results.html results page (with logos)].<br />
<br />
Congratulations to Darrin Thompson (idea) and Jeff Wheeler (graphical interpretation) for creating the winning logo! The winning logo is available in multiple formats, see [[ThompsonWheelerLogo]].<br />
<br />
=== Contest ===<br />
<br />
Please submit logo-sized (not overly large) versions of your logo with optional text, with a preferably white background (such as for use on haskell.org).<br />
<br />
Please submit your entries here, and attach your name to them please. To be eligible,<br />
they will need to be visible on this page (e.g. uploaded, or link to the image). The image should be freely available (a suitable freely distributable license). Entries not displayed here won't be eligible.<br />
<br />
''The deadline for submissions is December 31, 2008, after which the top few submissions will be voted on by the community to decide a winner!''<br />
<br />
''' Adjectives '''<br />
<br />
<br />
A logo is part of a brand, and a brand is used to project an image. Therefore an important part of this exercise is deciding what image we want to project. An image can be described using a list of adjectives. So here is a sample of adjectives that we might want. This list is not exhaustive: by all means add more if you want them.<br />
<br />
''abstract, academic, accessible, accurate, adventurous, business-like, communal, complicated, dangerous, different, easy, exciting, familiar, friendly, fun, fuzzy, hard, interesting, inventive, precise, productive, profitable, reliable, revolutionary, safe, simple, strange, supportive, warm, welcoming.''<br />
<br />
I suggest that entries are accompanied by the two or three adjectives they are trying to project. [[User:PaulJohnson|PaulJohnson]]<br />
<br />
----<br />
by [[User:rherrmann@gmail.com|Ricardo Herrmann]]<br />
<br />
[[Image:Haskell_hell_heaven.png]]<br />
<p>"Haskell: From Hell to Heaven"</p><br />
<p>Shamelessly took [http://leksah.org Leksah]'s double-lambda idea, created a new version of it in Inkscape and made it aqua-like for the shiny-glossy-2.0 web world.</p><br />
<p>I think the double-lambda was a great idea. Let's kidnap it and make it Haskell's new logo ;-)</p><br />
[[Image:double_lambda.png]], or Times-based, [[Image:haskell_times.png]]<br />
<br />
----<br />
by [[User:Xyzzy]]<br />
<br />
[[Image:Haskell_logo_xyzzy.png]]<br/>Binding the theoretical sky to the solid ground in [http://book.realworldhaskell.org Real World].<br/><br />
----<br />
by [[User:Xyzzy]]<br />
<br />
[[Image:Haskell_nuclear_xyzzy.png]]<br/>Haskell, the warm fuzzy nuclear waste.<br/><br />
----<br />
by [[User:Bori vali]]<br />
<br />
[[Image:01_logo.png]]<br/><br/><br />
[[Image:02_logo.png]]<br/><br/><br />
[[Image:03_Logo.png]]<br/><br/><br />
[[Image:04_Logo.png]]<br/><br/><br />
[[Image:05_Logo.png]]<br/><br/><br />
[[Image:06_Logo.png]]<br/><br/><br />
[[Image:07_Logo.png]]<br/><br/><br />
<br />
bori vali,20:16, 29 December 2008 <br />
----<br />
<br />
My favourite one yet.<br />
<br />
Basic version:<br />
<br />
[[Image:Haskell_logo_falconnl_8_basic.png]]<br />
<br />
And on the ever-popular reflective gradient background:<br />
<br />
[[Image:Haskell_logo_falconnl_8_fancy.png]]<br />
<br />
Explanation:<br />
<br />
- It is a slightly more dynamic version of the standard lambda<br />
<br />
- In the center is a dot, which is the function composition operator<br />
<br />
- It also looks like a Y tilting to the right, which is a reference to the Y combinator.<br />
<br />
- It also looks like a figure running, a reference to Haskell's speed<br />
<br />
--[[User:FalconNL|FalconNL]] 19:44, 28 December 2008 (UTC)<br />
<br />
----<br />
<br />
[[Image:planetary_gears.png]]<br />
<br />
The inspiration for this logo is a set of planetary gears. The gears represent the compositional nature of Haskell (bigger gears made out of smaller gears). The colours of the gears are inspired by the paintings of Piet Mondrian, the well known abstract artist, and hence represent the abstract nature of Haskell. The gears are arranged into a shape which resembles a lambda, but only covertly. <br />
<br />
The image was created in inkscape and an SVG is available.<br />
<br />
[[User:bjpop|bjpop]] Sat 27 Dec 2008 22:44:15 EST<br />
<br />
----<br />
Pure Devil Haskell <br />
<br />
[[Image:Pure_Devil_Haskell.png]]<br />
<br />
The rationality behind my draft: <br />
(1) Haskell is considered powerful but feared. (2) Reversed Biblical logic: condemned to purity to be saved by monads, which according to Leibniz "are arranged by God in a perfect order which ascends to God, the supreme monad". (3) With great respect for Haskell Curry there are other people whom the language owes, thus it is only fair to encourage alternative interpretations for the name. <br />
<br />
--[[User:Jaworski|Jaworski]] 23:51, 25 December 2008 (UTC)<br />
<br />
----<br />
<br />
This ASCII logo connects Haskell to LOLz, for pure win.<br />
<br />
<pre><br />
we<br />
did<br />
it for<br />
the λulz<br />
</pre><br />
<br />
[[User:Jsnx|jsnx]] 21:18, 23 December 2008 (UTC)<br />
<br />
----<br />
<br />
Logo with a leopard in the shape of a lambda. This one is traced from a bitmap, so it doesn't look brilliant. Should this one be chosen a better one can be drawn.<br />
<br />
[[Image:Haskell_logo_ideas_7_falconnl.png]]<br />
<br />
--[[User:FalconNL|FalconNL]] 07:11, 22 December 2008 (UTC)<br />
<br />
----<br />
[[Image:lambdanimal.png|150px]]<br />
[[Image:lambdanimal_nomane.png|150px]]<br />
<br />
Strange Lambdanimal, with or without a mane. [[Media:lambdanimal.svg|SVG (inkscape)]].<br />
<br />
by [[User:Ripounet|Ripounet]] 22:24, 18 December 2008 (UTC)<br />
<br />
----<br />
[http://galois.com/~dons/images/logos/Haskell_logo.png http://galois.com/~dons/images/logos/Haskell_logo.png]<br />
<br />
Dana Herz @ Galois.<br />
<br />
----<br />
[[Image:Haskell-tao.png|Haskell as Taoism]]<br />
<br />
Playing off a recent Haskell-Cafe thread, in which programming languages were compared to religions, and Haskell was equated to Taoism. The slogan makes at least a ''little'' sense: it obviously goes with the logo, and 'Duals' are important to Cat theory, which influences Haskell strongly. [[Media:Haskell-tao.svg|SVG]] available. Font is Lucida Calligraphic, a less ubiquitous calligraphic font might be better.<br />
<br />
--[[User:Rgreayer|Rgreayer]] 15:16, 18 December 2008 (UTC)<br />
----<br />
[[Image:unsafeHaskell.png]]<br />
[[User:Beelsebob|Beelsebob]] 09:09, 18 December 2008 (UTC)<br />
<br />
----<br />
<br />
[[Image:haskell-cjay2.png]]<br />
[[User:Cjay|cjay]] 03:49, 18 December 2008 (UTC)<br />
<br />
<br />
[[Image:haskell-cjay2a.png]]<br />
[[User:Cjay|cjay]] 14:27, 18 December 2008 (UTC)<br />
<br />
<br />
[[Image:haskell-cjay2b.png]]<br />
[[User:Cjay|cjay]] 03:22, 19 December 2008 (UTC)<br />
<br />
<br />
[[Image:haskell-cjay2c.png]]<br />
[[User:Cjay|cjay]] 23:03, 19 December 2008 (UTC)<br />
<br />
<br />
Available as svg [[Media:Haskell-cjay2.svg|1]] [[Media:Haskell-cjay2a.svg|2]] [[Media:Haskell-cjay2b.svg|3]] [[Media:Haskell-cjay2c.svg|4]] (inkscape). Fonts: FreeSerif for lambda, >> and the arrow head; Impact Label for "Haskell" (1&2), SF Alien Encounters Solid (3) (all free).<br />
<br />
----<br />
<br />
My attempt at a new Haskell logo:<br />
<br />
[[Image:Haskell_jdr.png]]<br />
<br />
So I guess the standalone version would then be:<br />
<br />
[[Image:Haskell_h_jdr.png]]<br />
<br />
[http://www.voetsjoeba.com Jeroen De Ridder]<br />
<br />
----<br />
<br />
[http://galois.com/~dons/images/logo-3-curved.png http://galois.com/~dons/images/logo-3-curved.png]<br />
<br />
[http://article.gmane.org/gmane.comp.lang.haskell.cafe/49072 George Pollard]<br />
<br />
----<br />
<br />
[[Image:Jeff-heard-1.png]]<br />
<br />
[http://thread.gmane.org/gmane.comp.lang.haskell.cafe/48892/focus=48893 Jeff Heard]. <br />
<br />
----<br />
<br />
Here's an attempt to depict the polish, elegance, and purity of Haskell by merging the H and lambda into an iconic gem.<br />
<br />
[[Image:Haskell2v3.png]]<br />
<br />
Made in Inkscape, with an SVG available.<br />
<br />
--[[User:Chromakode|Chromakode]] 03:18, 17 December 2008 (UTC)<br />
<br />
:I love that one, hope it wins. But I can't see the lambda merged in it, where is it hidden? [[User:Ripounet|Ripounet]]<br />
<br />
:Thanks for your comment. :)<br />
:The light blue highlight of the H is in the shape of an abstract lambda. [[User:Chromakode|Chromakode]]<br />
<br />
A variation of this logo where the H is made up of two lambdas:<br />
<br />
[[Image:Haskell_logo_ideas_6_falconnl.png]]<br />
<br />
--[[User:FalconNL|FalconNL]] 00:30, 22 December 2008 (UTC)<br />
<br />
----<br />
<br />
All credit goes to Darrin Thompson for posting the ASCII inspiration for this to haskell-cafe. I, Jeff Wheeler, just mocked it up to look<br />
pretty. Here are two interpretations:<br />
<br />
[http://media.nokrev.com/junk/haskell-logos/logo1.png http://media.nokrev.com/junk/haskell-logos/logo1.png]<br />
<br />
[http://media.nokrev.com/junk/haskell-logos/logo2.png http://media.nokrev.com/junk/haskell-logos/logo2.png]<br />
<br />
Two with rounded edges:<br />
<br />
[http://media.nokrev.com/junk/haskell-logos/logo8.png http://media.nokrev.com/junk/haskell-logos/logo8.png]<br />
<br />
[http://media.nokrev.com/junk/haskell-logos/logo9.png http://media.nokrev.com/junk/haskell-logos/logo9.png]<br />
<br />
Here's a icon-sized version:<br />
<br />
[http://media.nokrev.com/junk/haskell-logos/logo4.png http://media.nokrev.com/junk/haskell-logos/logo4.png]<br />
<br />
The first two without an background:<br />
<br />
[http://media.nokrev.com/junk/haskell-logos/logo6.png http://media.nokrev.com/junk/haskell-logos/logo6.png] [http://media.nokrev.com/junk/haskell-logos/logo7.png http://media.nokrev.com/junk/haskell-logos/logo7.png]<br />
<br />
--[[User:Jeffwheeler|Jeffwheeler]] 02:42, 17 December 2008 (UTC)<br />
:Great work, very professional. I hope this one gets chosen. Is it also available as SVG? [[User:Fintanstele|Fintanstele]]<br />
----<br />
Mix and match<br />
<br />
[http://community.haskell.org/~hexpuem/logo_contest/haskell_7.png http://community.haskell.org/~hexpuem/logo_contest/haskell_7.png]<br />
<br />
[[User:NHA|NHA]]<br />
----<br />
More mix and match, borrowing bind-lambda icon, star/flower idea, and font/verbiage from other submissions...(Raspoutine Classic font, [[Media:Haskell-Symstar.svg|SVG]] available).<br />
[[Image:Haskell-Symstar.png|Haskell - Logo variant]]<br />
<br />
--[[User:Rgreayer|Rgreayer]] 21:39, 17 December 2008 (UTC)<br />
----<br />
I really like the logo above. Here are some variations. The font name is ModeNine.<br />
<br />
<br />
[[Image:Haskellvariations1.jpg|Haskell - Logo Variations A]]<br />
<br />
[[Image:Haskellvariations2.jpg|Haskell - Logo Variations B]]<br />
<br />
--[[User:Reified|Reified]] 14:48, 17 December 2008 (UTC)<br />
<br />
----<br />
<br />
A different logo idea, using toddler's letter blocks to convey the simplicity of Haskell. Exact block look and font used can be changed,<br />
but this is the basic idea.<br />
<br />
[[Image:Haskell_logo_ideas_4_falconnl.png]]<br />
<br />
--[[User:FalconNL|FalconNL]] 23:29, 16 December 2008 (UTC)<br />
<br />
----<br />
<br />
[[Image:Stupidb123logo.jpg]]<br />
<br />
--[[User:Stupidb123|Stupidb123]] 12:40, 16 December 2008 (UTC)<br />
<br />
----<br />
"The lightbulb lady" (concept: a lady/lightbulb made out of an inverted lambda, hope it catches...).<br />
Font: Museo Sans 500 (free of charge, add to the cart [http://new.myfonts.com/fonts/exljbris/museo-sans/500/ here]).<br />
<br />
[[Image:The_lady.png]]<br />
<br />
-- [[User:eu-prleu-peupeu]]<br />
----<br />
Just another version of the initial spreadshirt variant. <br />
The black background is now part of the logo. The text should be optional.<br />
<br />
[[Image:haskell_spreadshirt_logo.png|400px]]<br />
<br />
[[User:Frosch03|Frosch03]] 11:41, 16 December 2008 (UTC)<br />
<br />
----<br />
<br />
Made with Inkscape. The source in SVG is available [http://www.gburri.org/bordel/logo_haskell_gburri.svg here]. Font : [http://www.dafont.com/raspoutine.font?nb_ppp=50&text=Haskell Raspoutine (free)].<br />
<br />
The idea is to hide a lambda into an elegant and colored logo.<br />
<br />
Adjectives : ''elegant'', ''fun'', ''simple''<br />
<br />
[[Image:haskel_logo_preview_gburri.png]]<br />
<br />
[[Image:haskel_logo_preview_gburri_special.png]]<br />
<br />
[[User:Gburri|Gburri]] 09:58, 16 December 2008 (UTC)<br />
<br />
----<br />
<br />
Lambdas in a circle, forming a flower. I wanted it to be easy to draw, be subtle and look nice for haskellers and non-haskellers alike. Created in inkscape using free fonts.<br />
<br />
[[Image:Haskell-flower3.png]]<br />
<br />
--[[User:Tanimoto|tanimoto]] 05:39, 19 December 2008 (UTC)<br />
<br />
----<br />
<br />
A different take on the lambda-in-a-circle logo that looks less like the Half Life logo. Probably fits better than the monadic sequence<br />
operator in my other submission.<br />
<br />
[[Image:Haskell_logo_ideas_2_falconnl.png]]<br />
<br />
Update:<br />
Slight change and added letters, this time in the free Fonce Sans [http://liquisoft.deviantart.com/art/Fonce-Sans-Regular-Trial-25092730]<br />
font. I like Officina better, but if the font has to be free this is a reasonable substitute.<br />
<br />
[[Image:Haskell_logo_idea_3_falconnl.png]]<br />
<br />
--[[User:FalconNL|FalconNL]] 08:34, 16 December 2008 (GMT +1)<br />
<br />
----<br />
<br />
Very quick attempt:<br />
<br />
[[Image:BurkeLibbey_Haskell.png]]<br />
<br />
The main font is [http://www.josbuivenga.demon.nl/diavlo.html Diavlo] (free). The lambda is in Candara, which I believe ships with Vista<br />
and/or XP. Not sure of the licensing there. If there's significant interest in this, I'll redo it as a vector graphic.<br />
<br />
-- [[User:Burke|Burke]] 02:33, 16 December 2008 (UTC)<br />
<br />
----<br />
<br />
On behalf of the Ministry of Safety and Happiness I would like to promote the meme suggesting that Haskell is the programming language of<br />
choice for the Illuminati.<br />
<br />
[[Image:Haskell proceed.png]]<br />
<br />
--[[User:CznpyHrnjwczky|CznpyHrnjwczky]] 05:31, 16 December 2008 (UTC)<br />
<br />
----<br />
<br />
More of a mascotte, though she could be used in a logo as well.<br />
<br />
This is Monica Monad, and she's a Warm Fuzzy Thing. Just giving a face to SPJ's alternative name for monads :)<br />
<br />
Her main purpose would be to present tutorials.<br />
<br />
[[Image:Monica_monad_falconnl.png]]<br />
<br />
--[[User:FalconNL|FalconNL]] 00:52, 16 December 2008 (GMT +1)<br />
<br />
----<br />
<br />
A slightly different take on the Haskell logo, as the lambda-in-a-circle looks a bit too much like the Half Life logo for my taste. This<br />
one references monads instead of lambda calculus. Three possible slogans, emphasizing the fun that comes from programming in Haskell.<br />
Number 2 and 3 also reference function composition. Number 3 is my personal favourite.<br />
<br />
[[Image:Haskell_logo_ideas_falconnl.png]]<br />
<br />
Update: a combination of my two logos on a t-shirt. This time with function arrows to indicate the causal relationships: because Haskell is<br />
pure, it's simple. Because it's simple, it's fun.<br />
<br />
[[Image:Haskell_logo_ideas_tshirt_falconnl.png]]<br />
<br />
--[[User:FalconNL|FalconNL]] 22:58, 15 December 2008 (GMT +1)<br />
<br />
: Yummy. What's the font? Is it free? [[User:Porges|Porges]] 21:59, 15 December 2008 (UTC)<br />
: Unfortunately, no. The font is called Officina Sans. Is that a problem? [[User:FalconNL|FalconNL]] 00:02, 16 December 2008 (GMT +1)<br />
<br />
: I like this t-shirt a lot, but I'd change 2 things: change "simple" to "lazy" (I think "pure -> lazy -> fun" is more provocative), and change the lambda to ">>" (there are too many languages with lambda logos already). When can I place my order? :-) --[[User:Warren|Warren]] 16:32, 23 December 2008 (UTC)<br />
<br />
----<br />
<br />
Simple, clean:<br />
<br />
[http://hpsg.fu-berlin.de/~rsling/img/haskell-shirt.jpeg http://hpsg.fu-berlin.de/~rsling/img/haskell-shirt.jpeg]<br />
<br />
I really like this t-shirt logo, by the way. Gets my vote so far. — [[User:Chrisdone|Chrisdone]] 00:18, 15 December 2008 (UTC)<br />
<br />
----<br />
<br />
Minor tweak to the above:<br />
<br />
[[Image:HaskellLogo-v2.png]]<br />
<br />
----<br />
<br />
Minor modification of the t-shirt logo, the lambda was a bit skewed in my opinion:<br />
<br />
[[Image:tshirt-logo-mod.png]]<br />
<br />
And another modification of the same theme:<br />
<br />
[[Image:tshirt-logo-mod-inv.png]]<br />
<br />
--[[User:Sebastiaan|Sebastiaan]] 13:29, 15 December 2008 (UTC)<br />
: I really like this one. A font other than Arial would be nice ;) [[User:Porges|Porges]] 21:25, 15 December 2008 (UTC)<br />
<br />
[[Image:HaskellLogoTShirtWhite.png]] -- [[User:Chrisdone|Chrisdone]] 23:19, 15 December 2008 (UTC)<br />
<br />
<br />
<br />
----<br />
<br />
Some ideas. Supposed to resemble a lambda abstraction. I realise there are no formal parameters. ---- [[User:Chrisdone|Chrisdone]] 00:12,<br />
15 December 2008 (UTC)<br />
<br />
[http://chrisdone.com/haskell-blah.png http://chrisdone.com/haskell-blah-thumb.png]<br />
<br />
----<br />
<br />
Here's another one; lambda is Gentium SIL, Haskell is MgOpen Cosmetica, tagline is MgOpen Canonica Italic. [[User:Porges|Porges]] 21:25, 15<br />
December 2008 (UTC)<br />
<br />
[[Image:Haskell Logo.png]]<br />
<br />
----<br />
<br />
Another take. A bit simpler, more symmetrical.<br />
<br />
[[Image:haskelllogobeshers.png]]<br />
<br />
----<br />
<br />
[[Image:Haskell-logo.png]]<br />
<br />
The logo uses Kautiva Bold as (non-free) font.<br />
<br />
--[[User:Eelco|Eelco]] 07:43, 15 December 2008 (UTC)<br />
<br />
This one is dedicated to Derek Elkins, to sooth his eyes after having them hurt on the previous logo:<br />
<br />
[[Image:Haskell-logo-funny.png]]<br />
<br />
--[[User:Eelco|Eelco]] 08:53, 15 December 2008 (UTC)<br />
: Makes sense. Comic Sans is the *Official Font of Haskell*, after all.<br />
<br />
----<br />
[[Image:HaskellLogoTDavie.png]]<br />
<br />
[[Image:HaskellLogoTDavie.pdf]] (vector pdf version)<br />
<br />
[[Image:HaskellLogoTDavie2.png]]<br />
<br />
[[User:Beelsebob|Beelsebob]] 08:32, 15 December 2008 (UTC)<br />
<br />
---- <br />
<br />
[http://community.haskell.org/~hexpuem/logo_contest/haskell_0.png http://community.haskell.org/~hexpuem/logo_contest/haskell_0.png]<br />
<br />
[http://community.haskell.org/~hexpuem/logo_contest/haskell_1.png http://community.haskell.org/~hexpuem/logo_contest/haskell_1.png]<br />
<br />
[http://community.haskell.org/~hexpuem/logo_contest/haskell_2.png http://community.haskell.org/~hexpuem/logo_contest/haskell_2.png]<br />
<br />
[http://community.haskell.org/~hexpuem/logo_contest/haskell_3.png http://community.haskell.org/~hexpuem/logo_contest/haskell_3.png]<br />
<br />
<br />
[http://community.haskell.org/~hexpuem/logo_contest/hasksun4.png http://community.haskell.org/~hexpuem/logo_contest/hasksun4.png]<br />
<br />
[http://community.haskell.org/~hexpuem/logo_contest/hasksun6.png http://community.haskell.org/~hexpuem/logo_contest/hasksun6.png]<br />
<br />
[[User:NHA|NHA]]<br />
----<br />
<br />
<br />
Logo fun using Blender:<br />
<br />
[[Image:HsLogosMB.png|center|Haskell Logo idea with lambda as mascot]]<br />
<br />
I tried to give the lambda sign an ''alive'' feeling. --[[User:GokhanSan|GokhanSan]] 12:49, 15 December 2008 (UTC)<br />
: Middle one looks a bit too much like the ghostbusters logo :D [[User:Porges|Porges]] 21:25, 15 December 2008 (UTC)<br />
:: Hmm, I wonder if it's the choice of colors. Then again, with a minor alteration, we get a FreeBSD icon candidate:<br />
[[Image:HsLogoMB-BSD.png|beastie]] ;-) --[[User:GokhanSan|GokhanSan]] 08:52, 16 December 2008 (UTC)<br />
<br />
----<br />
<br />
[[Image:HaskellLogoIdea05.gif]]<br />
<br />
Not sure about the colour. I tried to pick the purple from the current logo. Although the lower lambda is rotated there is<br />
[http://poinikastas.csad.ox.ac.uk/browseGlyphs.shtml historic precedence] for other forms of the letter. The lambda takes the angle from<br />
the 'k'. Font is News Gothic. Feel free to play with the concept. [[User:Rk|Rk]] 11:13, 16 December 2008 (UTC)<br />
<br />
----<br />
<br />
<br />
More vectorial Haskell logo concepts. Using inkscape and the [http://inde-graphics.deviantart.com/art/advent-font-57338302 advent font] (CC at-nc-nd, by Andreas K.)<br />
<br />
[[Image:Haskell_infinitylambda.png]][[Image:Haskell_3qhalfinfinitylambda.png]]<br />
<br />
[[Image:Icon_inf.png]][[Image:Icon_lambda.png]]<br />
<br />
Vectorial images (svg):<br />
<br />
[http://haskell.org/sitewiki/images/8/86/Haskell_infinitylambda.svg 1]<br />
[http://haskell.org/sitewiki/images/6/66/Haskell_3qhalfinfinitylambda.svg 2]<br />
[http://haskell.org/sitewiki/images/d/df/Haskell_halfinfinitylambda.svg 3]<br />
<br />
Update: Added glossy styles.<br />
<br />
* [[User:alvivi|alvivi]] 19:28, 15 December 2008 (UTC)<br />
<br />
----<br />
<br />
[[Image:Haskell-pure.png|haskell::pure]]<br />
<br />
--[[User:Rgreayer|Rgreayer]] 20:44, 15 December 2008 (UTC)<br />
<br />
----<br />
<br />
Find a font where 'k' looks like a reverse lambda (after removing the "stalk"). For example:<br />
<br />
[[Image:Kaskell.png|Kaskell]]<br />
<br />
Note this example uses Monotype Corsiva which is not a free font. If the basic approach looks good, we can find a similar free font that<br />
works.<br />
<br />
--[[User:Orenbenkiki|OrenBenKiki]] 01:40, 16 December 2008 (UTC)<br />
<br />
----<br />
<br />
[http://community.haskell.org/~hexpuem/logo_contest/haskell_5.png http://community.haskell.org/~hexpuem/logo_contest/haskell_5.png]<br />
<br />
----<br />
<br />
[[Image:Haskell.png|Haskellll]]<br />
<br />
Illustrator, vector art available, apologies to GokhanSan<br />
<br />
--[[User:Mpeter|Mpeter]] 10:18, 15 December 2008 (UTC)<br />
<br />
----<br />
<br />
<br />
[http://community.haskell.org/~hexpuem/logo_contest/haskell_6.png http://community.haskell.org/~hexpuem/logo_contest/haskell_6.png]<br />
<br />
----<br />
<br />
[[Image:Haskell3.png|Haskell]]<br />
[[Image:Haskell4.png|Haskell]]<br />
<br />
Inkscape, vector art available.<br />
<br />
--[[User:Chromakode|Chromakode]] 07:14, 16 December 2008 (UTC)<br />
<br />
----<br />
<br />
I'll probably regret this...<br />
<br />
[[Image:NarleyYeeaaahh.jpg|Haskell - Narwals, YEEAAAAHH!!]]<br />
<br />
(Created with PAINT.NET)<br />
<br />
--[[User:Reified|Reified]] 07:20, 16 December 2008 (UTC)<br />
:It's a fun one but I erroneously read " Chaskell YEEAAAHH!! " [[User:Ripounet|Ripounet]]<br />
----<br />
<br />
The general idea is that it's just "Haskell" but with w lambda instead of the a. The font here is Myriad Pro but this would work with any<br />
good sans-serif font. It's color-agnostic, so it can be easily printer, presented as white on black or changed to a different color.<br />
<br />
[[Image:Haskell_logo_bonus.png]]<br />
<br />
[[Image:Haskell_logo_bonus2.png]]<br />
<br />
--[[User:BONUS|BONUS]] 14:40, 16 December 2008 (UTC)<br />
<br />
----<br />
<br />
[[image:Axman6-logo-1.0.png]]<br />
<br />
In black:<br />
<br />
[[Image:Axman6-logo-1.1.png]]<br />
<br />
[[Image:Axman6-logo-1.1-small.png]]<br />
<br />
--[[User:Axman6|Axman6]] 15:16, 16 December 2008 (UTC)<br />
<br />
----<br />
<br />
[[image:Haskell_girl.jpg]]<br />
<br />
<br />
Oh, didn't know png's would work.<br />
--[[User:Tindrum|Tindrum]] 17:12, 16 December 2008 (UTC)<br />
<br />
----<br />
<br />
[[image:Haskell_logo.png]]<br />
<br />
It is mutually recursive...<br />
Here is the [[Media:Haskell logo.svg|svg]].<br />
<br />
Second version:<br />
<br />
[[image:Haskell2_logo.png]]<br />
<br />
And the [[Media:Haskell2 logo.svg|svg]].<br />
<br />
--[[User:Trontonic|Trontonic]] 20:39, 16 December 2008 (UTC)<br />
<br />
----<br />
This is a variation on my [http://t-shirts.cafepress.com/item/lambda-revolution-fitted-tshirt/96543210 Cafepress t-shirt]. The PNG is<br />
generated from an Inkscape SVG.<br />
<br />
[[Image:Haskell-logo-revolution.png]]<br />
<br />
Adjectives: revolutionary<br />
<br />
[[User:PaulJohnson|PaulJohnson]] 21:08, 16 December 2008 (UTC)<br />
<br />
----<br />
<br />
[[Image:haskell-cjay.png]]<br />
<br />
Available as [[Media:Haskell-cjay.svg|svg]] (inkscape). Fonts: FreeSerif for lambda and >>. Bitstream Vera and FreeMono for other (afaik<br />
all free to use)<br />
<br />
[[User:Cjay|cjay]] 22:45, 16 December 2008 (UTC)<br />
<br />
----<br />
<br />
http://conal.net/Pan/Gallery/haskell-powered%20on%20white%20tiled%20360.png<br />
<br />
One I made with [http://conal.net/Pan/Gallery Pan] (purely functional image synthesis in Haskell) some years back. See also the<br />
[http://conal.net/Pan/Gallery/haskell-powered%20on%20white%20tiled%20720.png 720 square version]. I have a few sizes up to 2250 pixels<br />
square.<br />
<br />
[[User:Conal|Conal]] 03:40, 17 December 2008 (UTC)<br />
<br />
----<br />
<br />
[[image:Haskell_lambda.png]]<br />
<br />
Just kidding :P<br />
<br />
--[[User:Trontonic|Trontonic]] 05:04, 17 December 2008 (UTC)<br />
<br />
----<br />
''' Cale Gibbard '''<br />
[[Image:Haskell-logo-6up.png]]<br />
<br />
[http://haskell.org/haskellwiki/Image:Haskell-logo-6up.svg Inkscape SVG]<br />
<br />
I originally had no specific mountain in mind, but Don Stewart pointed out that this might be representative of Mt. Hood in Portland, Oregon, where Haskell was named.<br />
<br />
Regardless, I thought a summit, bathed in the pure mountain air would be a decent symbol for Haskell, the peak of contemporary programming. :)<br />
<br />
[[User:CaleGibbard|CaleGibbard]] 05:55, 17 December 2008 (UTC)<br />
:Here's a modified version with a slightly funkier font :) I think that it matches the lines of the image better... [[User:Porges|Porges]] 03:14, 18 December 2008 (UTC)<br />
<br />
[[Image:Testhask.png]]<br />
----<br />
<br />
Probably not a good choice for a logo:<br />
<br />
[[Image:Hazard lambda cracked 2.png]]<br />
<br />
----<br />
<br />
[[Image:Haskell_Ribbons.png]]<br />
<br />
[http://slipgate.za.net/~korpse/misc/Haskell_Ribbons.svg SVG]<br />
<br />
Simplicity.<br />
<br />
(It is possible that the font may need to be replaced with a free alternative.)<br />
<br />
[[User:Jonathanj|JonathanJ]] 16:34, 17 December 2008 (UTC)<br />
<br />
----<br />
<br />
[[Image:Haskelllogosmax.png]]<br />
<br />
Available as SVG.<br />
<br />
[[User:MaxRabkin|MaxRabkin]] 05:37, 18 December 2008 (UTC)<br />
<br />
----<br />
<br />
[[Image:DoHaskell.png]]<br />
<br />
Another variation for the cognicenti:<br />
<br />
[[Image:JustHaskell.png]]<br />
<br />
--[[User:Warren|Warren]] 07:26, 18 December 2008 (UTC)<br />
<br />
----<br />
<br />
A slight variation of the ">\=" logo:<br />
<br />
[[Image:haskell-logo-doublef.png]]<br />
<br />
Not that it's worth much:). Available as [[Media:haskell-logo-doublef.svg|SVG]].<br />
<br />
[[User:Doublef|DoubleF]] 07:36, 18 December 2008 (UTC)<br />
<br />
----<br />
<br />
[[Image:haskell-apankrat.png]]<br />
<br />
The idea for this [http://en.wikipedia.org/wiki/Wordmark_(graphic_identity) wordmark] is to modify ''A'' to resemble λ and through this tie together the "Haskell" to the "Lambda". Modified ''A'' also works well as a standalone logo:<br />
<br />
[[Image:haskell-symbol-apankrat.png]]<br />
<br />
Note that ''any'' logo based on the unmodified λ symbol may look ambiguous to the people outside of Haskell community. While the λ in the context of programming languages is clearly associated with functional programming, it ''is'' a lowercase Greek L and so it's reasonable for an outsider to associate it with '''L'''isp, and not Haskell.<br />
<br />
PS. I just scrolled up and saw BONUS'es entry (14:40, 16 December 2008). While its idea is close, I think using pure λ in place of an A doesn't work because it effectively turn the name into H-L-skell.<br />
<br />
[[User:Apankrat|Apankrat]] 07:38, 18 December 2008 (UTC)<br />
<br />
<br />
----<br />
A very simple logo, made with inkscape, using math fonts, with various grades (B&W, grays, fill color & gradient) and backgrounds<br />
[[Image:Simple_haskell.png]]<br />
<br />
SVG available here:<br />
[[Image:Simple haskell.svgz]]<br />
<br />
[[User:Aubanel|Aubanel]] 18:08, 18 December 2008 (UTC)<br />
<br />
<br />
<br />
----<br />
<br />
[[Image:g3634.png]]<br />
<br />
Available as Inkscape [[Media:dessin.svg|SVG]]<br />
<br />
[[Image:g4441.png]]<br />
<br />
Available as Inkscape [[Media:dessin2.svg|SVG]]<br />
<br />
[[User:runrun|runrun]] 18 December 2008<br />
<br />
----<br />
<br />
[[Image:Haskell-logo2-max.png]]<br />
<br />
Contact me for SVG. Font is not currently free, but I designed it, so this can change if it becomes "the Haskell font". I think it shows some of the elegance that Haskell has. If you like the font but can put it with a better logo, go ahead. --[[User:MaxRabkin|MaxRabkin]] 04:53, 19 December 2008 (UTC)<br />
<br />
----<br />
<br />
[[Image:sgf.png]]<br />
<br />
I think the best way to represent the pure, functional nature of Haskell is with a pure and functional logo! Something modernist, minimalist, clean and simple. I'd prefer not to put highlights of the language's syntax in the logo - that's remarkably concrete for a language good at abstraction. Even lambdas etc. should be slightly hidden - those who know what it's about can see them, and everyone else doesn't think 'what's that funny symbol?'. For the font, again, something functional like a light Helvetica or Univers.<br />
<br />
So, I thought I'd have a go at a few variations. I'm not convinced it's worked, but there you go. I've shamelessly ripped off tanimoto's idea. [[User:Sgf|Sgf]] 08:13, 19 December 2008 (UTC)<br />
<br />
* Sgf, I really like your logos and I think you captured my idea much better than I could do. I especially like the red one, a bit Escher-esque. I wonder if we could turn the blue one into something that looks more like a snowflake than it currently does. Thanks. [[User:Tanimoto|tanimoto]] 10:43, 19 December 2008 (UTC)<br />
<br />
* I also like the blue and the red logo. The resemblance of a snowflake fits the purity of the language. Perhaps you could give the lambda's more volume to make it more plate-like? [[User:Felix|Felix]]<br />
<br />
* Thanks for the comments. I'm going to be offline for about a week, so I'm not going to have a chance to knock up further variations soon, much as I would like to. So, if you have the time, feel free to generate variations from the [[Media:sgf.svg|Inkscape SVG]]. Otherwise, I'll have a go when I get back. Cheers, [[User:Sgf|Sgf]] 01:48, 20 December 2008 (UTC)<br />
<br />
[[Image:Sgf-logo-blue.png|Sgf-logo-blue]]<br />
<br />
Sgf's red logo changed to blue and with the Fonce Sans font that FalconNL has used for another logo. [[User:Felix|Felix]] 2008-12-21<br />
<br />
And another variation of Sgf's logo, this time using negative instead of positive space.<br />
<br />
[[Image:Haskell_logo_ideas_5_falconnl.png]]<br />
<br />
--[[User:FalconNL|FalconNL]] 18:13, 21 December 2008 (UTC)<br />
<br />
[[Image:sgf2.png]]<br />
<br />
A few more exploratory variants: I've had a go at closing up the center of the 'snowflake' to make it, well, snowflakier. I've tried pairing this variant up with a conservative-looking serifed font, something functional but less heavily modernist. Then I created a variant which attempts to go for a bit more of a drawn look, to combine the geometric design with some handcrafting, hinting at a combination of the pure, abstract language, but also the lively user community. I paired that with Futura, as a slightly quirky geometric sans serif. - [[User:Sgf|Sgf]] 22:39, 29 December 2008 (UTC)<br />
<br />
----<br />
<br />
[[Image:SgfRk05.gif]]<br />
<br />
Some more variants of Sgf's idea. I've uploaded the SVG version too but you'll need the fonts for it to display correctly.[[User:Rk|Rk]]<br />
----<br />
<br />
Yet another variation on tanimoto and sgf's themes, with influences from others. The intent here is fun, pure, simple, complete, intriguing, and a bit paradoxical. (The loose relation to the Cabal logo was unexpected.) Font is Free Sans, but I'd look for better if I had a bit more time.<br />
<br />
[[Image:Hs_logos_sereven.png]]<br />
<br />
The compiler sits at the core in negative space, its form suggested by what is built on and around it. Also in negative space, lambdas and reflected lambdas link the golden base library to others, pure primary colours available ready to be combined. Libraries become dimensional as they fit together like puzzle pieces. At each layer they form a whole, complete, yet extensible in all directions.<br />
<br />
[[User:sereven|sereven]] 12:24, 22 December 2008 (UTC)<br />
<br />
----<br />
λλλ<br />
<br />
Haskell The Revenge of the Nerds<br />
<br />
---<br />
<br />
[[Image:Ouroborous-oval.png|Ouroboros oval]]<br />
<br />
Paulo Tanimoto on the mailing list suggested something based on [http://www.example.com Orouboros]. Here is the [[Media:Ouroborous-oval.svg|Inkscape SVG]].<br />
<br />
Adjectives: abstract, friendly<br />
<br />
[[User:PaulJohnson|PaulJohnson]]<br />
<br />
----<br />
<br />
How about using one of the mythical birds in lambda calculus? Specifically, the ones from the article [http://users.bigpond.net.au/d.keenan/Lambda/ To Dissect a Mockingbird]. Some of the examples:<br />
<br />
http://users.bigpond.net.au/d.keenan/Lambda/Graphical_lambda2.gif (Mockingbird)<br />
<br />
http://users.bigpond.net.au/d.keenan/Lambda/Graphical_lambda6.gif (Omega bird)<br />
<br />
http://users.bigpond.net.au/d.keenan/Lambda/Graphical_lambda15.gif<br />
<br />
Since Haskell is centered around the idea of lambdas, I thought this would be a cool idea. Plus, they have qualities similar to Haskell: exotic, mysterious, abstract... [[User:Aviator|Aviator]] 12:35, 21 December 2008 (UTC)<br />
<br />
----<br />
<br />
[[Image:Origami-lamdba-supernova-warp.png|The Haskell Origami Lambda's Warp from the Supernova]]<br />
<br />
This is an H composed of two identical vertically tiled lambdas warping from a supernova. It symbolizes the warp of the Haskell-lambda away from the O of object-orientation (symbolized by the supernova).<br />
<br />
Created in Inkscape, then adjusted in GIMP. This was my first try at using both tools. I have never done graphic design before.<br />
<br />
If I have time, I may submit a revised version.<br />
<br />
Abstract. Different. Inventive.<br />
<br />
by [[User:DekuDekuplex|Benjamin L. Russell]] 22:17, 22 December 2008 (Tokyo Time)<br />
<br />
----<br />
<br />
[[Image:ClassyHLogo.png]]<br />
<br />
I created the current, apparently-much-loathed purple-and-green Haskell logo back in<br />
2004 at John Peterson's request. I actually sent him several designs, and I must admit <br />
I rather liked this one better, myself. I later included it on some of the<br />
CafePress merchandise as the "classy Haskell logo". It's main virtues are that it's <br />
sparse and abstract; it's specifically inspired by those hood ornaments you see on <br />
fancy cars (no relation to Andy Gill's Hood debugger).<br />
<br />
The fancy typeface goes a little against the grain of "sparse and abstract", but it's<br />
of course independent from the logo itself.<br />
<br />
The simplicity of the logo proper (modulo the shadow and the typeface) makes it easy to <br />
reproduce in SVG and the like.<br />
<br />
(For a brief time, this logo was available on CafePress in the form of a frisbee, er, <br />
"flying disc", but they stopped carrying the item. It has been available for a while <br />
on shirts and perhaps mugs as well.)<br />
<br />
Anyway, perhaps it will appeal to others over the current one as much as it did to me.<br />
<br />
by [[User:FritzRuehr|Fritz Ruehr]]<br />
<br />
----<br />
<br />
[[Image:Haskell_logo_by_neoneye_small.png]]<br />
<br />
Im not really a haskell coder, however i do find it a fun challenge to make a haskell logo.<br />
<br />
by [[User:Neoneye|Simon Strandgaard]]<br />
<br />
----<br />
<br />
[[Image:HHH.png]]<br />
<br />
Lambda, Is now grown up.<br />
<br />
by [[User:GreyLensman|Ray]]<br />
<br />
----<br />
<br />
[[Image:HlSlEll.png]]<br />
<br />
As proposed by FalconNL, "Pure->simple->fun(ctional)". Incorporates >>=,->,=>,::,lambda if you look hard enough. Think of the H-lambda logo as a 3D object with three legs that looks like an H from one perspective, a lambda from a perpendicular perspective, and a lowercase h from below. Feel free to [[Media:HlSlEll.svg|improve away]]...<br />
<br />
----<br />
[[Image:horizontal-logo.png]]<br />
<br />
[[Image:vertical-logo.png]]<br />
<br />
<br />
The diamond shape represents purity and strength. The logo is clean, simple, modern and to the point.<br />
<br />
I think the text should be in lowercase because it makes the name "haskell" friendlier and less threatening. See the logos of [http://www.xerox.com xerox], [http://www.att.com at&t], [http://www.intel.com intel] and even [http://www.python.org/ python] for examples of that.<br />
<br />
In regard to the adjectives, I'd say: ''friendly, modern, interesting.''<br />
<br />
by --[[User:Aparcero|Aparcero]] 23:13, 31 December 2008 (UTC)<br />
<br />
----<br />
<br />
[[Image:CarLogoHask.png]]<br />
<br />
[[Image:CarLogoHaskSmall.png]]<br />
<br />
It's a few days late but I made this years ago and thought it was relevant now... By the way note that the four circles are like the double colon :: "has type" syntax in Haskell and the empty space between the circles forms the capital H. The silver bevel effect is just a Photoshop filter and can be applied to any logo.<br />
<br />
I'm quite impressed with many of these logos on the page. Wow, Haskellers!<br />
<br />
Cheers,<br />
<br />
[[User:JaredUpdike|JaredUpdike]] 22:26, 2 January 2009 (UTC)<br />
<br />
----<br />
[[Image:Haskell2.png]]<br />
<br />
[[Image:Haskell2ico.png]]<br />
<br />
In general I'm not too keen on the use of lambda's at all, but couldn't resist the group pressure. I made it a while ago, but seems to resemble OrenBenKiki's lambda/'h' idea. <br />
<br />
[[User:Arvid|Arvid]] 23:22, 2 January 2009 (UTC)<br />
<br />
----<br />
[[Image:HaskellAmbigram.png]]<br />
<br />
I know I'm past the deadline, but I think somebody mentioned ambigrams on the mailing list. I don't think this is great as it stands, but the combination of unusual symmetry and funky font indicate Haskell's mathematical roots and fun atmosphere.<br />
--[[User:MaxRabkin|MaxRabkin]] 02:50, 20 January 2009 (UTC)</div>Lenny222https://wiki.haskell.org/index.php?title=Chlor&diff=43727Chlor2011-12-21T20:34:06Z<p>Lenny222: this project pretty is much dead, please look into "diagrams" instead</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:Libraries]]<br />
<br />
'''Chlor''' is a pure-Haskell library that<br />
<br />
* produces vector graphics<br />
* provides highlevel components<br />
* supports essential file formats like SVG, EPS, etc. (PDF to follow)<br />
<br />
== Examples ==<br />
<br />
The page jumps in an interactive novel:<br />
<br />
[[Image:Chlor_example1.png]]<br />
<br />
== Overview ==<br />
<br />
=== Boxes ===<br />
Layout can be defined by boxes, which are invisible themselves.<br />
<br />
Boxes can be<br />
<br />
* shrinked<br />
* split - with margins or no margins<br />
* merged with other boxes<br />
* filtered<br />
<br />
[[Image:Chlor_boxes.png]]<br />
<br />
=== Shapes ===<br />
<br />
Some builtin-shapes mapped to a box grid:<br />
<br />
[[Image:Chlor_shapes.png]]<br />
<br />
=== Graphical attributes ===<br />
<br />
Dash pattern:<br />
<br />
[[Image:Chlor_dash_patterns.png]]<br />
<br />
Clipping:<br />
<br />
[[Image:Chlor_clipping.png]]<br />
<br />
=== Transformations ===<br />
<br />
Rotate, shear:<br />
<br />
[[Image:Chlor_affine_map.png]]<br />
<br />
=== Charts ===<br />
<br />
Line chart:<br />
<br />
[[Image:Chlor line chart.png]]</div>Lenny222https://wiki.haskell.org/index.php?title=EclipseFP&diff=41941EclipseFP2011-09-07T08:58:24Z<p>Lenny222: </p>
<hr />
<div>'''EclipseFP''' is an Haskell-IDE based on [http://www.eclipse.org/ Eclipse]:<br />
<br />
* [http://eclipsefp.github.com/features.html Features]<br />
* [http://eclipsefp.github.com/install.html Installation]<br />
<br />
More information is available on the [http://eclipsefp.github.com/ EclipseFP Homepage].<br />
<br />
===== Wish list =====<br />
<br />
* integration with WinHugs<br />
* ability to "fall in" definition of identifier under cursor, including multi-level ability to return back (with support for base libraries, libraries i installed and current project)<br />
* auto-indenting with user-tuned style<br />
<br />
[[Category:Tools]]</div>Lenny222https://wiki.haskell.org/index.php?title=EclipseFP&diff=41940EclipseFP2011-09-07T08:58:04Z<p>Lenny222: stream line, i am not sure that the comparison to JDT is helpful</p>
<hr />
<div>'''EclipseFP''' is an Haskell-IDE based on [http://www.eclipse.org/ Eclipse].<br />
<br />
* [http://eclipsefp.github.com/features.html Features]<br />
* [http://eclipsefp.github.com/install.html Installation]<br />
<br />
More information is available on the [http://eclipsefp.github.com/ EclipseFP Homepage]<br />
<br />
===== Wish list =====<br />
<br />
* integration with WinHugs<br />
* ability to "fall in" definition of identifier under cursor, including multi-level ability to return back (with support for base libraries, libraries i installed and current project)<br />
* auto-indenting with user-tuned style<br />
<br />
[[Category:Tools]]</div>Lenny222https://wiki.haskell.org/index.php?title=EclipseFP&diff=41939EclipseFP2011-09-07T08:53:49Z<p>Lenny222: even less duplication of http://eclipsefp.github.com/ content</p>
<hr />
<div>'''EclipseFP''' is an Haskell-IDE based on [http://www.eclipse.org/ Eclipse].<br />
<br />
Its goal is to provide a full-featured IDE that mimics the [http://www.eclipse.org/jdt/ Eclipse JDT]. Some implemented features are support for code assistance, auto-building, refactoring and structural search. The complete list of features is available [http://eclipsefp.github.com/features.html here].<br />
<br />
[http://eclipsefp.github.com/ EclipseFP Homepage]<br />
<br />
==== Wish list ====<br />
<br />
* integration with WinHugs<br />
* ability to "fall in" definition of identifier under cursor, including multi-level ability to return back (with support for base libraries, libraries i installed and current project)<br />
* auto-indenting with user-tuned style<br />
<br />
[[Category:Tools]]</div>Lenny222https://wiki.haskell.org/index.php?title=EclipseFP&diff=41938EclipseFP2011-09-07T08:52:14Z<p>Lenny222: remove the done elements, that would be a duplication of http://eclipsefp.github.com/features.html</p>
<hr />
<div>'''EclipseFP''' is an Haskell-IDE based on [http://www.eclipse.org/ Eclipse].<br />
<br />
Its goal is to provide a full-featured IDE that mimics the [http://www.eclipse.org/jdt/ Eclipse JDT]. Some implemented features are support for code assistance, auto-building, refactoring and structural search. The complete list of features is available [http://eclipsefp.github.com/features.html here].<br />
<br />
[http://eclipsefp.github.com/ EclipseFP Homepage]<br />
<br />
=== Installation ===<br />
<br />
Follow [http://eclipsefp.github.com/install.html these instructions].<br />
<br />
=== Development ===<br />
We welcome any suggestions from the community. You can find information about the development of the plug-in and how to contact the authors in the [http://eclipsefp.github.com/dev.html website].<br />
<br />
==== Wish list ====<br />
<br />
* integration with WinHugs<br />
* ability to "fall in" definition of identifier under cursor, including multi-level ability to return back (with support for base libraries, libraries i installed and current project)<br />
* auto-indenting with user-tuned style<br />
<br />
[[Category:Tools]]</div>Lenny222https://wiki.haskell.org/index.php?title=Talk:Haskell&diff=41714Talk:Haskell2011-08-22T11:08:06Z<p>Lenny222: please update past events. removed my comments refering to the old Wiki</p>
<hr />
<div>Please move to past events:<br />
<br />
* SF Bay Area Haskell User Group: Iteratees, July 13, 2011 @ 7pm, San Francisco, CA <br />
* HacPDX: Portland Hackathon, July 22-24, 2011, Portland, OR <br />
* Cambridge Hackathon, August 12-14, 2011, Cambridge, UK <br />
<br />
<br />
=== Usability: Developer Tools ===<br />
<br />
One of the things a beginner wants to find out quickly is: What tools are available for the developer? The front page does have a link to <br />
[[http://haskell.org/haskellwiki/Applications_and_libraries/Program_development Applications_and_libraries/Program_development]], which has exactly the kind of info I was looking for. Unfortunately, I overlooked it the first few times because I was scanning for words like "tools" or "editors" or "IDEs". Maybe it would be a good idea to simply rename the article to "Developer Tools". I think that's a better description of the content, and it would make it easier for beginners to find the info.<br />
<br />
--[[User:Amy de B|Amy de B]] 21:17, 19 December 2009 (UTC)<br />
<br />
== New book on the market,especially for Romania and Moldova ==<br />
<br />
[[Image:Coperta5.jpg|center|Practica interpretarii monadice]]<br />
<br />
A new book (by Dan Popa from Bacau State Univ.) called "Practice of monads interpreters" - title translated by the editor - (orig. Practica Interpretarii monadice) is on the market. It is offered by the MatrixRom Pub. House http://www.matrixrom.ro . Suport: Paper Price: 20 lei (less then 7 euros, grab it !!). Language: romanian (yet.)<br />
<br />
<br />
The Ro/Page of the book is here: http://www.haskell.org/haskellwiki/Practica_interpretarii_monadice<br />
<br />
Other books by MatrixRom are here: http://www.matrixrom.ro/english/publishing/domains/computer_science.php?id=901#901<br />
<br />
May I add it on the Headline section or somewhere else on the front page, this week ? Or should I make an English page for this (long) text ?<br />
<br />
Thanx<br />
Dan<br />
<br />
<br />
== Question Concerning Who's using Haskell? ==<br />
<br />
Haskell is used at Bacau State University (www.ub.ro) by Lect. Drd. Dan Popa as a tool for DSL (ak. domain small languges) building. Also, DSLs like [[Rodin]] are used as tools for teaching "Fundamentals of Programming Languages".<br />
<br />
Should I add this note on the main page ? Can anybody check it (ex. spelling) and post it.<br />
Thx<br />
<br />
Dan Popa<br />
<br />
Ro/Haskell <br />
<br />
If no remarks will be made during this week I will consider such news as acceptable and accepted the first page of www.haskell.org . With no votes against them.<br />
<br />
Thax again<br />
<br />
Dan<br />
<br />
== Search Box doesn't find short words == <br />
<br />
Just leaving a note here to say that the Search box and button at the top of the page now works properly except for words of three characters or less. These are not indexed and will give no results. (See [http://www.haskell.org/pipermail/haskell-cafe/2008-February/039579.html Haskell-Cafe post by Mads Lindstr&oslash;m] for possible administrator technical solution and related threads.) --[[User:Rk|Rk]]<br />
<br />
== EduSoft.ro URL ==<br />
<br />
THE EduSoft URL is: www.edusoft.ro NOT edusoft.com. <br />
You can see it in the Ro/Haskell page ! See the details.<br />
Thank you for other (wellcome) corrections.<br />
<br />
:Calm down, I've fixed it. Naturally I googled it and assumed the parent company was the one to link to. --[[User:Gwern|Gwern]] 23:04, 13 December 2007 (UTC)<br />
<br />
Well done.<br />
<br />
== Logo and design ==<br />
<br />
This is currently just made to look like http://haskell.org/. I expect we will want to change it later. &mdash;[[User:Ashley Y|Ashley Y]] 21:58, 9 January 2006 (EST)<br />
<br />
IMO the logo and design looks very amateurish. Are there no Haskell programmers with some experience in graphic design? Or maybe someone who knows someone?<br />
--[[User:SebastianSylvan|SebastianSylvan]] 13:06, 11 January 2006 (EST)<br />
<br />
:The logo seems to be well established as the "Haskell" logo. &mdash;[[User:Ashley Y|Ashley Y]] 14:42, 11 January 2006 (EST)<br />
<br />
::That doesn't change anything. In fact, it makes it worse! Appearances matter, if someone who doesn't know Haskell comes here, sees an amateurish web and logo design, they may not consider Haskell a "real" language, but rather an amateurish effort not suited for real work. In fact I'd prefer an approach similar to e.g. the ruby web site (no logo at all, rather than an amateurish logo). --[[User:SebastianSylvan|SebastianSylvan]] 03:49, 12 January 2006 (EST)<br />
<br />
: I should clarify that the "Haskell" headline logo is what irks me the most. The lambda-logo thing isn't as bad, although it suffers from many of the same problems ("every-effect-in-photoshop-syndrome"). I'd like it more if it was just a two color logo (and not necessarily green and purple) without all those highlights and bevels.--[[User:SebastianSylvan|SebastianSylvan]] 04:11, 12 January 2006 (EST)<br />
<br />
::You could raise the issue on the mailing list. The round logo at least is used on other haskell sites. &mdash;[[User:Ashley Y|Ashley Y]] 21:24, 31 January 2006 (UTC)<br />
<br />
Is there some way to suppress the wiki page title? - at the moment the page says 'Haskell' in small letters right above a huge logo also saying 'Haskell'. It looks pretty stupid. -- [[User:MikeDodds|MikeDodds]] 15:01, 20 February 2006 (UTC)<br />
<br />
The round logo at the left (which I agree is pretty garish) still takes a line by itself, leaving lots of dead white space for only a centered page title to follow it. I suggest leaving the logo at the top left, then moving the page title to the top-right. This will fix the aforementioned silliness with the home page title as well as clear up a little vertical real estate. -- [[User:Chuck Adams|Chuck Adams]] 17:24, 22 February 2006 (UTC)<br />
<br />
:There is a way, but we'd need somebody with admin rights on the wiki to edit the relevant skin file: http://article.gmane.org/gmane.org.wikimedia.mediawiki/1521<br />
: -- [[User:EricKow|kowey]] 13:45, 17 February 2007 (UTC)<br />
<br />
== Revamp ==<br />
<br />
I'm going to change this page to better reflect the existing content of the wiki, rather than the content of haskell.org. &mdash;[[User:Ashley Y|Ashley Y]] 05:43, 14 January 2006 (UTC)<br />
<br />
We should probably clean up some of the clutter. I'd like to transfer everything more or less as is and the let the site go to the wiki before coming back to clean up. I'm planning to leave the old web pages for things like the history of Haskell alone at the moment.<br />
--[[User:John Peterson|John Peterson]] 17:36, 24 January 2006 (UTC)<br />
<br />
Maybe the "learning" section should be improved? As it is none of the links under it are extremely useful. Maybe they could be concatenated and split up into "tutorials" for mere mortals, and papers which probably aren't as useful to the newbie? Also, an idea is to redesign to have the news section up in front and visible. The more important items in HWN etc. could be put here (significant new libraries etc). After all, most people are very web-centric these days so using the Haskell.org site as a general announcement page is probably a good idea if it doesn't get too cluttered.<br />
<br />
In fact, I already have a 'significant news' page generated from the HWN<br />
archives, [http://www.cse.unsw.edu.au/~dons/code/hwn/announce.html here].<br />
If this headlines of this kind of content is what we'd like to appear in<br />
a news bar on the page somewhere, just make a place, and I'll update it<br />
as the HWN is published each week. -- Don Stewart<br />
<br />
: Please do! I think significant news (about new libraries, for instance) should be on the front page. If for no other reason than letting casual browsers know that the community is active. Just add titles (with dates) on each news entry on the existing news page. --[[User:SebastianSylvan|SebastianSylvan]] 15:33, 13 March 2006 (UTC)<br />
<br />
== Plan : whitespace issues ==<br />
<br />
I've made the "Haskell : A purely functional language" smaller now, so<br />
its more inline with with python.org, and perl.org logos. My model is<br />
[http://python.org/ python.org], I think our img header should be only a<br />
bit bigger than that.<br />
<br />
The problem still remains that there is too much empty whitespace at the<br />
top of the page, before the real content. Ideally I'd like:<br />
<br />
* 1. a smaller circular logo, about 80% of the current size<br />
* 2. align the circle and text logos.<br />
* 3. remove the "Haskell" wiki title from the page<br />
<br />
So we just need to work out how to do steps 2 and 3.<br />
<br />
Opinions? -- [[User:DonStewart]] Wed Apr 12 16:23:47 EST 2006<br />
<br />
There doesn't seem to be an easy way to remove the title on a particular page. I asked about it on the Mediawiki irc channel, and I found this [http://mail.wikipedia.org/pipermail/mediawiki-l/2005-June/005419.html thread] on the Mediawiki-l mailing list. -- [[User:JohnHamilton|JohnHamilton]] 19:07, 14 April 2006 (UTC)<br />
<br />
== Search with Hoogle box? ==<br />
Lots of websites have a search with google box, maybe a search with hoogle box on the front page (small and discrete) would be appropriate? --[[User:NeilMitchell|Neil Mitchell]] 13:42, 20 February 2006 (UTC)<br />
<br />
: That might be a good idea - the only thing that you'd have to be careful about is that it needs to be clear that Hoogle isn't a web search engine. You could easily confuse people, especially given the name - [[User:MikeDodds|MikeDodds]] 17:43, 27 February 2006 (UTC)<br />
<br />
== Well-formedness / validity ==<br />
Not sure where to put this...<br />
<br />
Currently every Haskell-wiki page is [http://validator.w3.org/check?verbose=1&uri=http%3A%2F%2Fwww.haskell.org%2Fhaskellwiki%2FHaskell invalid XHTML 1.0 Transitional] and in fact not even well-formed XML (as I mention on my [http://en.wikipedia.org/wiki/User:Isaac_Dupree Wikipedia user page], which I'll update if this is fixed!). Most browsers don't mind because it's served as text/html, which it needs to stay for Internet Explorer... Anyway. Whoever controls the header at the top of the haskell-wiki pages:<br />
*Assuming the (X)HTML in the header can be modified...<br />
*The &lt;form> in the header (the search box) [http://www.w3.org/TR/html401/interact/forms.html is a block-level element]. However it occurs inside a &lt;p> element that contains<br />
:Haskell | Wiki community | Recent changes<br />
:Random page | Upload file | Special pages<br />
:(search box)<br />
<br />
:This is not even very much like a paragraph. Turning that &lt;p>...&lt;/p> into a &lt;div>...&lt;/div> would fix this.<br />
*The Haskell logo in the top left corner is implemented with &lt;img ...>. Firstly, this is not well-formed! It should end like &lt;img ... />. Secondly, it needs an alt="something" attribute. Since this logo also functions as a link, the alt text should be non-empty. I suggest alt="&lambda;" (replacing the logo with a lambda character, which is utf-8 as per the character encoding, or perhaps the equivalent alt="&amp;#955;")<br />
<br />
Testing these changes in my own copy, in Internet Explorer 6, Firefox 2 and Konqueror 3.5.5, I observed no ill effects (and a nice lambda effect when the image was unavailable in firefox, konqueror and some text-only browser). And the W3C HTML validator was happy and the CSS validator (which relies on the XML correctness) worked.<br />
<br />
Incidentally, http://haskell.org/ghc/ is valid, <br />
http://haskell.org/hugs/ isn't, http://haskell.org/gtk2hs/ mostly is... but, never mind that ;) (i.e. I won't pursue those)<br />
<br />
Hoping this is an easy fix -[[User:Isaac Dupree|Isaac Dupree]] 19:12, 19 February 2007 (UTC)<br />
:Now HaskellWiki is well-formed and valid - [[User:Isaac Dupree|Isaac Dupree]] 14:02, 6 August 2007 (UTC)<br />
<br />
::I can't guarantee that, it's quite possible that some page's wiki content will translate to bad XHTML. &mdash;[[User:Ashley Y|Ashley Y]] 01:06, 7 August 2007 (UTC)<br />
<br />
== Spinning Haskell Logo ==<br />
What do you think about this modified logo<br />
http://www.haskell.org/sitewiki/images/8/89/Haskell-logo-60.gif<br />
?<br />
Feel free to use it, even on the main page if you like.<br />
<br />
Dan</div>Lenny222https://wiki.haskell.org/index.php?title=Cookbook&diff=40049Cookbook2011-05-19T07:44:07Z<p>Lenny222: FAQ</p>
<hr />
<div>== Haskell Cookbook ==<br />
* [[Cookbook/Compilers and interpreters|Haskell compilers and interpreters]]<br />
* [[Cookbook/Numbers|Numbers]]<br />
* [[Cookbook/Lists and strings|Lists and strings]]<br />
* [[Cookbook/Other data structures|Other data structures]]<br />
* [[Cookbook/Dates And Time|Dates and time]]<br />
* [[Cookbook/Pattern matching|Pattern matching]]<br />
* [[Cookbook/Interactivity|Interactivity]]<br />
* [[Cookbook/Files|Files]]<br />
* [[Cookbook/Network programming|Network programming]]<br />
* [[Cookbook/XML|XML]]<br />
* [[Cookbook/Databases access|Databases access]]<br />
* [[Cookbook/Graphical user interfaces|Graphical user interfaces]]<br />
* [[Cookbook/PDF files|PDF files]]<br />
* [[Cookbook/FFI|FFI]]<br />
* [[Cookbook/Testing|Testing]]<br />
<br />
== Similar projects for other programming languages ==<br />
* [http://cl-cookbook.sourceforge.net/ Common Lisp Cookbook]<br />
* [http://pleac.sourceforge.net/ PLEAC]<br />
* [http://www.zenspider.com/Languages/Ruby/Cookbook/index.html Ruby Cookbook]<br />
* [http://schemecookbook.org/Cookbook/WebHome Scheme Cookbook]<br />
<br />
[[Category:FAQ]]<br />
[[Category:How to]]</div>Lenny222https://wiki.haskell.org/index.php?title=Haskell_Weekly_News&diff=39082Haskell Weekly News2011-03-18T12:30:52Z<p>Lenny222: the former link is pretty outdated</p>
<hr />
<div>__NOTOC__<br />
<br />
[[Image:Hwn-cover.png|Haskell Weekly News]] <br />
[[Image:Hwn-posted.JPG]]<br />
<br />
The Haskell Weekly News (HWN) is a weekly newsletter covering<br />
developments in [[Haskell]]. Content includes announcements of new<br />
projects, discussions from the various Haskell communities, notable<br />
project commit messages, and more.<br />
<br />
The Haskell Weekly News is available at:<br />
<br />
* [http://contemplatecode.blogspot.com/search/label/HWN Contemplating code]<br />
* [http://www.haskell.org/mailman/listinfo/haskell Haskell mailing list]<br />
* Syndicated to [http://planet.haskell.org Planet Haskell]. <br />
* Headlines as [[News]] on [[Haskell|Haskell.org]].<br />
* [http://sequence.complete.org/node/feed RSS]<br />
<br />
The Haskell Weekly News is now also <br />
<br />
=== Back Issues ===<br />
<br />
Back issues are available:<br />
<br />
* [http://code.haskell.org/~byorgey/code/hwn/archives/ Online]. in the [http://darcs.net darcs] repository, and<br />
* At [http://sequence.complete.org The Haskell Sequence].<br />
* The [[News|headlines]] are also archived to [[Haskell|Haskell.org]].<br />
* A few back issues are [http://www.haskell.org/haskellwiki/HWN/es available in Spanish].<br />
<br />
=== History ===<br />
<br />
The [http://www.haskell.org/pipermail/haskell/2005-August/016208.html first issue] <br />
of HWN was published on August 2, 2005. The founder, and initial editor was<br />
John Goerzen. In January 2006, Don Stewart took over as editor, succeeded by Brent Yorgey in June 2008, who was then succeeded by Joe Fredette in September 2009.<br />
<br />
=== Contributing ===<br />
<br />
The simplest way to contribute is to submit stories for HWN. You may<br />
e-mail your stories to jfredett at gmail.com. We welcome stories on any<br />
subject related to Haskell, including new project announcements, notable<br />
project developments, new Haskell papers, and Haskell in the media.<br />
<br />
==== Hints For Contributors ====<br />
<br />
To make things easiest for us to process (which makes it more likely that your<br />
submission gets processed quickly), here are some hints.<br />
<br />
* Include links to whatever you are talking about. Readers need to have a place to go to read more about it.<br />
* Keep it short and sweet. HWN gives people a summary of what's happening, and links to more information. Generally no more than a 4 or 5 sentence paragraph.<br />
* Plain text or hand-edited HTML is required.<br />
<br />
==== Mailing lists ====<br />
<br />
HWN presently uses [http://dir.gmane.org/search.php?match=haskell Gmane.org]<br />
for links into Haskell mailing list discussions. If you send us links into the<br />
mailing list, we prefer that you link to the appropriate items on Gmane. If<br />
not, you can link to them in the [[Haskell]] archives and we'll<br />
find the corresponding gmane posts ourselves. But please at least link to them<br />
''somewhere''.<br />
<br />
==== Darcs Repository ====<br />
<br />
If you want to be really helpful, you can check out our darcs repository and<br />
send us patches directly. This will be the absolute quickest way to get<br />
something into HWN, especially if you do a good job :-)<br />
<br />
Check it out with:<br />
<br />
darcs get http://patch-tag.com/r/HWN2/pullrepo HWN2<br />
<br />
Changes can be made to the file ''content.wiki'', which is written in a<br />
Haskell EDSL, that describes a HWN issue as a data structure. Just<br />
follow the hints in that file for the syntax.<br />
<br />
[[Category:Community]]<br />
[[Category:News]]</div>Lenny222https://wiki.haskell.org/index.php?title=Haskell_in_industry&diff=38332Haskell in industry2011-01-24T14:08:33Z<p>Lenny222: revert this. what's industrial about this? how is the company called? what is their tax ID? how do they make money with a LaTeX-OCR which is hosted on GirtHub?</p>
<hr />
<div>__NOTOC__<br />
<br />
Haskell has a diverse range of use commercially, from aerospace and defense, to finance, to web startups, hardware design firms and a lawnmower manufacturer. This page collects resources on the industrial use of Haskell.<br />
<br />
[http://industry.haskell.org/ http://industry.haskell.org/ihg-logo.png]<br />
<br />
In February 2009 the [http://industry.haskell.org/ Industrial Haskell Group] was launched to support the needs of commercial users of the Haskell programming language. Phase 2 of the effort, expanding membership to research groups and startups with smaller budgets, was [http://www.haskell.org/pipermail/haskell/2009-November/021734.html launched in November 2009]<br />
<br />
The main user conference for industrial Haskell use is CUFP - the [http://cufp.org/ Commercial Users of Functional Programming Workshop]. The annual conference is coming up in October 2010.<br />
<br />
== Industrial Haskell: 2009 status report ==<br />
<br />
===Industrial Haskell Group===<br />
<br />
For the first time, in 2009, a consortium of companies came together to fund continued development of Haskell and its toolchain. The result is the [http://industry.haskell.org IHG], [http://www.haskell.org/pipermail/haskell/2009-March/021060.html launched] earlier in the year. The initial round of funding resulted in [http://industry.haskell.org/status several improvements to the ecosystem.] The group is seeking to [http://industry.haskell.org/join expand membership in 2010] to further consolidate the commercial strength Haskell. The [http://www.vimeo.com/6697688 Birth of the IHG] was presented at the &quot;[http://cufp.galois.com/ Commercial Users of Functional Programming]&quot; workshop.<br />
<br />
===CUFP===<br />
<br />
2009's [http://cufp.org Commercial Users of Functional Programming] workshop was held in Edinburgh, and included talks on:<br />
<br />
* [http://www.vimeo.com/6703480 Real World Haskell];<br />
* [http://www.vimeo.com/6701254 Teleconferencing on maps in Haskell];<br />
* [http://www.vimeo.com/6699769 Functional Programming at Facebook].<br />
<br />
Next year's CUFP will be held in Baltimore.<br />
<br />
===Industrial reports===<br />
<br />
A number of experience reports on the use of Haskell were presented in 2009:<br />
<br />
* As part of [http://galois.com Galois]' 10th birthday, Don Stewart presented a talk at the [http://www.londonhug.net/ LondonHUG] on [http://www.galois.com/blog/2009/04/27/engineering-large-projects-in-haskell-a-decade-of-fp-at-galois/ Engineering Large Projects in Haskell], celebrating a decade of use of Haskell by Galois.<br />
* [http://www.typlab.com/ TypLAB], a new startup [http://blog.typlab.com/2009/09/why-we-use-haskell/ talked about why they use Haskell].<br />
* Facebook released its [http://github.com/facebook/lex-pass/tree/master lex-pass tool to automate changes to a PHP codebase, by writing abstract-syntax-tree transformers in Haskell]; and <br />
* [http://www.starling-software.com/en/ Starling Software] described [http://www.starling-software.com/misc/icfp-2009-cjs.pdf building a real time financial trading system in Haskell] :: PDF.<br />
* Tom Hawkin's [http://hackage.haskell.org/package/atom/ Atom EDSL] for control systems [http://www.haskell.org/pipermail/haskell-cafe/2009-July/064775.html went into production use] in trucks and buses, and is [http://www.haskell.org/pipermail/haskell-cafe/2009-December/070558.html starting to be used] on a NASA runtime monitoring project.<br />
* The [http://www.cryptol.net Cryptol] release got [http://developers.slashdot.org/article.pl?sid=08/12/26/1725208 slashdotted].<br />
* [http://blog.tupil.com/building-commercial-haskell-applications/ Tupil.com] talked about their experiences building commercial web apps in Haskell.<br />
<br />
== Haskell in Industry ==<br />
<br />
Many companies have used Haskell for a range of projects, including:<br />
<br />
* [http://cufp.galois.com/2007/abstracts.html#CyrilSchmidt ABN AMRO] Amsterdam, The Netherlands<br />
<blockquote><br />
ABN AMRO is an international bank headquartered in Amsterdam. For its<br />
investment banking activities it needs to measure the counterparty risk<br />
on portfolios of financial derivatives. </blockquote><br />
::ABN AMRO's [http://cufp.galois.com/2007/abstracts.html#CyrilSchmidt CUFP talk].<br />
<br />
* [http://www.aetion.com/ Aetion Technologies LLC] Columbus, Ohio<br />
<blockquote><br />
Aetion is a defense contractor whose applications use artificial intelligence.<br />
Rapidly changing priorities make it important to minimize the code impact of<br />
changes, which suits Haskell well. Aetion has developed three main projects in<br />
Haskell, all successful. Haskell's concise code was perhaps most important for<br />
rewriting: it made it practicable to throw away old code occasionally. DSELs<br />
allowed the AI to be specified very declaratively. <br />
</blockquote><br />
::Aetion's [http://cufp.galois.com/2006/slides/GaryMorris.pdf CUFP talk].<br />
<br />
* [http://www.allstontrading.com/ Allston Trading]<br />
<blockquote><br />
Headquartered in Chicago, Illinois, Allston Trading, LLC is a premier high frequency market maker in over 40 financial exchanges, in 20 countries, and in nearly every conceivable product class. Allston makes some use of Haskell for their trading infrastructure.<br />
</blockquote><br />
<br />
* [http://www.amgen.com/ Amgen] Thousand Oaks, California<br />
<blockquote><br />
Amgen is a human therapeutics company in the biotechnology industry. Amgen pioneered the development of novel products based on advances in recombinant DNA and molecular biology and launched the biotechnology industry’s first blockbuster medicines.<br />
<br />
Amgen uses Haskell;<br />
<br />
* To rapidly build software to implement mathematical models and other complex, mathematically oriented applications<br />
* Provide a more mathematically rigorous validation of software<br />
* To break developers out of their software development rut by giving them a new way to think about software.<br />
</blockquote><br />
::Amgen's [http://cufp.galois.com/2008/abstracts.html#BalabanDavid CUFP talk].<br />
<br />
* [http://www.ansemond.com/ Ansemond LLC]<br />
<blockquote><br />
"Find It! Keep It! is a Mac Web Browser that lets you keep the pages you<br />
visit in a database. A list of these pages is shown in the 'database<br />
view'. "<br />
</blockquote><br />
<br />
* [http://antiope.com/ Antiope] Fair Haven, New Jersey<br />
<blockquote><br />
Antiope Associates provides custom solutions for wireless communication<br />
and networking problems. Our team has expertise in all aspects of<br />
wireless system design, from the physical and protocol layers to complex<br />
networked applications. Antiope Associates's relies on a number of<br />
advanced techniques to ensure that the communication systems we design<br />
are reliable and free from error. We use custom simulation tools<br />
developed in Haskell, to model our hardware designs..<br />
</blockquote><br />
::Antiope's [http://cufp.galois.com/2008/slides/WrightGregory.pdf CUFP talk].<br />
<br />
* [http://www.att.com AT&amp;T]<br />
<blockquote><br />
Haskell is being used in the Network Security division to automate processing of internet abuse complaints. Haskell has allowed us to easily meet very tight deadlines with reliable results.<br />
</blockquote><br />
<br />
* [http://www.anygma.com/ Anygma] Antwerp, Belgium<br />
<blockquote><br />
Anygma is a startup company focusing on generating easy-to-use tools for<br />
creating audio-visual 2D/3D content, in the area of entertainment,<br />
media, corporate communication and the internet. The company is closely<br />
related to [http://www.nazooka.com/ Nazooka], a niche player in the<br />
media industry, specialized in creating cross media concepts and<br />
communication solutions. Anygma is using Haskell to quickly build a<br />
prototype of its new content creation platform, targeted towards artists<br />
and designers. </blockquote><br />
<br />
* [http://www.baml.com/ Bank of America Merril Lynch]<br />
<blockquote>Haskell is being used for backend data transformation and loading.</blockquote><br />
<br />
* [http://www.haskell.org/communities/12-2007/html/report.html#sect7.1.2 Barclays Capital Quantitative Analytics Group]<br />
<blockquote><br />
Barclays Capital's Quantitative Analytics group is using Haskell to<br />
develop an embedded domain-specific functional language (called FPF)<br />
which is used to specify exotic equity derivatives. These derivatives,<br />
which are naturally best described in terms of mathematical functions,<br />
and constructed compositionally, map well to being expressed in an<br />
embedded functional language. This language is now regularly being used<br />
by people who had no previous functional language experience.<br />
</blockquote><br />
::[http://lambda-the-ultimate.org/node/3331 Simon Frankau et al's JFP paper on their use of Haskell]<br />
<br />
* [http://www.bcode.com/ bCODE Pty Ltd] Sydney Australia<br />
<blockquote><br />
bCode Pty Ltd is a small venture capital-funded startup using Ocaml and a bit of Haskell in Sydney Australia.<br />
</blockquote><br />
<br />
* [http://www.bluespec.com/ Bluespec, Inc.] Waltham, Massachusetts<br />
<br />
<blockquote><br />
Developing a modern integrated circuit (ASIC or FPGA) is an enormously<br />
expensive process involving specification, modeling (to choose and fix the<br />
architecture), design (to describe what will become silicon) and verification<br />
(to ensure that it meets the specs), all before actually committing anything to<br />
silicon (where the cost of a failure can be tens of millions of dollars).<br />
Bluespec, Inc. is a three year-old company that provides language facilities,<br />
methodologies, and tools for this purpose, within the framework of the IEEE<br />
standard languages SystemVerilog and SystemC, but borrowing ideas heavily from<br />
Term Rewriting Systems and functional programming languages like Haskell. In<br />
this talk, after a brief technical overview to set the context, we will<br />
describe our tactics and strategies, and the challenges we face, in introducing<br />
declarative programming ideas into this field, both externally (convincing<br />
customers about the value of these ideas) and internally (using Haskell for our<br />
tool implementation). <br />
</blockquote><br />
<br />
::Bluespec's [http://cufp.galois.com/2006/abstracts.html#RishiyurNikhil CUFP talk].<br />
<br />
<br />
* [http://bu.mp/ Bump]<br />
<blockquote><br />
Bump use a Haskell-based server, [http://github.com/jamwt/Angel Angel], for process supervisor for all their backend systems.<br />
</blockquote><br />
<br />
* [http://www.circos.com Circos Brand Karma] Singapore<br />
<blockquote><br />
Brand Karma provides services to brand owners to measure online sentiments towards their brands.<br />
Haskell is used in building parts of the product, specifically for back-end job scheduling and brand matching.<br />
</blockquote><br />
<br />
* [http://www.credit-suisse.com/ Credit Suisse Global Modelling and Analytics Group] London, UK; New York City, New York<br />
<br />
<blockquote><br />
GMAG, the quantitative modelling group at Credit Suisse, has been using Haskell<br />
for various projects since the beginning of 2006, with the twin aims of<br />
improving the productivity of modellers and making it easier for other people<br />
within the bank to use GMAG models. Current projects include: Further work on<br />
tools for checking, manipulating and transforming spreadsheets; a<br />
domain-specific language embedded in Haskell for implementing reusable<br />
components that can be compiled into various target forms (see the video presentation: [http://www.londonhug.net/2008/08/11/video-paradise-a-dsel-for-derivatives-pricing/ Paradise, a DSEL for Derivatives Pricing]).<br />
</blockquote><br />
<br />
::Credit Suisse's [http://cufp.galois.com/2006/abstracts.html#HowardMansell CUFP talk].<br />
<br />
* [http://www.db.com/ Deutsche Bank Equity Proprietary Trading, Directional Credit Trading]<br />
<br />
<blockquote><br />
The Directional Credit Trading group uses Haskell as the primary<br />
implementation language for all its software infrastructure.<br />
</blockquote><br />
<br />
::Deutsche Bank's [http://cufp.galois.com/2008/abstracts.html#PolakowJeff CUFP talk].<br />
<br />
* [http://article.gmane.org/gmane.comp.lang.haskell.cafe/37093 Eaton] Cleveland, Ohio<br />
<br />
<blockquote><br />
Design and verification of hydraulic hybrid vehicle systems<br />
</blockquote><br />
<br />
::Eaton's [http://cufp.galois.com/2008/abstracts.html#HawkinsTom CUFP talk]<br />
::Eaton's [http://www.haskell.org/pipermail/haskell-cafe/2009-April/060602.html experiences using a Haskell DSL]<br />
<br />
* [Ericsson AB]<br />
<blockquote><br />
Ericsson uses Haskell for the implementation of Feldspar, an EDSL for digital signal processing algorithms.<br />
</blockquote><br />
<br />
::Ericsson's [http://hackage.haskell.org/package/feldspar-compiler Feldspar compiler]<br />
<br />
* [http://facebook.com Facebook]<br />
<br />
<blockquote><br />
Facebook uses some Haskell internally for tools. [http://github.com/facebook/lex-pass/tree/master lex-pass] is a tool for programmatically manipulating a PHP code base via Haskell.<br />
</blockquote><br />
<br />
:: Facebook's [http://cufp.galois.com/2009/abstracts.html#ChristopherPiroEugeneLetuchy CUFP talk]<br />
<br />
* [http://www.factisresearch.com/ Factis Research]<br />
<blockquote><br />
actis research, located in Freiburg, Germany, develops reliable and user-friendly mobile solutions. Our client software runs under J2ME, Symbian, iPhone OS, Android, and Blackberry. The server components are implemented in Python and Haskell. We are actively using Haskell for a number of projects, most of which are released under an open-source license.<br />
</blockquote><br />
<br />
:: Factis' [http://haskell.org/communities/05-2010/html/report.html#factisresearch HCAR submission]<br />
<br />
* [http://www.haskell.org/pipermail/haskell-cafe/2008-September/047168.html Gamr7] http://gamr7.com/ Lyon, France<br />
<br />
<blockquote><br />
Gamr7 is a startup focused on procedural city generation for the game<br />
and simulation market. <br />
</blockquote><br />
<br />
* [http://www.galois.com/ Galois, Inc] Portland, Oregon<br />
<br />
<blockquote><br />
Galois designs and develops high confidence software for critical applications.<br />
Our innovative approach to software development provides high levels of<br />
assurance, yet its scalability enables us to address the most complex problems.<br />
We have successfully engineered projects under contract for corporations and<br />
government clients in the demanding application areas of security, information<br />
assurance and cryptography. <br />
</blockquote><br />
<br />
::Galois' [http://cufp.galois.com/2007/abstracts.html#JohnLaunchbury CUFP talk]<br />
::Galois' [http://www.galois.com/blog/2009/04/27/engineering-large-projects-in-haskell-a-decade-of-fp-at-galois/ retrospective on 10 years of industrial Haskell use]<br />
<br />
* [http://google.com Google]<br />
<br />
<blockquote><br />
Haskell is used on a small number of internal projects in Google, for internal IT infrastructure support. <br />
</blockquote><br />
<br />
::Google's [http://k1024.org/~iusty/papers/icfp10-haskell-reagent.pdf ICFP 2010 experience report on Haskell]<br />
<br />
* [http://glyde.com/ Glyde]<br />
<br />
<blockquote><br />
Glyde uses OCaml and Haskell for a few projects. Glyde uses Haskell for our client-side template source-to-source translator, which converts HAML-like view templates into JS code.<br />
</blockquote><br />
<br />
* [http://article.gmane.org/gmane.comp.lang.haskell.cafe/21951 HAppS LLC]<br />
<br />
<blockquote><br />
Open web development company. Now merged with [http://happstack.com/ happstack]<br />
</blockquote><br />
<br />
* [http://hustlerturf.com Hustler Turf Equipment] Hesston, Kansas<br />
<blockquote><br />
Designs, builds, and sells lawn mowers. We use quite a bit of Haskell, especially as a "glue language" for tying together data from different manufacturing-related systems. We also use it for some web apps that are deployed to our dealer network. There are also some uses for it doing sysadmin<br />
automation, such as adding/removing people from LDAP servers and the like<br />
</blockquote><br />
<br />
* [http://iba-cg.de/haskell.html iba Consulting Gesellschaft] - Intelligent business architecture for you. Leipzig, Germany<br />
<br />
<blockquote><br />
iba CG develops software for large companies: <br />
* risk analysis and reporting solution for power supply company; <br />
* contract management, assert management, booking and budgeting software for one of the worldwide leading accounting firm.<br />
</blockquote><br />
<br />
* [http://www.ics-ag.de/ Informatik Consulting Systems AG]<br />
<br />
<blockquote><br />
ICS AG developed a simulation and testing tool which based on a DSL (Domain Specific Language). The DSL is used for the description of architecture and behavior of distributed system components (event/message based, reactive). The compiler was written in Haskell (with target language Ada). The test system is used in some industrial projects.<br />
</blockquote><br />
<br />
* [http://www.ivu.de/uk/products/public-transport/ IVU Traffic Technologies AG]<br />
<blockquote><br />
The rostering group at IVU Traffic Technologies AG has been using Haskell to check rosters for compliance with EC regulations.<br />
<br />
Our implementation is based on an embedded DSL to combine the regulation’s single rules into a solver that not only decides on instances but, in the case of a faulty roster, finds an interpretation of the roster that is “favorable” in the sense that the error messages it entails are “helpful” in leading the dispatcher to the resolution of the issue at hand.<br />
<br />
The solver is both reliable (due to strong static typing and referential transparency — we have not experienced a failure in three years) and efficient (due to constraint propagation, a custom search strategy, and lazy evaluation).<br />
<br />
Our EC 561/2006 component is part of the IVU.crew software suite and as such is in wide-spread use all over Europe, both in planning and dispatch. So the next time you enter a regional bus, chances are that the driver’s roster was checked by Haskell.<br />
</blockquote><br />
<br />
* [http://www.janrain.com JanRain]<br />
<blockquote><br />
JanRain uses Haskell for network and web software. Read more about [http://www.janrain.com/blogs/haskell-janrain Haskell at JanRain]<br />
</blockquote><br />
<br />
* [http://joyridelabs.de/game/ Joyride Laboratories]<br />
<br />
<blockquote><br />
Joyride Laboratories is an independent game development studio, founded in 2009 by Florian Hofer and Sönke Hahn. Their first game, "Nikki and the Robots" will be released in 2010.<br />
</blockquote><br />
<br />
* [http://www.linspire.com/ Linspire]<br />
<br />
<blockquote><br />
Linspire, Inc. has used functional programming since its inception in 2001,<br />
beginning with extensive use of O'Caml, with a steady shift to Haskell as its<br />
implementations and libraries have matured. Hardware detection, software<br />
packaging and CGI web page generation are all areas where we have used<br />
functional programming extensively. Haskell's feature set lets us replace much<br />
of our use of little languages (e.g., bash or awk) and two-level languages (C<br />
or C++ bound to an interpreted language), allowing for faster development,<br />
better code sharing and ultimately faster implementations. Above all, we value<br />
static type checking for minimizing runtime errors in applications that run in<br />
unknown environments and for wrapping legacy programs in strongly typed<br />
functions to ensure that we pass valid arguments. <br />
</blockquote><br />
<br />
::Linspire's [http://cufp.galois.com/2006/abstracts.html#CliffordBeshers CUFP talk]<br />
::Linspire's experience report on using [http://portal.acm.org/citation.cfm?doid=1291151.1291184 functional programming to manage a Linux distribution]<br />
<br />
* [http://www.mitre.org/ MITRE]<br />
<blockquote><br />
MITRE uses Haskell for, amongst other things, the [http://hackage.haskell.org/package/cpsa analysis of cryptographic protocols].<br />
</blockquote><br />
<br />
* [http://ertos.nicta.com.au/research/sel4/ NICTA]<br />
<blockquote><br />
NICTA has used Haskell as part of a project to verify the L4 microkernel.<br />
</blockquote><br />
::[http://www.drdobbs.com/embedded/222400553 Read the Dr. Dobbs article on using Haskell and formal methods to verify a kernel]<br />
<br />
* [http://blog.openomy.com/2008/01/case-study-using-haskell-and-happs-for.html Openomy]<br />
<br />
<blockquote><br />
Openomy's API v2.0 is developed in Haskell, using the<br />
[http://www.happs.org/ HAppS] web platform.<br />
</blockquote><br />
<br />
* [http://www.oblomov.com Oblomov]<br />
<br />
<blockquote><br />
Oblomov Systems is a one-person software company based in Utrecht, The Netherlands. Founded in 2009, Oblomov has since then been working on a number of Haskell-related projects. The main focus lies on web-applications and (web-based) editors. Haskell has turned out to be extremely useful for implementing web servers that communicate with JavaScript clients or iPhone apps.<br />
</blockquote><br />
<br />
:: [http://haskell.org/communities/05-2010/html/report.html#oblomov Oblomov's HCAR submission].<br />
<br />
* [http://www.patch-tag.com Patch-Tag: hosting for darcs]<br />
<blockquote><br />
Need somewhere to put your darcs code? Try us.<br />
<br />
Patch-Tag is built with [http://happstack.com happstack], the continuation of the project formerly known as HAppS.<br />
</blockquote><br />
<br />
* [http://www.peerium.com Peerium, Inc] Cambridge, Massachusetts<br />
<blockquote><br />
At Peerium, we're striving to bring a new level of quality and efficiency to online communication and collaboration within virtual communities, social networks, and business environments. We believe that a new environment that supports the effortless sharing of both information and software will enable a level of online cooperation far beyond current Web-based technologies -- modern programming techniques will enable the creation of more robust and more powerful programs within these environments. To this end, we're building a new software platform for direct, real-time communication and collaboration within graphically rich environments. Peerium is located in the heart of Harvard Square in Cambridge, Massachusetts.<br />
</blockquote><br />
<br />
* [http://www.qualcomm.com/ Qualcomm, Inc]<br />
<br />
<blockquote><br />
Qualcomm uses Haskell to generate Lua bindings to the BREW platform <br />
</blockquote><br />
<br />
* [http://www.renci.org/ Renaissaince Computing Institute], Chapel Hill, North Carolina<br />
<blockquote><br />
The Renaissance Computing Institute (RENCI), a multi-institutional organization, brings together multidisciplinary experts and advanced technological capabilities to address pressing research issues and to find solutions to complex problems that affect the quality of life in North Carolina, our nation and the world.<br />
<br />
Research scientists at RENCI have used Haskell for a number of projects, including [http://vis.renci.org/jeff/2009/08/26/open-sourcing-the-big-board/ The Big Board].<br />
</blockquote><br />
<br />
::RENCI's [http://cufp.galois.com/2009/abstracts.html#JeffersonHeard CUFP talk].<br />
<br />
* [http://www.signalicorp.com/index.htm Signali] Portland, Oregon<br />
<br />
<blockquote><br />
Signali Corp is a new custom hardware design company. Our chief products<br />
are custom IP cores targeted for embedded DSP and cryptographic<br />
applications. Our specialty is the design and implementation of<br />
computationally intensive, complex algorithms. The interfaces to each<br />
core are modular and can be very efficiently modified for your specific<br />
application. System-level integration and validation is crucial and is<br />
the majority of investment in a product.<br />
</blockquote><br />
<br />
* [http://www.standardchartered.com/home/en/index.html Standard Chartered]<br />
<br />
<blockquote><br />
Standard Chartered has a group using Haskell in finance.<br />
</blockquote><br />
<br />
* [http://seereason.org/ SeeReason Partners, LLC]<br />
<br />
<blockquote><br />
Clifford Beshers, David Fox and Jeremy Shaw have formed SeeReason<br />
Partners, LLC. Our plan is to deliver services over the internet, using<br />
Haskell to build our applications whenever possible. We have chosen<br />
primary mathematics skills as our domain, seeking to create a social<br />
networking site with games and activities that are both fun and<br />
educational.<br />
</blockquote><br />
<br />
* [http://www.starling-software.com/en/index.html Starling Software] Tokyo, Japan<br />
<blockquote><br />
Starling Software are developing a commercial automated options trading system <br />
in Haskell, and are migrating other parts of their software suite to<br />
Haskell.<br />
</blockquote><br />
<br />
::Starling Software's [http://www.starling-software.com/misc/icfp-2009-cjs.pdf experience building real time trading systems in Haskell] <br />
<br />
* [http://www.tabula.com/ Tabula.com]<br />
<blockquote><br />
Tabula is a privately held fabless semiconductor company developing 3-D Programmable Logic Devices. Haskell is used for internal compiler toolchains related to hardware design.<br />
</blockquote><br />
<br />
* [http://tsurucapital.com Tsuru Capital] Tokyo, Japan<br />
<blockquote><br />
Tsuru Capital is operating an automated options trading system written in Haskell.<br />
</blockquote><br />
<br />
::[http://haskell.org/communities/05-2010/html/report.html#sect7.6 Tsuru Capital's HCAR submission]<br />
<br />
* [http://tupil.com/ Tupil] Utrecht, The Netherlands<br />
<br />
<blockquote><br />
Tupil is a Dutch company that built software for clients, written in Haskell. Tupil used Haskell for the speed in development and resulting software quality. The company is founded by Chris Eidhof and Eelco Lempsink. Currently they build iPhone/iPad applications in Objective-C.<br />
</blockquote><br />
<br />
:: Tupil's experience building [http://blog.tupil.com/building-commercial-haskell-applications/ commercial web apps in Haskell]<br />
<br />
* [http://typlab.com TypLAB] Amsterdam, The Netherlands<br />
<br />
<blockquote><br />
TypLAB investigates and develops new ways of creating and consuming online content.<br />
</blockquote><br />
<br />
:: TypLAB's blog on [http://blog.typlab.com/2009/09/why-we-use-haskell/ why they use Haskell]<br />
<br />
* [http://www.sensor-sense.nl Sensor Sense] Nijmegen, The Netherlands<br />
<br />
<blockquote><br />
Sensor Sense is offering high technology systems for gas measurements in the ''ppbv'' down to ''pptv'' range. We use Haskell for the embedded control software of our trace gas detectors.<br />
</blockquote><br />
<br />
If you're using Haskell commercially, please add your details here.<br />
<br />
== The Industrial Haskell Group ==<br />
<br />
The [http://industry.haskell.org/ Industrial Haskell Group (IHG)] is an organisation to support the needs of commercial users of the Haskell programming language. <br />
<br />
== Jobs and recruitment ==<br />
<br />
[[Jobs|Haskell jobs]].<br />
<br />
== Consultants ==<br />
<br />
[[Consultants]]<br />
<br />
== Commercial Users of Functional Programming Workshop ==<br />
<br />
[http://www.galois.com/cufp/ Commercial Users of Functional Programming]<br />
<br />
The goal of [http://www.galois.com/cufp/ CUFP] is to build a community<br />
for users of functional programming languages and technology, be they<br />
using functional languages in their professional lives, in an open<br />
source project (other than implementation of functional languages), as a<br />
hobby, or any combination thereof. In short: anyone who uses functional<br />
programming as a means, but not an end.<br />
<br />
[[Category:Community]]</div>Lenny222https://wiki.haskell.org/index.php?title=Talk:Haskell_in_industry&diff=38052Talk:Haskell in industry2010-12-30T14:20:20Z<p>Lenny222: http://detexify.kirelabs.org/classify.html ?</p>
<hr />
<div>Can somehow please point out what's industrial about http://detexify.kirelabs.org/classify.html ?<br />
<br />
--[[User:Lenny222|Lenny222]] 14:20, 30 December 2010 (UTC)<br />
<br />
<br />
----<br />
<br />
<br />
Erm... Erlang Training and Consultancy Ltd? What's that got to do with ''Haskell''? [[User:MathematicalOrchid|MathematicalOrchid]] 07:44, 23 June 2007 (UTC)</div>Lenny222https://wiki.haskell.org/index.php?title=Mac_OS_X_Strike_Force&diff=37336Mac OS X Strike Force2010-10-26T10:15:05Z<p>Lenny222: /* Take care of the Haskell Platform installer */</p>
<hr />
<div>The following is a wiki page to centralize discussion of how to improve Haskell on Mac OS X. The name "strike force" comes from dons' [http://www.reddit.com/r/haskell/comments/d9wm2/is_it_time_for_a_strike_team_to_form_dedicated_to/ post on reddit] and the comments therein.<br />
<br />
== Goals ==<br />
<br />
=== Take care of the Haskell Platform installer ===<br />
<br />
The [http://github.com/gregorycollins/haskell-platform-osx-installer Haskell Platform OSX installer] is looking for a new maintainer (contact Greg: "greg at gregorycollins net").<br />
<br />
* who is willing to take over?<br />
** collaborate effort or single effort?<br />
* where to host?<br />
** probably stay on github<br />
* what are the most pressing things on the todo list?<br />
<br />
=== Make GUI-bindings easy to install ===<br />
<br />
Neither wxHaskell nor Gtk2hs with native Gtk seems to be easy to install.<br />
What's the state of HQK and qtHaskell?<br />
<br />
* We should provide at least one easy way to install one set of GUI bindings<br />
<br />
==== qtHaskell ====<br />
<br />
qtHaskell with i386 ghc can be compiled with the following steps:<br />
<br />
* Install Qt via MacPorts with the universal option set.<br />
* Install Perl 5.12 via MacPorts.<br />
* qmake will default to building x86_64 binaries, which does not work with 32-bit ghc. Modify ''/opt/local/libexec/qt4-mac/mkspecs/macx-g++/qmake.conf'', adding the following lines:<br />
<pre><br />
QMAKE_CXXFLAGS = -arch i386<br />
QMAKE_CFLAGS = -arch i386<br />
QMAKE_LFLAGS = -arch i386<br />
</pre><br />
* You could also create your own spec (''macx-g++-i386''?), and modify ''build.pl'' in the qtHaskell top-level directory to use this spec.<br />
* Build qtHaskell by executing the ''build'' script in the top-level directory.<br />
<br />
=== Make GHC 64 bit ===<br />
<br />
Mac OS X GHC Trac tickets:<br />
* [[http://hackage.haskell.org/trac/ghc/ticket/2965 2965]] is the main ticket, with lots of CC: people<br />
* [[http://hackage.haskell.org/trac/ghc/ticket/4163 4163]] gives some cross-compiling hope<br />
<br />
=== Reduce the number of GHC tickets ===<br />
<br />
* All [http://hackage.haskell.org/trac/ghc/query?groupdesc=1&group=status&order=priority&os=MacOS+X&col=id&col=summary&col=owner&col=type&col=status&col=priority&col=milestone Mac OS X GHC Trac tickets]<br />
<br />
== Information ==<br />
<br />
=== Wiki ===<br />
<br />
* [[Mac OS X]]<br />
* [[Mac OS X Common Installation Paths]]<br />
* [[Using Haskell in an Xcode Cocoa project]]<br />
<br />
=== Installing Haskell ===<br />
<br />
==== How Haskell is on OS X today ====<br />
<br />
The simplest methods are currently:<br />
<br />
* Binary GHC framework (/Library/Framework)<br />
* Binary Haskell platform framework (/Library/Framework)<br />
* MacPorts (/opt/local)<br />
* Fink (/sw)<br />
* Homebrew (symlinked into /usr/local ?)<br />
<br />
==== Manually compiled ====<br />
<br />
[[User:ChrisKuklewicz|ChrisKuklewicz]] 11:53, 6 September 2010 (UTC) I use MacPorts for the infrastructure and compile ghc against /opt/local but with --prefix=/opt/ghc-6.12.3 to keep it separate.<br />
<br />
==== Dynamic Linking ====<br />
<br />
working in GHC HEAD, not in any released version.<br />
<br />
<br />
==== Difficult libraries on OS X ====<br />
<br />
Libraries needed for ghc<br />
<br />
* iconv (older version in /usr is incompatible with new version from MacPorts)<br />
* readline (faked in /usr, provided by framework or MacPorts)<br />
* gmp (framework or MacPorts)<br />
<br />
Libraries needed for other packages? gtk?<br />
<br />
=== OS X code integration ===<br />
<br />
Write Haskell in XCode?<br />
<br />
Write ObjectiveC against GHC.Framework?<br />
<br />
FFI for Objective C from Haskell?<br />
<br />
=== Improvements? ===<br />
<br />
A cabal2pkg that maintains proper dependency tracking?<br />
<br />
Discussion forum for all this?</div>Lenny222https://wiki.haskell.org/index.php?title=Chlor&diff=37324Chlor2010-10-22T12:37:44Z<p>Lenny222: </p>
<hr />
<div>'''Chlor''' is a pure-Haskell library that<br />
<br />
* produces vector graphics<br />
* provides highlevel components<br />
* supports essential file formats like SVG, EPS, etc. (PDF to follow)<br />
<br />
== Examples ==<br />
<br />
The page jumps in an interactive novel:<br />
<br />
[[Image:Chlor_example1.png]]<br />
<br />
== Overview ==<br />
<br />
=== Boxes ===<br />
Layout can be defined by boxes, which are invisible themselves.<br />
<br />
Boxes can be<br />
<br />
* shrinked<br />
* split - with margins or no margins<br />
* merged with other boxes<br />
* filtered<br />
<br />
[[Image:Chlor_boxes.png]]<br />
<br />
=== Shapes ===<br />
<br />
Some builtin-shapes mapped to a box grid:<br />
<br />
[[Image:Chlor_shapes.png]]<br />
<br />
=== Graphical attributes ===<br />
<br />
Dash pattern:<br />
<br />
[[Image:Chlor_dash_patterns.png]]<br />
<br />
Clipping:<br />
<br />
[[Image:Chlor_clipping.png]]<br />
<br />
=== Transformations ===<br />
<br />
Rotate, shear:<br />
<br />
[[Image:Chlor_affine_map.png]]<br />
<br />
=== Charts ===<br />
<br />
Line chart:<br />
<br />
[[Image:Chlor line chart.png]]<br />
<br />
== Installation ==<br />
Chlor is hosted on [http://github.com/Lenny222/Chlor github]<br />
<br />
== Development ==<br />
<br />
=== Plans ===<br />
<br />
* see the [http://github.com/Lenny222/Chlor/wiki/Todo TODO list] on github</div>Lenny222https://wiki.haskell.org/index.php?title=Chlor&diff=37323Chlor2010-10-22T12:37:05Z<p>Lenny222: /* Installation */</p>
<hr />
<div>'''Chlor''' is a pure-Haskell library that<br />
<br />
* produces vector graphics<br />
* provides highlevel components<br />
* supports essential file formats like SVG, EPS, etc. (PDF to follow)<br />
<br />
== Examples ==<br />
<br />
The page jumps in an interactive novel:<br />
<br />
[[Image:Chlor_example1.png]]<br />
<br />
== Overview ==<br />
<br />
=== Boxes ===<br />
Layout can be defined by boxes, which are invisible themselves.<br />
<br />
Boxes can be<br />
<br />
* shrinked<br />
* split - with margins or no margins<br />
* merged with other boxes<br />
* filtered<br />
<br />
[[Image:Chlor_boxes.png]]<br />
<br />
=== Shapes ===<br />
<br />
Some builtin-shapes mapped to a box grid:<br />
<br />
[[Image:Chlor_shapes.png]]<br />
<br />
=== Graphical attributes ===<br />
<br />
Dash pattern:<br />
<br />
[[Image:Chlor_dash_patterns.png]]<br />
<br />
Clipping:<br />
<br />
[[Image:Chlor_clipping.png]]<br />
<br />
=== Transformations ===<br />
<br />
Rotate, shear:<br />
<br />
[[Image:Chlor_affine_map.png]]<br />
<br />
=== Charts ===<br />
<br />
Line chart:<br />
<br />
[[Image:Chlor line chart.png]]<br />
<br />
== Installation ==<br />
Chlor is hosted on [http://github.com/Lenny222/Chlor github]<br />
<br />
== Development ==<br />
<br />
=== Plans ===<br />
<br />
* improve line chart and add more chart types<br />
* add import for simple SVG graphics<br />
* add PDF export via HPDF<br />
* see the [http://github.com/Lenny222/Chlor/wiki/Todo TODO list] on github<br />
<br />
== Contact ==<br />
[[User:Lenny222]]</div>Lenny222https://wiki.haskell.org/index.php?title=Chlor&diff=37322Chlor2010-10-22T12:36:44Z<p>Lenny222: /* Boxes */ moving away from the mandatory boxes model</p>
<hr />
<div>'''Chlor''' is a pure-Haskell library that<br />
<br />
* produces vector graphics<br />
* provides highlevel components<br />
* supports essential file formats like SVG, EPS, etc. (PDF to follow)<br />
<br />
== Examples ==<br />
<br />
The page jumps in an interactive novel:<br />
<br />
[[Image:Chlor_example1.png]]<br />
<br />
== Overview ==<br />
<br />
=== Boxes ===<br />
Layout can be defined by boxes, which are invisible themselves.<br />
<br />
Boxes can be<br />
<br />
* shrinked<br />
* split - with margins or no margins<br />
* merged with other boxes<br />
* filtered<br />
<br />
[[Image:Chlor_boxes.png]]<br />
<br />
=== Shapes ===<br />
<br />
Some builtin-shapes mapped to a box grid:<br />
<br />
[[Image:Chlor_shapes.png]]<br />
<br />
=== Graphical attributes ===<br />
<br />
Dash pattern:<br />
<br />
[[Image:Chlor_dash_patterns.png]]<br />
<br />
Clipping:<br />
<br />
[[Image:Chlor_clipping.png]]<br />
<br />
=== Transformations ===<br />
<br />
Rotate, shear:<br />
<br />
[[Image:Chlor_affine_map.png]]<br />
<br />
=== Charts ===<br />
<br />
Line chart:<br />
<br />
[[Image:Chlor line chart.png]]<br />
<br />
== Installation ==<br />
Chlor is currently only available from <br />
[http://github.com/Lenny222/Chlor github]<br />
<br />
== Development ==<br />
<br />
=== Plans ===<br />
<br />
* improve line chart and add more chart types<br />
* add import for simple SVG graphics<br />
* add PDF export via HPDF<br />
* see the [http://github.com/Lenny222/Chlor/wiki/Todo TODO list] on github<br />
<br />
== Contact ==<br />
[[User:Lenny222]]</div>Lenny222https://wiki.haskell.org/index.php?title=Chlor&diff=37262Chlor2010-10-12T14:14:01Z<p>Lenny222: /* Plans */</p>
<hr />
<div>'''Chlor''' is a pure-Haskell library that<br />
<br />
* produces vector graphics<br />
* provides highlevel components<br />
* supports essential file formats like SVG, EPS, etc. (PDF to follow)<br />
<br />
== Examples ==<br />
<br />
The page jumps in an interactive novel:<br />
<br />
[[Image:Chlor_example1.png]]<br />
<br />
== Overview ==<br />
<br />
=== Boxes ===<br />
Layout is defined by boxes, which are invisible themselves.<br />
<br />
Boxes can be<br />
<br />
* shrinked<br />
* split - with margins or no margins<br />
* merged with other boxes<br />
* filtered<br />
<br />
[[Image:Chlor_boxes.png]]<br />
<br />
=== Shapes ===<br />
<br />
Some builtin-shapes mapped to a box grid:<br />
<br />
[[Image:Chlor_shapes.png]]<br />
<br />
=== Graphical attributes ===<br />
<br />
Dash pattern:<br />
<br />
[[Image:Chlor_dash_patterns.png]]<br />
<br />
Clipping:<br />
<br />
[[Image:Chlor_clipping.png]]<br />
<br />
=== Transformations ===<br />
<br />
Rotate, shear:<br />
<br />
[[Image:Chlor_affine_map.png]]<br />
<br />
=== Charts ===<br />
<br />
Line chart:<br />
<br />
[[Image:Chlor line chart.png]]<br />
<br />
== Installation ==<br />
Chlor is currently only available from <br />
[http://github.com/Lenny222/Chlor github]<br />
<br />
== Development ==<br />
<br />
=== Plans ===<br />
<br />
* improve line chart and add more chart types<br />
* add import for simple SVG graphics<br />
* add PDF export via HPDF<br />
* see the [http://github.com/Lenny222/Chlor/wiki/Todo TODO list] on github<br />
<br />
== Contact ==<br />
[[User:Lenny222]]</div>Lenny222https://wiki.haskell.org/index.php?title=Chlor&diff=37261Chlor2010-10-12T12:59:05Z<p>Lenny222: /* Plans */ add the github TODO list</p>
<hr />
<div>'''Chlor''' is a pure-Haskell library that<br />
<br />
* produces vector graphics<br />
* provides highlevel components<br />
* supports essential file formats like SVG, EPS, etc. (PDF to follow)<br />
<br />
== Examples ==<br />
<br />
The page jumps in an interactive novel:<br />
<br />
[[Image:Chlor_example1.png]]<br />
<br />
== Overview ==<br />
<br />
=== Boxes ===<br />
Layout is defined by boxes, which are invisible themselves.<br />
<br />
Boxes can be<br />
<br />
* shrinked<br />
* split - with margins or no margins<br />
* merged with other boxes<br />
* filtered<br />
<br />
[[Image:Chlor_boxes.png]]<br />
<br />
=== Shapes ===<br />
<br />
Some builtin-shapes mapped to a box grid:<br />
<br />
[[Image:Chlor_shapes.png]]<br />
<br />
=== Graphical attributes ===<br />
<br />
Dash pattern:<br />
<br />
[[Image:Chlor_dash_patterns.png]]<br />
<br />
Clipping:<br />
<br />
[[Image:Chlor_clipping.png]]<br />
<br />
=== Transformations ===<br />
<br />
Rotate, shear:<br />
<br />
[[Image:Chlor_affine_map.png]]<br />
<br />
=== Charts ===<br />
<br />
Line chart:<br />
<br />
[[Image:Chlor line chart.png]]<br />
<br />
== Installation ==<br />
Chlor is currently only available from <br />
[http://github.com/Lenny222/Chlor github]<br />
<br />
== Development ==<br />
<br />
=== Plans ===<br />
<br />
* improve line chart and add more chart types<br />
* add import for simple SVG graphics<br />
* add PDF export via HPDF<br />
<br />
[http://github.com/Lenny222/Chlor/wiki/Todo TODO list on github]<br />
<br />
== Contact ==<br />
[[User:Lenny222]]</div>Lenny222https://wiki.haskell.org/index.php?title=Haskell_in_industry&diff=36902Haskell in industry2010-10-01T07:09:29Z<p>Lenny222: typo?</p>
<hr />
<div>__NOTOC__<br />
<br />
Haskell has a diverse range of use commercially, from aerospace and defense, to finance, to web startups, hardware design firms and a lawnmower manufacturer. This page collects resources on the industrial use of Haskell.<br />
<br />
[http://industry.haskell.org/ http://industry.haskell.org/ihg-logo.png]<br />
<br />
In February 2009 the [http://industry.haskell.org/ Industrial Haskell Group] was launched to support the needs of commercial users of the Haskell programming language. Phase 2 of the effort, expanding membership to research groups and startups with smaller budgets, was [http://www.haskell.org/pipermail/haskell/2009-November/021734.html launched in November 2009]<br />
<br />
The main user conference for industrial Haskell use is CUFP - the [http://cufp.org/ Commercial Users of Functional Programming Workshop]. The annual conference is coming up in October 2010.<br />
<br />
== Industrial Haskell: 2009 status report ==<br />
<br />
===Industrial Haskell Group===<br />
<br />
For the first time, in 2009, a consortium of companies came together to fund continued development of Haskell and its toolchain. The result is the [http://industry.haskell.org IHG], [http://www.haskell.org/pipermail/haskell/2009-March/021060.html launched] earlier in the year. The initial round of funding resulted in [http://industry.haskell.org/status several improvements to the ecosystem.] The group is seeking to [http://industry.haskell.org/join expand membership in 2010] to further consolidate the commercial strength Haskell. The [http://www.vimeo.com/6697688 Birth of the IHG] was presented at the &quot;[http://cufp.galois.com/ Commercial Users of Functional Programming]&quot; workshop.<br />
<br />
===CUFP===<br />
<br />
2009's [http://cufp.org Commercial Users of Functional Programming] workshop was held in Edinburgh, and included talks on:<br />
<br />
* [http://www.vimeo.com/6703480 Real World Haskell];<br />
* [http://www.vimeo.com/6701254 Teleconferencing on maps in Haskell];<br />
* [http://www.vimeo.com/6699769 Functional Programming at Facebook].<br />
<br />
Next year's CUFP will be held in Baltimore.<br />
<br />
===Industrial reports===<br />
<br />
A number of experience reports on the use of Haskell were presented in 2009:<br />
<br />
* As part of [http://galois.com Galois]' 10th birthday, Don Stewart presented a talk at the [http://www.londonhug.net/ LondonHUG] on [http://www.galois.com/blog/2009/04/27/engineering-large-projects-in-haskell-a-decade-of-fp-at-galois/ Engineering Large Projects in Haskell], celebrating a decade of use of Haskell by Galois.<br />
* [http://www.typlab.com/ TypLAB], a new startup [http://blog.typlab.com/2009/09/why-we-use-haskell/ talked about why they use Haskell].<br />
* Facebook released its [http://github.com/facebook/lex-pass/tree/master lex-pass tool to automate changes to a PHP codebase, by writing abstract-syntax-tree transformers in Haskell]; and <br />
* [http://www.starling-software.com/en/ Starling Software] described [http://www.starling-software.com/misc/icfp-2009-cjs.pdf building a real time financial trading system in Haskell] :: PDF.<br />
* Tom Hawkin's [http://hackage.haskell.org/package/atom/ Atom EDSL] for control systems [http://www.haskell.org/pipermail/haskell-cafe/2009-July/064775.html went into production use] in trucks and buses, and is [http://www.haskell.org/pipermail/haskell-cafe/2009-December/070558.html starting to be used] on a NASA runtime monitoring project.<br />
* The [http://www.cryptol.net Cryptol] release got [http://developers.slashdot.org/article.pl?sid=08/12/26/1725208 slashdotted].<br />
* [http://blog.tupil.com/building-commercial-haskell-applications/ Tupil.com] talked about their experiences building commercial web apps in Haskell.<br />
<br />
== Haskell in Industry ==<br />
<br />
Many companies have used Haskell for a range of projects, including:<br />
<br />
* [http://cufp.galois.com/2007/abstracts.html#CyrilSchmidt ABN AMRO] Amsterdam, The Netherlands<br />
<blockquote><br />
ABN AMRO is an international bank headquartered in Amsterdam. For its<br />
investment banking activities it needs to measure the counterparty risk<br />
on portfolios of financial derivatives. </blockquote><br />
::ABN AMRO's [http://cufp.galois.com/2007/abstracts.html#CyrilSchmidt CUFP talk].<br />
<br />
* [http://www.aetion.com/ Aetion Technologies LLC] Columbus, Ohio<br />
<blockquote><br />
Aetion is a defense contractor whose applications use artificial intelligence.<br />
Rapidly changing priorities make it important to minimize the code impact of<br />
changes, which suits Haskell well. Aetion has developed three main projects in<br />
Haskell, all successful. Haskell's concise code was perhaps most important for<br />
rewriting: it made it practicable to throw away old code occasionally. DSELs<br />
allowed the AI to be specified very declaratively. <br />
</blockquote><br />
::Aetion's [http://cufp.galois.com/2006/slides/GaryMorris.pdf CUFP talk].<br />
<br />
* [http://www.amgen.com/ Amgen] Thousand Oaks, California<br />
<blockquote><br />
Amgen is a human therapeutics company in the biotechnology industry. Amgen pioneered the development of novel products based on advances in recombinant DNA and molecular biology and launched the biotechnology industry’s first blockbuster medicines.<br />
<br />
Amgen uses Haskell;<br />
<br />
* To rapidly build software to implement mathematical models and other complex, mathematically oriented applications<br />
* Provide a more mathematically rigorous validation of software<br />
* To break developers out of their software development rut by giving them a new way to think about software.<br />
</blockquote><br />
::Amgen's [http://cufp.galois.com/2008/abstracts.html#BalabanDavid CUFP talk].<br />
<br />
* [http://www.ansemond.com/ Ansemond LLC]<br />
<blockquote><br />
"Find It! Keep It! is a Mac Web Browser that lets you keep the pages you<br />
visit in a database. A list of these pages is shown in the 'database<br />
view'. "<br />
</blockquote><br />
<br />
* [http://antiope.com/ Antiope] Fair Haven, New Jersey<br />
<blockquote><br />
Antiope Associates provides custom solutions for wireless communication<br />
and networking problems. Our team has expertise in all aspects of<br />
wireless system design, from the physical and protocol layers to complex<br />
networked applications. Antiope Associates's relies on a number of<br />
advanced techniques to ensure that the communication systems we design<br />
are reliable and free from error. We use custom simulation tools<br />
developed in Haskell, to model our hardware designs..<br />
</blockquote><br />
::Antiope's [http://cufp.galois.com/2008/slides/WrightGregory.pdf CUFP talk].<br />
<br />
* [http://www.att.com AT&amp;T]<br />
<blockquote><br />
Haskell is being used in the Network Security division to automate processing of internet abuse complaints. Haskell has allowed us to easily meet very tight deadlines with reliable results.<br />
</blockquote><br />
<br />
* [http://www.anygma.com/ Anygma] Antwerp, Belgium<br />
<blockquote><br />
Anygma is a startup company focusing on generating easy-to-use tools for<br />
creating audio-visual 2D/3D content, in the area of entertainment,<br />
media, corporate communication and the internet. The company is closely<br />
related to [http://www.nazooka.com/ Nazooka], a niche player in the<br />
media industry, specialized in creating cross media concepts and<br />
communication solutions. Anygma is using Haskell to quickly build a<br />
prototype of its new content creation platform, targeted towards artists<br />
and designers. </blockquote><br />
<br />
* [http://www.baml.com/ Bank of America Merril Lynch]<br />
<blockquote>Haskell is being used for backend data transformation and loading.</blockquote><br />
<br />
* [http://www.haskell.org/communities/12-2007/html/report.html#sect7.1.2 Barclays Capital Quantitative Analytics Group]<br />
<blockquote><br />
Barclays Capital's Quantitative Analytics group is using Haskell to<br />
develop an embedded domain-specific functional language (called FPF)<br />
which is used to specify exotic equity derivatives. These derivatives,<br />
which are naturally best described in terms of mathematical functions,<br />
and constructed compositionally, map well to being expressed in an<br />
embedded functional language. This language is now regularly being used<br />
by people who had no previous functional language experience.<br />
</blockquote><br />
::[http://lambda-the-ultimate.org/node/3331 Simon Frankau et al's JFP paper on their use of Haskell]<br />
<br />
* [http://www.bcode.com/ bCODE Pty Ltd] Sydney Australia<br />
<blockquote><br />
bCode Pty Ltd is a small venture capital-funded startup using Ocaml and a bit of Haskell in Sydney Australia.<br />
</blockquote><br />
<br />
* [http://www.bluespec.com/ Bluespec, Inc.] Waltham, Massachusetts<br />
<br />
<blockquote><br />
Developing a modern integrated circuit (ASIC or FPGA) is an enormously<br />
expensive process involving specification, modeling (to choose and fix the<br />
architecture), design (to describe what will become silicon) and verification<br />
(to ensure that it meets the specs), all before actually committing anything to<br />
silicon (where the cost of a failure can be tens of millions of dollars).<br />
Bluespec, Inc. is a three year-old company that provides language facilities,<br />
methodologies, and tools for this purpose, within the framework of the IEEE<br />
standard languages SystemVerilog and SystemC, but borrowing ideas heavily from<br />
Term Rewriting Systems and functional programming languages like Haskell. In<br />
this talk, after a brief technical overview to set the context, we will<br />
describe our tactics and strategies, and the challenges we face, in introducing<br />
declarative programming ideas into this field, both externally (convincing<br />
customers about the value of these ideas) and internally (using Haskell for our<br />
tool implementation). <br />
</blockquote><br />
<br />
::Bluespec's [http://cufp.galois.com/2006/abstracts.html#RishiyurNikhil CUFP talk].<br />
<br />
* [http://www.circos.com Circos Brand Karma] Singapore<br />
<blockquote><br />
Brand Karma provides services to brand owners to measure online sentiments towards their brands.<br />
Haskell is used in building parts of the product, specifically for back-end job scheduling and brand matching.<br />
</blockquote><br />
<br />
* [http://www.credit-suisse.com/ Credit Suisse Global Modelling and Analytics Group] London, UK; New York City, New York<br />
<br />
<blockquote><br />
GMAG, the quantitative modelling group at Credit Suisse, has been using Haskell<br />
for various projects since the beginning of 2006, with the twin aims of<br />
improving the productivity of modellers and making it easier for other people<br />
within the bank to use GMAG models. Current projects include: Further work on<br />
tools for checking, manipulating and transforming spreadsheets; a<br />
domain-specific language embedded in Haskell for implementing reusable<br />
components that can be compiled into various target forms (see the video presentation: [http://www.londonhug.net/2008/08/11/video-paradise-a-dsel-for-derivatives-pricing/ Paradise, a DSEL for Derivatives Pricing]).<br />
</blockquote><br />
<br />
::Credit Suisse's [http://cufp.galois.com/2006/abstracts.html#HowardMansell CUFP talk].<br />
<br />
* [http://www.db.com/ Deutsche Bank Equity Proprietary Trading, Directional Credit Trading]<br />
<br />
<blockquote><br />
The Directional Credit Trading group uses Haskell as the primary<br />
implementation language for all its software infrastructure.<br />
</blockquote><br />
<br />
::Deutsche Bank's [http://cufp.galois.com/2008/abstracts.html#PolakowJeff CUFP talk].<br />
<br />
* [http://article.gmane.org/gmane.comp.lang.haskell.cafe/37093 Eaton] Cleveland, Ohio<br />
<br />
<blockquote><br />
Design and verification of hydraulic hybrid vehicle systems<br />
</blockquote><br />
<br />
::Eaton's [http://cufp.galois.com/2008/abstracts.html#HawkinsTom CUFP talk]<br />
::Eaton's [http://www.haskell.org/pipermail/haskell-cafe/2009-April/060602.html experiences using a Haskell DSL]<br />
<br />
* [Ericsson AB]<br />
<blockquote><br />
Ericsson uses Haskell for the implementation of Feldspar, an EDSL for digital signal processing algorithms.<br />
</blockquote><br />
<br />
::Ericsson's [http://hackage.haskell.org/package/feldspar-compiler Feldspar compiler]<br />
<br />
* [http://facebook.com Facebook]<br />
<br />
<blockquote><br />
Facebook uses some Haskell internally for tools. [http://github.com/facebook/lex-pass/tree/master lex-pass] is a tool for programmatically manipulating a PHP code base via Haskell.<br />
</blockquote><br />
<br />
:: Facebook's [http://cufp.galois.com/2009/abstracts.html#ChristopherPiroEugeneLetuchy CUFP talk]<br />
<br />
* [http://www.factisresearch.com/ Factis Research]<br />
<blockquote><br />
actis research, located in Freiburg, Germany, develops reliable and user-friendly mobile solutions. Our client software runs under J2ME, Symbian, iPhone OS, Android, and Blackberry. The server components are implemented in Python and Haskell. We are actively using Haskell for a number of projects, most of which are released under an open-source license.<br />
</blockquote><br />
<br />
:: Factis' [http://haskell.org/communities/05-2010/html/report.html#factisresearch HCAR submission]<br />
<br />
* [http://www.haskell.org/pipermail/haskell-cafe/2008-September/047168.html Gamr7] http://gamr7.com/ Lyon, France<br />
<br />
<blockquote><br />
Gamr7 is a startup focused on procedural city generation for the game<br />
and simulation market. <br />
</blockquote><br />
<br />
* [http://www.galois.com/ Galois, Inc] Portland, Oregon<br />
<br />
<blockquote><br />
Galois designs and develops high confidence software for critical applications.<br />
Our innovative approach to software development provides high levels of<br />
assurance, yet its scalability enables us to address the most complex problems.<br />
We have successfully engineered projects under contract for corporations and<br />
government clients in the demanding application areas of security, information<br />
assurance and cryptography. <br />
</blockquote><br />
<br />
::Galois' [http://cufp.galois.com/2007/abstracts.html#JohnLaunchbury CUFP talk]<br />
::Galois' [http://www.galois.com/blog/2009/04/27/engineering-large-projects-in-haskell-a-decade-of-fp-at-galois/ retrospective on 10 years of industrial Haskell use]<br />
<br />
* [http://google.com Google]<br />
<br />
<blockquote><br />
Haskell is used on a small number of internal projects in Google, for internal IT infrastructure support. <br />
</blockquote><br />
<br />
::Google's [http://k1024.org/~iusty/papers/icfp10-haskell-reagent.pdf ICFP 2010 experience report on Haskell]<br />
<br />
* [http://glyde.com/ Glyde]<br />
<br />
<blockquote><br />
Glyde uses OCaml and Haskell for a few projects. Glyde uses Haskell for our client-side template source-to-source translator, which converts HAML-like view templates into JS code.<br />
</blockquote><br />
<br />
* [http://article.gmane.org/gmane.comp.lang.haskell.cafe/21951 HAppS LLC]<br />
<br />
<blockquote><br />
Open web development company. Now merged with [http://happstack.com/ happstack]<br />
</blockquote><br />
<br />
* [http://hustlerturf.com Hustler Turf Equipment] Hesston, Kansas<br />
<blockquote><br />
Designs, builds, and sells lawn mowers. We use quite a bit of Haskell, especially as a "glue language" for tying together data from different manufacturing-related systems. We also use it for some web apps that are deployed to our dealer network. There are also some uses for it doing sysadmin<br />
automation, such as adding/removing people from LDAP servers and the like<br />
</blockquote><br />
<br />
* [http://iba-cg.de/haskell.html iba Consulting Gesellschaft] - Intelligent business architecture for you. Leipzig, Germany<br />
<br />
<blockquote><br />
iba CG develops software for large companies: <br />
* risk analysis and reporting solution for power supply company; <br />
* contract management, assert management, booking and budgeting software for one of the worldwide leading accounting firm.<br />
</blockquote><br />
<br />
* [http://www.ics-ag.de/ Informatik Consulting Systems AG]<br />
<br />
<blockquote><br />
ICS AG developed a simulation and testing tool which based on a DSL (Domain Specific Language). The DSL is used for the description of architecture and behavior of distributed system components (event/message based, reactive). The compiler was written in Haskell (with target language Ada). The test system is used in some industrial projects.<br />
</blockquote><br />
<br />
* [http://www.ivu.de/uk/products/public-transport/ IVU Traffic Technologies AG]<br />
<blockquote><br />
The rostering group at IVU Traffic Technologies AG has been using Haskell to check rosters for compliance with EC regulations.<br />
<br />
Our implementation is based on an embedded DSL to combine the regulation’s single rules into a solver that not only decides on instances but, in the case of a faulty roster, finds an interpretation of the roster that is “favorable” in the sense that the error messages it entails are “helpful” in leading the dispatcher to the resolution of the issue at hand.<br />
<br />
The solver is both reliable (due to strong static typing and referential transparency — we have not experienced a failure in three years) and efficient (due to constraint propagation, a custom search strategy, and lazy evaluation).<br />
<br />
Our EC 561/2006 component is part of the IVU.crew software suite and as such is in wide-spread use all over Europe, both in planning and dispatch. So the next time you enter a regional bus, chances are that the driver’s roster was checked by Haskell.<br />
</blockquote><br />
<br />
* [http://www.janrain.com JanRain]<br />
<blockquote><br />
JanRain uses Haskell for network and web software.<br />
</blockquote><br />
<br />
* [http://joyridelabs.de/game/ Joyride Laboratories]<br />
<br />
<blockquote><br />
Joyride Laboratories is an independent game development studio, founded in 2009 by Florian Hofer and Sönke Hahn. Their first game, "Nikki and the Robots" will be released in 2010.<br />
</blockquote><br />
<br />
* [http://www.linspire.com/ Linspire]<br />
<br />
<blockquote><br />
Linspire, Inc. has used functional programming since its inception in 2001,<br />
beginning with extensive use of O'Caml, with a steady shift to Haskell as its<br />
implementations and libraries have matured. Hardware detection, software<br />
packaging and CGI web page generation are all areas where we have used<br />
functional programming extensively. Haskell's feature set lets us replace much<br />
of our use of little languages (e.g., bash or awk) and two-level languages (C<br />
or C++ bound to an interpreted language), allowing for faster development,<br />
better code sharing and ultimately faster implementations. Above all, we value<br />
static type checking for minimizing runtime errors in applications that run in<br />
unknown environments and for wrapping legacy programs in strongly typed<br />
functions to ensure that we pass valid arguments. <br />
</blockquote><br />
<br />
::Linspire's [http://cufp.galois.com/2006/abstracts.html#CliffordBeshers CUFP talk]<br />
::Linspire's experience report on using [http://portal.acm.org/citation.cfm?doid=1291151.1291184 functional programming to manage a Linux distribution]<br />
<br />
* [http://www.mitre.org/ MITRE]<br />
<blockquote><br />
MITRE uses Haskell for, amongst other things, the [http://hackage.haskell.org/package/cpsa analysis of cryptographic protocols].<br />
</blockquote><br />
<br />
* [http://ertos.nicta.com.au/research/sel4/ NICTA]<br />
<blockquote><br />
NICTA has used Haskell as part of a project to verify the L4 microkernel.<br />
</blockquote><br />
::[http://www.drdobbs.com/embedded/222400553 Read the Dr. Dobbs article on using Haskell and formal methods to verify a kernel]<br />
<br />
* [http://blog.openomy.com/2008/01/case-study-using-haskell-and-happs-for.html Openomy]<br />
<br />
<blockquote><br />
Openomy's API v2.0 is developed in Haskell, using the<br />
[http://www.happs.org/ HAppS] web platform.<br />
</blockquote><br />
<br />
* [http://www.oblomov.com Oblomov]<br />
<br />
<blockquote><br />
Oblomov Systems is a one-person software company based in Utrecht, The Netherlands. Founded in 2009, Oblomov has since then been working on a number of Haskell-related projects. The main focus lies on web-applications and (web-based) editors. Haskell has turned out to be extremely useful for implementing web servers that communicate with JavaScript clients or iPhone apps.<br />
</blockquote><br />
<br />
:: [http://haskell.org/communities/05-2010/html/report.html#oblomov Oblomov's HCAR submission].<br />
<br />
* [http://www.patch-tag.com Patch-Tag: hosting for darcs]<br />
<blockquote><br />
Need somewhere to put your darcs code? Try us.<br />
<br />
Patch-Tag is built with [http://happstack.com happstack], the continuation of the project formerly known as HAppS.<br />
</blockquote><br />
<br />
* [http://www.peerium.com Peerium, Inc] Cambridge, Massachusetts<br />
<blockquote><br />
At Peerium, we're striving to bring a new level of quality and efficiency to online communication and collaboration within virtual communities, social networks, and business environments. We believe that a new environment that supports the effortless sharing of both information and software will enable a level of online cooperation far beyond current Web-based technologies -- modern programming techniques will enable the creation of more robust and more powerful programs within these environments. To this end, we're building a new software platform for direct, real-time communication and collaboration within graphically rich environments. Peerium is located in the heart of Harvard Square in Cambridge, Massachusetts.<br />
</blockquote><br />
<br />
* [http://www.qualcomm.com/ Qualcomm, Inc]<br />
<br />
<blockquote><br />
Qualcomm uses Haskell to generate Lua bindings to the BREW platform <br />
</blockquote><br />
<br />
* [http://www.renci.org/ Renaissaince Computing Institute], Chapel Hill, North Carolina<br />
<blockquote><br />
The Renaissance Computing Institute (RENCI), a multi-institutional organization, brings together multidisciplinary experts and advanced technological capabilities to address pressing research issues and to find solutions to complex problems that affect the quality of life in North Carolina, our nation and the world.<br />
<br />
Research scientists at RENCI have used Haskell for a number of projects, including [http://vis.renci.org/jeff/2009/08/26/open-sourcing-the-big-board/ The Big Board].<br />
</blockquote><br />
<br />
::RENCI's [http://cufp.galois.com/2009/abstracts.html#JeffersonHeard CUFP talk].<br />
<br />
* [http://www.signalicorp.com/index.htm Signali] Portland, Oregon<br />
<br />
<blockquote><br />
Signali Corp is a new custom hardware design company. Our chief products<br />
are custom IP cores targeted for embedded DSP and cryptographic<br />
applications. Our specialty is the design and implementation of<br />
computationally intensive, complex algorithms. The interfaces to each<br />
core are modular and can be very efficiently modified for your specific<br />
application. System-level integration and validation is crucial and is<br />
the majority of investment in a product.<br />
</blockquote><br />
<br />
* [http://www.standardchartered.com/home/en/index.html Standard Chartered]<br />
<br />
<blockquote><br />
Standard Chartered has a group using Haskell in finance.<br />
</blockquote><br />
<br />
* [http://seereason.org/ SeeReason Partners, LLC]<br />
<br />
<blockquote><br />
Clifford Beshers, David Fox and Jeremy Shaw have formed SeeReason<br />
Partners, LLC. Our plan is to deliver services over the internet, using<br />
Haskell to build our applications whenever possible. We have chosen<br />
primary mathematics skills as our domain, seeking to create a social<br />
networking site with games and activities that are both fun and<br />
educational.<br />
</blockquote><br />
<br />
* [http://www.starling-software.com/en/index.html Starling Software] Tokyo, Japan<br />
<blockquote><br />
Starling Software are developing a commercial automated options trading system <br />
in Haskell, and are migrating other parts of their software suite to<br />
Haskell.<br />
</blockquote><br />
<br />
::Starling Software's [http://www.starling-software.com/misc/icfp-2009-cjs.pdf experience building real time trading systems in Haskell] <br />
<br />
* [http://www.tabula.com/ Tabula.com]<br />
<blockquote><br />
Tabula is a privately held fabless semiconductor company developing 3-D Programmable Logic Devices. Haskell is used for internal compiler toolchains related to hardware design.<br />
</blockquote><br />
<br />
* [http://tsurucapital.com Tsuru Capital] Tokyo, Japan<br />
<blockquote><br />
Tsuru Capital is operating an automated options trading system written in Haskell.<br />
</blockquote><br />
<br />
::[http://haskell.org/communities/05-2010/html/report.html#sect7.6 Tsuru Capital's HCAR submission]<br />
<br />
* [http://tupil.com/ Tupil] Utrecht, The Netherlands<br />
<br />
<blockquote><br />
Tupil is a Dutch company that built software for clients, written in Haskell. Tupil used Haskell for the speed in development and resulting software quality. The company is founded by Chris Eidhof and Eelco Lempsink. Currently they build iPhone/iPad applications in Objective-C.<br />
</blockquote><br />
<br />
:: Tupil's experience building [http://blog.tupil.com/building-commercial-haskell-applications/ commercial web apps in Haskell]<br />
<br />
* [http://typlab.com TypLAB] Amsterdam, The Netherlands<br />
<br />
<blockquote><br />
TypLAB investigates and develops new ways of creating and consuming online content.<br />
</blockquote><br />
<br />
:: TypLAB's blog on [http://blog.typlab.com/2009/09/why-we-use-haskell/ why they use Haskell]<br />
<br />
* [http://www.sensor-sense.nl Sensor Sense] Nijmegen, The Netherlands<br />
<br />
<blockquote><br />
Sensor Sense is offering high technology systems for gas measurements in the ''ppbv'' down to ''pptv'' range. We use Haskell for the embedded control software of our trace gas detectors.<br />
</blockquote><br />
<br />
If you're using Haskell commercially, please add your details here.<br />
<br />
== The Industrial Haskell Group ==<br />
<br />
The [http://industry.haskell.org/ Industrial Haskell Group (IHG)] is an organisation to support the needs of commercial users of the Haskell programming language. <br />
<br />
== Jobs and recruitment ==<br />
<br />
[[Jobs|Haskell jobs]].<br />
<br />
See also the [http://www.jobs-in-fp.org/ Jobs in Functional Programming] event.<br />
<br />
== Consultants ==<br />
<br />
[[Consultants]]<br />
<br />
== Commercial Users of Functional Programming Workshop ==<br />
<br />
[http://www.galois.com/cufp/ Commercial Users of Functional Programming]<br />
<br />
The goal of [http://www.galois.com/cufp/ CUFP] is to build a community<br />
for users of functional programming languages and technology, be they<br />
using functional languages in their professional lives, in an open<br />
source project (other than implementation of functional languages), as a<br />
hobby, or any combination thereof. In short: anyone who uses functional<br />
programming as a means, but not an end.<br />
<br />
[[Category:Community]]</div>Lenny222https://wiki.haskell.org/index.php?title=Haskell_in_industry&diff=36871Haskell in industry2010-09-28T06:42:39Z<p>Lenny222: reverst spam, after it's been 4 days online</p>
<hr />
<div>__NOTOC__<br />
<br />
Haskell has a diverse range of use commercially, from aerospace and defense, to finance, to web startups, hardware design firms and a lawnmower manufacturer. This page collects resources on the industrial use of Haskell.<br />
<br />
[http://industry.haskell.org/ http://industry.haskell.org/ihg-logo.png]<br />
<br />
In February 2009 the [http://industry.haskell.org/ Industrial Haskell Group] was launched to support the needs of commercial users of the Haskell programming language. Phase 2 of the effort, expanding membership to research groups and startups with smaller budgets, was [http://www.haskell.org/pipermail/haskell/2009-November/021734.html launched in November 2009]<br />
<br />
The main user conference for industrial Haskell use is CUFP - the [http://cufp.org/ Commercial Users of Functional Programming Workshop]. The annual conference is coming up in October 2010.<br />
<br />
== Industrial Haskell: 2009 status report ==<br />
<br />
===Industrial Haskell Group===<br />
<br />
For the first time, in 2009, a consortium of companies came together to fund continued development of Haskell and its toolchain. The result is the [http://industry.haskell.org IHG], [http://www.haskell.org/pipermail/haskell/2009-March/021060.html launched] earlier in the year. The initial round of funding resulted in [http://industry.haskell.org/status several improvements to the ecosystem.] The group is seeking to [http://industry.haskell.org/join expand membership in 2010] to further consolidate the commercial strength Haskell. The [http://www.vimeo.com/6697688 Birth of the IHG] was presented at the &quot;[http://cufp.galois.com/ Commercial Users of Functional Programming]&quot; workshop.<br />
<br />
===CUFP===<br />
<br />
2009's [http://cufp.org Commercial Users of Functional Programming] workshop was held in Edinburgh, and included talks on:<br />
<br />
* [http://www.vimeo.com/6703480 Real World Haskell];<br />
* [http://www.vimeo.com/6701254 Teleconferencing on maps in Haskell];<br />
* [http://www.vimeo.com/6699769 Functional Programming at Facebook].<br />
<br />
Next year's CUFP will be held in Baltimore.<br />
<br />
===Industrial reports===<br />
<br />
A number of experience reports on the use of Haskell were presented in 2009:<br />
<br />
* As part of [http://galois.com Galois]' 10th birthday, Don Stewart presented a talk at the [http://www.londonhug.net/ LondonHUG] on [http://www.galois.com/blog/2009/04/27/engineering-large-projects-in-haskell-a-decade-of-fp-at-galois/ Engineering Large Projects in Haskell], celebrating a decade of use of Haskell by Galois.<br />
* [http://www.typlab.com/ TypLAB], a new startup [http://blog.typlab.com/2009/09/why-we-use-haskell/ talked about why they use Haskell].<br />
* Facebook released its [http://github.com/facebook/lex-pass/tree/master lex-pass tool to automate changes to a PHP codebase, by writing abstract-syntax-tree transformers in Haskell]; and <br />
* [http://www.starling-software.com/en/ Starling Software] described [http://www.starling-software.com/misc/icfp-2009-cjs.pdf building a real time financial trading system in Haskell] :: PDF.<br />
* Tom Hawkin's [http://hackage.haskell.org/package/atom/ Atom EDSL] for control systems [http://www.haskell.org/pipermail/haskell-cafe/2009-July/064775.html went into production use] in trucks and buses, and is [http://www.haskell.org/pipermail/haskell-cafe/2009-December/070558.html starting to be used] on a NASA runtime monitoring project.<br />
* The [http://www.cryptol.net Cryptol] release got [http://developers.slashdot.org/article.pl?sid=08/12/26/1725208 slashdotted].<br />
* [http://blog.tupil.com/building-commercial-haskell-applications/ Tupil.com] talked about their experiences building commercial web apps in Haskell.<br />
<br />
== Haskell in Industry ==<br />
<br />
Many companies have used Haskell for a range of projects, including:<br />
<br />
* [http://cufp.galois.com/2007/abstracts.html#CyrilSchmidt ABN AMRO] Amsterdam, The Netherlands<br />
<blockquote><br />
ABN AMRO is an international bank headquartered in Amsterdam. For its<br />
investment banking activities it needs to measure the counterparty risk<br />
on portfolios of financial derivatives. </blockquote><br />
::ABN AMRO's [http://cufp.galois.com/2007/abstracts.html#CyrilSchmidt CUFP talk].<br />
<br />
* [http://www.aetion.com/ Aetion Technologies LLC] Columbus, Ohio<br />
<blockquote><br />
Aetion is a defense contractor whose applications use artificial intelligence.<br />
Rapidly changing priorities make it important to minimize the code impact of<br />
changes, which suits Haskell well. Aetion has developed three main projects in<br />
Haskell, all successful. Haskell's concise code was perhaps most important for<br />
rewriting: it made it practicable to throw away old code occasionally. DSELs<br />
allowed the AI to be specified very declaratively. <br />
</blockquote><br />
::Aetion's [http://cufp.galois.com/2006/slides/GaryMorris.pdf CUFP talk].<br />
<br />
* [http://www.amgen.com/ Amgen] Thousand Oaks, California<br />
<blockquote><br />
Amgen is a human therapeutics company in the biotechnology industry. Amgen pioneered the development of novel products based on advances in recombinant DNA and molecular biology and launched the biotechnology industry’s first blockbuster medicines.<br />
<br />
Amgen uses Haskell;<br />
<br />
* To rapidly build software to implement mathematical models and other complex, mathematically oriented applications<br />
* Provide a more mathematically rigorous validation of software<br />
* To break developers out of their software development rut by giving them a new way to think about software.<br />
</blockquote><br />
::Amgen's [http://cufp.galois.com/2008/abstracts.html#BalabanDavid CUFP talk].<br />
<br />
* [http://www.ansemond.com/ Ansemond LLC]<br />
<blockquote><br />
"Find It! Keep It! is a Mac Web Browser that lets you keep the pages you<br />
visit in a database. A list of these pages is shown in the 'database<br />
view'. "<br />
</blockquote><br />
<br />
* [http://antiope.com/ Antiope] Fair Haven, New Jersey<br />
<blockquote><br />
Antiope Associates provides custom solutions for wireless communication<br />
and networking problems. Our team has expertise in all aspects of<br />
wireless system design, from the physical and protocol layers to complex<br />
networked applications. Antiope Associates's relies on a number of<br />
advanced techniques to ensure that the communication systems we design<br />
are reliable and free from error. We use custom simulation tools<br />
developed in Haskell, to model our hardware designs..<br />
</blockquote><br />
::Antiope's [http://cufp.galois.com/2008/slides/WrightGregory.pdf CUFP talk].<br />
<br />
* [http://www.att.com AT&amp;T]<br />
<blockquote><br />
Haskell is being used in the Network Security division to automate processing of internet abuse complaints. Haskell has allowed us to easily meet very tight deadlines with reliable results.<br />
</blockquote><br />
<br />
* [http://www.anygma.com/ Anygma] Antwerp, Belgium<br />
<blockquote><br />
Anygma is a startup company focusing on generating easy-to-use tools for<br />
creating audio-visual 2D/3D content, in the area of entertainment,<br />
media, corporate communication and the internet. The company is closely<br />
related to [http://www.nazooka.com/ Nazooka], a niche player in the<br />
media industry, specialized in creating cross media concepts and<br />
communication solutions. Anygma is using Haskell to quickly build a<br />
prototype of its new content creation platform, targeted towards artists<br />
and designers. </blockquote><br />
<br />
* [http://www.baml.com/ Bank of America Merril Lynch]<br />
<blockquote>Haskell is being used for backend data transformation and loading.</blockquote><br />
<br />
* [http://www.haskell.org/communities/12-2007/html/report.html#sect7.1.2 Barclays Capital Quantitative Analytics Group]<br />
<blockquote><br />
Barclays Capital's Quantitative Analytics group is using Haskell to<br />
develop an embedded domain-specific functional language (called FPF)<br />
which is used to specify exotic equity derivatives. These derivatives,<br />
which are naturally best described in terms of mathematical functions,<br />
and constructed compositionally, map well to being expressed in an<br />
embedded functional language. This language is now regularly being used<br />
by people who had no previous functional language experience.<br />
</blockquote><br />
::[http://lambda-the-ultimate.org/node/3331 Simon Frankau et al's JFP paper on their use of Haskell]<br />
<br />
* [http://www.bcode.com/ bCODE Pty Ltd] Sydney Australia<br />
<blockquote><br />
bCode Pty Ltd is a small venture capital-funded startup using Ocaml and a bit of Haskell in Sydney Australia.<br />
</blockquote><br />
<br />
* [http://www.bluespec.com/ Bluespec, Inc.] Waltham, Massachusetts<br />
<br />
<blockquote><br />
Developing a modern integrated circuit (ASIC or FPGA) is an enormously<br />
expensive process involving specification, modeling (to choose and fix the<br />
architecture), design (to describe what will become silicon) and verification<br />
(to ensure that it meets the specs), all before actually committing anything to<br />
silicon (where the cost of a failure can be tens of millions of dollars).<br />
Bluespec, Inc. is a three year-old company that provides language facilities,<br />
methodologies, and tools for this purpose, within the framework of the IEEE<br />
standard languages SystemVerilog and SystemC, but borrowing ideas heavily from<br />
Term Rewriting Systems and functional programming languages like Haskell. In<br />
this talk, after a brief technical overview to set the context, we will<br />
describe our tactics and strategies, and the challenges we face, in introducing<br />
declarative programming ideas into this field, both externally (convincing<br />
customers about the value of these ideas) and internally (using Haskell for our<br />
tool implementation). <br />
</blockquote><br />
<br />
::Bluespec's [http://cufp.galois.com/2006/abstracts.html#RishiyurNikhil CUFP talk].<br />
<br />
* [http://www.circos.com Circos Brand Karma] Singapore<br />
<blockquote><br />
Brand Karma provides services to brand owners to measure online sentiments towards their brands.<br />
Haskell is used in building parts of the product, specifically for back-end job scheduling and brand matching.<br />
</blockquote><br />
<br />
* [http://www.credit-suisse.com/ Credit Suisse Global Modelling and Analytics Group] London, UK; New York City, New York<br />
<br />
<blockquote><br />
GMAG, the quantitative modelling group at Credit Suisse, has been using Haskell<br />
for various projects since the beginning of 2006, with the twin aims of<br />
improving the productivity of modellers and making it easier for other people<br />
within the bank to use GMAG models. Current projects include: Further work on<br />
tools for checking, manipulating and transforming spreadsheets; a<br />
domain-specific language embedded in Haskell for implementing reusable<br />
components that can be compiled into various target forms (see the video presentation: [http://www.londonhug.net/2008/08/11/video-paradise-a-dsel-for-derivatives-pricing/ Paradise, a DSEL for Derivatives Pricing]).<br />
</blockquote><br />
<br />
::Credit Suisse's [http://cufp.galois.com/2006/abstracts.html#HowardMansell CUFP talk].<br />
<br />
* [http://www.db.com/ Deutsche Bank Equity Proprietary Trading, Directional Credit Trading]<br />
<br />
<blockquote><br />
The Directional Credit Trading group uses Haskell as the primary<br />
implementation language for all its software infrastructure.<br />
</blockquote><br />
<br />
::Deutsche Bank's [http://cufp.galois.com/2008/abstracts.html#PolakowJeff CUFP talk].<br />
<br />
* [http://article.gmane.org/gmane.comp.lang.haskell.cafe/37093 Eaton] Cleveland, Ohio<br />
<br />
<blockquote><br />
Design and verification of hydraulic hybrid vehicle systems<br />
</blockquote><br />
<br />
::Eaton's [http://cufp.galois.com/2008/abstracts.html#HawkinsTom CUFP talk]<br />
::Eaton's [http://www.haskell.org/pipermail/haskell-cafe/2009-April/060602.html experiences using a Haskell DSL]<br />
<br />
* [Ericsson AB]<br />
<blockquote><br />
Ericsson uses Haskell for the implementation of Feldspar, an EDSL for digital signal processing algorithms.<br />
</blockquote><br />
<br />
::Ericsson's [http://hackage.haskell.org/package/feldspar-compiler Feldspar compiler]<br />
<br />
* [http://facebook.com Facebook]<br />
<br />
<blockquote><br />
Facebook uses some Haskell internally for tools. [http://github.com/facebook/lex-pass/tree/master lex-pass] is a tool for programmatically manipulating a PHP code base via Haskell.<br />
</blockquote><br />
<br />
:: Facebook's [http://cufp.galois.com/2009/abstracts.html#ChristopherPiroEugeneLetuchy CUFP talk]<br />
<br />
* [http://www.factisresearch.com/ Factis Research]<br />
<blockquote><br />
actis research, located in Freiburg, Germany, develops reliable and user-friendly mobile solutions. Our client software runs under J2ME, Symbian, iPhone OS, Android, and Blackberry. The server components are implemented in Python and Haskell. We are actively using Haskell for a number of projects, most of which are released under an open-source license.<br />
</blockquote><br />
<br />
:: Factis' [http://haskell.org/communities/05-2010/html/report.html#factisresearch HCAR submission]<br />
<br />
* [http://www.haskell.org/pipermail/haskell-cafe/2008-September/047168.html Gamr7] http://gamr7.com/ Lyon, France<br />
<br />
<blockquote><br />
Gamr7 is a startup focused on procedural city generation for the game<br />
and simulation market. <br />
</blockquote><br />
<br />
* [http://www.galois.com/ Galois, Inc] Portland, Oregon<br />
<br />
<blockquote><br />
Galois designs and develops high confidence software for critical applications.<br />
Our innovative approach to software development provides high levels of<br />
assurance, yet its scalability enables us to address the most complex problems.<br />
We have successfully engineered projects under contract for corporations and<br />
government clients in the demanding application areas of security, information<br />
assurance and cryptography. <br />
</blockquote><br />
<br />
::Galois' [http://cufp.galois.com/2007/abstracts.html#JohnLaunchbury CUFP talk]<br />
::Galois' [http://www.galois.com/blog/2009/04/27/engineering-large-projects-in-haskell-a-decade-of-fp-at-galois/ retrospective on 10 years of industrial Haskell use]<br />
<br />
* [http://glyde.com/ Glyde]<br />
<br />
<blockquote><br />
Glyde uses OCaml and Haskell for a few projects. Glyde uses Haskell for our client-side template source-to-source translator, which converts HAML-like view templates into JS code.<br />
</blockquote><br />
<br />
* [http://article.gmane.org/gmane.comp.lang.haskell.cafe/21951 HAppS LLC]<br />
<br />
<blockquote><br />
Open web development company. Now merged with [http://happstack.com/ happstack]<br />
</blockquote><br />
<br />
* [http://hustlerturf.com Hustler Turf Equipment] Hesston, Kansas<br />
<blockquote><br />
Designs, builds, and sells lawn mowers. We use quite a bit of Haskell, especially as a "glue language" for tying together data from different manufacturing-related systems. We also use it for some web apps that are deployed to our dealer network. There are also some uses for it doing sysadmin<br />
automation, such as adding/removing people from LDAP servers and the like<br />
</blockquote><br />
<br />
* [http://iba-cg.de/haskell.html iba Consulting Gesellschaft] - Intelligent business architecture for you. Leipzig, Germany<br />
<br />
<blockquote><br />
iba CG develops software for large companies: <br />
* risk analysis and reporting solution for power supply company; <br />
* contract management, assert management, booking and budgeting software for one of the worldwide leading accounting firm.<br />
</blockquote><br />
<br />
* [http://www.ics-ag.de/ Informatik Consulting Systems AG]<br />
<br />
<blockquote><br />
ICS AG developed a simulation and testing tool which based on a DSL (Domain Specific Language). The DSL is used for the description of architecture and behavior of distributed system components (event/message based, reactive). The compiler was written in Haskell (with target language Ada). The test system is used in some industrial projects.<br />
</blockquote><br />
<br />
* [http://www.ivu.de/uk/products/public-transport/ IVU Traffic Technologies AG]<br />
<blockquote><br />
The rostering group at IVU Traffic Technologies AG has been using Haskell to check rosters for compliance with EC regulations.<br />
<br />
Our implementation is based on an embedded DSL to combine the regulation’s single rules into a solver that not only decides on instances but, in the case of a faulty roster, finds an interpretation of the roster that is “favorable” in the sense that the error messages it entails are “helpful” in leading the dispatcher to the resolution of the issue at hand.<br />
<br />
The solver is both reliable (due to strong static typing and referential transparency — we have not experienced a failure in three years) and efficient (due to constraint propagation, a custom search strategy, and lazy evaluation).<br />
<br />
Our EC 561/2006 component is part of the IVU.crew software suite and as such is in wide-spread use all over Europe, both in planning and dispatch. So the next time you enter a regional bus, chances are that the driver’s roster was checked by Haskell.<br />
</blockquote><br />
<br />
* [http://www.janrain.com JanRain]<br />
<blockquote><br />
JanRain uses Haskell for network and web software.<br />
</blockquote><br />
<br />
* [http://joyridelabs.de/game/ Joyride Laboratories]<br />
<br />
<blockquote><br />
Joyride Laboratories is an independent game development studio, founded in 2009 by Florian Hofer and Sönke Hahn. Their first game, "Nikki and the Robots" will be released in 2010.<br />
</blockquote><br />
<br />
* [http://www.linspire.com/ Linspire]<br />
<br />
<blockquote><br />
Linspire, Inc. has used functional programming since its inception in 2001,<br />
beginning with extensive use of O'Caml, with a steady shift to Haskell as its<br />
implementations and libraries have matured. Hardware detection, software<br />
packaging and CGI web page generation are all areas where we have used<br />
functional programming extensively. Haskell's feature set lets us replace much<br />
of our use of little languages (e.g., bash or awk) and two-level languages (C<br />
or C++ bound to an interpreted language), allowing for faster development,<br />
better code sharing and ultimately faster implementations. Above all, we value<br />
static type checking for minimizing runtime errors in applications that run in<br />
unknown environments and for wrapping legacy programs in strongly typed<br />
functions to ensure that we pass valid arguments. <br />
</blockquote><br />
<br />
::Linspire's [http://cufp.galois.com/2006/abstracts.html#CliffordBeshers CUFP talk]<br />
::Linspire's experience report on using [http://portal.acm.org/citation.cfm?doid=1291151.1291184 functional programming to manage a Linux distribution]<br />
<br />
* [http://www.mitre.org/ MITRE]<br />
<blockquote><br />
MITRE uses Haskell for, amongst other things, the [http://hackage.haskell.org/package/cpsa analysis of cryptographic protocols].<br />
</blockquote><br />
<br />
* [http://ertos.nicta.com.au/research/sel4/ NICTA]<br />
<blockquote><br />
NICTA has used Haskell as part of a project to verify the L4 microkernel.<br />
</blockquote><br />
::[http://www.drdobbs.com/embedded/222400553 Read the Dr. Dobbs article on using Haskell and formal methods to verify a kernel]<br />
<br />
* [http://blog.openomy.com/2008/01/case-study-using-haskell-and-happs-for.html Openomy]<br />
<br />
<blockquote><br />
Openomy's API v2.0 is developed in Haskell, using the<br />
[http://www.happs.org/ HAppS] web platform.<br />
</blockquote><br />
<br />
* [http://www.oblomov.com Oblomov]<br />
<br />
<blockquote><br />
Oblomov Systems is a one-person software company based in Utrecht, The Netherlands. Founded in 2009, Oblomov has since then been working on a number of Haskell-related projects. The main focus lies on web-applications and (web-based) editors. Haskell has turned out to be extremely useful for implementing web servers that communicate with JavaScript clients or iPhone apps.<br />
</blockquote><br />
<br />
:: [http://haskell.org/communities/05-2010/html/report.html#oblomov Oblomov's HCAR submission].<br />
<br />
* [http://www.patch-tag.com Patch-Tag: hosting for darcs]<br />
<blockquote><br />
Need somewhere to put your darcs code? Try us.<br />
<br />
Patch-Tag is built with [http://happstack.com happstack], the continuation of the project formerly known as HAppS.<br />
</blockquote><br />
<br />
* [http://www.peerium.com Peerium, Inc] Cambridge, Massachusetts<br />
<blockquote><br />
At Peerium, we're striving to bring a new level of quality and efficiency to online communication and collaboration within virtual communities, social networks, and business environments. We believe that a new environment that supports the effortless sharing of both information and software will enable a level of online cooperation far beyond current Web-based technologies -- modern programming techniques will enable the creation of more robust and more powerful programs within these environments. To this end, we're building a new software platform for direct, real-time communication and collaboration within graphically rich environments. Peerium is located in the heart of Harvard Square in Cambridge, Massachusetts.<br />
</blockquote><br />
<br />
* [http://www.qualcomm.com/ Qualcomm, Inc]<br />
<br />
<blockquote><br />
Qualcomm uses Haskell to generate Lua bindings to the BREW platform <br />
</blockquote><br />
<br />
* [http://www.renci.org/ Renaissaince Computing Institute], Chapel Hill, North Carolina<br />
<blockquote><br />
The Renaissance Computing Institute (RENCI), a multi-institutional organization, brings together multidisciplinary experts and advanced technological capabilities to address pressing research issues and to find solutions to complex problems that affect the quality of life in North Carolina, our nation and the world.<br />
<br />
Research scientists at RENCI have used Haskell for a number of projects, including [http://vis.renci.org/jeff/2009/08/26/open-sourcing-the-big-board/ The Big Board].<br />
</blockquote><br />
<br />
::RENCI's [http://cufp.galois.com/2009/abstracts.html#JeffersonHeard CUFP talk].<br />
<br />
* [http://www.signalicorp.com/index.htm Signali] Portland, Oregon<br />
<br />
<blockquote><br />
Signali Corp is a new custom hardware design company. Our chief products<br />
are custom IP cores targeted for embedded DSP and cryptographic<br />
applications. Our specialty is the design and implementation of<br />
computationally intensive, complex algorithms. The interfaces to each<br />
core are modular and can be very efficiently modified for your specific<br />
application. System-level integration and validation is crucial and is<br />
the majority of investment in a product.<br />
</blockquote><br />
<br />
* [http://www.standardchartered.com/home/en/index.html Standard Chartered]<br />
<br />
<blockquote><br />
Standard Chartered has a group using Haskell in finance.<br />
</blockquote><br />
<br />
* [http://seereason.org/ SeeReason Partners, LLC]<br />
<br />
<blockquote><br />
Clifford Beshers, David Fox and Jeremy Shaw have formed SeeReason<br />
Partners, LLC. Our plan is to deliver services over the internet, using<br />
Haskell to build our applications whenever possible. We have chosen<br />
primary mathematics skills as our domain, seeking to create a social<br />
networking site with games and activities that are both fun and<br />
educational.<br />
</blockquote><br />
<br />
* [http://www.starling-software.com/en/index.html Starling Software] Tokyo, Japan<br />
<blockquote><br />
Starling Software are developing a commercial automated options trading system <br />
in Haskell, and are migrating other parts of their software suite to<br />
Haskell.<br />
</blockquote><br />
<br />
::Starling Software's [http://www.starling-software.com/misc/icfp-2009-cjs.pdf experience building real time trading systems in Haskell] <br />
<br />
* [http://tsurucapital.com Tsuru Capital] Tokyo, Japan<br />
<blockquote><br />
Tsuru Capital is operating an automated options trading system written in Haskell.<br />
</blockquote><br />
<br />
::[http://haskell.org/communities/05-2010/html/report.html#sect7.6 Tsuru Capital's HCAR submission]<br />
<br />
* [http://tupil.com/ Tupil] Utrecht, The Netherlands<br />
<br />
<blockquote><br />
Tupil is a Dutch company that built software for clients, written in Haskell. Tupil used Haskell for the speed in development and resulting software quality. The company is founded by Chris Eidhof and Eelco Lempsink. Currently they build iPhone/iPad applications in Objective-C.<br />
</blockquote><br />
<br />
:: Tupil's experience building [http://blog.tupil.com/building-commercial-haskell-applications/ commercial web apps in Haskell]<br />
<br />
* [http://typlab.com TypLAB] Amsterdam, The Netherlands<br />
<br />
<blockquote><br />
TypLAB investigates and develops new ways of creating and consuming online content.<br />
</blockquote><br />
<br />
:: TypLAB's blog on [http://blog.typlab.com/2009/09/why-we-use-haskell/ why they use Haskell]<br />
<br />
* [http://www.sensor-sense.nl Sensor Sense] Nijmegen, The Netherlands<br />
<br />
<blockquote><br />
Sensor Sense is offering high technology systems for gas measurements in the ''ppbv'' down to ''pptv'' range. We use Haskell for the embedded control software of our trace gas detectors.<br />
</blockquote><br />
<br />
If you're using Haskell commercially, please add your details here.<br />
<br />
== The Industrial Haskell Group ==<br />
<br />
The [http://industry.haskell.org/ Industrial Haskell Group (IHG)] is an organisation to support the needs of commercial users of the Haskell programming language. <br />
<br />
== Jobs and recruitment ==<br />
<br />
[[Jobs|Haskell jobs]].<br />
<br />
See also the [http://www.jobs-in-fp.org/ Jobs in Functional Programming] event.<br />
<br />
== Consultants ==<br />
<br />
[[Consultants]]<br />
<br />
== Commercial Users of Functional Programming Workshop ==<br />
<br />
[http://www.galois.com/cufp/ Commercial Users of Functional Programming]<br />
<br />
The goal of [http://www.galois.com/cufp/ CUFP] is to build a community<br />
for users of functional programming languages and technology, be they<br />
using functional languages in their professional lives, in an open<br />
source project (other than implementation of functional languages), as a<br />
hobby, or any combination thereof. In short: anyone who uses functional<br />
programming as a means, but not an end.<br />
<br />
[[Category:Community]]</div>Lenny222https://wiki.haskell.org/index.php?title=Chlor&diff=36810Chlor2010-09-21T08:07:04Z<p>Lenny222: /* Installation */ switched to github</p>
<hr />
<div>'''Chlor''' is a pure-Haskell library that<br />
<br />
* produces vector graphics<br />
* provides highlevel components<br />
* supports essential file formats like SVG, EPS, etc. (PDF to follow)<br />
<br />
== Examples ==<br />
<br />
The page jumps in an interactive novel:<br />
<br />
[[Image:Chlor_example1.png]]<br />
<br />
== Overview ==<br />
<br />
=== Boxes ===<br />
Layout is defined by boxes, which are invisible themselves.<br />
<br />
Boxes can be<br />
<br />
* shrinked<br />
* split - with margins or no margins<br />
* merged with other boxes<br />
* filtered<br />
<br />
[[Image:Chlor_boxes.png]]<br />
<br />
=== Shapes ===<br />
<br />
Some builtin-shapes mapped to a box grid:<br />
<br />
[[Image:Chlor_shapes.png]]<br />
<br />
=== Graphical attributes ===<br />
<br />
Dash pattern:<br />
<br />
[[Image:Chlor_dash_patterns.png]]<br />
<br />
Clipping:<br />
<br />
[[Image:Chlor_clipping.png]]<br />
<br />
=== Transformations ===<br />
<br />
Rotate, shear:<br />
<br />
[[Image:Chlor_affine_map.png]]<br />
<br />
=== Charts ===<br />
<br />
Line chart:<br />
<br />
[[Image:Chlor line chart.png]]<br />
<br />
== Installation ==<br />
Chlor is currently only available from <br />
[http://github.com/Lenny222/Chlor github]<br />
<br />
== Development ==<br />
<br />
=== Plans ===<br />
<br />
* improve line chart and add more chart types<br />
* add import for simple SVG graphics<br />
* add PDF export via HPDF<br />
<br />
== Contact ==<br />
[[User:Lenny222]]</div>Lenny222https://wiki.haskell.org/index.php?title=Mac_OS_X_Strike_Force&diff=36709Mac OS X Strike Force2010-09-08T06:20:01Z<p>Lenny222: /* Take care of the Haskell Platform installer */</p>
<hr />
<div>The following is a wiki page to centralize discussion of how to improve Haskell on Mac OS X. The name "strike force" comes from dons' [http://www.reddit.com/r/haskell/comments/d9wm2/is_it_time_for_a_strike_team_to_form_dedicated_to/ post on reddit] and the comments therein.<br />
<br />
== Goals ==<br />
<br />
=== Take care of the Haskell Platform installer ===<br />
<br />
The [http://github.com/gregorycollins/haskell-platform-osx-installer Haskell Platform OSX installer] is looking for a new maintainer (contact Greg: "greg at gregorycollins net").<br />
<br />
* who is willing to take over?<br />
** collaborate effort or single effort?<br />
* where to host?<br />
* what are the most presing things on the todo list?<br />
<br />
=== Make GUI-bindings easy to install ===<br />
<br />
Neither wxHaskell nor Gtk2hs with native Gtk seems to be easy to install.<br />
What's the state of HQK and qtHaskell?<br />
<br />
* We should provide at least one easy way to install one set of GUI bindings<br />
<br />
=== Make GHC 64 bit ===<br />
<br />
Mac OS X GHC Trac tickets:<br />
* [[http://hackage.haskell.org/trac/ghc/ticket/2965 2965]] is the main ticket, with lots of CC: people<br />
* [[http://hackage.haskell.org/trac/ghc/ticket/4163 4163]] gives some cross-compiling hope<br />
<br />
=== Reduce the number of GHC tickets ===<br />
<br />
* All [http://hackage.haskell.org/trac/ghc/query?groupdesc=1&group=status&order=priority&os=MacOS+X&col=id&col=summary&col=owner&col=type&col=status&col=priority&col=milestone Mac OS X GHC Trac tickets]<br />
<br />
== Information ==<br />
<br />
=== Wiki ===<br />
<br />
* [[Mac OS X]]<br />
* [[Mac OS X Common Installation Paths]]<br />
* [[Using Haskell in an Xcode Cocoa project]]<br />
<br />
=== Installing Haskell ===<br />
<br />
==== How Haskell is on OS X today ====<br />
<br />
The simplest methods are currently:<br />
<br />
* Binary GHC framework (/Library/Framework)<br />
* Binary Haskell platform framework (/Library/Framework)<br />
* MacPorts (/opt/local)<br />
* Fink (/sw)<br />
* Homebrew (symlinked into /usr/local ?)<br />
<br />
==== Manually compiled ====<br />
<br />
[[User:ChrisKuklewicz|ChrisKuklewicz]] 11:53, 6 September 2010 (UTC) I use MacPorts for the infrastructure and compile ghc against /opt/local but with --prefix=/opt/ghc-6.12.3 to keep it separate.<br />
<br />
==== Dynamic Linking ====<br />
<br />
working in GHC HEAD, not in any released version.<br />
<br />
<br />
==== Difficult libraries on OS X ====<br />
<br />
Libraries needed for ghc<br />
<br />
* iconv (older version in /usr is incompatible with new version from MacPorts)<br />
* readline (faked in /usr, provided by framework or MacPorts)<br />
* gmp (framework or MacPorts)<br />
<br />
Libraries needed for other packages? gtk?<br />
<br />
=== OS X code integration ===<br />
<br />
Write Haskell in XCode?<br />
<br />
Write ObjectiveC against GHC.Framework?<br />
<br />
FFI for Objective C from Haskell?<br />
<br />
=== Improvements? ===<br />
<br />
A cabal2pkg that maintains proper dependency tracking?<br />
<br />
Discussion forum for all this?</div>Lenny222https://wiki.haskell.org/index.php?title=Mac_OS_X_Strike_Force&diff=36696Mac OS X Strike Force2010-09-07T15:05:13Z<p>Lenny222: </p>
<hr />
<div>The following is a wiki page to centralize discussion of how to improve Haskell on Mac OS X. The name "strike force" comes from dons' [http://www.reddit.com/r/haskell/comments/d9wm2/is_it_time_for_a_strike_team_to_form_dedicated_to/ post on reddit] and the comments therein.<br />
<br />
== Goals ==<br />
<br />
=== Take care of the Haskell Platform installer ===<br />
<br />
The [http://github.com/gregorycollins/haskell-platform-osx-installer Haskell Platform OSX installer] is looking for a new maintainer (concat Greg: "greg at gregorycollins net").<br />
<br />
* who is willing to take over?<br />
** collaborate effort or single effort?<br />
* where to host?<br />
* what are the most presing things on the todo list?<br />
<br />
=== Make GUI-bindings easy to install ===<br />
<br />
Neither wxHaskell nor Gtk2hs with native Gtk seems to be easy to install.<br />
What's the state of HQK and qtHaskell?<br />
<br />
* We should provide at least one easy way to install one set of GUI bindings<br />
<br />
=== Make GHC 64 bit ===<br />
<br />
Mac OS X GHC Trac tickets:<br />
* [[http://hackage.haskell.org/trac/ghc/ticket/2965 2965]] is the main ticket, with lots of CC: people<br />
* [[http://hackage.haskell.org/trac/ghc/ticket/4163 4163]] gives some cross-compiling hope<br />
<br />
=== Reduce the number of GHC tickets ===<br />
<br />
* All [http://hackage.haskell.org/trac/ghc/query?groupdesc=1&group=status&order=priority&os=MacOS+X&col=id&col=summary&col=owner&col=type&col=status&col=priority&col=milestone Mac OS X GHC Trac tickets]<br />
<br />
== Information ==<br />
<br />
=== Wiki ===<br />
<br />
* [[Mac OS X]]<br />
* [[Mac OS X Common Installation Paths]]<br />
* [[Using Haskell in an Xcode Cocoa project]]<br />
<br />
=== Installing Haskell ===<br />
<br />
==== How Haskell is on OS X today ====<br />
<br />
The simplest methods are currently:<br />
<br />
* Binary GHC framework (/Library/Framework)<br />
* Binary Haskell platform framework (/Library/Framework)<br />
* MacPorts (/opt/local)<br />
* Fink (/sw)<br />
* Homebrew (symlinked into /usr/local ?)<br />
<br />
==== Manually compiled ====<br />
<br />
[[User:ChrisKuklewicz|ChrisKuklewicz]] 11:53, 6 September 2010 (UTC) I use MacPorts for the infrastructure and compile ghc against /opt/local but with --prefix=/opt/ghc-6.12.3 to keep it separate.<br />
<br />
==== Dynamic Linking ====<br />
<br />
working in GHC HEAD, not in any released version.<br />
<br />
<br />
==== Difficult libraries on OS X ====<br />
<br />
Libraries needed for ghc<br />
<br />
* iconv (older version in /usr is incompatible with new version from MacPorts)<br />
* readline (faked in /usr, provided by framework or MacPorts)<br />
* gmp (framework or MacPorts)<br />
<br />
Libraries needed for other packages? gtk?<br />
<br />
=== OS X code integration ===<br />
<br />
Write Haskell in XCode?<br />
<br />
Write ObjectiveC against GHC.Framework?<br />
<br />
FFI for Objective C from Haskell?<br />
<br />
=== Improvements? ===<br />
<br />
A cabal2pkg that maintains proper dependency tracking?<br />
<br />
Discussion forum for all this?</div>Lenny222https://wiki.haskell.org/index.php?title=Mac_OS_X_Strike_Force&diff=36695Mac OS X Strike Force2010-09-07T14:59:58Z<p>Lenny222: </p>
<hr />
<div>The following is a wiki page to centralize discussion of how to improve Haskell on Mac OS X. The name "strike force" comes from dons' [http://www.reddit.com/r/haskell/comments/d9wm2/is_it_time_for_a_strike_team_to_form_dedicated_to/ post on reddit] and the comments therein.<br />
<br />
== Goals ==<br />
<br />
=== Taking care of the Haskell Platform installer ===<br />
<br />
The [http://github.com/gregorycollins/haskell-platform-osx-installer Haskell Platform OSX installer] is looking for a new maintainer (concat Greg: "greg at gregorycollins net").<br />
<br />
* who is willing to take over?<br />
** collaborate effort or single effort?<br />
* where to host?<br />
* what are the most presing things on the todo list?<br />
<br />
=== Make GUI-bindings easy to install ===<br />
<br />
Neither wxHaskell nor Gtk2hs with native Gtk seems to be easy to install.<br />
What's the state of HQK and qtHaskell?<br />
<br />
* We should provide at least one easy way to install one set of GUI bindings<br />
<br />
=== Make GHC 64 bit ===<br />
<br />
Mac OS X GHC Trac tickets:<br />
* [[http://hackage.haskell.org/trac/ghc/ticket/2965 2965]] is the main ticket, with lots of CC: people<br />
* [[http://hackage.haskell.org/trac/ghc/ticket/4163 4163]] gives some cross-compiling hope<br />
<br />
=== Reduce the number of GHC tickets ===<br />
<br />
* All [http://hackage.haskell.org/trac/ghc/query?groupdesc=1&group=status&order=priority&os=MacOS+X&col=id&col=summary&col=owner&col=type&col=status&col=priority&col=milestone Mac OS X GHC Trac tickets]<br />
<br />
== Information ==<br />
<br />
=== Wiki ===<br />
<br />
* [[Mac OS X]]<br />
* [[Mac OS X Common Installation Paths]]<br />
* [[Using Haskell in an Xcode Cocoa project]]<br />
<br />
=== Installing Haskell ===<br />
<br />
==== How Haskell is on OS X today ====<br />
<br />
The simplest methods are currently:<br />
<br />
* Binary GHC framework (/Library/Framework)<br />
* Binary Haskell platform framework (/Library/Framework)<br />
* MacPorts (/opt/local)<br />
* Fink (/sw)<br />
* Homebrew (symlinked into /usr/local ?)<br />
<br />
==== Manually compiled ====<br />
<br />
[[User:ChrisKuklewicz|ChrisKuklewicz]] 11:53, 6 September 2010 (UTC) I use MacPorts for the infrastructure and compile ghc against /opt/local but with --prefix=/opt/ghc-6.12.3 to keep it separate.<br />
<br />
==== Dynamic Linking ====<br />
<br />
working in GHC HEAD, not in any released version.<br />
<br />
<br />
==== Difficult libraries on OS X ====<br />
<br />
Libraries needed for ghc<br />
<br />
* iconv (older version in /usr is incompatible with new version from MacPorts)<br />
* readline (faked in /usr, provided by framework or MacPorts)<br />
* gmp (framework or MacPorts)<br />
<br />
Libraries needed for other packages? gtk?<br />
<br />
=== OS X code integration ===<br />
<br />
Write Haskell in XCode?<br />
<br />
Write ObjectiveC against GHC.Framework?<br />
<br />
FFI for Objective C from Haskell?<br />
<br />
=== Improvements? ===<br />
<br />
A cabal2pkg that maintains proper dependency tracking?<br />
<br />
Discussion forum for all this?</div>Lenny222https://wiki.haskell.org/index.php?title=Mac_OS_X_Strike_Force&diff=36694Mac OS X Strike Force2010-09-07T14:51:11Z<p>Lenny222: /* Taking care of the Haskell Platform installer */</p>
<hr />
<div>The following is a wiki page to centralize discussion of how to improve Haskell on Mac OS X. The name "strike force" comes from dons' [http://www.reddit.com/r/haskell/comments/d9wm2/is_it_time_for_a_strike_team_to_form_dedicated_to/ post on reddit] and the comments therein.<br />
<br />
== Goals ==<br />
<br />
=== Taking care of the Haskell Platform installer ===<br />
<br />
The [http://github.com/gregorycollins/haskell-platform-osx-installer Haskell Platform OSX installer] is looking for a new maintainer (concat Greg: "greg at gregorycollins net").<br />
<br />
* who is willing to take over?<br />
** collaborate effort or single effort?<br />
* where to host?<br />
* what are the most presing things on the todo list?<br />
<br />
=== Make native Gtk-bindings easy to install ===<br />
<br />
=== Make wxWidgets-bindings easy to install ===<br />
<br />
=== Make GHC 64 bit ===<br />
<br />
Mac OS X GHC Trac tickets:<br />
* [[http://hackage.haskell.org/trac/ghc/ticket/2965 2965]] is the main ticket, with lots of CC: people<br />
* [[http://hackage.haskell.org/trac/ghc/ticket/4163 4163]] gives some cross-compiling hope<br />
<br />
=== Reduce the number of GHC tickets ===<br />
<br />
* All [http://hackage.haskell.org/trac/ghc/query?groupdesc=1&group=status&order=priority&os=MacOS+X&col=id&col=summary&col=owner&col=type&col=status&col=priority&col=milestone Mac OS X GHC Trac tickets]<br />
<br />
== Information ==<br />
<br />
=== Wiki ===<br />
<br />
* [[Mac OS X]]<br />
* [[Mac OS X Common Installation Paths]]<br />
* [[Using Haskell in an Xcode Cocoa project]]<br />
<br />
=== Installing Haskell ===<br />
<br />
==== How Haskell is on OS X today ====<br />
<br />
The simplest methods are currently:<br />
<br />
* Binary GHC framework (/Library/Framework)<br />
* Binary Haskell platform framework (/Library/Framework)<br />
* MacPorts (/opt/local)<br />
* Fink (/sw)<br />
* Homebrew (symlinked into /usr/local ?)<br />
<br />
==== Manually compiled ====<br />
<br />
[[User:ChrisKuklewicz|ChrisKuklewicz]] 11:53, 6 September 2010 (UTC) I use MacPorts for the infrastructure and compile ghc against /opt/local but with --prefix=/opt/ghc-6.12.3 to keep it separate.<br />
<br />
==== Dynamic Linking ====<br />
<br />
working in GHC HEAD, not in any released version.<br />
<br />
<br />
==== Difficult libraries on OS X ====<br />
<br />
Libraries needed for ghc<br />
<br />
* iconv (older version in /usr is incompatible with new version from MacPorts)<br />
* readline (faked in /usr, provided by framework or MacPorts)<br />
* gmp (framework or MacPorts)<br />
<br />
Libraries needed for other packages? gtk?<br />
<br />
=== OS X code integration ===<br />
<br />
Write Haskell in XCode?<br />
<br />
Write ObjectiveC against GHC.Framework?<br />
<br />
FFI for Objective C from Haskell?<br />
<br />
=== Improvements? ===<br />
<br />
A cabal2pkg that maintains proper dependency tracking?<br />
<br />
Discussion forum for all this?</div>Lenny222https://wiki.haskell.org/index.php?title=Mac_OS_X_Strike_Force&diff=36693Mac OS X Strike Force2010-09-07T14:42:12Z<p>Lenny222: add questions/tasklets</p>
<hr />
<div>The following is a wiki page to centralize discussion of how to improve Haskell on Mac OS X. The name "strike force" comes from dons' [http://www.reddit.com/r/haskell/comments/d9wm2/is_it_time_for_a_strike_team_to_form_dedicated_to/ post on reddit] and the comments therein.<br />
<br />
== Goals ==<br />
<br />
=== Taking care of the Haskell Platform installer ===<br />
<br />
The [http://github.com/gregorycollins/haskell-platform-osx-installer Haskell Platform OSX installer] is looking for a new maintainer (concat Greg: "greg at gregorycollins net").<br />
<br />
* who is willing to take over?<br />
** collborate or single effort?<br />
* where to host?<br />
<br />
=== Make native Gtk-bindings easy to install ===<br />
<br />
=== Make wxWidgets-bindings easy to install ===<br />
<br />
=== Make GHC 64 bit ===<br />
<br />
Mac OS X GHC Trac tickets:<br />
* [[http://hackage.haskell.org/trac/ghc/ticket/2965 2965]] is the main ticket, with lots of CC: people<br />
* [[http://hackage.haskell.org/trac/ghc/ticket/4163 4163]] gives some cross-compiling hope<br />
<br />
=== Reduce the number of GHC tickets ===<br />
<br />
* All [http://hackage.haskell.org/trac/ghc/query?groupdesc=1&group=status&order=priority&os=MacOS+X&col=id&col=summary&col=owner&col=type&col=status&col=priority&col=milestone Mac OS X GHC Trac tickets]<br />
<br />
== Information ==<br />
<br />
=== Wiki ===<br />
<br />
* [[Mac OS X]]<br />
* [[Mac OS X Common Installation Paths]]<br />
* [[Using Haskell in an Xcode Cocoa project]]<br />
<br />
=== Installing Haskell ===<br />
<br />
==== How Haskell is on OS X today ====<br />
<br />
The simplest methods are currently:<br />
<br />
* Binary GHC framework (/Library/Framework)<br />
* Binary Haskell platform framework (/Library/Framework)<br />
* MacPorts (/opt/local)<br />
* Fink (/sw)<br />
* Homebrew (symlinked into /usr/local ?)<br />
<br />
==== Manually compiled ====<br />
<br />
[[User:ChrisKuklewicz|ChrisKuklewicz]] 11:53, 6 September 2010 (UTC) I use MacPorts for the infrastructure and compile ghc against /opt/local but with --prefix=/opt/ghc-6.12.3 to keep it separate.<br />
<br />
==== Dynamic Linking ====<br />
<br />
working in GHC HEAD, not in any released version.<br />
<br />
<br />
==== Difficult libraries on OS X ====<br />
<br />
Libraries needed for ghc<br />
<br />
* iconv (older version in /usr is incompatible with new version from MacPorts)<br />
* readline (faked in /usr, provided by framework or MacPorts)<br />
* gmp (framework or MacPorts)<br />
<br />
Libraries needed for other packages? gtk?<br />
<br />
=== OS X code integration ===<br />
<br />
Write Haskell in XCode?<br />
<br />
Write ObjectiveC against GHC.Framework?<br />
<br />
FFI for Objective C from Haskell?<br />
<br />
=== Improvements? ===<br />
<br />
A cabal2pkg that maintains proper dependency tracking?<br />
<br />
Discussion forum for all this?</div>Lenny222https://wiki.haskell.org/index.php?title=Mac_OS_X_Strike_Force&diff=36692Mac OS X Strike Force2010-09-07T14:37:19Z<p>Lenny222: /* Taking care of the Haskell Platform installer */ more info on HP installer</p>
<hr />
<div>The following is a wiki page to centralize discussion of how to improve Haskell on Mac OS X. The name "strike force" comes from dons' [http://www.reddit.com/r/haskell/comments/d9wm2/is_it_time_for_a_strike_team_to_form_dedicated_to/ post on reddit] and the comments therein.<br />
<br />
== Goals ==<br />
<br />
=== Taking care of the Haskell Platform installer ===<br />
<br />
The [http://github.com/gregorycollins/haskell-platform-osx-installer Haskell Platform OSX installer] is looking for a new maintainer.<br />
<br />
Please email "greg at gregorycollins net".<br />
<br />
=== Make native Gtk-bindings easy to install ===<br />
<br />
=== Make wxWidgets-bindings easy to install ===<br />
<br />
=== Make GHC 64 bit ===<br />
<br />
Mac OS X GHC Trac tickets:<br />
* [[http://hackage.haskell.org/trac/ghc/ticket/2965 2965]] is the main ticket, with lots of CC: people<br />
* [[http://hackage.haskell.org/trac/ghc/ticket/4163 4163]] gives some cross-compiling hope<br />
<br />
=== Reduce the number of GHC tickets ===<br />
<br />
* All [http://hackage.haskell.org/trac/ghc/query?groupdesc=1&group=status&order=priority&os=MacOS+X&col=id&col=summary&col=owner&col=type&col=status&col=priority&col=milestone Mac OS X GHC Trac tickets]<br />
<br />
== Information ==<br />
<br />
=== Wiki ===<br />
<br />
* [[Mac OS X]]<br />
* [[Mac OS X Common Installation Paths]]<br />
* [[Using Haskell in an Xcode Cocoa project]]<br />
<br />
=== Installing Haskell ===<br />
<br />
==== How Haskell is on OS X today ====<br />
<br />
The simplest methods are currently:<br />
<br />
* Binary GHC framework (/Library/Framework)<br />
* Binary Haskell platform framework (/Library/Framework)<br />
* MacPorts (/opt/local)<br />
* Fink (/sw)<br />
* Homebrew (symlinked into /usr/local ?)<br />
<br />
==== Manually compiled ====<br />
<br />
[[User:ChrisKuklewicz|ChrisKuklewicz]] 11:53, 6 September 2010 (UTC) I use MacPorts for the infrastructure and compile ghc against /opt/local but with --prefix=/opt/ghc-6.12.3 to keep it separate.<br />
<br />
==== Dynamic Linking ====<br />
<br />
working in GHC HEAD, not in any released version.<br />
<br />
<br />
==== Difficult libraries on OS X ====<br />
<br />
Libraries needed for ghc<br />
<br />
* iconv (older version in /usr is incompatible with new version from MacPorts)<br />
* readline (faked in /usr, provided by framework or MacPorts)<br />
* gmp (framework or MacPorts)<br />
<br />
Libraries needed for other packages? gtk?<br />
<br />
=== OS X code integration ===<br />
<br />
Write Haskell in XCode?<br />
<br />
Write ObjectiveC against GHC.Framework?<br />
<br />
FFI for Objective C from Haskell?<br />
<br />
=== Improvements? ===<br />
<br />
A cabal2pkg that maintains proper dependency tracking?<br />
<br />
Discussion forum for all this?</div>Lenny222https://wiki.haskell.org/index.php?title=Mac_OS_X_Strike_Force&diff=36691Mac OS X Strike Force2010-09-07T14:31:26Z<p>Lenny222: add Gtk,. wxWidgets as goals</p>
<hr />
<div>The following is a wiki page to centralize discussion of how to improve Haskell on Mac OS X. The name "strike force" comes from dons' [http://www.reddit.com/r/haskell/comments/d9wm2/is_it_time_for_a_strike_team_to_form_dedicated_to/ post on reddit] and the comments therein.<br />
<br />
== Goals ==<br />
<br />
=== Taking care of the Haskell Platform installer ===<br />
<br />
If anyone has some time to invest in Haskell infrastructure and the willingness or knowhow to hack around OSX installer issues, please email greg@gregorycollins.net. I'm looking for someone to assume maintainership of the project.<br />
<br />
=== Make native Gtk-bindings easy to install ===<br />
<br />
=== Make wxWidgets-bindings easy to install ===<br />
<br />
=== Make GHC 64 bit ===<br />
<br />
Mac OS X GHC Trac tickets:<br />
* [[http://hackage.haskell.org/trac/ghc/ticket/2965 2965]] is the main ticket, with lots of CC: people<br />
* [[http://hackage.haskell.org/trac/ghc/ticket/4163 4163]] gives some cross-compiling hope<br />
<br />
=== Reduce the number of GHC tickets ===<br />
<br />
* All [http://hackage.haskell.org/trac/ghc/query?groupdesc=1&group=status&order=priority&os=MacOS+X&col=id&col=summary&col=owner&col=type&col=status&col=priority&col=milestone Mac OS X GHC Trac tickets]<br />
<br />
== Information ==<br />
<br />
=== Wiki ===<br />
<br />
* [[Mac OS X]]<br />
* [[Mac OS X Common Installation Paths]]<br />
* [[Using Haskell in an Xcode Cocoa project]]<br />
<br />
=== Installing Haskell ===<br />
<br />
==== How Haskell is on OS X today ====<br />
<br />
The simplest methods are currently:<br />
<br />
* Binary GHC framework (/Library/Framework)<br />
* Binary Haskell platform framework (/Library/Framework)<br />
* MacPorts (/opt/local)<br />
* Fink (/sw)<br />
* Homebrew (symlinked into /usr/local ?)<br />
<br />
==== Manually compiled ====<br />
<br />
[[User:ChrisKuklewicz|ChrisKuklewicz]] 11:53, 6 September 2010 (UTC) I use MacPorts for the infrastructure and compile ghc against /opt/local but with --prefix=/opt/ghc-6.12.3 to keep it separate.<br />
<br />
==== Dynamic Linking ====<br />
<br />
working in GHC HEAD, not in any released version.<br />
<br />
<br />
==== Difficult libraries on OS X ====<br />
<br />
Libraries needed for ghc<br />
<br />
* iconv (older version in /usr is incompatible with new version from MacPorts)<br />
* readline (faked in /usr, provided by framework or MacPorts)<br />
* gmp (framework or MacPorts)<br />
<br />
Libraries needed for other packages? gtk?<br />
<br />
=== OS X code integration ===<br />
<br />
Write Haskell in XCode?<br />
<br />
Write ObjectiveC against GHC.Framework?<br />
<br />
FFI for Objective C from Haskell?<br />
<br />
=== Improvements? ===<br />
<br />
A cabal2pkg that maintains proper dependency tracking?<br />
<br />
Discussion forum for all this?</div>Lenny222https://wiki.haskell.org/index.php?title=Mac_OS_X_Strike_Force&diff=36690Mac OS X Strike Force2010-09-07T14:27:40Z<p>Lenny222: </p>
<hr />
<div>The following is a wiki page to centralize discussion of how to improve Haskell on Mac OS X. The name "strike force" comes from dons' [http://www.reddit.com/r/haskell/comments/d9wm2/is_it_time_for_a_strike_team_to_form_dedicated_to/ post on reddit] and the comments therein.<br />
<br />
== Goals ==<br />
<br />
=== Taking care of the Haskell Platform installer ===<br />
<br />
If anyone has some time to invest in Haskell infrastructure and the willingness or knowhow to hack around OSX installer issues, please email greg@gregorycollins.net. I'm looking for someone to assume maintainership of the project.<br />
<br />
<br />
=== Make GHC 64 bit ===<br />
<br />
Mac OS X GHC Trac tickets:<br />
* [[http://hackage.haskell.org/trac/ghc/ticket/2965 2965]] is the main ticket, with lots of CC: people<br />
* [[http://hackage.haskell.org/trac/ghc/ticket/4163 4163]] gives some cross-compiling hope<br />
<br />
=== Reduce the number of GHC tickets ===<br />
<br />
* All [http://hackage.haskell.org/trac/ghc/query?groupdesc=1&group=status&order=priority&os=MacOS+X&col=id&col=summary&col=owner&col=type&col=status&col=priority&col=milestone Mac OS X GHC Trac tickets]<br />
<br />
== Information ==<br />
<br />
=== Wiki ===<br />
<br />
* [[Mac OS X]]<br />
* [[Mac OS X Common Installation Paths]]<br />
* [[Using Haskell in an Xcode Cocoa project]]<br />
<br />
=== Installing Haskell ===<br />
<br />
==== How Haskell is on OS X today ====<br />
<br />
The simplest methods are currently:<br />
<br />
* Binary GHC framework (/Library/Framework)<br />
* Binary Haskell platform framework (/Library/Framework)<br />
* MacPorts (/opt/local)<br />
* Fink (/sw)<br />
* Homebrew (symlinked into /usr/local ?)<br />
<br />
==== Manually compiled ====<br />
<br />
[[User:ChrisKuklewicz|ChrisKuklewicz]] 11:53, 6 September 2010 (UTC) I use MacPorts for the infrastructure and compile ghc against /opt/local but with --prefix=/opt/ghc-6.12.3 to keep it separate.<br />
<br />
==== Dynamic Linking ====<br />
<br />
working in GHC HEAD, not in any released version.<br />
<br />
<br />
==== Difficult libraries on OS X ====<br />
<br />
Libraries needed for ghc<br />
<br />
* iconv (older version in /usr is incompatible with new version from MacPorts)<br />
* readline (faked in /usr, provided by framework or MacPorts)<br />
* gmp (framework or MacPorts)<br />
<br />
Libraries needed for other packages? gtk?<br />
<br />
=== OS X code integration ===<br />
<br />
Write Haskell in XCode?<br />
<br />
Write ObjectiveC against GHC.Framework?<br />
<br />
FFI for Objective C from Haskell?<br />
<br />
=== Improvements? ===<br />
<br />
A cabal2pkg that maintains proper dependency tracking?<br />
<br />
Discussion forum for all this?</div>Lenny222https://wiki.haskell.org/index.php?title=Mac_OS_X_Strike_Force&diff=36689Mac OS X Strike Force2010-09-07T14:25:35Z<p>Lenny222: that's an important goal</p>
<hr />
<div>The following is a wiki page to centralize discussion of how to improve Haskell on Mac OS X. The name "strike force" comes from dons' [http://www.reddit.com/r/haskell/comments/d9wm2/is_it_time_for_a_strike_team_to_form_dedicated_to/ post on reddit] and the comments therein.<br />
<br />
== Goals ==<br />
<br />
=== Taking care of the Haskell Platform installer ===<br />
<br />
If anyone has some time to invest in Haskell infrastructure and the willingness or knowhow to hack around OSX installer issues, please email greg@gregorycollins.net. I'm looking for someone to assume maintainership of the project.<br />
<br />
<br />
=== Make GHC 64 bit ===<br />
<br />
* [[http://hackage.haskell.org/trac/ghc/ticket/2965 2965]] is the main ticket, with lots of CC: people<br />
* [[http://hackage.haskell.org/trac/ghc/ticket/4163 4163]] gives some cross-compiling hope<br />
<br />
=== Reduce the number of OS X Trac tickets ===<br />
<br />
[http://hackage.haskell.org/trac/ghc/query?groupdesc=1&group=status&order=priority&os=MacOS+X&col=id&col=summary&col=owner&col=type&col=status&col=priority&col=milestone Operating System == Mac OS X] tickets on Trac<br />
<br />
== Information ==<br />
<br />
=== Wiki ===<br />
<br />
* [[Mac OS X]]<br />
* [[Mac OS X Common Installation Paths]]<br />
* [[Using Haskell in an Xcode Cocoa project]]<br />
<br />
=== Installing Haskell ===<br />
<br />
==== How Haskell is on OS X today ====<br />
<br />
The simplest methods are currently:<br />
<br />
* Binary GHC framework (/Library/Framework)<br />
* Binary Haskell platform framework (/Library/Framework)<br />
* MacPorts (/opt/local)<br />
* Fink (/sw)<br />
* Homebrew (symlinked into /usr/local ?)<br />
<br />
==== Manually compiled ====<br />
<br />
[[User:ChrisKuklewicz|ChrisKuklewicz]] 11:53, 6 September 2010 (UTC) I use MacPorts for the infrastructure and compile ghc against /opt/local but with --prefix=/opt/ghc-6.12.3 to keep it separate.<br />
<br />
==== Dynamic Linking ====<br />
<br />
working in GHC HEAD, not in any released version.<br />
<br />
<br />
==== Difficult libraries on OS X ====<br />
<br />
Libraries needed for ghc<br />
<br />
* iconv (older version in /usr is incompatible with new version from MacPorts)<br />
* readline (faked in /usr, provided by framework or MacPorts)<br />
* gmp (framework or MacPorts)<br />
<br />
Libraries needed for other packages? gtk?<br />
<br />
=== OS X code integration ===<br />
<br />
Write Haskell in XCode?<br />
<br />
Write ObjectiveC against GHC.Framework?<br />
<br />
FFI for Objective C from Haskell?<br />
<br />
=== Improvements? ===<br />
<br />
A cabal2pkg that maintains proper dependency tracking?<br />
<br />
Discussion forum for all this?</div>Lenny222https://wiki.haskell.org/index.php?title=Mac_OS_X_Strike_Force&diff=36688Mac OS X Strike Force2010-09-07T14:20:22Z<p>Lenny222: i think you need goals, when you want to achieve something</p>
<hr />
<div>The following is a wiki page to centralize discussion of how to improve Haskell on Mac OS X. The name "strike force" comes from dons' [http://www.reddit.com/r/haskell/comments/d9wm2/is_it_time_for_a_strike_team_to_form_dedicated_to/ post on reddit] and the comments therein.<br />
<br />
== Goals ==<br />
<br />
=== Make GHC 64 bit ===<br />
<br />
* [[http://hackage.haskell.org/trac/ghc/ticket/2965 2965]] is the main ticket, with lots of CC: people<br />
* [[http://hackage.haskell.org/trac/ghc/ticket/4163 4163]] gives some cross-compiling hope<br />
<br />
=== Reduce the number of OS X Trac tickets ===<br />
<br />
[http://hackage.haskell.org/trac/ghc/query?groupdesc=1&group=status&order=priority&os=MacOS+X&col=id&col=summary&col=owner&col=type&col=status&col=priority&col=milestone Operating System == Mac OS X] tickets on Trac<br />
<br />
== Information ==<br />
<br />
=== Wiki ===<br />
<br />
* [[Mac OS X]]<br />
* [[Mac OS X Common Installation Paths]]<br />
* [[Using Haskell in an Xcode Cocoa project]]<br />
<br />
=== Installing Haskell ===<br />
<br />
==== How Haskell is on OS X today ====<br />
<br />
The simplest methods are currently:<br />
<br />
* Binary GHC framework (/Library/Framework)<br />
* Binary Haskell platform framework (/Library/Framework)<br />
* MacPorts (/opt/local)<br />
* Fink (/sw)<br />
* Homebrew (symlinked into /usr/local ?)<br />
<br />
==== Manually compiled ====<br />
<br />
[[User:ChrisKuklewicz|ChrisKuklewicz]] 11:53, 6 September 2010 (UTC) I use MacPorts for the infrastructure and compile ghc against /opt/local but with --prefix=/opt/ghc-6.12.3 to keep it separate.<br />
<br />
==== Dynamic Linking ====<br />
<br />
working in GHC HEAD, not in any released version.<br />
<br />
<br />
==== Difficult libraries on OS X ====<br />
<br />
Libraries needed for ghc<br />
<br />
* iconv (older version in /usr is incompatible with new version from MacPorts)<br />
* readline (faked in /usr, provided by framework or MacPorts)<br />
* gmp (framework or MacPorts)<br />
<br />
Libraries needed for other packages? gtk?<br />
<br />
=== OS X code integration ===<br />
<br />
Write Haskell in XCode?<br />
<br />
Write ObjectiveC against GHC.Framework?<br />
<br />
FFI for Objective C from Haskell?<br />
<br />
=== Seeking a volunteer to help or take over the HP binary installer project ===<br />
<br />
If anyone has some time to invest in Haskell infrastructure and the willingness or knowhow to hack around OSX installer issues, please email greg@gregorycollins.net. I'm looking for someone to assume maintainership of the project.<br />
<br />
=== Improvements? ===<br />
<br />
A cabal2pkg that maintains proper dependency tracking?<br />
<br />
Discussion forum for all this?</div>Lenny222https://wiki.haskell.org/index.php?title=Mac_OS_X&diff=36687Mac OS X2010-09-07T14:13:18Z<p>Lenny222: /* Mac OS X 10.6 (Snow Leopard) */ simplify</p>
<hr />
<div>There is also now the [[Mac OS X Strike Force]] that aims to improve using Haskell on OS X.<br />
<br />
== The Haskell Platform ==<br />
<br />
There are Mac OS X installers of the full Haskell Platform development environment. We recommend it:<br />
<br />
[http://haskell.org/platform/ http://haskell.org/platform/icons/button-100.png]<br />
<br />
== GHC ==<br />
<br />
==== Important notes ====<br />
<br />
To get the most out of your GHC environment, you should '~/.cabal/bin' to your PATH environment variable before the path where you have GHC installed. This will allow you to get and use cabal-updates, as well as other programs shipped with GHC like hsc2hs.<br />
<br />
In you ~/.profile, add the line:<br />
<br />
<code>export PATH="~/.cabal/bin:$PATH";</code><br />
<br />
<br />
=== Mac OS X 10.5 (Leopard) ===<br />
<br />
To install GHC on Mac OS X 10.5 (Leopard), there are the following options:<br />
* install the [http://hackage.haskell.org/platform/ Haskell Platform]<br />
* install [http://www.macports.org MacPort]'s [http://trac.macports.org/browser/trunk/dports/lang/ghc/Portfile ghc] package<br />
<br />
=== Mac OS X 10.6 (Snow Leopard) ===<br />
<br />
* Install the [http://hackage.haskell.org/platform/ Haskell Platform]<br />
<br />
To uninstall ghc call:<br />
<code><br />
sudo /Library/Frameworks/GHC.framework/Tools/Uninstaller<br />
</code><br />
<br />
== HUGS ==<br />
<br />
* install [http://www.macports.org MacPort]'s [http://trac.macports.org/browser/trunk/dports/lang/hugs98/Portfile hugs98] package.<br />
<br />
<br />
== Installing libraries with external C bindings ==<br />
<br />
Haskell libraries are installed with the <code>cabal</code> command line tool.<br />
<br />
Some libraries depend on external C libraries, which are best installed with [http://macports.org MacPorts]. However, you have to tell cabal to include the <code>/opt/local/</code> directories when searching for external libraries. The following shell script does that by wrapping the <code>cabal</code> utility<br />
<br />
> cat cabal-macports<br />
#!/bin/bash<br />
export CPPFLAGS=-I/opt/local/include<br />
export LDFLAGS=-L/opt/local/lib<br />
cabal $@ --extra-include-dirs=/opt/local/include \<br />
--extra-lib-dirs=/opt/local/lib<br />
<br />
> cabal-macports install foobar<br />
<br />
== Editors with Haskell support ==<br />
<br />
=== Open Source ===<br />
<br />
* [http://aquamacs.org/ AquaMacs], a graphical Emacs version<br />
* [http://eclipsefp.sourceforge.net/ Eclipse] with the [http://eclipsefp.sourceforge.net/ EclipseFP] plugin<br />
* [http://www.gnu.org/software/emacs/ Emacs], is installed on every Mac<br />
* [http://leksah.org/ Leksah]<br />
* [http://code.google.com/p/macvim/ MacVim], a graphical Vim version<br />
* [http://www.vim.org/ Vim], is installed on every Mac<br />
* [http://haskell.org/haskellwiki/Yi Yi] (written in Haskell itself!), is available through cabal-install<br />
<br />
=== Commercial ===<br />
<br />
[http://www.codingmonkeys.de/subethaedit/ SubEthaEdit]:<br />
<br />
[[Image:SubEthaEdit.png]]<br />
<br />
[http://macromates.com/ TextMate]:<br />
<br />
[[Image:TextMate.png]]<br />
<br />
and [http://tuppis.com/smultron/ Smultron]:<br />
<br />
[[Image:Smultron.png]]<br />
<br />
TextEdit is Mac's default text editor, a very basic editor that works fine for most uses, you must however be careful to put it into plain text mode using the Format menu.<br />
<br />
== Shipping Installable Haskell Applications ==<br />
<br />
* [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/mkbndl mkbndl] builds installable Mac OSX applications from your Haskell project.<br />
<br />
== Links ==<br />
* [[Using Haskell in an Xcode Cocoa project]]; a description of how to add a Haskell module (callable from C) to an Xcode/Cocoa/Interface builder project on your Mac.<br />
* [[Mac OS X Common Installation Paths]]: an effort to standardize where things go on a Mac OS X installation<br />
[[Category:OS]]</div>Lenny222https://wiki.haskell.org/index.php?title=Gtk2Hs&diff=36574Gtk2Hs2010-08-26T14:31:05Z<p>Lenny222: /* Tutorials and Demos */ remov broken link</p>
<hr />
<div>[[Category:User interfaces]]<br />
== What is it? ==<br />
<br />
Gtk2Hs is a Haskell binding to Gtk+ 2.x.<br />
Using it, one can write Gtk+ based applications with GHC.<br />
<br />
== Homepage ==<br />
<br />
http://haskell.org/gtk2hs/<br />
<br />
== Tutorials and Demos ==<br />
<br />
http://www.haskell.org/haskellwiki/Gtk2Hs/Tutorials<br />
<br />
Some demonstration programs can be found at:<br />
http://darcs.haskell.org/gtk2hs/demo/<br />
<br />
== Status ==<br />
<br />
It currently works with Gtk+ 2.0 through to 2.8 on Unix, Win32 and MacOS X.<br />
The widget function coverage is almost complete, only a few minor bits and pieces are missing.<br />
<br />
It currently builds with ghc 5.04.3 through to 6.8.2<br />
(6.12.1 builds fine too, as of 15.4.10)<br />
<br />
== Installation Notes ==<br />
=== Mac OS X ===<br />
<br />
==== Using MacPorts and Snow Leopard ====<br />
<br />
This explains how to install Gtk2Hs-0.10.1 on Mac OS X 10.6 Snow Leopard, in combination with GTK+ from MacPorts.<br />
<br />
* Install the [http://hackage.haskell.org/platform/ Haskell Platform] for Mac<br />
* Download gtk2hs from [http://www.haskell.org/gtk2hs/ gtk2hs website] and untar it.<br />
* Install gtk, cairo, etc. from MacPorts like this (note that the +universal is needed; if you already installed gtk or one of its dependencies, it is recommended you reinstall those as detailed in the NB at the end of this section).<br />
:::sudo port install gtk +universal<br />
* go to the directory where gtk2hs is untarred and run<br />
:::./configure --disable-split-objs --disable-gio<br />
:::make<br />
:::sudo make install<br />
<br />
Alternatively, if you wish to follow the Mac OS X style of directory layout, you can use this configure command instead:<br />
:::./configure --with-pkgconf=/Users/username/.ghc/i386-darwin-6.10.4/package.conf --prefix=/Users/username/Library/Haskell/packages/gtk2hs --disable-split-objs --disable-gio<br />
<br />
Where username is your username ofcourse. Right now you should be able to run the demos. Unfortunately, to build any libraries depending on gtk2hs, such as [http://hackage.haskell.org/package/Chart/ Chart], you need to edit one more file. You will need to find "package.conf" for your ghc by doing<br />
:::ghc-pkg list<br />
In the output you will see the full directory to your package.conf file. In this file, you need to search for "gthread", and everywhere you can find it, add "/opt/local/lib" (with quotes) to the libraryDirs array before it.<br />
<br />
If all went well, it should be properly installed now.<br />
<br />
NB: If compiling fails with architecture errors for certain dynlibs, you need to reinstall the packages these dynlibs belong to with +universal by doing<br />
:::sudo port upgrade packagename --enforce-variants +universal<br />
Alternatively, and this is recommended, you can follow the steps on [http://passingcuriosity.com/2009/haskell-on-snow-leopard/ Haskell On Snow Leopard Blogpost] to immediately add the universal variant of each package:<br />
# Edit /opt/local/macports/variants.conf and add +universal to the end of this file<br />
# sudo port selfupdate <br />
# sudo port sync<br />
# sudo port upgrade --force-installed<br />
<br />
==== Using the GTK+ OS X Framework ====<br />
<br />
This explains how to install Gtk2Hs on Macs using the native [http://gtk-osx.sourceforge.net/ GTK+ OS X Framework], a port of GTK+ to the Mac that does '''not''' depend on X11, and hence, is better integrated into the Mac desktop - i.e., menus actually appear in the menu bar, where they belong. It also avoids the often tedious installation of GTK+ via MacPorts. However, it misses support for optional Gtk2Hs packages that are currently not supported by the [http://gtk-osx.sourceforge.net/ GTK+ OS X Framework], most notably support for Glade. It does include support for Cairo, though.<br />
<br />
Here is how to install the library:<br />
# Download and install [http://gtk-osx.sourceforge.net/ GTK+ OS X Framework] (this uses the standard Mac package installer).<br />
# Install [http://pkg-config.freedesktop.org/ pkg-config], either by compiling it from source or via MacPorts.<br />
# Download and unpack the Gtk2Hs tar ball from the [http://www.haskell.org/gtk2hs/download/ Gtk2Hs download page] (I tested 0.10.0).<br />
# Configure with (you may want to remove the two backslashes and put everything on one line)<br />
env PKG_CONFIG_PATH=/Library/Frameworks/Cairo.framework/Resources/dev/lib/pkgconfig:\ <br />
/Library/Frameworks/GLib.framework/Resources/dev/lib/pkgconfig:\ <br />
/Library/Frameworks/Gtk.framework/Resources/dev/lib/pkgconfig ./configure --disable-gio<br />
# Build with<br />
make<br />
# Install (to <tt>/usr/local/</tt> unless a <tt>--prefix</tt> option was passed to <tt>configure</tt>) with<br />
sudo make install<br />
<br />
The library is now registered with the package database of the GHC you used for compiling.<br />
<br />
NB: Thanks to Ross Mellgren for his post on the gtk2hs-users list that outlined the use of <tt>PKG_CONFIG_PATH</tt>.<br />
<br />
==== Article as of Mid 2008 ====<br />
Installing Gtk2Hs on Mac requires some finesse, at least until Haskell Libary Platform is built or ghc-6.8.3 is <br />
available in macports. (These are planned for late 2008.)<br />
<br />
* Install [http://macports.org MacPorts]<br />
* Install dependencies:<br />
sudo port install glade3 libglade2 gstreamer gst-plugins-base gtksourceview cairo librsvg gtkglext firefox<br />
* Update PKG_CONFIG_PATH (for libraries)<br />
export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/local/lib/pkgconfig:/opt/local/lib/pkgconfig<br />
* Update ghc to use macports libs: Edit your main <tt>ghc</tt> driver program and change the last line to:<br />
exec $GHCBIN $TOPDIROPT ${1+"$@"} -L/opt/local/lib -I/opt/local/include<br />
* Download Gtk2Hs following instructions at [http://www.haskell.org/gtk2hs/downloads/ Gtk2Hs Download page]<br />
* Check configuration:<br />
./configure --enable-docs --enable-profiling<br />
<br />
...<br />
<br />
**************************************************<br />
* Configuration completed successfully. <br />
* <br />
* The following packages will be built: <br />
* <br />
* glib : yes <br />
* gtk : yes <br />
* glade : yes <br />
* cairo : yes <br />
* svgcairo : yes <br />
* gtkglext : yes <br />
* gconf : yes <br />
* sourceview : yes <br />
* mozembed : yes <br />
* soegtk : yes <br />
* gnomevfs : yes <br />
* gstreamer : yes <br />
* documentation : yes <br />
* <br />
* Now do "(g)make" followed by "(g)make install"<br />
**************************************************<br />
* Build and Install:<br />
make <br />
sudo make install<br />
<br />
==== Recent experiences ====<br />
I successfully installed the latest version on Mac OS 10.5 by:<br />
* Installing Macports.<br />
* <tt>sudo port install ghc</tt><br />
* <tt>sudo port install gtk2hs</tt> - which does not complete successfully. It does however, install the appropriate dependencies. Note that there are so many, you may need to install a couple of times due to time outs etc.. The build of Gtk2HS will fail, but that is ok - continue as below. Also note that ghc configure will give up if your perl5.8 is not new enough, if so deactivate it and try again.<br />
* Remove the build directory under <tt>/opt/.../build/gtk2hs</tt><br />
* Download Gtk2Hs via darcs as per [http://haskell.org/gtk2hs/development/#darcs the gtk2hs download instructions]<br />
* do a <tt>sudo port install automake</tt><br />
* do a <tt>sudo port install alex</tt><br />
* do a <tt>sudo port install happy</tt> (Note this also fails and must be built from source. See the [[Happy]] page for details.)<br />
* Follow the build instructions on the [http://haskell.org/gtk2hs/development/#darcs the gtk2hs download page]. I would suggest using <tt>./configure --prefix=/opt/local</tt> to get it in the same place as ports - personal preference though.<br />
Good luck - as usual, your mileage may vary.<br />
<br />
== Demos ==<br />
<br />
=== OpenGL and Gtk2Hs ===<br />
<br />
[[Gtk2Hs/Demos/GtkGLext/hello.hs]]<br />
<br />
[[Gtk2Hs/Demos/GtkGLext/terrain.hs]] requires [[Gtk2Hs/Demos/GtkGLext/terrain.xpm]]<br />
<br />
==FAQs==<br />
These are links to FAQS on the main site.<br />
*[http://haskell.org/gtk2hs/archives/2005/06/23/hiding-the-console-on-windows/#more-26 Hiding the console on windows]<br />
*[http://haskell.org/gtk2hs/archives/2005/07/24/writing-multi-threaded-guis/#more-38 Writing multi-threaded GUIs]<br />
*[http://haskell.org/gtk2hs/archives/2005/06/24/building-from-source-on-windows/#more-15 Building on Windows]<br />
*[http://haskell.org/gtk2hs/development/#darcs Checkout instructions]. Also see [[Darcs]]<br />
<br />
[[Category:Applications]]</div>Lenny222https://wiki.haskell.org/index.php?title=Applications_and_libraries/GUI_libraries&diff=36573Applications and libraries/GUI libraries2010-08-26T14:26:20Z<p>Lenny222: /* Gtk2Hs */</p>
<hr />
<div>[[Category:User interfaces]]<br />
{{unknown copyright}}<br />
{{LibrariesPage}}<br />
<br />
There is a large number of GUI libraries for Haskell. Unfortunately there is no standard one and all are more or less incomplete. In general, low-level veneers are going well, but they are low level. High-level abstractions are pretty experimental. There is a need for a supported medium-level GUI library.<br />
<br />
== High-level ==<br />
<br />
=== FG ===<br />
<br />
FG is an arrow-based high-level functional approach to composable GUIs, built on top of Gtk2Hs. It is inspired by Fruit but uses discrete events instead of continuous signals.<br />
<br />
See the [http://kevin.atkinson.dhs.org/fg/doc/FG.html FG homepage].<br />
<br />
=== FranTk ===<br />
<br />
FranTk is a library for building GUIs in Haskell. FranTk uses behaviours and events, concepts from Conal Elliott’s Functional Reactive Animation. FranTk provides good support for developing complex dynamic systems, and is built on top of Tcl/Tk. This makes it platform independent. FranTk was developed by [http://www.dcs.gla.ac.uk/~meurig/ Meurig Sage]. It runs on Unix and Windows.<br />
<br />
See the [http://haskell.org/FranTk FranTk homepage].<br />
<br />
=== Fruit ===<br />
<br />
Fruit is another high-level approach to GUIs in Haskell. It is based on the concepts of Functional Reactive Programming and arrows. There is also another implementation of this approach, called wxFruit (see below).<br />
<br />
See the [http://www.haskell.org/fruit/ Fruit homepage].<br />
<br />
=== Fudgets ===<br />
Fudgets is primarily a Graphical User Interface Toolkit for Haskell and the X Windows system. Fudgets also makes it easy to create client-server applications that communicate via the Internet. It runs on Unix but not on Windows.<br />
<br />
See the [http://www.cs.chalmers.se/ComputingScience/Research/Functional/Fudgets/ Fudgets homepage] and [http://www.cs.chalmers.se/ComputingScience/Research/Functional/Fudgets/springschool95-intro.html Programming with Fudgets] which is a short presentation of the Fudget Library and the ideas underlying it.<br />
<br />
=== Grapefruit ===<br />
<br />
Grapefruit is an arrow-based declarative library. Widgets, windows and control components communicate via discrete and continuous signals. The use of signals is explicit in the interface to avoid certain inefficiencies. Internally, Grapefruit uses the event handling mechanisms of the underlying GUI toolkit.<br />
<br />
Currently, Grapefruit is build on top of Gtk2Hs but implementations based on other toolkits are planned for the future.<br />
<br />
See [[Grapefruit]].<br />
<br />
=== GuiTV ===<br />
<br />
GuiTV is a small library for GUI-style visualizing functional values. It can also be viewed as an approach to functional GUIs. It is implemented very simply by using [[Phooey]] in the [[TV]] framework.<br />
<br />
See [[GuiTV]].<br />
<br />
=== Phooey === <br />
<br />
Phooey is simple, functional, arrow-based library. Currently it is implemented atop [[wxHaskell]]. Phooey supports dynamic input bounds, flexible layout, and mutually-referential widgets.<br />
<br />
See [[Phooey]].<br />
<br />
=== wxFruit ===<br />
<br />
[[wxFruit]] is a GUI library based on the ideas of Fruit but built on top of wxHaskell.<br />
<br />
<br />
== Medium-level ==<br />
<br />
=== Functional Forms ===<br />
<br />
An addition to wxHaskell, Functional Forms is a combinator library/domain specific language which enables a very concise programming style for forms: dialogs which only show and edit a set of values. Forms are used in many applications as Options or Settings dialogs.<br />
<br />
See the [http://www.sandr.dds.nl/FunctionalForms Functional Forms homepage].<br />
<br />
=== Gtk2Hs ===<br />
<br />
Gtk2Hs is a GUI library for Haskell based on [http://www.gtk.org Gtk+]. Gtk+ is an extensive and mature multi-platform toolkit for creating graphical user interfaces. Gtk2Hs is actively developed, supporting the latest version of the Gtk+ 2.x series. It provides automatic memory management, Unicode support and also bindings for various Gnome modules. It runs on Windows, Linux, MacOS X, FreeBSD and Solaris.<br />
<br />
See [[Gtk2Hs]].<br />
<br />
=== HGL ===<br />
<br />
HGL is actually only a grapics library.<br />
<br />
See the [http://haskell.org/graphics/ HGL homepage].<br />
<br />
=== HQK ===<br />
<br />
HQK is an effort to provide Haskell bindings to large parts of the Qt and KDE libraries. The goal is to auto-generate most of the binding code from C++ header files. We plan to develop a HQK GUI backend for the Functional Reactive Programming library [[Grapefruit]], thereby making Grapefruit multi-platform.<br />
<br />
See [[HQK]].<br />
<br />
=== HTk ===<br />
<br />
Htk is a typed, portable encapsulation of Tcl/Tk into Haskell. Its distinctive features are the use of Haskell types and type classes for structuring the interface, an abstract notion of event for describing user interaction, and portability across Windows, Unix and Linux.<br />
<br />
See the [http://www.informatik.uni-bremen.de/htk HTk homepage].<br />
<br />
=== HToolkit ===<br />
<br />
HToolkit is a portable Haskell library for writing graphical user interfaces (GUI's). The library is built upon a low-level interface that will be implemented for each different target platform. The low-level library is called Port and is currently implemented for GTK and Windows. The middle-level library is named GIO (the Graphical IO library) and is built upon the low-level Port library.<br />
<br />
See the [http://htoolkit.sourceforge.net/ HToolkit homepage].<br />
<br />
=== Object I/O for Haskell ===<br />
<br />
This is a port of Clean Object I/O library for Haskell.<br />
<br />
See the [http://haskell.org/ObjectIO Object I/O for Haskell homepage].<br />
<br />
=== qtHaskell ===<br />
<br />
qtHaskell is a set of bindings for the Qt Widget library from Trolltech. Haskell<br />
programmers can now access the Qt "signals and slots" based interface methodolgy<br />
(no Qt precompilation necessary), runtime loading of xml based interfaces<br />
designed with Qt Designer, ECMA/Javascript based apps (signal/slot calls can be passed through from javascript to Haskell and vice/versa) and so on.<br />
<br />
Second preview version is downloadable from [http://qthaskell.berlios.de qtHaskell at Berlios].<br />
<br />
=== wxHaskell ===<br />
<br />
wxHaskell is a portable and native GUI library built on top of wxWidgets (formerly wxWindows)—a comprehensive C++ library that is portable across all major GUI platforms; including GTK, Windows, X11, and MacOS X. wxWidgets is a mature library (in development since 1992) that supports a wide range of widgets with the native look-and-feel, and it has a very active community.<br />
<br />
See [[wxHaskell]].<br />
<br />
== Low-level ==<br />
<br />
=== GLFW ===<br />
<br />
This is a binding to the [http://glfw.sourceforge.net GLFW OpenGL framework]. It provides an alternative to GLUT for OpenGL based Haskell programs.<br />
<br />
See [[GLFW]].<br />
<br />
=== GLUT ===<br />
<br />
This is a binding to the OpenGL GLUT library.<br />
<br />
=== TclHaskell ===<br />
<br />
TclHaskell is a library of functions for writing platform independent, graphical user interfaces in Haskell. The library provides a convenient, abstract and high-level way to write window-oriented applications. It also provides a more low level interface to write primitive Tcl code where helpful. For Unix and Windows and maybe Macintosh.<br />
<br />
See the [http://www.dcs.gla.ac.uk/~meurig/TclHaskell/ TclHaskell homepage].<br />
<br />
=== Win32 ===<br />
<br />
A binding to parts of the Win32 API.<br />
<br />
=== X11 ===<br />
<br />
A binding to parts of the X11 libraries.<br />
<br />
== Uncategorized ==<br />
<br />
=== Nanocurses ===<br />
<br />
Nanocurses is a minimal binding to curses and ncurses. It is smaller than hscurses and has less features. It also provides fast packed string support. It provides a Curses.hsc derived from Hmp3.<br />
<br />
See the [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/nanocurses Hackage page].<br />
<br />
=== hscurses ===<br />
<br />
This is a Haskell binding to the NCurses library, a library of functions that manage an application’s display on character-cell terminals. hscurses also provides some basic widgets implemented on top of the ncurses binding, such as a text input widget and a table widget.<br />
<br />
See the [http://www.stefanwehr.de/software/#hscurses hscurses homepage].<br />
<br />
== Unsupported ==<br />
<br />
The following libraries seem to be no longer maintained. However, someone might pick up one of them or at least profit from some design ideas.<br />
<br />
=== AutoForms ===<br />
<br />
[[AutoForms]] is a library to ease the creation of Graphical User Interfaces (GUI). It does this by using generic programming to construct GUI components.<br />
<br />
=== Budgets ===<br />
<br />
Budgets is a library of Fudget-like combinators based on the Openlook widget library was developed by [http://www.reid-consulting-uk.ltd.uk/alastair/ Alastair Reid] and Satnam Singh. The code has suffered tremendous bit-rot (Does anyone have a copy of ghc-0.16?) but all the reusable ideas are described in the [http://www.reid-consulting-uk.ltd.uk/alastair/publications/gfpw93/ respective paper].<br />
<br />
See the [http://www.reid-consulting-uk.ltd.uk/alastair/publications/gfpw93/ Budgets homepage].<br />
<br />
=== Embracing Windows ===<br />
<br />
This is a framework for developing graphical user interfaces. It runs under Windows 95 using a modified version of Hugs 1.3.<br />
<br />
See the [http://citeseer.ist.psu.edu/taylor96embracing.html Embracing Windows paper].<br />
<br />
=== Gadgets ===<br />
<br />
Gadgets are lazy functional components for graphical user interfaces, developed by Rob Noble under the supervision of [http://www.cs.york.ac.uk/~colin/ Colin Runciman].<br />
<br />
See LNCS 982, pages 321-340.<br />
<br />
=== Gtk+HS ===<br />
<br />
Gtk+HS is a Haskell binding for GTK+. It provides a transcription of the original GTK+ API into Haskell. GTK+ is a modern, portable GUI library and forms the basis of the Gnome desktop project. The binding, while not complete, covers most of GTK+'s core functionality and is ready for use in applications that require a GUI of medium complexity. It was developed under Unix, but should also be usable with the Windows port of GTK+.<br />
<br />
See the [http://www.cse.unsw.edu.au/~chak/haskell/gtk/ Gtk+HS homepage].<br />
<br />
=== Haggis ===<br />
<br />
Haggis is a graphical user interface framework for Haskell, running under the X Window system. It is being developed using the Glasgow Haskell Compiler with its concurrent extensions to achieve more comfortable interaction with the outside world.<br />
<br />
See the [http://www.dcs.gla.ac.uk/fp/software/haggis/ Haggis homepage].<br />
<br />
=== iHaskell ===<br />
<br />
iHaskell is a functional wrapper on top of GTK+HS that provides convenience functions for frequently used programming patterns, and eliminates the need for explicit mutable variables.<br />
<br />
See the [http://www.cse.unsw.edu.au/~chak/haskell/gtk/#iHaskell iHaskell homepage].<br />
<br />
=== Pidgets ===<br />
<br />
Pidgets, developed by [http://www.informatik.uni-trier.de/~ley/db/indices/a-tree/s/Scholz:Enno.html Enno Scholz], unifies pictures and widgets in a constraint-based framework for concurrent functional GUI programming.<br />
<br />
== Hackage ==<br />
<br />
* [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:Interfaces User interface libraries on Hackage]<br />
* [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:Graphics Graphics libraries on Hackage]</div>Lenny222https://wiki.haskell.org/index.php?title=Applications_and_libraries/GUI_libraries&diff=36572Applications and libraries/GUI libraries2010-08-26T14:25:57Z<p>Lenny222: /* Gtk2Hs */ use the wiki page</p>
<hr />
<div>[[Category:User interfaces]]<br />
{{unknown copyright}}<br />
{{LibrariesPage}}<br />
<br />
There is a large number of GUI libraries for Haskell. Unfortunately there is no standard one and all are more or less incomplete. In general, low-level veneers are going well, but they are low level. High-level abstractions are pretty experimental. There is a need for a supported medium-level GUI library.<br />
<br />
== High-level ==<br />
<br />
=== FG ===<br />
<br />
FG is an arrow-based high-level functional approach to composable GUIs, built on top of Gtk2Hs. It is inspired by Fruit but uses discrete events instead of continuous signals.<br />
<br />
See the [http://kevin.atkinson.dhs.org/fg/doc/FG.html FG homepage].<br />
<br />
=== FranTk ===<br />
<br />
FranTk is a library for building GUIs in Haskell. FranTk uses behaviours and events, concepts from Conal Elliott’s Functional Reactive Animation. FranTk provides good support for developing complex dynamic systems, and is built on top of Tcl/Tk. This makes it platform independent. FranTk was developed by [http://www.dcs.gla.ac.uk/~meurig/ Meurig Sage]. It runs on Unix and Windows.<br />
<br />
See the [http://haskell.org/FranTk FranTk homepage].<br />
<br />
=== Fruit ===<br />
<br />
Fruit is another high-level approach to GUIs in Haskell. It is based on the concepts of Functional Reactive Programming and arrows. There is also another implementation of this approach, called wxFruit (see below).<br />
<br />
See the [http://www.haskell.org/fruit/ Fruit homepage].<br />
<br />
=== Fudgets ===<br />
Fudgets is primarily a Graphical User Interface Toolkit for Haskell and the X Windows system. Fudgets also makes it easy to create client-server applications that communicate via the Internet. It runs on Unix but not on Windows.<br />
<br />
See the [http://www.cs.chalmers.se/ComputingScience/Research/Functional/Fudgets/ Fudgets homepage] and [http://www.cs.chalmers.se/ComputingScience/Research/Functional/Fudgets/springschool95-intro.html Programming with Fudgets] which is a short presentation of the Fudget Library and the ideas underlying it.<br />
<br />
=== Grapefruit ===<br />
<br />
Grapefruit is an arrow-based declarative library. Widgets, windows and control components communicate via discrete and continuous signals. The use of signals is explicit in the interface to avoid certain inefficiencies. Internally, Grapefruit uses the event handling mechanisms of the underlying GUI toolkit.<br />
<br />
Currently, Grapefruit is build on top of Gtk2Hs but implementations based on other toolkits are planned for the future.<br />
<br />
See [[Grapefruit]].<br />
<br />
=== GuiTV ===<br />
<br />
GuiTV is a small library for GUI-style visualizing functional values. It can also be viewed as an approach to functional GUIs. It is implemented very simply by using [[Phooey]] in the [[TV]] framework.<br />
<br />
See [[GuiTV]].<br />
<br />
=== Phooey === <br />
<br />
Phooey is simple, functional, arrow-based library. Currently it is implemented atop [[wxHaskell]]. Phooey supports dynamic input bounds, flexible layout, and mutually-referential widgets.<br />
<br />
See [[Phooey]].<br />
<br />
=== wxFruit ===<br />
<br />
[[wxFruit]] is a GUI library based on the ideas of Fruit but built on top of wxHaskell.<br />
<br />
<br />
== Medium-level ==<br />
<br />
=== Functional Forms ===<br />
<br />
An addition to wxHaskell, Functional Forms is a combinator library/domain specific language which enables a very concise programming style for forms: dialogs which only show and edit a set of values. Forms are used in many applications as Options or Settings dialogs.<br />
<br />
See the [http://www.sandr.dds.nl/FunctionalForms Functional Forms homepage].<br />
<br />
=== Gtk2Hs ===<br />
<br />
Gtk2Hs is a GUI library for Haskell based on [http://www.gtk.org Gtk+]. Gtk+ is an extensive and mature multi-platform toolkit for creating graphical user interfaces. Gtk2Hs is actively developed, supporting the latest version of the Gtk+ 2.x series. It provides automatic memory management, Unicode support and also bindings for various Gnome modules. It runs on Windows, Linux, MacOS X, FreeBSD and Solaris.<br />
<br />
See [Gtk2Hs].<br />
<br />
=== HGL ===<br />
<br />
HGL is actually only a grapics library.<br />
<br />
See the [http://haskell.org/graphics/ HGL homepage].<br />
<br />
=== HQK ===<br />
<br />
HQK is an effort to provide Haskell bindings to large parts of the Qt and KDE libraries. The goal is to auto-generate most of the binding code from C++ header files. We plan to develop a HQK GUI backend for the Functional Reactive Programming library [[Grapefruit]], thereby making Grapefruit multi-platform.<br />
<br />
See [[HQK]].<br />
<br />
=== HTk ===<br />
<br />
Htk is a typed, portable encapsulation of Tcl/Tk into Haskell. Its distinctive features are the use of Haskell types and type classes for structuring the interface, an abstract notion of event for describing user interaction, and portability across Windows, Unix and Linux.<br />
<br />
See the [http://www.informatik.uni-bremen.de/htk HTk homepage].<br />
<br />
=== HToolkit ===<br />
<br />
HToolkit is a portable Haskell library for writing graphical user interfaces (GUI's). The library is built upon a low-level interface that will be implemented for each different target platform. The low-level library is called Port and is currently implemented for GTK and Windows. The middle-level library is named GIO (the Graphical IO library) and is built upon the low-level Port library.<br />
<br />
See the [http://htoolkit.sourceforge.net/ HToolkit homepage].<br />
<br />
=== Object I/O for Haskell ===<br />
<br />
This is a port of Clean Object I/O library for Haskell.<br />
<br />
See the [http://haskell.org/ObjectIO Object I/O for Haskell homepage].<br />
<br />
=== qtHaskell ===<br />
<br />
qtHaskell is a set of bindings for the Qt Widget library from Trolltech. Haskell<br />
programmers can now access the Qt "signals and slots" based interface methodolgy<br />
(no Qt precompilation necessary), runtime loading of xml based interfaces<br />
designed with Qt Designer, ECMA/Javascript based apps (signal/slot calls can be passed through from javascript to Haskell and vice/versa) and so on.<br />
<br />
Second preview version is downloadable from [http://qthaskell.berlios.de qtHaskell at Berlios].<br />
<br />
=== wxHaskell ===<br />
<br />
wxHaskell is a portable and native GUI library built on top of wxWidgets (formerly wxWindows)—a comprehensive C++ library that is portable across all major GUI platforms; including GTK, Windows, X11, and MacOS X. wxWidgets is a mature library (in development since 1992) that supports a wide range of widgets with the native look-and-feel, and it has a very active community.<br />
<br />
See [[wxHaskell]].<br />
<br />
== Low-level ==<br />
<br />
=== GLFW ===<br />
<br />
This is a binding to the [http://glfw.sourceforge.net GLFW OpenGL framework]. It provides an alternative to GLUT for OpenGL based Haskell programs.<br />
<br />
See [[GLFW]].<br />
<br />
=== GLUT ===<br />
<br />
This is a binding to the OpenGL GLUT library.<br />
<br />
=== TclHaskell ===<br />
<br />
TclHaskell is a library of functions for writing platform independent, graphical user interfaces in Haskell. The library provides a convenient, abstract and high-level way to write window-oriented applications. It also provides a more low level interface to write primitive Tcl code where helpful. For Unix and Windows and maybe Macintosh.<br />
<br />
See the [http://www.dcs.gla.ac.uk/~meurig/TclHaskell/ TclHaskell homepage].<br />
<br />
=== Win32 ===<br />
<br />
A binding to parts of the Win32 API.<br />
<br />
=== X11 ===<br />
<br />
A binding to parts of the X11 libraries.<br />
<br />
== Uncategorized ==<br />
<br />
=== Nanocurses ===<br />
<br />
Nanocurses is a minimal binding to curses and ncurses. It is smaller than hscurses and has less features. It also provides fast packed string support. It provides a Curses.hsc derived from Hmp3.<br />
<br />
See the [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/nanocurses Hackage page].<br />
<br />
=== hscurses ===<br />
<br />
This is a Haskell binding to the NCurses library, a library of functions that manage an application’s display on character-cell terminals. hscurses also provides some basic widgets implemented on top of the ncurses binding, such as a text input widget and a table widget.<br />
<br />
See the [http://www.stefanwehr.de/software/#hscurses hscurses homepage].<br />
<br />
== Unsupported ==<br />
<br />
The following libraries seem to be no longer maintained. However, someone might pick up one of them or at least profit from some design ideas.<br />
<br />
=== AutoForms ===<br />
<br />
[[AutoForms]] is a library to ease the creation of Graphical User Interfaces (GUI). It does this by using generic programming to construct GUI components.<br />
<br />
=== Budgets ===<br />
<br />
Budgets is a library of Fudget-like combinators based on the Openlook widget library was developed by [http://www.reid-consulting-uk.ltd.uk/alastair/ Alastair Reid] and Satnam Singh. The code has suffered tremendous bit-rot (Does anyone have a copy of ghc-0.16?) but all the reusable ideas are described in the [http://www.reid-consulting-uk.ltd.uk/alastair/publications/gfpw93/ respective paper].<br />
<br />
See the [http://www.reid-consulting-uk.ltd.uk/alastair/publications/gfpw93/ Budgets homepage].<br />
<br />
=== Embracing Windows ===<br />
<br />
This is a framework for developing graphical user interfaces. It runs under Windows 95 using a modified version of Hugs 1.3.<br />
<br />
See the [http://citeseer.ist.psu.edu/taylor96embracing.html Embracing Windows paper].<br />
<br />
=== Gadgets ===<br />
<br />
Gadgets are lazy functional components for graphical user interfaces, developed by Rob Noble under the supervision of [http://www.cs.york.ac.uk/~colin/ Colin Runciman].<br />
<br />
See LNCS 982, pages 321-340.<br />
<br />
=== Gtk+HS ===<br />
<br />
Gtk+HS is a Haskell binding for GTK+. It provides a transcription of the original GTK+ API into Haskell. GTK+ is a modern, portable GUI library and forms the basis of the Gnome desktop project. The binding, while not complete, covers most of GTK+'s core functionality and is ready for use in applications that require a GUI of medium complexity. It was developed under Unix, but should also be usable with the Windows port of GTK+.<br />
<br />
See the [http://www.cse.unsw.edu.au/~chak/haskell/gtk/ Gtk+HS homepage].<br />
<br />
=== Haggis ===<br />
<br />
Haggis is a graphical user interface framework for Haskell, running under the X Window system. It is being developed using the Glasgow Haskell Compiler with its concurrent extensions to achieve more comfortable interaction with the outside world.<br />
<br />
See the [http://www.dcs.gla.ac.uk/fp/software/haggis/ Haggis homepage].<br />
<br />
=== iHaskell ===<br />
<br />
iHaskell is a functional wrapper on top of GTK+HS that provides convenience functions for frequently used programming patterns, and eliminates the need for explicit mutable variables.<br />
<br />
See the [http://www.cse.unsw.edu.au/~chak/haskell/gtk/#iHaskell iHaskell homepage].<br />
<br />
=== Pidgets ===<br />
<br />
Pidgets, developed by [http://www.informatik.uni-trier.de/~ley/db/indices/a-tree/s/Scholz:Enno.html Enno Scholz], unifies pictures and widgets in a constraint-based framework for concurrent functional GUI programming.<br />
<br />
== Hackage ==<br />
<br />
* [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:Interfaces User interface libraries on Hackage]<br />
* [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:Graphics Graphics libraries on Hackage]</div>Lenny222https://wiki.haskell.org/index.php?title=GUI&diff=36571GUI2010-08-26T14:20:23Z<p>Lenny222: </p>
<hr />
<div>#REDIRECT [[Applications_and_libraries/GUI_libraries]]</div>Lenny222https://wiki.haskell.org/index.php?title=GUI&diff=36570GUI2010-08-26T14:19:49Z<p>Lenny222: make GUI related stuff more easier to find</p>
<hr />
<div>#REDIRECT [[http://www.haskell.org/haskellwiki/Applications_and_libraries/GUI_libraries]]</div>Lenny222https://wiki.haskell.org/index.php?title=Cabal/FAQ&diff=36541Cabal/FAQ2010-08-19T06:35:32Z<p>Lenny222: add another common question, without an answer yet</p>
<hr />
<div>[[Category:FAQ]]<br />
<br />
Before you continue: Don't miss the other FAQ at http://www.haskell.org/cabal/FAQ.html<br />
<br />
== What is this hidden package? ==<br />
<br />
You build a package and get a message like:<br />
<br />
<pre><br />
Could not find module `Data.Map': it is a member of package<br />
containers-0.1.0.0, which is hidden.<br />
</pre><br />
<br />
or<br />
<br />
<pre><br />
Failed to load interface for `GHC.Prim':<br />
it is a member of the hidden package `ghc-prim'<br />
Use -v to see a list of the files searched for.<br />
</pre><br />
<br />
This is because the package has not been updated for ghc-6.8 which has split the base package into lots of smaller packages. The package needs to be updated to say that it depends on these new split base packages, like containers, process and several others.<br />
<br />
If you just want to get the package to build, add the missing package names to the build-depends: line in the .cabal file. For example given the above error message we would add the 'containers' package to the build-depends. (Alternatively, you can add the switch --ghc-options="-package hidden-package-name" to cabal.)<br />
<br />
Developers of packages who want to know how to update their package properly so that it will continue to work with old and new compilers should see [[Upgrading_packages]].<br />
<br />
== [Windows] I tried to install a Haskell binding to (some external C library), but I get build errors ==<br />
<br />
Packages consisting of 100% Haskell code almost always build perfectly on Windows. However, packages which implement bindings to external C libraries (e.g., OpenSSH, libSDL, etc.) sometimes won't build on Windows without prodding.<br />
<br />
# Check that the external C library is actually installed on your system. (Cabal does ''not'' do this for you.)<br />
# Check the package contents, package home page, etc., to see if the author has ''told'' you how to get this package to work on Windows.<br />
<br />
If those two fail to get you any further, proceed as follows:<br />
<br />
* Cabal probably needs to be able to find header files in order to compile the package. In future there will be some switches for the 'configure' step to allow you to specify the path to these. For now, you'll have to manually ''hack'' the Cabal information file to tell Cabal where to look. Try adding a line in the 'library' section saying something like <code>include-dirs: "C:\\Program Files\\My External Library\\include"</code> (Note carefully the quotes and double backslashes!) Obviously the actual path varies depending on where you installed the thing.<br />
* Cabal may also need to find object files that need to be statically linked. Again, a future Cabal release will allow you to specify these during the configure state with switches, but for now try adding <code>extra-lib-dirs: "C:\\Program Files\\My External Library\\lib"</code> or similar.<br />
* Assuming you get your library to compile, you may still need to add DLLs or other resources to your PATH variable to get any programs ''using'' the package to actually run. (But the installer for the external library might have done this for you already.)<br />
<br />
== My package repository seems to be in an inconsitent state. What can i do? ==<br />
TODO</div>Lenny222https://wiki.haskell.org/index.php?title=User:Lenny222&diff=35020User:Lenny2222010-06-21T07:01:22Z<p>Lenny222: focusing on real world technolgies for the moment</p>
<hr />
<div>[http://www.cardus.com/sticky.php?year=7 ]</div>Lenny222https://wiki.haskell.org/index.php?title=Haskell_in_5_steps&diff=34851Haskell in 5 steps2010-05-28T14:39:35Z<p>Lenny222: revert SPAM</p>
<hr />
<div>Haskell is a general purpose, purely functional programming language.<br />
This page will help you get started as quickly as possible.<br />
<br />
__TOC__<br />
<br />
== Install Haskell ==<br />
<br />
Haskell, like most other languages, comes in two flavors: batch oriented<br />
(''compiler'') and interactive (''interpreter''). An interactive system<br />
gives you a command line where you can experiment and evaluate<br />
expressions directly, and is probably a good choice to start with.<br />
<br />
{| class="wikitable"<br />
|[http://www.haskell.org/ghc/ GHC]<br />
|Compiler and interpreter (GHCi)<br />
|Probably the most feature-complete system<br />
|-<br />
|[http://www.haskell.org/hugs/ Hugs]<br />
|Interpreter only<br />
|Very portable, and more lightweight than GHC.<br />
|}<br />
<br />
While both GHC and Hugs work on Windows, Hugs has perhaps the best<br />
integration on that platform. Nonetheless, GHC is more actively developed and maintained, and the consensus seems to be that it is the generally-recommended environment of choice for newcomers to Haskell as well as old hands. There is also information available on<br />
[[Mac OS X|installing Haskell software on Mac OS X]].<br />
<br />
== Start Haskell ==<br />
<br />
Open a terminal. If you installed GHC, type '''ghci''' (the name of the executable of the GHC<br />
interpreter) at the command prompt. If you installed Hugs, type '''hugs'''. <br />
<br />
<pre><br />
$ ghci<br />
___ ___ _<br />
/ _ \ /\ /\/ __(_)<br />
/ /_\// /_/ / / | | GHC Interactive, version 6.4, for Haskell 98.<br />
/ /_\\/ __ / /___| | http://www.haskell.org/ghc/<br />
\____/\/ /_/\____/|_| Type :? for help.<br />
<br />
Loading package base-1.0 ... linking ... done.<br />
Prelude><br />
</pre><br />
<br />
And you are presented with a prompt. The Haskell system now attentively<br />
awaits your input.<br />
<br />
== Write your first Haskell program ==<br />
<br />
If you've learned to program another language, your first program<br />
probably was "Hello, world!", so let's do that:<br />
<br />
<haskell><br />
Prelude> "Hello, World!"<br />
"Hello, World!"<br />
</haskell><br />
<br />
The Haskell system evaluated the string, and printed the result. <br />
Or we can try a variation to print directly to standard output:<br />
<br />
<haskell><br />
Prelude> putStrLn "Hello World"<br />
Hello World<br />
</haskell><br />
<br />
Using a Haskell compiler, such as [http://haskell.org/ghc GHC], you can<br />
compile the code to a standalone executable. Create a source file<br />
'''hello.hs''' containing:<br />
<br />
<haskell><br />
main = putStrLn "Hello, World!"<br />
</haskell><br />
<br />
And compile it with:<br />
<br />
<pre><br />
$ ghc -o hello hello.hs<br />
</pre><br />
<br />
You can then run the executable ('''./hello''' on Unix systems, '''hello.exe''' on Windows):<br />
<br />
<pre><br />
$ ./hello<br />
Hello, World!<br />
</pre><br />
<br />
== Haskell the calculator ==<br />
<br />
Let's do something fun. In Haskell, your first true program is the<br />
factorial function. So back to the interpreter now and let's define it:<br />
<br />
<haskell><br />
Prelude> let fac n = if n == 0 then 1 else n * fac (n-1)<br />
</haskell><br />
<br />
This defines a new function called '''fac''' which computes the<br />
factorial of an integer.<br />
<br />
We can now run '''fac''' on some argument:<br />
<haskell><br />
Prelude> fac 42<br />
1405006117752879898543142606244511569936384000000000<br />
</haskell><br />
<br />
'''Congratulations!''' Programming made easy. Note that if you're using<br />
Hugs, you'll need to load the definition of '''fac''' from a file,<br />
'''fac.hs''', containing:<br />
<br />
<haskell><br />
fac n = if n == 0 then 1 else n * fac (n-1)<br />
</haskell><br />
<br />
And run it with Hugs as follows (this also works in GHCi):<br />
<br />
<haskell><br />
Hugs.Base> :load fac.hs<br />
Main> fac 42<br />
1405006117752879898543142606244511569936384000000000<br />
</haskell><br />
<br />
We can of course compile this program, to produce a standalone<br />
executable. In the file '''fac.hs''' we can write (and let's use<br />
elegant pattern matching syntax just for fun):<br />
<br />
<haskell><br />
fac 0 = 1<br />
fac n = n * fac (n-1)<br />
<br />
main = print (fac 42)<br />
</haskell><br />
<br />
which can then be compiled and run:<br />
<br />
<pre><br />
$ ghc -o fac fac.hs<br />
$ ./fac<br />
1405006117752879898543142606244511569936384000000000<br />
</pre><br />
<br />
'''Great!'''<br />
<br />
===Write your first parallel Haskell program===<br />
<br />
Haskell has good support for parallel and multicore programming. We can write a parallel program by adding `par` to expressions, like so:<br />
<br />
<haskell><br />
import Control.Parallel<br />
<br />
main = a `par` b `par` c `pseq` print (a + b + c)<br />
where<br />
a = ack 3 10<br />
b = fac 42<br />
c = fib 34<br />
<br />
fac 0 = 1<br />
fac n = n * fac (n-1)<br />
<br />
ack 0 n = n+1<br />
ack m 0 = ack (m-1) 1<br />
ack m n = ack (m-1) (ack m (n-1))<br />
<br />
fib 0 = 0<br />
fib 1 = 1<br />
fib n = fib (n-1) + fib (n-2)<br />
</haskell><br />
<br />
Compiling with -threaded and optimizations on:<br />
<br />
<pre><br />
$ ghc -O2 --make A.hs -threaded<br />
[1 of 1] Compiling Main ( A.hs, A.o )<br />
Linking A ...<br />
</pre><br />
<br />
And now we can run our multicore program. Here across two cores:<br />
<br />
<pre><br />
$ time ./A +RTS -N2<br />
1405006117752879898543142606244511569936384005711076<br />
./A +RTS -N2 2.14s user 0.02s system 149% cpu 1.449 total<br />
</pre><br />
<br />
Congratulations! You are now programming your multicore!<br />
<br />
== Where to go from here ==<br />
<br />
There are many good Haskell tutorials and books. Here are some we recommend:<br />
<br />
'''Tutorials'''<br />
* [http://book.realworldhaskell.org/ Real World Haskell]<br />
* [[Learn_Haskell_in_10_minutes|Haskell in 10 minutes]]<br />
* [http://darcs.haskell.org/yaht/yaht.pdf Yet Another Haskell Tutorial] (English)<br />
* [http://www.haskell.org/tutorial/ A Gentle Introduction to Haskell] (English, [[Image:GentleFR.pdf|French PDF]])<br />
* [http://learnyouahaskell.com/ Learn You A Haskell For Great Good!]<br />
<br />
For a complete list of textbooks, references and tutorials:<br />
<br />
* [[Books and tutorials]]<br />
<br />
'''Join the community!'''<br />
<br />
Talk to others in the Haskell community:<br />
<br />
* [http://haskell.org/mailman/listinfo/haskell-cafe Haskell-Cafe mailing list] <br />
* [[IRC channel]]<br />
<br />
[[Category:Tutorials]]<br />
Languages: [[Haskell in 5 Schritten|de]] [[5 adımda Haskell|tur]] [[Cn/Haskell 入门五步走|zh/cn]] [[Tw/Haskell入門的5個步驟|zh/tw]] [[Haskell入門 5ステップ|ja]]</div>Lenny222https://wiki.haskell.org/index.php?title=Diagrams&diff=34818Diagrams2010-05-26T06:48:19Z<p>Lenny222: </p>
<hr />
<div>The '''diagrams''' library provides an embedded domain-specific language (EDSL) for creating simple pictures and diagrams in Haskell<br />
<br />
* [http://code.haskell.org/diagrams/ Homepage]<br />
* [http://byorgey.wordpress.com/ Blog]<br />
<br />
== Download ==<br />
<br />
Either<br />
* [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/diagrams HackageDB]<br />
* http://www.patch-tag.com/r/byorgey/diagrams-core/<br />
* http://www.patch-tag.com/r/byorgey/diagrams-lib/<br />
* http://www.patch-tag.com/r/byorgey/diagrams-cairo/<br />
<br />
== Inspiration ==<br />
<br />
=== Related Haskell projects ===<br />
* [[Applications_and_libraries/Graphics]]<br />
<br />
=== Related non-Haskell projects ===<br />
<br />
* [http://asymptote.sourceforge.net/ Asymptote]<br />
* [http://had.co.nz/ggplot2/ ggplot2]<br />
* [http://inkscape.sourceforge.net/ Inkscape]<br />
* [http://lib2geom.sourceforge.net/ lib2geom]<br />
* [http://www.tug.org/metapost.html MetaPost]<br />
* [http://pyx.sourceforge.net/ Pyx]<br />
* [http://www.texample.net/tikz/examples/ TikZ]<br />
<br />
=== Food for thought ===<br />
<br />
* [http://www.adobe.com/devnet/pdf/pdf_reference.html PDF reference]<br />
* [http://local.wasp.uwa.edu.au/~pbourke/geometry/supershape/ supershape]<br />
* [http://www.jroller.com/aalmiray/entry/jsilhouette_0_3_released symbols]<br />
* [http://www.w3.org/TR/SVG11/ SVG reference]<br />
* [http://www.adobe.com/devnet/swf/pdf/swf_file_format_spec_v10.pdf SWF reference]</div>Lenny222https://wiki.haskell.org/index.php?title=Diagrams&diff=34817Diagrams2010-05-26T06:42:55Z<p>Lenny222: </p>
<hr />
<div>The '''diagrams''' library provides an embedded domain-specific language (EDSL) for creating simple pictures and diagrams in Haskell<br />
<br />
* [http://code.haskell.org/diagrams/ Homepage]<br />
* [http://byorgey.wordpress.com/ Blog]<br />
* [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/diagrams HackageDB]<br />
<br />
<br />
== Inspiration ==<br />
<br />
=== Related Haskell projects ===<br />
* [[Applications_and_libraries/Graphics]]<br />
<br />
=== Related non-Haskell projects ===<br />
<br />
* [http://asymptote.sourceforge.net/ Asymptote]<br />
* [http://had.co.nz/ggplot2/ ggplot2]<br />
* [http://inkscape.sourceforge.net/ Inkscape]<br />
* [http://lib2geom.sourceforge.net/ lib2geom]<br />
* [http://www.tug.org/metapost.html MetaPost]<br />
* [http://pyx.sourceforge.net/ Pyx]<br />
* [http://www.texample.net/tikz/examples/ TikZ]<br />
<br />
=== Food for thought ===<br />
<br />
* [http://www.adobe.com/devnet/pdf/pdf_reference.html PDF reference]<br />
* [http://local.wasp.uwa.edu.au/~pbourke/geometry/supershape/ supershape]<br />
* [http://www.jroller.com/aalmiray/entry/jsilhouette_0_3_released symbols]<br />
* [http://www.w3.org/TR/SVG11/ SVG reference]<br />
* [http://www.adobe.com/devnet/swf/pdf/swf_file_format_spec_v10.pdf SWF reference]</div>Lenny222https://wiki.haskell.org/index.php?title=Diagrams&diff=34816Diagrams2010-05-26T06:42:29Z<p>Lenny222: cleanup</p>
<hr />
<div>The '''diagrams''' library provides an embedded domain-specific language (EDSL) for creating simple pictures and diagrams in Haskell<br />
<br />
* [http://code.haskell.org/diagrams/ Homepage]<br />
* [http://byorgey.wordpress.com/ Blog]<br />
* [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/diagrams HackageDB]<br />
<br />
<br />
== Inspiration ==<br />
<br />
* [[Applications_and_libraries/Graphics]]<br />
<br />
=== Related non-Haskell projects ===<br />
<br />
* [http://asymptote.sourceforge.net/ Asymptote]<br />
* [http://had.co.nz/ggplot2/ ggplot2]<br />
* [http://inkscape.sourceforge.net/ Inkscape]<br />
* [http://lib2geom.sourceforge.net/ lib2geom]<br />
* [http://www.tug.org/metapost.html MetaPost]<br />
* [http://pyx.sourceforge.net/ Pyx]<br />
* [http://www.texample.net/tikz/examples/ TikZ]<br />
<br />
=== Food for thought ===<br />
<br />
* [http://www.adobe.com/devnet/pdf/pdf_reference.html PDF reference]<br />
* [http://local.wasp.uwa.edu.au/~pbourke/geometry/supershape/ supershape]<br />
* [http://www.jroller.com/aalmiray/entry/jsilhouette_0_3_released symbols]<br />
* [http://www.w3.org/TR/SVG11/ SVG reference]<br />
* [http://www.adobe.com/devnet/swf/pdf/swf_file_format_spec_v10.pdf SWF reference]</div>Lenny222https://wiki.haskell.org/index.php?title=Diagrams&diff=34815Diagrams2010-05-26T06:40:36Z<p>Lenny222: /* Related non-Haskell projects */</p>
<hr />
<div>The '''diagrams''' library provides an embedded domain-specific language (EDSL) for creating simple pictures and diagrams in Haskell<br />
<br />
* [http://code.haskell.org/diagrams/ Homepage]<br />
* [http://byorgey.wordpress.com/ Blog]<br />
* [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/diagrams HackageDB]<br />
<br />
<br />
== Rewrite ==<br />
<br />
=== Core DSL ===<br />
<br />
==== Style ====<br />
Do we either want<br />
<br />
<code><br />
yellowCircle x y radius = yellowFill $ circleShape x y radius<br />
</code><br />
<br />
or<br />
<br />
<code><br />
drawYellowCircle x y radius = do $<br />
setFill yellow<br />
drawCircle x y radius<br />
</code><br />
?<br />
<br />
The first version allows better reuse and functional composition.<br />
<br />
==== Elements ====<br />
* graphical primitives<br />
** path<br />
*** boundingBox<br />
*** moveTo, lineTo, cubic bezier, quadratic bezier, arcTo<br />
** text<br />
*** boundingBox<br />
*** convertToPath<br />
** circle<br />
*** boundingBox<br />
*** convertToPath<br />
** ellipse<br />
*** boundingBox<br />
*** convertToPath<br />
** rectangle<br />
*** boundingBox<br />
*** convertToPath<br />
** polygon<br />
*** boundingBox<br />
*** convertToPath<br />
** polyline<br />
*** boundingBox<br />
*** convertToPath<br />
* graphical attributes<br />
** fill<br />
*** paint<br />
**** solid color, gradient, pattern<br />
*** fill rule<br />
**** evenOdd, nonZero<br />
** stroke<br />
*** paint<br />
**** solid color, gradient, pattern<br />
*** width<br />
*** line cap<br />
*** line join<br />
*** miter limit<br />
*** dash<br />
**** offset<br />
**** array<br />
** marker symbols<br />
** effects<br />
*** shadow, blur, turbulence<br />
* constraint solving<br />
* animations/pages/frames<br />
<br />
<br />
<br />
=== Modules/Extensions ===<br />
<br />
==== Paths ====<br />
* inset, outset<br />
* boolean operations<br />
* morphing<br />
* approximation (autotrace)<br />
<br />
See<br />
* http://lib2geom.sourceforge.net/<br />
* http://inkscape.svn.sourceforge.net/viewvc/inkscape/inkscape/trunk/src/live_effects/<br />
<br />
==== Shapes and symbols ====<br />
* stars, [http://local.wasp.uwa.edu.au/~pbourke/geometry/supershape/ supershape], [http://www.jroller.com/aalmiray/entry/jsilhouette_0_3_released symbols]<br />
* diagrams<br />
** histograms, density plots<br />
<br />
=== Input/Output ===<br />
<br />
Many Haskell graphic libraries are tied to a specific rendering backend (Cairo, OpenGL, libGD etc) which makes collaboration and reuse of code and data structures very hard or impossible.<br />
<br />
Also some dependencies are hard to fulfill. Cairo is very difficult to install on Mac OS 10.6. If you just need to generate PDF diagrams, you could choose the pure HPDF library where e.g. Hieroglyph can not be installed because of its Cairo dependence.<br />
<br />
==== Output ====<br />
* interactive drawing via Cairo<br />
* PDF export via pure [http://hackage.haskell.org/package/HPDF HPDF]<br />
* EPS export<br />
* SWF export<br />
* LaTeX export<br />
* exotic backends<br />
** generate Java2d or [http://www.processing.org/ Processing] source code<br />
<br />
==== Input ====<br />
* pure Haskell PNG import via [http://hackage.haskell.org/package/pngload pngload]<br />
* pure Haskell SVG import<br />
<br />
== Inspiration ==<br />
<br />
* [[Applications_and_libraries/Graphics]]<br />
<br />
=== Related non-Haskell projects ===<br />
<br />
* [http://asymptote.sourceforge.net/ Asymptote]<br />
* [http://had.co.nz/ggplot2/ ggplot2]<br />
* [http://inkscape.sourceforge.net/ Inkscape]<br />
* [http://lib2geom.sourceforge.net/ lib2geom]<br />
* [http://www.tug.org/metapost.html MetaPost]<br />
* [http://pyx.sourceforge.net/ Pyx]<br />
* [http://www.texample.net/tikz/examples/ TikZ]<br />
<br />
=== Food for thought ===<br />
<br />
* [http://www.adobe.com/devnet/pdf/pdf_reference.html PDF reference]<br />
* [http://www.w3.org/TR/SVG11/ SVG reference]<br />
* [http://www.adobe.com/devnet/swf/pdf/swf_file_format_spec_v10.pdf SWF reference]</div>Lenny222https://wiki.haskell.org/index.php?title=Diagrams&diff=34814Diagrams2010-05-26T06:40:17Z<p>Lenny222: /* Related non-Haskell projects */</p>
<hr />
<div>The '''diagrams''' library provides an embedded domain-specific language (EDSL) for creating simple pictures and diagrams in Haskell<br />
<br />
* [http://code.haskell.org/diagrams/ Homepage]<br />
* [http://byorgey.wordpress.com/ Blog]<br />
* [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/diagrams HackageDB]<br />
<br />
<br />
== Rewrite ==<br />
<br />
=== Core DSL ===<br />
<br />
==== Style ====<br />
Do we either want<br />
<br />
<code><br />
yellowCircle x y radius = yellowFill $ circleShape x y radius<br />
</code><br />
<br />
or<br />
<br />
<code><br />
drawYellowCircle x y radius = do $<br />
setFill yellow<br />
drawCircle x y radius<br />
</code><br />
?<br />
<br />
The first version allows better reuse and functional composition.<br />
<br />
==== Elements ====<br />
* graphical primitives<br />
** path<br />
*** boundingBox<br />
*** moveTo, lineTo, cubic bezier, quadratic bezier, arcTo<br />
** text<br />
*** boundingBox<br />
*** convertToPath<br />
** circle<br />
*** boundingBox<br />
*** convertToPath<br />
** ellipse<br />
*** boundingBox<br />
*** convertToPath<br />
** rectangle<br />
*** boundingBox<br />
*** convertToPath<br />
** polygon<br />
*** boundingBox<br />
*** convertToPath<br />
** polyline<br />
*** boundingBox<br />
*** convertToPath<br />
* graphical attributes<br />
** fill<br />
*** paint<br />
**** solid color, gradient, pattern<br />
*** fill rule<br />
**** evenOdd, nonZero<br />
** stroke<br />
*** paint<br />
**** solid color, gradient, pattern<br />
*** width<br />
*** line cap<br />
*** line join<br />
*** miter limit<br />
*** dash<br />
**** offset<br />
**** array<br />
** marker symbols<br />
** effects<br />
*** shadow, blur, turbulence<br />
* constraint solving<br />
* animations/pages/frames<br />
<br />
<br />
<br />
=== Modules/Extensions ===<br />
<br />
==== Paths ====<br />
* inset, outset<br />
* boolean operations<br />
* morphing<br />
* approximation (autotrace)<br />
<br />
See<br />
* http://lib2geom.sourceforge.net/<br />
* http://inkscape.svn.sourceforge.net/viewvc/inkscape/inkscape/trunk/src/live_effects/<br />
<br />
==== Shapes and symbols ====<br />
* stars, [http://local.wasp.uwa.edu.au/~pbourke/geometry/supershape/ supershape], [http://www.jroller.com/aalmiray/entry/jsilhouette_0_3_released symbols]<br />
* diagrams<br />
** histograms, density plots<br />
<br />
=== Input/Output ===<br />
<br />
Many Haskell graphic libraries are tied to a specific rendering backend (Cairo, OpenGL, libGD etc) which makes collaboration and reuse of code and data structures very hard or impossible.<br />
<br />
Also some dependencies are hard to fulfill. Cairo is very difficult to install on Mac OS 10.6. If you just need to generate PDF diagrams, you could choose the pure HPDF library where e.g. Hieroglyph can not be installed because of its Cairo dependence.<br />
<br />
==== Output ====<br />
* interactive drawing via Cairo<br />
* PDF export via pure [http://hackage.haskell.org/package/HPDF HPDF]<br />
* EPS export<br />
* SWF export<br />
* LaTeX export<br />
* exotic backends<br />
** generate Java2d or [http://www.processing.org/ Processing] source code<br />
<br />
==== Input ====<br />
* pure Haskell PNG import via [http://hackage.haskell.org/package/pngload pngload]<br />
* pure Haskell SVG import<br />
<br />
== Inspiration ==<br />
<br />
* [[Applications_and_libraries/Graphics]]<br />
<br />
=== Related non-Haskell projects ===<br />
<br />
* [http://asymptote.sourceforge.net/ Asymptote]<br />
* [http://had.co.nz/ggplot2/ ggplot2]<br />
* [http://inkscape.sourceforge.net/]<br />
* [http://lib2geom.sourceforge.net/]<br />
* [http://www.tug.org/metapost.html MetaPost]<br />
* [http://pyx.sourceforge.net/ Pyx]<br />
* [http://www.texample.net/tikz/examples/ TikZ]<br />
<br />
=== Food for thought ===<br />
<br />
* [http://www.adobe.com/devnet/pdf/pdf_reference.html PDF reference]<br />
* [http://www.w3.org/TR/SVG11/ SVG reference]<br />
* [http://www.adobe.com/devnet/swf/pdf/swf_file_format_spec_v10.pdf SWF reference]</div>Lenny222https://wiki.haskell.org/index.php?title=User:Lenny222&diff=34813User:Lenny2222010-05-26T06:38:58Z<p>Lenny222: </p>
<hr />
<div>== Things i think need improvement ==<br />
<br />
* [[Chlor]]<br />
* [[Diagrams]]<br />
* [[EclipseFP]]<br />
* [[GHC/Error messages|GHC error messages]]<br />
* [[Cookbook|Haskell Cookbook]]<br />
* [[Mac OS X]]<br />
<br />
<br />
<br />
=== Simplified Haskell homepage === <br />
<br />
[[User:Lenny222/Haskell|A simplified Haskell frontpage]]<br />
<br />
Why?<br />
<br />
* to [http://www.useit.com/alertbox/ia-mistakes.html add a structure]<br />
* to [http://www.useit.com/alertbox/20020609.html reduce redundancy]<br />
* to make scanning easier:<br />
** [http://www.useit.com/alertbox/whyscanning.html why scanning]<br />
** [http://www.useit.com/alertbox/nanocontent.html first two words]<br />
<br />
<br />
[http://www.cardus.com/sticky.php?year=7 ]</div>Lenny222https://wiki.haskell.org/index.php?title=Haskell&diff=34785Haskell2010-05-21T11:04:54Z<p>Lenny222: remove SPAM</p>
<hr />
<div>__NOTOC__<br />
__NOEDITSECTION__<br />
{| border=0 cellspacing=5 cellpadding=10<br />
| valign=top style="text-align:left" bgcolor=#F0F0F0 |<br />
<br />
{{Main/About}}<br />
<br />
{{Main/Learning}}<br />
<br />
{{Main/Libraries}}<br />
<br />
{{Main/Community}}<br />
<br />
|valign=top width=75% style="text-align:left; line-height:120%"|<br />
<br />
{{Main/Intro}}<br />
<br />
{| border=0 cellspacing=0 cellpadding=15<br />
|-<br />
|valign=top width=65% style="text-align:left"|<br />
{{Main/Headlines}}<br />
<br />
{{Main/Events}}<br />
<br />
{{Main/News}}<br />
<br />
|-<br />
|}<br />
|}</div>Lenny222https://wiki.haskell.org/index.php?title=Mailing_lists&diff=34772Mailing lists2010-05-20T07:34:18Z<p>Lenny222: revert SPAM</p>
<hr />
<div>There are three mailing lists to discuss issues related to Haskell in<br />
general, and several additional mailing lists for more detailed<br />
discussion topics, including one for each particular implementation of<br />
Haskell.<br />
<br />
* [http://haskell.org/mailman/listinfo/haskell Subscribe to haskell@haskell.org] (announces only, low traffic)<br />
* [http://haskell.org/mailman/listinfo/haskell-cafe Subscribe to haskell-cafe@haskell.org] (very busy, daily community discussion)<br />
* [http://haskell.org/mailman/listinfo/beginners Subscribe to beginners@haskell.org] (busy, daily community discussion)<br />
* [http://haskell.org/mailman/listinfo A comprehensive list of all mailing lists hosted at haskell.org]<br />
<br />
==Mailing lists in detail==<br />
<br />
<dl><dt>[mailto:haskell@haskell.org haskell@haskell.org] ([[#Archives|archives]])</dt><br />
<dd>Announcements, discussion openers, technical questions. <br> [mailto:haskell@haskell.org haskell@haskell.org] is intended to be a low-bandwidth list, to which it is safe to subscribe without risking being buried in email. If a thread becomes longer than a handful of messages, please transfer to [mailto:haskell-cafe@haskell.org haskell-cafe@haskell.org].</dd><br />
<dt>[mailto:haskell-cafe@haskell.org haskell-cafe@haskell.org] ([[#Archives|archives]])</dt><br />
<dd>General Haskell questions; extended discussions.<br> In Simon Peyton Jones' words: "forum in which it's acceptable to ask anything, no matter how naive, and get polite replies."<br />
<dt>[mailto:beginners@haskell.org beginners@haskell.org] ([[#Archives|archives]])</dt><br />
<dd>Beginner-level, i.e., elementary, Haskell questions and discussions.<br> In the words of Benjamin L. Russell (the one who first suggested creating the mailing list and the current administrator): "Here, there is no such thing as a 'stupid question.'"</dd><br />
</dl><br />
<br />
===Mailing list tone===<br />
<br />
The division of the general list was introduced for people who want<br />
to stay in touch with what's happening in the Haskell world, but who don't want to be swamped with mail. Discussions of any kind can start on 'haskell', but should transfer to 'haskell-cafe' if they go beyond a few 'rounds'. '''Alternatively, if you are new to Haskell, then you have a choice: either haskell-cafe, or haskell-beginners.'''<br />
<br />
In practice, 'haskell' tends to be devoted mainly to announcements, 'haskell-cafe' tends to be devoted mainly to freeform discussion, and 'haskell-beginners' tends to be devoted mainly to beginner-level Haskell language discussions.<br />
<br />
The readership of the three mailing lists also varies. Whereas both 'haskell' and 'haskell-cafe' tend to be frequented by either language designers or researchers, 'haskell-beginners' tends to be frequented by beginner-level students and educators. 'Haskell-beginners' was created to address the needs of readers of 'haskell-cafe' who felt that the discussion there was either too academic, or too mathematical.<br />
<br />
When posting on 'haskell-cafe', remember:<br />
<br />
* Respect others. This is a civil discussion forum. Remember, the person on the other side of the keyboard is a person too, and is probably well-intentioned.<br />
<br />
* Try to keep discussions on-topic. Threads that have lost any relevance to the Haskell language should be moved elsewhere, including tangential or joking posts (though humor in the context of on-topic discussion is welcome.)<br />
<br />
* Think before sending. Avoid content-free posts, such as a message consisting merely of the phrase "+1." The etiquette for academic mailing list discussions is different from the etiquette for other Internet fora or for ordinary conversation. Remember that your posting will be sent to thousands of people, some of whom are very busy. Ask yourself whether your contribution adds anything of value to any of them.<br />
<br />
In the case of 'haskell-beginners', please keep in mind the following pointers when posting:<br />
<br />
* Since many readers of this mailing list are beginner-level students of Haskell, try to keep the discussion at a level that allows students of all backgrounds to participate in the discussion. I.e., when explaining difficult concepts, be careful not to assume an advanced background of the reader. For example, don't start a discussion on monads by saying: "A monad is a category theory-based data structure used to supplement pure computations with features like state, common environment or I/O." Instead, say: "A monad is a tool used in Haskell when we want to allow a program to do anything other than just return a value."<br />
<br />
* Again, since many readers of this mailing list are beginner-level students of Haskell, do not assume that readers have an advanced mathematics background, or that they know everything that may seem elementary to a computer science student. For example, if a student here asks whether the screen resolution is important in determining the precision of an algorithm to compute prime numbers by picking points randomly from a square, do not accuse the student of "polluting" the newsgroup by asking a question that "has nothing to do with Haskell." Understand that the student may not have enough mathematical or programming background to realize that screen resolution may be independent of the precision of the actual algorithm used to compute the prime numbers, which may then be represented on the screen independently of the precision of the algorithm itself. If beginner-level students are required to worry about offending somebody with a question that is too elementary every time they need an answer, they will stay beginners.<br />
<br />
===Subscription information===<br />
<br />
Haskell mailing lists are managed by [http://www.gnu.org/software/mailman/mailman.html mailman] -<br />
each list has a web interface. To subscribe, unsubscribe, or view the<br />
archives of a list visit the home page of the list, such as the [http://haskell.org/mailman/listinfo/haskell Haskell mailing list home page], the [http://haskell.org/mailman/listinfo/haskell-cafe Haskell Cafe mailing list home page], or the [http://haskell.org/mailman/listinfo/beginners Haskell-Beginners mailing list home page]. <br />
<br />
===Archiving===<br />
<br />
mail-archive.com provides an archive of all messages sent to the haskell list since March 1997. This includes messages from before the list was converted to mailman. You may search these archives: [http://www.mail-archive.com/haskell@haskell.org/ haskell archive], [http://www.mail-archive.com/haskell-cafe@haskell.org/ haskell-cafe archive], and [http://www.mail-archive.com/beginners@haskell.org/ haskell-beginners archive].<br />
<br />
MarkMail has a [http://haskell.markmail.org/ searchable archive] of all Haskell lists going back to around 2000.<br />
<br />
Also, the archives of the Haskell mailing list from September 1990 until 2006, before and after the list was converted to mailman, are [http://www.cse.unsw.edu.au/~dons/haskell-1990-2006/threads.html hosted here] (and as a [http://www.cse.unsw.edu.au/~dons/haskell-1990-2006.tar.bz2 tar file]).<br />
Related to this is the archives of [http://groups.google.com/group/comp.lang.functional/about?hl=en comp.lang.functional] going back to 1990.<br />
<br />
You may also [http://www.google.com/coop/cse?cx=015832023690232952875%3Acunmubfghzq search the mailing list] using the Google Coop Haskell Search Engine.<br />
<br />
====Archives====<br />
<br />
The following archives exist:<br />
<br />
haskell<br />
<br />
* [http://news.gmane.org/gmane.comp.lang.haskell.general gmane] ([http://dir.gmane.org/gmane.comp.lang.haskell.general info]) 2006/12-present<br />
* [http://www.haskell.org/pipermail/haskell/ mailman] 2000/10-present<br />
* [http://www.mail-archive.com/haskell@haskell.org/ mail-archive] 1997/03-present<br />
* [http://www.cse.unsw.edu.au/~dons/haskell-1990-2006/threads.html dons archive] ([http://www.cse.unsw.edu.au/~dons/haskell-1990-2006.tar.bz2 tar]) 1990/09-2006/08<br />
<br />
haskell-cafe<br />
<br />
* [http://news.gmane.org/gmane.comp.lang.haskell.cafe gmane] ([http://dir.gmane.org/gmane.comp.lang.haskell.cafe info]) 2002/04-present<br />
* [http://www.haskell.org/pipermail/haskell-cafe/ mailman] 2000/10-present<br />
* [http://www.mail-archive.com/haskell-cafe@haskell.org/ mail-archive] 1997/03-present<br />
<br />
haskell-beginners<br />
<br />
* [http://news.gmane.org/gmane.comp.lang.haskell.beginners gmane] ([http://dir.gmane.org/gmane.comp.lang.haskell.beginners info]) 2008/07-present<br />
* [http://www.haskell.org/pipermail/beginners/ mailman] 2008/07-present<br />
* [http://www.mail-archive.com/beginners@haskell.org/ mail-archive] 2008/07-present<br />
<br />
Any problems with haskell or haskell-cafe should be reported to [mailto:haskell-admin@haskell.org haskell-admin@haskell.org], and any problems with haskell-beginners should be reported to [mailto:DekuDekuplex@Yahoo.com DekuDekuplex@Yahoo.com].<br />
<br />
==More specific lists==<br />
<br />
* [http://haskell.org/mailman/listinfo A comprehensive list of all Mailing lists hosted at haskell.org]<br />
* [http://gmane.org/find.php?list=haskell Haskell lists at gmane]<br />
<br />
There are mailing lists for each implementation of Haskell,<br />
and for more detailed discussion topics. Questions, comments, and bug<br />
reports regarding a specific implementation should be sent directly<br />
to the appropriate list instead of the entire Haskell community.<br />
Separate topics such as documentation tools, the common FFI, and<br />
libraries, also have lists of their own.<br />
<br />
==Outside haskell.org==<br />
<br />
There are also Haskell related mailing lists that are not hosted at haskell.org.<br />
<br />
* [[Haskell art]]<br />
<br />
[[Category:Community]]</div>Lenny222