Older blog entries for SyntaxPolice (starting at number 48)

I just posted code for the Haskell Library Infrastructure Project here.

I'm using Arch for version control, and so far I'm really pleased with it.

In brief, the Library Infrastructure Project is an effort to provide a framework for developers to more effectively contribute their software to the Haskell community. I'm hoping to not have to implement this entire proposal myself, and I'm very flexible about implementation details. I've made some concrete progress, and I just mirrored my code repository on my web site, so now is the time to get involved!

Anyone interested should follow the discussion on the Haskell libraries mailing list.


Haskell Communities and Activities Report
(Excerpts for projects I'm involved in)

  • Library Infrastructure Project
    Report by: Isaac Jones


    The Library Infrastructure Project is an effort to provide a framework for developers to more effectively contribute their software to the Haskell community.

    The Haskell Implementations come with a good set of standard libraries included, but this set is constantly growing and is maintained centrally. This model does not scale up well, and as Haskell grows in acceptance, the quality and quantity of available libraries is becoming a major issue.

    It can be very difficult for an end user to manage a wide variety of dependencies between various libraries and Haskell implementations, and to build all the necessary software at the correct version numbers on their platform: there is currently no generic build system to abstract away differences between Haskell Implementations and operating systems

    The Library Infrastructure Project seeks to provide some relief to this situation by building tools to assist developers, end users, and operating system distributers.

    Such tools include a common build system, a packaging system which is understood by all of the Haskell Implementations, an API for querying the packaging system, and miscellaneous utilities, both for programmers and end users, for managing Haskell software.


    The project is still in its infancy. A tiny prototype was implemented, along with some of the basic APIs. Consensus is gathering, however, and a document describing in detail what we intend to build is available on the project web page.

    Further reading:


  • Debian Users
    Report by: Isaac Jones

    There are many Debian users in the Haskell community, and they have recently begun an initiative to form a more coherent group. This involves serious packaging work, especially by Ian Lynagh to bring new binary versions of GHC, NHC, and other packages to various versions of Debian.

    The group is working toward a solution for the longstanding problems with binary distribution of Haskell packages, with discussion taking place on the Haskell Wiki. It is hoped that the Library Infrastructure Project (section 4.1.1) will help here.

    In order to provide backports, bleeding edge versions of Haskell tools, and a place for experimentation with packaging ideas, Isaac Jones has started the "Haskell Experimental" Debian archive where a wide variety of packages can be found.

  • Aetion Technologies LLC
    Report: Mark T.B. Carroll (<Mark.Carroll@Aetion.com>)

    Aetion Technologies LLC is a small American defense contractor that uses Haskell and Java for most of its software development. The larger current Haskell-based projects we are working on involve (a) automated reasoning under uncertainty, currently focusing on the interpretation of sensor data, and (b) an object-oriented modeling language for composable simulations. Additionally, we develop small Haskell programs for a variety of tasks from document processing to time tracking.

    A number of our projects involve systems of entities that react to changes in each other, so we are currently investigating Functional Reactive Programming as an appropriate framework for implementing such systems. We are looking at Haskell-based declarative GUI toolkits and Web Authoring System Haskell (WASH) as a useful basis for some future work that will involve more user interaction. A project that we are about to start work on will involve implementing a server that manages a distributed computation.

    In addition, Aetion donates some programmer time to community projects like the Library Infrastructure Project and the Haskell Experimental Debian Archive, mentioned elsewhere in this report (sections 4.1.1 and 6.3.1).

    Further reading:

  • Been a while since I posted here, but I _have_ been posting at my personal blog.

    I launched The Library Infrastructure Project home page recently with a detailed proposal on how it should all be implemented. I've gotten some good feedback and am trying to move forward with the packaging system, which I see as the first priority.

    Just about to upload a new version of xppaut to unstable. It's an easy package to take care of, but it is a little frustrating because upstream does not post an announcement to the software's mailing list when new versions come out, and the filename on the server never changes (xppaut_latest.tgz or something). I never know when a new version needs to be packaged.

    Still not an official debian maintainer, but things are moving along.

    I finally got a wireless card that works for me (see last entry) but now I'm having trouble getting a new cell phone / PDA. Just look at my story about trying to get a wireless card, transfer the pain in the ass to customer service and the post office (instead of linux drivers), make it cost $630 and take over two weeks so far. Thanks T-Mobile! (I shutter to think that I've been recommending them to friends.)

    If you can believe it, more wireless card troubles

    So I did the right thing, I researched which wireless cards are guarenteed to work in Linux and decided on the Orinoco Gold which is sold by Proxim. I ordered it on friday and got it on monday (yesterday), wow, fast I was impressed.

    And I was excited. I have used wireless cards on my laptop quite a bit, actually. Whenever I go to a coffee shop, I get one from the coffee-selling girls, and it works out of the box. My computer even makes a happy noise when I stick it in the slot.

    It was this happy noise which I was anticipating excitedly when I got my new Orinoco card. I even took my headphones off so I could hear it (I forgot that my headphones were plugged into my computer so I wouldn't hear it if I took off my headphones, but forget about that).

    I put the card in. No lights, no sound, no magic. What could have gone wrong?! This is the card with the name of the kernel module! It even has the name of the kernel module on the outside of the card!

    But alas, Proxim has renamed their orinoco wireless card "gold" to "Gold Classic" and started selling some other card which does not use the same chipset as the "classic" card. I needed the "Classic" one to work in linux.

    I guess I should update the wiki where I got my information. Now can I return it to this internet store that I talked about in my last diary entry? Stay tuned.



    Buying online gives me the willies

    This entry is somewhat off-topic :)

    I don't like buying things. When I go into a store, I get what I need and leave. I'm sure many of you are like that. When I buy stuff online, I usually buy it from the manufacturer, for better or worse, because at least I've heard of them for heaven's sake.

    I decided I'd buy an orinoco wireless card (see my last entry), but could only find them on these "Computer parts mall" type stores, none of which I've heard of. So I actually started reading online reviews of the stores themselves and found one that didn't have too many complaints.

    I will need to buy a new PDA soon, but there are too many choices, I can't digest all the information available to me. Even if I limit myself to handspring phone-type machines (I have one now), I still can't ever get through picking a model, narrowing the field, finding good prices from a reputable store, figuring out what the linux support is like, etc. I usually give up. When its something that I really need, I usually just end up picking something rather arbitrarily after digging through way too much information. <hr>

    This all reminds me of an email exchange I had with a person (lets assume they were male for the sake of this story) who was selling a used food processor. I emailed him to ask what the model number was so I could check out online reviews. Amazon's reviews were the worst I had ever seen in my life. The average was 2 out of 5, several people said they wished they could give it negative stars. One person even complained that the machine cought fire! Another said that it smelled like burning. So anyway, the guy was asking $15 (original price $35) or best offer. It wasn't worth that much to me, so I decided to make him a really low offer in case he couldn't sell it, I decided I'd be polite about it, but only offer him $5.

    Owch, it got truly terrible reviews on Amazon including catching fire
    for someone!  If you don't get any better offers I'd give you $5 or
    maybe a little more for it.  But good luck with the rest of your stuff

    All the best.



    I thought that was pretty polite, probably could have been better. I always sign my emails with "peace". Here's his reply, which to my satisfaction, I did manage to _not_ reply to:


    if u don't know how to handle fire, u might catch fire too - does that mean there is something wrong with u? anyways, thanks for ur offer... if i someday need ur $5, i will surely let u know.

    peace, ???

    I guess he's got a point there. In some deep, philosophical sense, any of us could catch fire at any time. Why reject a food processor just because it has that fire-catching property of all beings inherently possess?

    yours in fire,


    Wireless Card Hell

    I have an urge to swear a lot.

  • Well I got a Gateway 450X laptop and really want to use the Centrino internal wireless, but that is not to be, at least not yet, something to do with the FCC, idono. I wrote to gateway and to Intel about this and got some OK replies.

  • So some time back I got a linksys card which requires wlan-ng it kinda worked, but crashed my machine every so often, which isn't so good. So I returned that card and decided to sit tight until I got a wireless hub anyway.

  • So I got a wireless hub the other day for a good price. I've seen it work, and even used it with my computer and someone else's wireless PCMCIA card.

  • So I got an SMC wireless card and got it home and it doesn't work in Linux yet. I fear wlan-ng so I want something that'll work without wlan-ng

  • So I returned that and got another linksys card, this time WPC11 ver. 4, and there were drivers on Linksys's web site. Sadly, those drivers crash my machine and even when they seem to be talking happily to the card, it won't connect to my router. So I'm going to return this one too.

    Anyway, who has time for this when there's real hacking to be done?

  • Non-Geek

  • Had a nice weekend camping. Did some good hiking, didn't manage to do any rock climbing since the guy with the equipment didn't come, mostly my fault for not realizing that my cell phone wouldn't work out there.

    Debian Stuff

  • I finally sent in my Debian Tasks & Skills answers. There were lots of questions.

  • In the meantime, I had taken over the haskell-mode and hugs packages which were both in pretty bad shape.

  • We released APT Secure, a patch to APT to add checking of GPG signatures of the list of MD5 sums of the packages. I've mentioned that project here before.

    Haskell Stuff

  • I'm excited to be attending the International Conference on Functional Programming this year in Sweden. I might even give a little presentation to the Haskell Implementers Meeting about the Library Infrastructure project.
  • Ahh, almost a month since my last entry.

  • Working hard on the Haskell Library Infrastructure project. We have two people working on make-based build systems, two people who are at least thinking about distribution infrastructures (like CPAN) and I'm working on something that looks vaguely like Python's Distutils coupled with Haskell's HMake.

  • Our server had some hardware problems and we had to replace the motherboard.

  • This weekend I'm going camping and maybe even rock climbing at Hocking Hills near Columbus Ohio. This should be tons of fun.

  • I got a wireless router today for $60 - a $30 rebate. I haven't sent in the rebate thing, but assuming that the wireless stuff works, and assuming that I get the rebate, I think its a pretty good deal. I'm using it wirefully now since I don't have a wireless card for my laptop and this Gateway 450X's internal wireless doesn't work in Debian GNU/Linux.

    Gotta go camping, peace.

  • Annoyingly, as noted on walters's blog, our web server was successfully used to send a lot of spam. They must be getting me back for bragging about how well spamassassin works for me. Damn spam.

  • I was nominated as the leader for a project to assist 3rd party programmers in creating and distributing libraries for Haskell. See this thread for details. It seems to me that Python's distutils is very similar to what we want, but others disagree. This is a hard space to work in: there are lots of things that do something similar (I added a page to the Haskell Wiki to track and discuss them), but Haskell has its own issues.

  • I'm still moving very slowly on my debian NM process. I swear I'll finish it soon! Feel free to harass me.

  • I really liked the new matrix movie. I heard a lot of bad reviews, though no one I actually talked to had much bad to say about it.
  • Been pretty busy lately. I took over as the Debian maintainer of Hugs (a Haskell interpreter), which is pretty fun. It now seems to build happily on all the autobuild arches.

    Weekends have been nuts. I have been out of town every weekend since easter, and will be out of town for the next few weekends. For mother's day, my mom rode in a horse show and won her first 2nd place ribon! She was very happy and I was proud. She's been working hard.

    My laptop is working well, though builtin wireless might not work for a while :(

    Work has been busy with new work and new deadlines.

    The Haskell Wiki is doing well with frequent updates. There has been discussion in the Haskell community about what to do with 3rd party libraries; how to build and distribute them well. The problem is pretty hard for Haskell because there are a number of major compilers and GHC does not have binary compatibility between releases. You can read the Haskell libraries mailing list for more info.

    I gave two talks on Haskell for the open source club a few weeks back.

    I'm probably going to be moving soon, and gave notice to my landlord that I'm moving out. They are doing a good job of talking me into staying even though they have given me no compelling reason to do so! Now that's salesmanship.

    I seem to have a good email address to confuse non tech type people. I don't know why; maybe this always happens, but non tech people always make stuff up about my email address. I don't know where they get the ideas they do. Changing ".org" to ".com" is just the tip of the iceburg. I always know that someone screwed up when they tells me, "I think I emailed you the other day, but it might not have worked."

    Blog Ideas: I've been working on writing a real diary on my new laptop which tracks various things like what did I do for exercise today, what I've been thinking about lately, etc. I'm doing this in emacs-wiki. I hope sometime to integrate such a diary with my notebook from work, my web page, my advogato diary, etc. The tricky part is putting the right stuff in the right places and keeping my private information and writings off of my employer's computer and off of the web :)

    Is anyone doing something like this? I posted some elisp code a while ago which posts advogato diaries from emacs buffers. I'd like to echo my most recent diary entry to the front of my web page, and archive my old diary entries.

    39 older entries...

    New Advogato Features

    New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

    Keep up with the latest Advogato features by reading the Advogato status blog.

    If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!