Code and Bugs

Coding things

Simple skeleton for Haskell programs

At my university, there is a course named Programming Paradigms. One of the four languages studied there is Haskell. At a very basic level: type inference, laziness, type classes, pattern matching. No monads, no advanced concepts.

However, there is a Haskell homework and this year we want to test it automatically using vmchecker. This means that the students need to have a skeleton for the I/O parts of the application. In the past, we provided this skeleton but it was always changed from year to year. This time, I’ve tried implementing a generic one.

Thus, io-manager was created. You simply change the Makefile and the main file, run make and run the application providing as command line arguments all the input files that you need. The student only uses simple functions to write/read from this files. In fact, these are simulated, the reads are done lazily before starting the student’s code and the writes are done at the end of the application. All student’s code is pure.

For now there is one enhancement: there should be a cabal file to allow for

cabal install io-manager

in the future.

Entire code is on GitHub, please improve or comment :)

Robotik (Turing tarpit language)

These days, beside working on the new platform on which I am to move blogs I participated in PLT Games’ competition. My language, Robotik, can be found on GitHub. It is an interpreter written in Haskell, it has some bad code inside due to the speed with which I had to finish the submission. But, if there are suggestions for improvement, I’m more than happy to hear them and implement them in time :)

2012 in review

The stats helper monkeys prepared a 2012 annual report for this blog.

Here’s an excerpt:

4,329 films were submitted to the 2012 Cannes Film Festival. This blog had 16,000 views in 2012. If each view were a film, this blog would power 4 Film Festivals

Click here to see the complete report.

PS: I’ll be leaving the WordPress platform as soon as I’ll be making the New Year Resolution.

Think different

Just a simple post to keep interest on this blog while I’m working on the new one based on Yesod.

Here’s to the crazy ones. The misfits. The rebels. The troublemakers. The round pegs in the square holes. The ones who see things differently. They’re not fond of rules, and they have no respect for the status quo. You can quote them, disagree with them, glorify and vilify them. About the only thing you can’t do is ignore them because they change things. They push the human race forward. And while some may see them as crazy, we see genius. Because the people who are crazy enough to think they can change the world, are the ones who do.

That’s all for today.

Rebirth from Ashes

Long time ago, when I was discovering the realm of programming and the power this art gives to its wielder, a website was one of the most accessed one, a place full of tutorials and lessons to be learned. Though it was discontinued, the archives were there like a magical spring of knowledge and wisdom.

Today I find out that this site is back. After 7 years flipcode has returned.

RIP Andre

There is no computing project that is worth your life. Turn off the computer. Seek help. Get outside, enjoy the green grass, the birds in the trees. Talk to people you know. Talk to strangers! Drive to Wisconsin, and find out whatever it is they do there. Build a treehouse. Park on a parkway and drive on a driveway. Make a macaroni necklace. Visit a dairy. Climb a rock. Seek life.

(from LWN)

A sad day for programmers, geeks and normal people knowing the state of the matters in Linux world: one of the major contributors to the Linux kernel has died.

A more elaborate opinion, though a personal one and targeting a specific group of people, thus possible unrelated to this event, can be found on the other blog.


This is a post suggested by the previous one and by the incidents which caused it. It is possible to be a very personal post but it will also contain some objective pieces of information. Keep this in mind while reading.

Read the rest of this entry »

Packaging Hell Problems

Because the move to a new blog was imminent, I decided not to post anymore on this blog. However, I’ve encountered a problem which prompted me to do this.

Read the rest of this entry »

Well, I’m back

Nearly an year has passed since I last wrote on this blog with a specific plan in mind. There were several articles in the meantime but very few and written because of a moment’s hunch.

I’m back now, even if for a short period of time.

This article is divided into two parts (I’ll try to make them be under 500 words each):

Each of the two parts has a separate page.

Pages: 1 2 3

How (Not) to Treat a Bug Report

This post is about a bug report I have sent to Facebook in November last year and how it was treated. Please, do not add this post to the list of FB-hate posts (product-wise) – I don’t want that. Instead, this is only a complain against the developers which work there and how they treat their IT-enabled customers.

I wanted to search something on my Wall. Something which was posted several months ago. I knew what to search but scrolling down didn’t reveal it. I asked for a simple search facility.

I have submitted the bug on 12th of November 2011. No response was given until 14th of November. Then, two responses came within an interval of 12 minutes. The first one simple closed the bug as being invalid because it was submitted using a wrong bug reporting platform (though it was the only one available via links Facebook offers to a normal user). The second one simply reopened and assigned the bug to a developer.

That was all that happened with this bug until recently. People subscribed to it, comments were added by coders at Facebook did other things, interesting or not. And now they killed the bug report using the same first reply message. This time, I have used all the links in the message to send the feature request. Maybe this time they’ll solve it though I highly doubt this since no link from these offered a public view of the bug report.

Facebook changed since November last year. Maybe that search doesn’t seem so important now. Indeed, since the feature request was added they have implemented Timeline which was supposed to make searches on your Wall more efficient. Too bad this doesn’t work too well. Thus, that search is still needed. See also the comments on the bug request to see that page admins need it too. Facebook, however, decided to ignore this problem.

This makes me think that there are two options: either they don’t care about their (human) users and everything is about add revenue or their codebase makes it impossible to retrieve something posted a while ago on a timeline or a page: that data is only mined for relevant companies in order to display better adds.

In case they decide to delete the feature request, I have created three screen captures with the relevant details of the report. You can see them in full detail by clicking on them.

bug reportresponsescomments

I have submitted bug reports to other projects as well. But in no places were they treated like this. You may take this post as an arrogant response from an offended programmer with a great ego but this is not so. I only wanted to shine a light on how a bug report is treated at Facebook.


Get every new post delivered to your Inbox.