web developer & system programmer

coder . cl

ramblings and rants on software development...


Print Article R -a +A

understanding mapreduce

by Daniel Molina Wegener on 2012.02.04
posted in: development, haskell, programming, tips

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?

by Daniel Molina Wegener on 2012.02.03
posted in: development, programming, rants, tips

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

by Daniel Molina Wegener on 2012.01.29
posted in: development, programming, projects, tips

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

by Daniel Molina Wegener on 2012.01.19
posted in: development, programming, python, tips

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

by Daniel Molina Wegener on 2012.01.12
posted in: development, programming, tips

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.