This is my first post on my new haskell blog.

my haskell blog is live now and whilst it's not very advanced and missing lots of features (working links, rss, comments, a text engine), it's also built on a hopefully very good base. The whole goal is to solve my periodicity problems on blogging; I just hate those web interfaces to admin a blog.

Also the source should be available once everything is parametrized and cleaned.

I used to buy apple hardware (1), because the hardware usually ended up to be the most slick. Not only that, but apple is not scared to imposes changes when there's a clear to the user benefit instead of keeping legacy interface/ports for ages.

I never ended up using any Apple media, software, or even operating system. As an firm believer of opensource, and open specifications. However this is coming to an end.

As Apple move more and more in designing hardware that suit their needs, the ability to run opensource software on the hardware is proving more difficult. My own problem was with my last apple laptop, the macbook air version 2, that happens to fail in lots of various annoying way.

Most of the time, booting with the apple cdrom (which happens not to follow the USB spec regarding power usage), would lead to bricking the only usb port. The first time i sent the hardware back to warranty imagining a hw defect, however as the second model did exactly the same, the probability that it was hw defect as well, was quite low.

The only solution to unbrick the USB port, was to disconnect the internal battery. So fortunately its seems the brickage is software based, and can be reversed at the cost of loosing some stored values (the usb state seems to be stored close to lot of other states, like wifi passwords) and at the greater cost of the warranty going away as soon as you open the machine.

The iphone got the same characterics of closeness. Without itunes, there's no way to synchronize the device or even update it. itunes is closed software, but it doesn't even on linux, rendering the operation a macOsX or windows only operation.

And now, the iPad definitely got the same characteric that would make me stays away from it. First the Apple A4 chip, I can only imagine that the cpu will be fairly open beeing an ARM cpu, but the gpu part will probably stay so close, that even if someone get to boot the hardware, there's a good chance that having the gpu actually displaying anything would be a new challenge. and the synchronisation has probably the same story as the iphone.

While lots of people doesn't see it yet, but Apple is the wolf in the sheepfold. This is a threat to the opensource world.

So no, i won't be buying any apple hardware anymore; However I'll be on the market for new slick hardware: a new phone and a new laptop for a start.

(1): 1 ipod, 1 iphone, 1 ibook, 2 macbooks, 1 macbook air

Comments on this blog hasn't been implemented yet, however I'm close to finish the design of how they work. Long story short, the comments and tracebacks will not change anything on the server side, but will be sent to a queue for moderation/acceptation that can be processed locally on the machine where I do the actual posts.

The benefit for this approch are mainly:

  • server-side data stays read-only from the webserver point of view.
  • all comments/tracebacks are to be approved before actually posted: net effect on reducing spams.
  • duplicated and OT comments can be filtered out.
  • comments related to post update (something missing in the post for example) doesn't have to be posted, but just acted on.

As a simple prototype, my initial queue design is going to be on top of SMTP and email. Each time a comment or traceback is receive, instead of modifying a file or a database on the server side, a simple email will be sent to a mailbox after basic checked where issued (spam checking mostly).

As this point i can just process the queue of comments with favorite $MUA. The acceptation process is simply piping the email through a special adding comment binary, that will add the comment to my local data. All this just a simple $MUA macro that does the piping with a simple and swift keybinding. At this point the comment is not visible but will be as soon as I push the data back to the server.

Eventually, new queueing system can be developped on top of XMPP, AMQP. Also the queue processing could be done by a simple bot when the data doesn't have to be moderated.

Do you legally agree to license terms that are not published yet ? no ?

Then, do not put a """version 2/3 or more""" in your license text. Doing so means that you agree that all future version of this license that may be created can be chosen when using what you distribute. even if the license became something completly different than what you did agree on at the license choosing time.

That's it i finally released my first haskell module.

it's a wrapper for git, that provides lowlevel operations and some highlevel ones too. It's not the best haskell code ever, specially since this is one of my first piece of useful haskell code, and i'm going to improve it slowly over time.

it's available here http://github.com/vincenthz/hs-libgit

Liferea is a news aggregator that i've been using for quite a while. The interface is simple, and it was fast enough. but lately its behavior became more erratic, so I start looking at the reason of that behavior.

First things first, the feed's data are all stuffed in a sqlite3 database. unfortunately it seems that the caching policy is just mirroring everything locally. couple of weeks ago the database was already a whopping 120Mb, now it just reach 195Mb. I didn't add any new feeds since that last time, so obviously something is really wrong. does liferea delete any things in its database ?

Over looking at the database with the sqlite3 command line utility indicate that the items table is taking the most space, followed by the itemsets table.

It's also got this annoying behavior that everything that is copy and pasted in the liferea windows is considered as a new news feed. For people reading with mouse selection, which is something i'm trying to quit, this is really annoying. specially since sometimes it can create multiples (20 was my top score) news feed subscription with some random text selection which are obviously not web links. Worst things, you can't do multiples selection in the feed selection view, so removing bad feeds is a one by one process.

Looking at liferea-1.6.3 source, with 54086 lines in .c and .h files, the task of patching it seems daunting. I did a hack to disable copy and paste completly, but changing the way liferea stores data, seems a too long project.

So i've decided to take the matter in my own hand, and make a small and fast news aggregator. one that has a storage well designed, so that reading a new items in a feed doesn't make the system crawl for IO to the always-growing database. It will be probably similar to some of those rss2imap projects, except it will be in haskell and it won't sucks.

Dear Web Developpers,

when you are setting web page colors, please set also input related object background colors. Because you set usually set text color, through the * CSS object, to be black without setting the input background to be light, people with black themes end up with a black on black text which is quite impractical.

setting input colors is not really hard, so please do. OK ? Thanks Bye !