Archive for January, 2007

Finite State Machine

Finite State Machine (FSM and also called Finite State Automata) is a way to represent the behavior of a system in terms of states, transitions and actions.  I remember the topic to be one of my favorite during college days when I studied them in compiler design and operating systems papers.  FSM works basically by representing the behavior of a system with finite states with each state maintaining its past and a transition that represents the change from one state to another within the system.  Additionally an action defines what needs to be done at a specific time during the lifetime of the system.  An action could happen when the system is in a state and a transition has to be initiated or it could be an action that gets triggered during transition of a system to move it to a specific state. I was intrigued to read an article in IBM developerWorks, “Finite state machines in JavaScript, Part 1: Design a widget“. I was enthralled to read this article and a beautiful theory being applied to enhance the experience of web sites.  I liked the fading tool tip example presented in the article and could be very useful feature that can be implemented in the rich interface web sites for better usability in terms of context sensitive help.

Blink this Finite State Machine at blinklist.com    Bookmark Finite State Machine at blogmarks    Bookmark Finite State Machine at del.icio.us    Digg Finite State Machine at Digg.com    Fark Finite State Machine at Fark.com    Bookmark Finite State Machine at Furl.net    Bookmark Finite State Machine at NewsVine    Bookmark Finite State Machine at reddit.com    Bookmark Finite State Machine at Simpy.com    Bookmark Finite State Machine at Spurl.net    Bookmark Finite State Machine with wists    Bookmark Finite State Machine at YahooMyWeb

Comments      Cosmos

Foundation Stone #28 - Have a Mentor

Have a mentor who can guide you through your career.  Ask yourself who your role model is and the person who can guide you through? If you don’t get one in your mind, then you better find one. Why do we need a mentor? When one says he/she wants to become like someone, what has to be understood is to become successful and gain the expertise like the role model in the same area rather than thinking in terms of the monetary factor or the status quotient. The role model you are thinking might have undergone so many difficulties and lessons to reach that position. The benefit of having a mentor is to get those valuable lessons, to do’s and not to do’s.  This will help in fast tracking your career (but doesn’t mean that you will undergo the same challenges and same hurdles) by taking those already learnt lessons and not falling into the same pit as he/she has undergone.  Another advantage is the experience factor and the ability to assess situations and take right decisions. A lot of decisions that involve a change in your life will require second opinion to make sure that you are taking the right one.  A mentor could help in giving those opinions.  Sometimes our decisions are also tied with emotions and it becomes difficult to arrive at, a mentor could help in suggesting the right choices in those times as well. More reasons on why you need a mentor, please read Rajesh Setty’s “CIOUpdate Column: 10 good reasons to have a mentor“.

Blink this Foundation Stone #28 - Have a Mentor at blinklist.com    Bookmark Foundation Stone #28 - Have a Mentor at blogmarks    Bookmark Foundation Stone #28 - Have a Mentor at del.icio.us    Digg Foundation Stone #28 - Have a Mentor at Digg.com    Fark Foundation Stone #28 - Have a Mentor at Fark.com    Bookmark Foundation Stone #28 - Have a Mentor at Furl.net    Bookmark Foundation Stone #28 - Have a Mentor at NewsVine    Bookmark Foundation Stone #28 - Have a Mentor at reddit.com    Bookmark Foundation Stone #28 - Have a Mentor at Simpy.com    Bookmark Foundation Stone #28 - Have a Mentor at Spurl.net    Bookmark Foundation Stone #28 - Have a Mentor with wists    Bookmark Foundation Stone #28 - Have a Mentor at YahooMyWeb

Comments (1)      Cosmos

Foundation Stone #27 - Embrace Change

I am reading this amazing book “Embracing Change” by Tony Buzan who is renowned for his Mind Mapping, speed-reading and memory techniques and is also the author of the bestselling books “Use Your Head” and “The Mind Map Book“.  In this book “Embracing Change“, Tony Buzan emphasizes how change is part and parcel of every fraction of second in our life and quotes the paradox,

“You can only remain constant by changing.
You can only stay where you are by moving.”

At first thought it might sound that the statement means something impossible but what if you think about it you will understand that you can be where you are only by changing either it is happening automatically or it is happening around you and you will be left behind if you are not with it. The day to day changes physiologically as well socially does not affect us much but there are few changes we tend to resist.  For example, you are forcefully put into a project that you don’t want to be in, job transfer, quitting a job and joining a new one, relationship issues and so on.  It is like how the earth pulls everything to it using the gravitational force, however catastrophically you are thrown out you get slowly pulled into a zone where you feel comfortable and don’t want to move away from it.  But every one of us has to undergo such a change whether we like it or not.  What matters most is how one reacts when he/she is facing that drastic change. The immediate reaction we all know is to resist that change. But resisting is not going to help but will have negative effect. So what has to be done in such situations? Here is the excerpt from the book on what Tony has to say about this,

