web developer & system programmer

coder . cl

ramblings and thoughts on programming...


small programming exercise

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

On a programming forum I have found a small programming problem about guessing numbers. I have implemented its solutions this morning using Haskell, only to practice a little some Haskell programming. The problem is quite easy to solve. I have used lists instead of arithmetic operations to reach the final number without errors, avoiding user mistakes.

understanding mapreduce

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

MapReduce is a distributed computing model introduced by Google with its framework for distributed computing called MapReduce. Its conceptual basis comes from a functional programming approach based mainly on the basic mathematical concept of Monoid treatment in functional programming. Basically a Monoid lifts data using map and process that data using fold — which is called reduce in Python, returning the same bound type as its input — and can be expressed as the triple \langle A, \varepsilon, \cdot \rangle as the set A, the neutral element \varepsilon and the operation \cdot. The problem with the Monoid definition is the fact that it is bound to a type, where MapReduce is not bound to any type, and even it is not bound to a Category.

what do I dislike from IE?

published: 03-02-2012 / updated: 03-02-2012
posted in: development, programming, rants, tips
by Daniel Molina Wegener

I think that my major school on computing comes from Unix & Linux. Unix and derived operating systems are really cool, they have a lot of data processing tools for the command line and software development. They come at least with one language interpreter called Awk or better suited comes with Perl, so you can easily automate system tasks. So, Unix systems are really more developer friendly, rather than user friendly operating systems. With many tools that are freely available to extend the operating system and make it fit your data processing needs, without too much licensing problems.

change management process

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

Managing changes is really important in software development projects. Each change should be handled carefully and must not be seen as part of the original development process. Instead, you should measure and control each change in the original requirements, even if you are using agile or cascade methodologies. You cannot accept all changes that the customer proposes without the proper management process. Is not that easy to handle changes in requirements like changing a comment in the code. Instead of accepting changes and delivering software without the proper management process, you should be able to handle those requirements using a standard method to manage those requirement changes.

django and amazon s3

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

Amazon S3 is a well known web based storage system provided as SaaS service provided by Amazon Web Services. On Django you can integrate that service using the storage interface called Django Storages, but you must have some considerations using that SaaS storage interface. Mainly regarding the Date header sent to the service on each read, write and similar operations, where you must send an updated header with the proper Time Zone and format.

so you feel as programmer

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

So you feel as programmer because you can handle one programming language. Well, the bad news are the fact that you are not a programmer and even you don’t know too much about programming. At least you should know the three main programming paradigms, which comes from the two main branches called functional and imperative, so you should know at least functional, procedural and object oriented programming. The reason is quite simple, all languages are becoming hybrid languages supporting those three programming paradigms, if you do not understand their basic concepts, you are lost and messing the code.

standard check-list for web developers

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

How many times did get issues back with new bugs?. Do you think that is possible to avoid new bugs while you are coding or solving a bug related issue?. Probably is easy enough to consider that the application, depending on its architecture have several layers to observe. I do not mean layers at server side, but looking on a minimum layer overview, we have at least server side and client side, where both can be decomposed in data collecting and data processing, processed data display and presentation display, respectively.