Agile FAQs
  About   Slides   Home  

 
Managed Chaos
Naresh Jain’s Random Thoughts on Software Development and Adventure Sports
     
`
 
Discovering...
Industrial Logic

Microblog Feed
    Previous Feeds...
    Recent Thoughts

    Recent Comments
    Categories
    Archives
    February 2010
    M T W T F S S
    « Jan    
    1234567
    891011121314
    15161718192021
    22232425262728
    RSS Feed
    Add to Technorati Favorites

    Agile India 2010 Conference Slides are available

    January 29th, 2010

    Mumbai Conference & Bengaluru Conference.

    Stay tuned for the Videos. We are working on them.

    If you are not following us on Twitter (@agileIndia) please do so. Its easy to make all important announcements there.

    • Share/Bookmark

    Craftsmanship in designing Error Messages

    January 29th, 2010

    errormessage

    Also if you see their URL: http://www.mailchimp.com/maintenance_in_progress/we_are_down.phtml

    Very intent revealing. Great thinking has gone behind this. Now this is what I call craftsmanship.

    • Share/Bookmark

    Conferences could be lot more Greener

    January 28th, 2010

    Recently at the Agile Mumbai 2010 and Agile Bengaluru 2010 conference, we tried to make the conference as green (environment friendly) as possible. Following are the things we tried:

    • We did not hand over any conference program, printed hand-outs & slides or any other printed material (except for what the conference sponsor handed over). All this info is already available on our website. To make it convenient for the conference attendees, we took 3 large (A2 size) printout and stuck it outside each hall (track).
    • We also skipped handing over  notepads & pens. I my experience very few people use them. Also those who want to use it, it’s easy to carry a notepad and pen.
    • Lunch and snacks were served in washable plates & steel spoons. Usually conferences use throw-away plates and plastic spoons.
    • For drinking tea, coffee & juice, we requested the conference participants to carry their own mugs & water bottles. This did not work all that well. We had only 3 people carry their own mug. In future, we plan to hand out a mug to each participant. (For Bengaluru conference, since it was in a hotel, they took care of serving tea & coffee in porcelain cups. Water was served is proper washable glasses)
    • Conserving Electricity: We tried to switch off projectors and Air Conditioners when ever possible. This is an area of huge improvement. We need to find more interesting ways to conserve energy.
    • Originally we had planned to request the participants to return their lanyards so we could reuse it. This one fell through the cracks.

    At both the conferences we had an enlightening talk from Captain Planet (aka Saurabh Arora) showing the effect of global warming and how we can take small steps everyday to avoid further worsening the situation.

    Overall I think there are lot more things we can do to make the conference more environmental friendly.

    • Share/Bookmark

    Post-Modern Agile

    January 28th, 2010

    Beyond dogma, beyond ceremony, beyond logical & rational bull-shit, detaching self from cutting edge agile practices to embrace, scale & sustain essential agility.

    From Fail Safe experimentation to lots of Safe Fail experimentation.

    From Objectivity to Subjectivity to Relativity to Uncertainty.

    From Structure to Chaos.

    From Illusions to Idealism to Realism.

    Beginner’s Mind, here I come….

    • Share/Bookmark

    What did you learn at Agile Mumbai and Agile Bengaluru 2010 Conference

    January 25th, 2010

    • Share/Bookmark

    Could not inspect JDBC autocommit mode

    January 9th, 2010

    After switching to the DBCP (Database Connection Pool) drivers that comes bundled with Tomcat 5+, we started seeing a weird exception on our web app. If we leave our server idle for a long time (5-6 hrs) or if we put our laptop to sleep and 5-6+ hrs later when we bring up the laptop and try to access any page on our web app, we get the following error on the web page:

    (The error was “could not inspect JDBC autocommit mode”)

    When we see our logs, we find the following exception:

    18:26:34,845 ERROR JDBCExceptionReporter:72 - Connection com.mysql.jdbc.JDBC4Connection@36fbe6ab is closed.
    SEVERE: could not inspect JDBC autocommit mode
    org.hibernate.exception.GenericJDBCException: could not inspect JDBC autocommit mode
    	at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
    	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
    	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
    	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
    	at org.hibernate.jdbc.JDBCContext.afterNontransactionalQuery(JDBCContext.java:248)
    	at org.hibernate.impl.SessionImpl.afterOperation(SessionImpl.java:417)
    	at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1577)
    	at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
    	...
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    	at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:347)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    	at java.lang.Thread.run(Thread.java:637)
    Caused by: java.sql.SQLException: Connection com.mysql.jdbc.JDBC4Connection@36fbe6ab is closed.
    	at org.apache.tomcat.dbcp.dbcp.DelegatingConnection.checkOpen(DelegatingConnection.java:354)
    	at org.apache.tomcat.dbcp.dbcp.DelegatingConnection.getAutoCommit(DelegatingConnection.java:304)
    	at org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.getAutoCommit(PoolingDataSource.java:224)
    	at org.hibernate.jdbc.ConnectionManager.isAutoCommit(ConnectionManager.java:185)
    	at org.hibernate.jdbc.JDBCContext.afterNontransactionalQuery(JDBCContext.java:239)
    	... 29 more

    On carefully looking at the exception, we find:

    Caused by: java.sql.SQLException: Connection com.mysql.jdbc.JDBC4Connection@36fbe6ab is closed.

    From the exception its clear that the reason for this exception is that the db connection is closed. Which is in sync with our finding so far, idle server causes this problem.

    What happens is, the Database closes the connections since they are inactive. But DBCP & hence hibernate still thinks those connections are active and tries to execute some command on them. This is when an exception is thrown.

    We can easily simulate this exception. When everything is running fine, restart your DB and you’ll see the same exception when you try to access any dynamic page on your site.

    On reading DBCP configuration, I found:

    Parameter Default Description
    validationQuery The SQL query that will be used to validate connections from this pool
    before returning them to the caller. If specified, this query
    MUST be an SQL SELECT statement that returns at least
    one row.
    testOnBorrow true The indication of whether objects will be validated before being
    borrowed from the pool. If the object fails to validate, it will be
    dropped from the pool, and we will attempt to borrow another.
    NOTE - for a true value to have any effect,
    the validationQuery parameter must be set to a non-null
    string.

    Basically testOnBorrow is true by default, which means DBCP will test if the connection is valid (alive) before returning. But to test it, it needs a query using which it would validate the connection. Since in our case we did not specify any value, when hibernate would ask DBCP for a connection, it would just return a connection without testing if its a valid connection before returning. And then the stale connection throws an exception when we try to perform any operation on it. But if the validation query is specified, then DBCP will drop the connection and give us another valid connection. This avoiding this problem.

    So the simple solution to this problem is to add a validationQuery to the connection pooling configuration (in our case it was the context.xml file).

    validationQuery="select version();"

    Q.E.D

    • Share/Bookmark

    Agile and Developing Nations

    January 7th, 2010

    Developing nations, which are trying to establish themselves as a IT Destination have to fight against the giants in the out-sourcing world. For many years companies used CMM as a way to get some attention. But CMM is

    • heavy weight,
    • expensive to get assessed
    • does not really fit small companies’ (20-50 people’s) needs.
    • Also in the last few years CMM has got a pretty bad reputation and hence its not necessarily a great marketing advantage.

    Considering all this, what do companies do? What is the new shinny thing they should all run after. ..ta..da… Agile & Lean.

    • More suitable for their needs,
    • Some Customers are asking for it
    • Is also trendy and gives the marketing advantage over the big outsourcing companies.
    • Share/Bookmark

    Agile Bengaluru 2010 Conference

    January 4th, 2010

    The Agile Software Community of India (ASCI) is organizing the 2nd Annual Agile Conference in Bengaluru on 22nd and 23rd Jan 2010 named Agile Bengaluru 2010.

    For the first time in India, we’ll have 4 Gordon Pask Award Winners at a single conference:

    The conference theme this year is “Post-Modern Agile - Be done with the Dogma“. The conference is really targeted at Agile practitioners, who want to explore ideas beyond the basic Agile stuff.

    Also this year, for the first time, we are hosting the World-famous Programming with the Stars contest during the conference.

    After the standard proposal submission and review process we have the final conference program published - http://www.agileindia.org/agilebengaluru2010/agile-bengaluru-2010-program.htm.

    If you are interested in participating in the conference, hurry up and register for the conference here: http://www.agileindia.org/agilebengaluru2010/agile-bengaluru-2010-registration.htm We have limited 125 seats total.

    Also for those who cannot attend the Bengaluru conference, don’t worry. We have another conference in Mumbai. Check out: Agile Mumbai 2010 Conference.

    Please use the #agile_bengaluru_2010 Twitter tag.

    • Share/Bookmark

    Agile Mumbai 2010 Conference

    January 4th, 2010

    The Agile Software Community of India (ASCI) is organizing the 3rd Annual Agile Conference in Mumbai on 16th and 17th Jan 2010 named Agile Mumbai 2010. The conference is hosted by Mukesh Patel School of Technology Management & Engineering, Mumbai.

    For the first time in India, we’ll have 4 Gordon Pask Award Winners at a single conference:

    The conference theme this year is “Post-Modern Agile - Be done with the Dogma“. The conference is really targeted at Agile practitioners, who want to explore ideas beyond the basic Agile stuff.

    Also this year, for the first time, we are hosting the World-famous Programming with the Stars contest during the conference.

    After the standard proposal submission and review process we have the final conference program published - http://www.agileindia.org/agilemumbai2010/agile-mumbai-2010-program.htm.

    If you are interested in participating in the conference, hurry up and register for the conference here: http://www.agileindia.org/agilemumbai2010/agile-mumbai-2010-registration.htm We have limited 125 seats total.

    Also for those who cannot attend the Mumbai conference, don’t worry. We have another conference coming up in Bengaluru. Check out: Agile Bengaluru 2010 Conference.

    Please use the #agile_mumbai_2010 Twitter tag.

    • Share/Bookmark

    10 Most Read Posts on Managed Chaos in 2009

    January 1st, 2010
    1. Agile (as practiced today) is the new Waterfall
    2. Naked Agile
    3. Biggest Stinkers
    4. Goodbye Simplicity; I’m Object Obsessed
    5. Want to Pair Program and Concerned about Productivity?
    6. Estimation Considered Harmful
    7. Refactoring Legacy Projects: Scaffolding Technique
    8. Single Responsibility Principle Demystified
    9. Primitive Obsession
    10. Cannot Evaluate a Candidate just based on their Resume
    • Share/Bookmark
        Licensed under
    Creative Commons License
    Design by vikivix