Configure Jenkins with SonarQube for static code analysis and integration

Continuous integration and static code analysis

Continuous integration deals with merging code implemented by multiple developers into a single build system. Developers frequently integrate their code and the final build is automated, developer unit test are executed automatically to ensure the stability of the build. This approach is inspired by extreme programming methodologies. With a test driven approach put into place continuous integration would yield in the following benefits.

  • Identifying bugs and issues immediately as they arise.
  • Automated deployment and configuration to minimize manual deployment time.
  • Supports in generating documentation (Java Docs) automatically as post build steps.
  • Identifying conflicts in changes integrated.
  • Easier revert back to stable builds.
  • Metrics which provide code complexity and coverage.

Continue reading

Quick Mockups and Prototyping Tools

Ever wanted to quickly sketch GUI prototypes? But never found a quick and easy way to come up with GUI mockups?
This post outlines some of the popular tools out there for quick prototyping and a listing of the commercial and open source variants plus a detailed outline of the free and open source Pencil mockup application.

Continue reading

Recap of “The Top 5 Mistakes of Massive CSS” – Nicole Sullivan

Back in 2010 Nicole Sullivan made a talk on the top 5 massive CSS mistakes. Her talk was based on her experiences involved in optimizing the massive amounts of CSS found in Facebook. Even though the talk dates back 4 years ago, and since then technology has evolved and we are now with a HTML5 CSS3 era, most of the concepts explained are still fruitful as I feel, since they speak of the rudimentary concepts of CSS styling.

Since we ourselves rare get a chance to work with a massive CSS project as Facebook involving many reusable css structures and variations of them, its highly doubtful that we spent our thoughts on these details. The goal of this post is to summarize and extract out the key areas discussed during the talk.

Continue reading