A bunch of small stuff
Yesterday and today, I did a bunch of rather smallish stuff that I've been meaning to do:
A bunch of small stuff
Yesterday and today, I did a bunch of rather smallish stuff that I've been meaning to do:
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.
peace.
Background:
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.
Status:
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:
http://www.haskell.org/libraryInfrastructure/
http://www.haskell.org/libraryInfrastructure/proposal/
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 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:
http://www.aetion.com/
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.)
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.
peace,
isaac
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.
peace,
isaac
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:
hiif 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,
isaac
I have an urge to swear a lot.
Anyway, who has time for this when there's real hacking to be done?
Debian Stuff
Haskell Stuff
Ahh, almost a month since my last entry.
Gotta go camping, peace.
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!