web developer & system programmer

coder . cl

ramblings and thoughts on programming...


decorated template tags in django

published: 06-01-2012 / updated: 06-01-2012
posted in: development, programming, python, tips
by Daniel Molina Wegener

Django provides an API to create custom template tags for those applications mounted over this nice Web Application Framework. Sometimes we need to decorate our functions, but you cannot decorate a function registered as tag in Django. The most elegant solution to solve this problem is to use a closure which will wrap the template tag function to be used decorated template tag.

page specific jquery

published: 04-01-2012 / updated: 04-01-2012
posted in: development, programming, tips
by Daniel Molina Wegener

JQuery is cool, it is a well known JavaScript framework that allows you to create DHTML nicely using selector and method goodies. The problem with jQuery, seems that some developers are messing the code a little bit, so many of them are using inline JavaScript to handle some events. This is a very bad practice, so you should centralise all events in JavaScript files, rather than placing the inline <script/> tag. So, the first step is to create a separate JavaScript files to leave a clean and plain HTML files on the server. Then you can handle a page specific configuration and jQuery event handlers using a very simple and object oriented technique.

programming practice 1991-c, part 2

published: 01-01-2012 / updated: 01-01-2012
posted in: development, haskell, programming, tips
by Daniel Molina Wegener

As you know I am learning Haskell and doing small exercises based on the ACM ICPC problem archive. I am using those problem sets as my Haskell practice. The task presented on the problem 1991-c is related to a small DSL which handles concurrency simulations, using two simple instruction called lock and unlock to switch between running and ready states. The DSL defined for this problem seems to be simple. I have used the Parsec Haskell package to build the language parser. Where on my last post about this problem I have created the program parser, and now I build the interpreter.

the market is killing the programming advocacy

published: 27-12-2011 / updated: 27-12-2011
posted in: development, programming, rants, tips
by Daniel Molina Wegener

I see many programmers leaving their career as programmers to start a career as project managers. At certain age, they leave his work as programmers to start another stage on their career, but I think that most of them do not get bored of programming, I think that they just leave the programming career because the salary is not the same as project managers. So, along the time and reaching the higher point of a programmer salary, they decide to leave all programming activities. So, you have skilled programmers not doing good programming because their career seems to be truncated by the market driven salary.

tips on successful bug reports

published: 22-12-2011 / updated: 22-12-2011
posted in: development, programming, projects, tips
by Daniel Molina Wegener

Communication is key element for successful projects. So, you should report bugs properly to eliminate them and you should be very careful describing them. There are some mandatory elements that should be supplied on bug reports, using some templates that provide enough information to let the developer know how to handle its solution and let him to know how to omit new bug creation. A good bug report should clearly display the right information, and we can classify them in three types, as functionality bugs, programming bugs and technical bugs.

jquery is not a monad

published: 19-12-2011 / updated: 19-12-2011
posted in: development, haskell, programming, tips
by Daniel Molina Wegener

There are some nice articles explaining that jQuery is a Monad, from the basis that jQuery chains computations with a returning type — with very simple words — but that is not enough to say that jQuery is a Monad. A Monad should meet certain conditions, from supplying support to its laws to defining the proper methods covering its monadic behaviour. So, it basically should supply support for the three Monad Laws, called associativity, right identity and left identity, where all of them are applied to the same type — or category from its Math background.

the language of choice

published: 15-12-2011 / updated: 15-12-2011
posted in: development, programming, projects, tips
by Daniel Molina Wegener

«What is your preferred language?» is a good question I think. From its paradigm to how it should be indented is a good approach to select a language based on the preferences of your programmers. Few days ago I have launched a public poll related to what is the preference in programming language between the people that I meet in social networks. I am very glad to see up to 150 responses to the poll and I am very glad to see that most users have a preference for strictness, rather than fully freedom. So, here are the results of that poll.