Thursday, August 11, 2011

Developer Links Worth Looking at - August 2011

I want to share some links that I've come across lately. I hope you find the links interesting as much as I do.

To sum up, links include some useful java libraries, articles about a variety of different topics, some programming tips and news. Continue reading to see more...

LIBRARIES ( java, javascript)
  • totallylazy : A functional library for Java which tries to be as lazy as possible just like Clojure's collection library
    sequence(1, 2, 3, 4).filter(even()); // lazily returns 2,4
    iterate(increment(), 1); // lazily returns 1,2,3 ... to infinity
    iterate(increment(), 1).filter(even()).take(10).reduce(average()); // 11
  • Urlrewritefilter : Java Web Filter for any J2EE compliant web application server, which allows you to rewrite URLs before they get to your code. It is a very powerful tool just like Apache's mod_rewrite and it is very simple to use.
  • Head-js : A tiny javascript that speeds up, simplifies and modernizes your site.



  • Principles of Good Programming : - Don’t repeat yourself (DRY) and reuse code , - Keep it simple, stupid! (KISS), - Do not add functionality until you need it (YAGN), - Do the simplest thing that could possibly work, - Don’t make me think, - Open for extension but closed for modification (Open/Closed principle), - Write Code for the Maintainer, - Follow standard conventions (Principle of least astonishment), - One functionality in one place (Abstraction) , - One class for one task (Single Responsibility Principle), - Minimize coupling (less dependency) and maximize cohesion, - Code components should only communicate with their direct relations (Law of demeter) - Seperate concerns (SoC), - Hide Implementation Details - Avoid Premature Optimization
  • Basic rules for code readability and the if statement
  • Top 7 programmers bad habits
    • 1-) The all code is crap, except mine, attitude. : There are always better code out there
    • 2-) The “I fix that in a second” catastrophe. : Don't be in a hurry
    • 3-) The “That will only take a second” misconception. : Make better estimations
    • 4-) The Ego Spiral : Leave your ego at home.
    • 5-) “It wasn’t me!” : We always have an excuse…
    • 6-) The demotivated genius. : Repetitive and simple tasks demotivates but they are necessary
    • 7-) The premature programmer : When coding is done, the task is not done yet. Done means: tested (and not only unit tested), documented, committed, merged…
  • When Do You Say A Development Task Is Really Done? : People looking at “done” from a testing perspective typically state that a feature is done when it has passed its tests. In the concept of the sprint, a clear definition of done is needed. Developers tend to think of “done” as the time when the task has been fully developed and unit tested but it is not usually true. Some tasks might have defects and bugs which might be spotted later.
  • How to solve production problems : The production problems are unavoidable. To be prepared for the problem; use a bug tracking system and keep an inventory og configs, known bugs etc. When it occurs; narrow the problem (check symptomps, read logs, reproduce error) and don't make arbitrary changes,


I'd like to share such links in a monthly basis ( if i can ). Please do not hesitate to comment and share your links. See you next month ( I hope :) )


  1. Hi,
    Thanks for nice data provided easy way to learn training with real time on
    hadoop online training
    through the experienced experts

  2. Hi,
    Thanks for nice information and experts of big data hadoop online training provide in easy way to learn training with real time on
    hadoop online training

  3. I am reading your post from the beginning, it was so interesting to read & I feel thanks to you for posting such a good blog, keep updates regularly
    Hadoop Online Training