May 2013
1 post
Birdseye Software: conduits, reactive extensions... →
birdseye-software: Recently we have been working on a project that use the Reactive Extensions library (rxjs) on the front-end and Conduit for handling event and IO streams in Haskell. In practice, working with rxjs is similar to using Conduits/Iteratees/Pipes in Haskell. Of the many benefits [pdf] of rxjs,…
May 17th
2 notes
January 2013
1 post
Reluctant, Lazy Blogger: :) @romanandreg and I... →
tavisrudd: :) @romanandreg and I just implemented animated replay of event-sourced UI test fixtures http://rxtest.dentalle.com/#fixture:separate_post_metals::animate vs http://rxtest.dentalle.com/#fixture:separate_post_metals which just jumps to the end state and highlights the last change. The fixtures… Great Work
Jan 31st
1 note
October 2012
1 post
Oct 13th
2 notes
August 2012
2 posts
Aug 14th
2 notes
4 tags
Installing emacs24 in precise pangoling
This is specially useful in vagrant machines Install utility to add apt sources easily: sudo apt-get install python-software-properties Add sources that contains emacs24 sudo add-apt-repository ppa:cassou/emacs Update the apt source list and install emacs24-nox (for emacs without X) sudo apt-get update; sudo...
Aug 2nd
1 note
June 2012
4 posts
Jun 22nd
39,578 notes
3 tags
“Udacity isn’t concerned with students who fall short. Its creators are busy...”
– Funny how they mention Caracas as one of the places with people with low resources… From this blogpost
Jun 8th
2 tags
Installing virtualbox guest additions
Whenever I upgrade the version of my virtualbox env, I always run through the annoying warning given by vagrant, saying that the virtual machine doesn’t have a matching version to the virtualbox-guest-additions. In order to solve this issue, I always follow the steps given in this blogpost. I re-post this steps over here for my personal records…
Jun 4th
3 tags
Installing Oracle Java 7 on Ubuntu Precise...
This is specially useful in vagrant machines Install utility to add apt sources easily: sudo apt-get install python-software-properties Add sources that contains oracle-java-7 sudo add-apt-repository ppa:webupd8team/java Update the apt source list and install java’s oracle version sudo apt-get update; sudo...
Jun 4th
April 2012
2 posts
“Success is when you’ve failed so much that you start to fail at failing.”
– @bengrue
Apr 7th
1 tag
“You’re always coding with two other programmers: past you and future you....”
– @bmf
Apr 5th
1 note
March 2012
3 posts
4 tags
Http Authentication failing with Devise < 2.0 and...
If you are pulling your hair out because Devise’s HTTP authentication doesn’t seem to work after an hour or so, don’t despair, I have the solution for you… If you can see a warning in your log saying something like: DEPRECATION WARNING: ActiveSupport::Base64.decode64 is deprecated. Use Base64.decode64 instead. It is not just a warning, the HTTP Auth will fail...
Mar 15th
2 notes
“When you don’t have resources, you become resourceful.”
– K. R. Sridhar.
Mar 13th
3 tags
Is Clojurescript using calcdeps.py?
The answer is no… Currently I’m reading the Google Closure: The definitive guide, in order to better use the Clojurescript (cljs) language . On of the things I was a confused about, was on how cljs managed to handle dependencies on the cljs files, as I didn’t see any options regarding the calcdeps.py on the cljs.closure/build function. After failing on finding a nice...
Mar 6th
February 2012
1 post
Vancouver's Clojure Club is ALIVE! →
Some friends and myself decided to formalize a study group we were having for learning Clojure, at this point I think there is enough people that could comfortably work on open source projects. The idea is to join and share projects as a group to gain more feedback from others, this way if a group checks and uses the libraries instead of individuals this libraries will definitely get more...
Feb 1st
December 2011
1 post
2 tags
“Most of the biggest problems in software are problems of misconception.”
– Rich Hickey.
Dec 2nd
5 notes
November 2011
3 posts
3 tags
Haskell's Show and pretty printing bad practice
Most of times when I was coding Haskell code, I always implemented the Show classtype whenever I wanted to print things on the screen in a nice and fashionable way. It seems however this is a really bad practice that hasn’t been taught enough in the Haskell community. I discovered this in a StackOverflow question that had nothing to do with pretty printing, but the discussion led to...
Nov 30th
17 notes
2 tags
Clojure's repeatedly gotcha
When using Clojure’s repeatedly function to read lines from a terminal, or when trying to do IO of some sort, the behavior won’t be as expected This is because repeatedly instead of calling the action n times, it generates a lazy seq for each time the action function gets called. Given that it is a lazy seq, if you don’t force the evaluation of the list, all but the first...
Nov 28th
8 notes
2 tags
Vim's Fugitive's "Error detected while processing...
At a random time on my development cycle, I was using the awesome Fugitive plugin developed by Tim Pope, and I got the following strange error: Error detected while processing function 51_Commit: line 52: E480: No match: `=msgfile` Press ENTER or type command to continue After some googling, I found out the reason was that I installed just a few days ago the also awesome ctrlp plugin. When...
Nov 9th
6 notes
October 2011
3 posts
1 tag
“The distinction between mechanism and policy is one of the best ideas behind the...”
– Jonathan Corbet, Greg Kroah-Hartman, Alessandro Rubini on Linux Device Drivers, 3rd Edition
Oct 26th
1 note
Oct 13th
12 notes
Oct 6th
1 note
September 2011
9 posts
3 tags
Testing URI canonicalization using QuickCheck
Today I was working on a custom web crawler for the company I’m working in. One of the problems I was having in the first implementations was that I was not canonicalizing the links, and I was visiting the same link more than once in the crawl. Canonicalization of URI’s basically consist on removing any query string and fragment out of the given URI (at least, that is my...
Sep 30th
10 notes
2 tags
Puppet: ERROR 400 on SERVER: Must pass...
I’m currently playing with puppet doing some changes to my modules to support Archlinux, at this time I did several changes to my git module, Initially the implementation was something like this: And then, it became something like this: In the end I added some new parameters to my git class, and changed my nodes.pp file accordingly: For some crazy reason, the puppet agent was throwing...
Sep 24th
5 notes
2 tags
“Don’t, Please ***don’t*** install puppet 2.7.3 with Ruby 1.9.2 ever,...”
– Me. Thanks to this guy for pointing me in the right direction. Stupid puppet and stupid ruby 1.9.2
Sep 23rd
4 tags
Loading package double-conversion- ... : can't...
Recently I’ve been playing with the aeson library in Ubuntu oneiric, unfortunately I ran across this compilation error: Loading package double-conversion-0.2.0.1 ... : can't load .so/.DLL for: stdc++ (libstdc++.so: cannot open shared object file: No such file or directory) After a lot of investigation, I found a ticket on the Ttrac site of GHC that came up with a solution, I will...
Sep 21st
1 note
4 tags
Crawler implementation in Haskell
Today at Noomii I was getting some new requirements for our crawler that is implemented in Ruby. The requirement list was quite dense, and I was wondering if it was a good idea to implement this functionality in Haskell :-). Later, after finishing the morning scrum meeting, I got my hands on Bryan O’Sullivan’s slides from the StrangeLoop conference, I was really interested in...
Sep 19th
5 notes
5 tags
Aníbal Rojas: Como ser un mejor programador (un... →
anibalrojas: Yo no soy un gram programador, creo que nunca lo he sido, aunque por mucho años me dedicara a programar profesionalmente. No me entiendan mal, no es que no me guste programar ni que mi código apestte, en realidad me gusta mucho y he tenido muy buenos momentos programado, pero el trabajo no me deja… Great post by one of my menthors back in Venezuela, hopefully at some point...
Sep 19th
19 notes
“Elegance and familiarity are orthogonal”
– Rich Hickey (author of Clojure) Meaning: Unless you are familiar with a concept/language etc, you are not able to tell if something is elegant or not.
Sep 18th
“All the adversity I’ve had in my life, all my troubles and obstacles, have...”
– Walt Disney. Personal note: On the hardest times, just remember this.
Sep 17th
10 notes
3 tags
Using and Parsing Dates in Haskell
Recently I’ve been playing around with the Github API, and I wanted to do some code using Haskell. I’ve been using several libraries like aeson, enumerator, http-enumerator, among others. One of the details I was really concerned about was the time structures in Haskell, I didn’t know exactly which module to use, and there were at least two options: System.Time ...
Sep 17th
16 notes
August 2011
6 posts
Do yourself a favor...
Never compile ghc-platform… ever, it took me around 12 hours to finish compilation, not fun at all.
Aug 30th
2 notes
1 tag
Adrian Bravo's tumblr: Creating a Vagrant Base Box... →
This is for me so that I don’t forget how to build vagrant boxes again…
Aug 29th
8 notes
2 tags
“Any fool can write code that computers can understand. Good programmers write...”
–  Martin Fowler (via edgar)
Aug 24th
9 notes
2 tags
Haskell's Tuple like structures in Clojure
As you may know by now, there is no equivalent for Haskell’s tuples in Clojure, in order to replicate this behavior, you will need to use vectors of two items. Clojure provides the functions first and second to get the elements out of the tuple vector Tuples in Haskell are very useful when using the zip function, one way to replicate this behavior in Clojure is using the map function with...
Aug 23rd
1 note
“If you want to do something, you’ll find a way to do it. Otherwise,...”
– Jim Rohn
Aug 16th
1 note
“It is better to have 100 functions operate on one data structure than 10...”
– Alan Perlis (read from The Joy Of Clojure)
Aug 15th
June 2011
4 posts
2 tags
Puppet - Could not retrieve catalog from remote...
Today I was having issues running puppet (for the first time), I bought an Amazon EC2 micro instance to run the master, and I was working with a vagrant lucid64 box to check that the initial setup for agent nodes was working correctly; sadly I got stuck with an error for a few hours, after doing the SSL certification on the agent. The error was the following: err: Could not retrieve catalog...
Jun 28th
3 notes
4 tags
Erlang and Haskell sitting on a Tree
Last night I was reading the paper Haskell for the cloud [pdf], written by the super kick-ass Haskell guru Simon Peyton-Jones. Two paragraphs got my eye, and I wanted to share them with you We use the term “cloud” to mean a large number of processors with separate memories that are connected by a network and have independent failure modes. We don’t believe that shared-memory concurrency is...
Jun 22nd
61 notes
3 tags
vim-ruby slowness fix
Lately whenever I was working on a rails project, I was having such a pain editing the routes file of this specific project, it went super slow on me on editing time. My “patch” fix was to always disable the syntax or set the filetype to something different than ruby to make it go normal speed again. This came even more unbearable when it was happening on other files, and my crappy...
Jun 22nd
4 notes
4 tags
QuickFix errrorformat for Haskell
If you are wondering how to get the whole potential of QuickFix with Haskell, here you have a snippet of my vim config. Have to thank to Martin Norbäck for his post in the GHC mailing list for the errorformat value.
Jun 5th
5 notes
January 2011
1 post
2 tags
On how Haskell's Arrows might just be function...
Update: The post you are about to read explains just a tiny portion of what Arrows are, pure functions are just one instance of this quite complex classtype. I’m not trying to say that Arrows are just pure functions, I’m saying that in your program, they might be just that. Just to clarify, this post simplify the concept of Arrows — for you the novice reader — to digest it...
Jan 15th
5 notes
December 2010
2 posts
2 tags
Dec 15th
4 notes
Dec 9th
56 notes
October 2010
1 post
3 tags
We are unable to upload this Certificate file...
At this moment, you are probably being victim of Apple’s Provisioning Portal mysterious error messages. I know. you are frustrated you are following each single step in a really detailed fashion you have repeated the whole thing at least 4 times and still getting this stupid cryptic error message Time for google to solve it right? Well, fear no more, I have the one and true answer...
Oct 27th
18 notes
April 2010
0 posts
3 tags
Default mutable values in Python functions are...
If you use mutable default values on functions, this will keep it state in recurrent calls: def myAppend(x, L=[]): L.append(x) return L #============= >>> myAppend(1) => [1] >>> myAppend(2) => [1, 2] That’s seriously messed up o.O
Apr 1st
4 notes
March 2010
2 posts
3 tags
Use form_for from Rails' console
As a curious developer, I always like to inspect an objects guts on the console, that way I can now as much as I can from the class without reading the documentation. It was the time for the rails form_for view helper. I had no idea how to access that from the terminal whatsoever, so I googled a bit and I found nice tidbits that got me going pretty quickly. However when you try to use a method...
Mar 30th
4 notes
November 2009
4 posts
Nov 21st
Nov 19th
14 notes
4 tags
Randoms and Haskell
Right now I’m on chapter 15 of my RWH book. This one talks about problems that get complicated without the use of a Monad, one of them is the System.Random API of Haskell. I’m going to start by introducing two typeclasses that this module exports for clarity’s sake: RandomGen: a RandomGen represents an state that holds the random input, I like to think of it like a stream of...
Nov 16th
1 note