“If you find yourself resisting change, the associated emotions may also relate to a sense of loss of self. If for example you resist change by staying in an unhealthy relationship because it is comfortable and you are afraid of being on your own; if you continue your workaholic patterns even though they are killing you by inches because you are sacred of the vacuum in the world outside of work; if you won’t stop drinking or smoking even though you have been diagnosed with the early signs of heart disease because you believe it will be a farewell to your youth and your lifestyle, then you need to

pause

and take the time to reassess your vision of the future in relation to your immediate goals.  Where are you now? Acted upon or proactive? Do your present actions tally with your desired expectations for five or ten years’ time?

Remember - resisting change does not prevent change from happening, it simply means the change will happen in a way that takes you further from where you ideally want to be.”

Beautiful, isn’t it not? Rather than resisting, start embracing change, think and take the action that will align to your vision, that way it is more like swimming along the current of the river rather than swimming against it.

Blink this Foundation Stone #27 - Embrace Change at blinklist.com    Bookmark Foundation Stone #27 - Embrace Change at blogmarks    Bookmark Foundation Stone #27 - Embrace Change at del.icio.us    Digg Foundation Stone #27 - Embrace Change at Digg.com    Fark Foundation Stone #27 - Embrace Change at Fark.com    Bookmark Foundation Stone #27 - Embrace Change at Furl.net    Bookmark Foundation Stone #27 - Embrace Change at NewsVine    Bookmark Foundation Stone #27 - Embrace Change at reddit.com    Bookmark Foundation Stone #27 - Embrace Change at Simpy.com    Bookmark Foundation Stone #27 - Embrace Change at Spurl.net    Bookmark Foundation Stone #27 - Embrace Change with wists    Bookmark Foundation Stone #27 - Embrace Change at YahooMyWeb

Comments      Cosmos

RToon #5

Aynchronous Feed?

Note:- If you are new to AJAX, refer my post on AJAX

Happy Weekend!

Blink this RToon #5 at blinklist.com    Bookmark RToon #5 at blogmarks    Bookmark RToon #5 at del.icio.us    Digg RToon #5 at Digg.com    Fark RToon #5 at Fark.com    Bookmark RToon #5 at Furl.net    Bookmark RToon #5 at NewsVine    Bookmark RToon #5 at reddit.com    Bookmark RToon #5 at Simpy.com    Bookmark RToon #5 at Spurl.net    Bookmark RToon #5 with wists    Bookmark RToon #5 at YahooMyWeb

Comments      Cosmos

Evolving Creativity

Creativity 2.EGone or going are the days where creativity is predominantly associated with an individual’s ability to express differently in his/her own area. These days creativity is the need to express and communicate thoughts of any form not just individuals but as a group too. Creativity is evolving says this beautiful article “Creativity 2.E” by David Armano in UX Magazine. Creativity is no more one man show but the need is more a collaborative one as the author says,

“It’s about how we work together to create something that people will want to use, experience and ultimately compel them to take action. You could call this kind of collaboration T-Shaped Creativity”

We have heard this term so often in our day to day life - “Think out of the box”. But am not sure how often we understand and really think about what this means. I think what this means is to go way out of traditional way of doing things and what is required is not to think out of the box but also do it out of the box. This is not just for a specific individual or group of people but is a need and requirement to be equipped by everyone. One of the key outcomes of everything we do is to be the experience one feels looking at the output and compulsion to take action without resistance, and that can be achieved only by putting together some creative effort.

Blink this Evolving Creativity at blinklist.com    Bookmark Evolving Creativity at blogmarks    Bookmark Evolving Creativity at del.icio.us    Digg Evolving Creativity at Digg.com    Fark Evolving Creativity at Fark.com    Bookmark Evolving Creativity at Furl.net    Bookmark Evolving Creativity at NewsVine    Bookmark Evolving Creativity at reddit.com    Bookmark Evolving Creativity at Simpy.com    Bookmark Evolving Creativity at Spurl.net    Bookmark Evolving Creativity with wists    Bookmark Evolving Creativity at YahooMyWeb

Comments      Cosmos

Robots.txt

A web crawler or a web spider collects information about sites and passes it back to the site that spawns it for the purpose of indexing and this index could be used in variety of ways, usually for the search engines. But can a site inform these spiders what can be indexed and what not? Can the site disallow certain parts of the site or can it block a specific agent? The answer to these questions is yes. How? Through a file called robots.txt placed in the site.  The spiders crawling through a site look for this file and act accordingly. If it contains its name to be disallowed it does not collect information. Partial traverse through the site for specific user agents is also possible.  For detailed information on Robots.txt take a look at the FAQ section of robotstxt.org. Google offers webmaster tools for a site owner/administrator that give details about when Google indexed your site through its robots and many other statistics and reports.

Note: - If you are new to the words web crawler, spider, robots, take a look at my posts “Web Crawler” and “Spider Simulator“.

