pinxystech's posterous

pinxystech's posterous

Sarala  //  

Jan 25 / 10:11am

Continous Integration Patterns : avoid the integration pains & mindless maintenance chaos

 

Pattern Description
Private Workspace Develop software in a Private Workspace to isolate changes
Repository Commit all files to a version-control repository
Mainline Develop on a mainline to minimize merging and to manage active code lines
Codeline Policy Developing software within a system that utilizes multiple codelines
Task-Level Commit Organize source code changes by task-oriented units of work and submit changes as a Task Level Commit
Label Build Label the build with unique name
Automated Build Automate all activities to build software from source without manual configuration
Minimal Dependencies Reduce pre-installed tool dependencies to the bare minimum
Binary Integrity For each tagged deployment, use the same deployment package (e.g. WAR or EAR) in each target environment
Dependency Management Centralize all dependent libraries
Template Verifier Create a single template file that all target environment properties are based on
Staged Builds Run remote builds into different target environments
Private Build Perform a Private Build before committing changes to the Repository
Integration Build Perform an Integration Build periodically, continually, etc.
Continuous Feedback Send automated feedback from CI server to development team
Expeditious Fixes Fix build errors as soon as they occur
Developer Documentation Generate developer documentation with builds based on checked-in source code
Independent Build Separate build scripts from the IDE
Single Command Ensure all build and deployment processes can be run through a single command
Dedicated Machine Run builds on a separate dedicated machine
Externalize Configuration Externalize all variable values from the application configuration into build-time properties
Tokenize Configuration Token values are entered into configuration files and then replaced during the Scripted Deployment
Protected Configuration Files are shared by authorized team members only

Reference : Paul M. Duvall, Continuous Integration: Improving Software Quality and Reducing Risk

Filed under  //  CI    CI Patterns   Integration   Paul Duvall  
Jan 7 / 11:47pm

Gizmo Finds #Hudson

Tracking your Hudson build is fun using your favorite Gizmo. Check out these 2 killer apps for your iPhone or Android.

 

Adroid:

iPhone:

Filed under  //  Adroid   Apps   Hudson   iPhone  
Jan 6 / 11:17pm

Bummer #2 : GWT+Gilead

Serialization issues still pop up with GWT2.0+Gilead , the fix mentioned here has worked for me atleast for now.

Filed under  //  GWT   Gilead   Gilead fix  
Jan 4 / 10:20am

Bummer #1 : Sonar hits 1000

We hit a cool 1000 Apps on a Single Sonar Instance , time to party we thought. Enter 1001 and it booom-baaang-crashed. We had to come into a screeching halt because of the SELECT IN clause. The people @ Sonar Source are probably ready or in the process of providing a fix/plugin of sorts, which will get past this issue. So temporarily the 60+ Apps I on-boarded had to be taken off Sonar (Sigh! the highest no. ever I've done so quick!) We've been hitting the wall when it comes to the Code Coverage metrics, I haven't poked my nose into the why and how of it yet, but considering the fact that the find will either something pretty silly or something worth it, I may just dig in a bit.

Meanwhile, I satiate my thirst with a bit of REST and coffee ;)

Filed under  //  Current Project   REST   Sonar  
Dec 28 / 5:46am

Frameworks and you

"Ask not what you can do for your framework; ask what your framework can do for you." - Jeff Dwyer

Nov 5 / 1:58am

Test Test Test

I stumbled upon this Joel Test here

The Joel Test

  1. Do you use source control?
  2. Can you make a build in one step?
  3. Do you make daily builds?
  4. Do you have a bug database?
  5. Do you fix bugs before writing new code?
  6. Do you have an up-to-date schedule?
  7. Do you have a spec?
  8. Do programmers have quiet working conditions?
  9. Do you use the best tools money can buy?
  10. Do you have testers?
  11. Do new candidates write code during their interview?
  12. Do you do hallway usability testing?

No guesses on how my current and my previous project ( at the client location) environments fared . The most annoying issue I had to and still sometimes have to deal with is #8. Not that my workplace is swarming with oh so noisy people all around, but how actually fellow programmers/managers can be a pain in the rear. I remember the days when we had a rather unusual arrangement of  our managers and code monkeys seated in a conf room and we had to churn out code like there was no tomorrow. I used to hide myself in a quiet room only to be bugged by a manager to come back for a status update a few minutes later. WTH?

Infact  I suppose both my current and previous projects would only fare a max of 4 -5. Time for a change eh?

Filed under  //  Management   Test   Work Env  
Nov 4 / 12:04am

Java Heap Issue: Fork level , simple solution

My new project hasn't been any exciting, I kept wondering what on earth was I doing. I ha dto deal with on-boarding Apps day after day on to Hudson and get the Sonar Metrics up. Lame I thought, it was dreadfullu monotonous , until I hit this one. It was a simple Java Heap size issue and I rather sheepishly , set the Hepa to the maz 1024 , no luck. I then bumped it to 2048, still the issue refused to die down. Huh! I targeted the GC options on a lead's suggestion, 2 days + a gazzillion permutations and combinations, I almost gave up.But I guess I mastered the  GC quite a bit.

One look at the build file, the fork option was set to Yes and we had to set up the heap size for each fork here insteda of the usual way of setting it up in the Hudson console. A simple solution , a simpler problem, I just refused to look at the right place.

Normal 0 false false false EN-US X-NONE X-NONE MicrosoftInternetExplorer4 <!-- /* Font Definitions */ @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:1; mso-generic-font-family:roman; mso-font-format:other; mso-font-pitch:variable; mso-font-signature:0 0 0 0 0 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face {font-family:Verdana; panose-1:2 11 6 4 3 5 4 4 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:536871559 0 0 0 415 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman","serif"; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-size:10.0pt; mso-ansi-font-size:10.0pt; mso-bidi-font-size:10.0pt;} @page Section1 {size:8.5in 11.0in; margin:1.0in 1.0in 1.0in 1.0in; mso-header-margin:.5in; mso-footer-margin:.5in; mso-paper-source:0;} div.Section1 {page:Section1;} -->

fork=”true”
memoryInitialSize="256m"
memoryMaximumSize="1024m"

 

Filed under  //  Fork   Heap   java   java Heap size