Blink this Robots.txt at blinklist.com    Bookmark Robots.txt at blogmarks    Bookmark Robots.txt at del.icio.us    Digg Robots.txt at Digg.com    Fark Robots.txt at Fark.com    Bookmark Robots.txt at Furl.net    Bookmark Robots.txt at NewsVine    Bookmark Robots.txt at reddit.com    Bookmark Robots.txt at Simpy.com    Bookmark Robots.txt at Spurl.net    Bookmark Robots.txt with wists    Bookmark Robots.txt at YahooMyWeb

Comments      Cosmos

Luntbuild Build Release Version Number Issue

We have a continuous integration environment setup for our projects. The build and deployment is automated and the quick integration when a new code is checked in helps us do our system integration testing in the development environment then and there, so that we are not surprised when we further move to QA, Staging and Production environments. We use Luntbuild tool with Maven2 (for J2EE applications) and Rake (for Rails projects). Luntbuild is deployed on a Tomcat 5 server and uses MySQL 5.0 for the database. One of the features of Luntbuild is to handle the release version of the builds automatically. We configure certain variables through Luntbuild that hold the initial release number and use an expression that prefixes the project name followed by the next version number. Luntbuild uses Velocity and OGNL to evaluate expressions at runtime based on configuration and derive at a release name that can include the project name, the next release number, date etc. We had a big struggle getting this setup as Luntbuild would not recognize the expression that we set up. Once we provide an expression and save the configuration the variables field and the version number field displayed junk characters like “[B@37569c”. And the build failed with the following exception.

com.luntsys.luntbuild.utility.ValidationException: Error parsing version string: [B@37569c,
reason: com.luntsys.luntbuild.utility.ValidationException(version string should not contain characters: /\:*?”<>|$,;@)
at com.luntsys.luntbuild.db.Schedule.validateBuildVersion(Schedule.java:1093)

No luck searching the net, there were few who were facing the same problem and posted it on the Luntbuild forums but no one had replied. And not knowing what is causing the problem we had to go with a fixed version number 1 (even major.minor release numbers like 1.0 did not work) so that this problem does not stop us from continuous integration. As we started to dig deeper into Luntbuild simultaneously we caught hold of the root problem. The problem seems to be the way the expression is stored in the database. The field that holds the expression was declared to be a BLOB (binary large object) and when Luntbuild is retrieving it back it is more a garbage the actual expression. So we just made a quick fix by altering the following in the Luntbuild database.

  • Table lb_project - Column Variables - change from blob to VarChar(4098)
  • Table lb_schedule - Column Next_Version - change from blob to VarChar (4098)

After the above alterations Luntbuild worked like magic. I hope someone facing the same issue and stuck can use this solution and get going with the build automation.

Note - If you are new to build automation you can look at my series of posts on Build Automation.

Blink this Luntbuild Build Release Version Number Issue at blinklist.com    Bookmark Luntbuild Build Release Version Number Issue at blogmarks    Bookmark Luntbuild Build Release Version Number Issue at del.icio.us    Digg Luntbuild Build Release Version Number Issue at Digg.com    Fark Luntbuild Build Release Version Number Issue at Fark.com    Bookmark Luntbuild Build Release Version Number Issue at Furl.net    Bookmark Luntbuild Build Release Version Number Issue at NewsVine    Bookmark Luntbuild Build Release Version Number Issue at reddit.com    Bookmark Luntbuild Build Release Version Number Issue at Simpy.com    Bookmark Luntbuild Build Release Version Number Issue at Spurl.net    Bookmark Luntbuild Build Release Version Number Issue with wists    Bookmark Luntbuild Build Release Version Number Issue at YahooMyWeb

Comments      Cosmos

FareCompare Case Study

Thanks to my friend Kanmani for bringing to my attention this article “FareCompare Ready to Soar With Migration to Java SE 6” in java.sun.com which is a case study of FareCompare.com, a company that posts updated airfare information much ahead of other airfare information sites.  FareCompare had to compare 300,000 to 400,000 city pairs, each with anywhere from 30 to 100 airfares, every day of the year, eight times a day, while maintaining historical databases. The case study highlights the architecture of FareCompare application and how it uses the latest JSE to achieve that high performance. A feel good factor read for Java fans.

Blink this FareCompare Case Study at blinklist.com    Bookmark FareCompare Case Study at blogmarks    Bookmark FareCompare Case Study at del.icio.us    Digg FareCompare Case Study at Digg.com    Fark FareCompare Case Study at Fark.com    Bookmark FareCompare Case Study at Furl.net    Bookmark FareCompare Case Study at NewsVine    Bookmark FareCompare Case Study at reddit.com    Bookmark FareCompare Case Study at Simpy.com    Bookmark FareCompare Case Study at Spurl.net    Bookmark FareCompare Case Study with wists    Bookmark FareCompare Case Study at YahooMyWeb

Comments      Cosmos

Next entries » · « Previous entries

Creative Commons License  This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.