This post of mine is insprired from Animals.Animals from Pink Floyd is another excellent album. If you have not listened to it yet i would suggest you to. In this album Various groups in society are represented as different types of animals (Dogs as the businessmen, sheep as the powerless pawns, and pigs as the ruthless leaders).
The album was inturn inspired by a 1945 book , Animal Farms by George Orwell.
Have you ever thought what kind of animals are present in our day to day work lives.
If not let us discuss them :
Goat : The ScapeGoat
The word "scapegoat" has come to mean a person, often innocent, who is blamed and punished for the sins, crimes, or sufferings of others, generally as a way of distracting attention from the real causes.
http://www.cartoonstock.com/directory/s/scapegoat_gifts.asp
In a typical IT organization there are people who have virtually tagged themselves as scapegoats. Its good to hire a few of scapegoats in your team. These scapegoats can come handy at times when needed. Please note that scapegoats should be used with caution. If the sin or mistake you commited is too small its good to take the blame. Scapegoats should take the blame for large unpardonable crimes commited in your team.
So, are you going to have Goat curry tonight ?
TorToise and Rabbit:
Remember when you joined a company you were told by HR that .."On end of this term your performance will be judged and you might be promoted". Ok, now what this really means is , "we will see how you performed compared to all other people in your team or your company". I think now you get it. As long as you are not as stupid and over confident as rabbit in the story, it really pays to be a rabbit while racing with tortoises.
http://www.cartoonstock.com/directory/a/aesop_s_fable_gifts.asp
So be sure to include lot of tortoises in your team. This will really help when there is performance review. Since performance review is not How good you performed ? But how bad others performed.
Grasshopper and Ants:
http://www.cartoonstock.com/directory/g/grasshopper_bugs.asp
Remember the story where a grasshopper who has spent the warm months singing away while the ants worked to store up food for winter. When winter arrives, the grasshopper finds itself dying of hunger, and upon asking the ant for food is only rebuked for its idleness. If you are a Grasshopper you need lots of ants in your team. You can spend all your time before the project deadline attending all unnecessary personality development, and time management trainings which your organization provides for free. Remember you "all" are a team. When the project fails it wont be blamed on you alone It will be blamed on whole team which consists of ants as well.
There are many more types in animals there . Please wait for the part 2 of this article.....
Thursday, March 19, 2009
Thursday, March 12, 2009
Pink Floyd and Me
I first heard "Pink Floyd" from my cousin when I was a kid .
My cousin who has tremendous knowledge about music, right from Indian classical to rock (heavy metal , psychedelic , classic etc etc) is an expert in tabla and was a famous drummer during his engineering college days. Well he is arguably one of the most knowledgeable musician in my known circle.
Second time, during my engineering days around 1995-1996 one of my friend who was a big fan of the band always used to insist that we include at least one song from the band in our Mad-ads ( a type of stage play). At last we gave up to his demand and included the number "Another brick in the wall" in our college skit. This was a funny skit about students protesting against the tyrant hostel/college management. The song beautifully aligned into the theme of the skit.
Slowly but steadily , I don’t know when, but I had started taking interest in psychedelic rock in general and Pink Floyd in particular.
After completing my BE I came in touch with my cousin again and this time he explained me the real philosophy behind PF songs. He told me one thing which I still remember . He said "each time you listen to a PF song after some time , you will find a different hidden meaning". I am really thankfull to him for throwing some light on the philosophy behind PF songs.
I have heard almost all songs from PF innumerable number of times. There was a time when my brother and I used to listen to "Momentry Lapse of Reason : Sorrow" again and again. At one point of time I was big fan of "The Thin Ice", then it was "Division Bell" album.
IMHO PF is one of the best rock bands ever. Period.
My cousin who has tremendous knowledge about music, right from Indian classical to rock (heavy metal , psychedelic , classic etc etc) is an expert in tabla and was a famous drummer during his engineering college days. Well he is arguably one of the most knowledgeable musician in my known circle.
Second time, during my engineering days around 1995-1996 one of my friend who was a big fan of the band always used to insist that we include at least one song from the band in our Mad-ads ( a type of stage play). At last we gave up to his demand and included the number "Another brick in the wall" in our college skit. This was a funny skit about students protesting against the tyrant hostel/college management. The song beautifully aligned into the theme of the skit.
Slowly but steadily , I don’t know when, but I had started taking interest in psychedelic rock in general and Pink Floyd in particular.
After completing my BE I came in touch with my cousin again and this time he explained me the real philosophy behind PF songs. He told me one thing which I still remember . He said "each time you listen to a PF song after some time , you will find a different hidden meaning". I am really thankfull to him for throwing some light on the philosophy behind PF songs.
I have heard almost all songs from PF innumerable number of times. There was a time when my brother and I used to listen to "Momentry Lapse of Reason : Sorrow" again and again. At one point of time I was big fan of "The Thin Ice", then it was "Division Bell" album.
IMHO PF is one of the best rock bands ever. Period.
Wednesday, March 11, 2009
Java Menu for Desktop
If you are a java developer I am sure at one point or other you might have got frustrated with Java's inablity to intract with windows ( expect for JNI and Com Programing etc). Some time back I wanted to have a feature on my desktop where I could right click on any file and do interesting things using my java knowledge and java tools.
I built a full fledeged java based tool for doing this. Let me present you a short tutorial demostrating the way in which it can be done
1) Java Program
Develop a swing based normal java program which takes an input file name and depending on the extention of file shows a menu. The menu should be very small in size. The normal swing based program could be like this.
Takes the file name (with path) in the constructor like this


Step 1 ) Open Regedit and expand HKEY_CLASSES_ROOT.

Step 5) Create a subkey called MyMenu inside this Shell key.


I built a full fledeged java based tool for doing this. Let me present you a short tutorial demostrating the way in which it can be done
1) Java Program
Develop a swing based normal java program which takes an input file name and depending on the extention of file shows a menu. The menu should be very small in size. The normal swing based program could be like this.
Takes the file name (with path) in the constructor like this
Decides on the action to perform depending on user click
Please note that if you are using java 5 you can make use of this feature
MouseInfo.getPointerInfo().getLocation()
Using this you can display the menu on the location where user has the mouse
MouseInfo.getPointerInfo().getLocation()
Using this you can display the menu on the location where user has the mouse
The main method of the program should look something like this
And when you run this java program the output should be something like this
2) Use Janel to convert your java program to exe , Please refer to my other blog on how to do this.
Lets assume the exe file name you created for your java program is menubuilder.exe
3) Use Regedit to add the entry.
Regedit is windows tool using which you can see all your registry entries. I would suggest that before
using this tutorial please export all your registry key and backit up somewhere.
Lets assume you want to add custom right click menu to .java extention.
Lets assume the exe file name you created for your java program is menubuilder.exe
3) Use Regedit to add the entry.
Regedit is windows tool using which you can see all your registry entries. I would suggest that before
using this tutorial please export all your registry key and backit up somewhere.
Lets assume you want to add custom right click menu to .java extention.
Step 1 ) Open Regedit and expand HKEY_CLASSES_ROOT.
Step 2) You can see .java key there , just click on that key and check if
PerceivedType is equal to "text". If yes then note down the default value
(java_auto_file as shown in the figure).
NOTE : If the PercievedType is not text then you would probably have Shell key inside your .java key. In that case jump to step 5
PerceivedType is equal to "text". If yes then note down the default value
(java_auto_file as shown in the figure).
NOTE : If the PercievedType is not text then you would probably have Shell key inside your .java key. In that case jump to step 5
Step 3) Open the java_auto_file key.
Step 4 ) Open Shell key inside java_auto_key (this should already be there)
Step 5) Create a subkey called MyMenu inside this Shell key.
Step 6 ) Create a command key inside your newly created MyMenu key.
Step 7) Set the value of command key to as shown in figure.
Step 7) Set the value of command key to as shown in figure.
Step 8 ) Exit the regedit.
Step 9) Just Pray that every thing was done alright ( kidding)
Now when you go to windows explorer and right click on java file you would be able to see the MyMenu as shown in figure and clicking on it would open your favorite menu.
Step 9) Just Pray that every thing was done alright ( kidding)
Now when you go to windows explorer and right click on java file you would be able to see the MyMenu as shown in figure and clicking on it would open your favorite menu.
Please let me know if you need source code for all this. I can surely share the source for free!!!!!!!!!!!!!!!
Java to EXE
Most java programmers at some time or other feel that they must have a mechanism to convert their
java program to windows executable. Yes you have a jar format but having an exe file would certianly be much better
than sending a jar file to some one and asking them to run with javaw.
For a long time I searched for a perfect tool which would be able to convert my java program to exe. Most of the tools
were either paid or too clumsy to use. I dint want to install any thing on my comptuer.
Basically I was searching for an open source tool . I found one after searching for some time
It is an Open source tool named Janel. SO what exactly is Janel. Here is the introduction from its website
http://www.redskaper.com/
Janel is a free, Open Source Java native executable and launcher for Windows. Launch your Java application just like other Windows executables. Within the configuration file set the location of the JVM, any of the Java system properties such as classpath, and more. A choice of non-console and console applications is available. The process name is whatever you choose for your .exe file
The site has a very good explanation on how to use Janel to convert your java program to exe. But let me tell you in simple steps
After downloading Janel
Rename JanelWindows.exe to YourJavaProgram.exe.
Rename JanelWindows.lap to YourJavaProgram.lap. ( this is a text file)
Open the YourJavaProgram.lap file in notepad and change the following line
janel.main.class=package.YourJavaProgram
-Djava.class.path=lib\YourJavaProgram.jar
Now just double click on exe file to run your favorite java program.
java program to windows executable. Yes you have a jar format but having an exe file would certianly be much better
than sending a jar file to some one and asking them to run with javaw.
For a long time I searched for a perfect tool which would be able to convert my java program to exe. Most of the tools
were either paid or too clumsy to use. I dint want to install any thing on my comptuer.
Basically I was searching for an open source tool . I found one after searching for some time
It is an Open source tool named Janel. SO what exactly is Janel. Here is the introduction from its website
http://www.redskaper.com/
Janel is a free, Open Source Java native executable and launcher for Windows. Launch your Java application just like other Windows executables. Within the configuration file set the location of the JVM, any of the Java system properties such as classpath, and more. A choice of non-console and console applications is available. The process name is whatever you choose for your .exe file
The site has a very good explanation on how to use Janel to convert your java program to exe. But let me tell you in simple steps
After downloading Janel
Rename JanelWindows.exe to YourJavaProgram.exe.
Rename JanelWindows.lap to YourJavaProgram.lap. ( this is a text file)
Open the YourJavaProgram.lap file in notepad and change the following line
janel.main.class=package.YourJavaProgram
-Djava.class.path=lib\YourJavaProgram.jar
Now just double click on exe file to run your favorite java program.
Tuesday, March 10, 2009
5 Tips before you go to a Washroom
Washroom is the most important place in the office. This is the only place where you can find solace.
Since you are all alone in a washroom you can definitely give yourself some "food for thought". Its not uncommon for people to get brilliant ideas and solutions (for complex technical problems) in a washroom.
But before you go to a washroom you should consider following essential tips
#Tip 1:
If Coffee is free in your office then make sure you drink large amount of coffee around half an hour before you plan to go to a wash room.
This will not only provide the necessary pressure but also provide you time to think about the list of problems you are going to solve there.
#Tip 2:
Postpone all the meetings which you have around this time , You really need don’t want all those meetings during such an important part of your work.
#Tip 3:
If you have a cell phone make sure you carry it with you to the washroom.
#Tip 4:
If your cell phone doesn’t have good games , please carry a pocket game with you. Believe me it helps!!
#Tip 5:
Last but not the least. Before entering the washroom make sure there is enough paper and the flush works!!!
Since you are all alone in a washroom you can definitely give yourself some "food for thought". Its not uncommon for people to get brilliant ideas and solutions (for complex technical problems) in a washroom.
But before you go to a washroom you should consider following essential tips
#Tip 1:
If Coffee is free in your office then make sure you drink large amount of coffee around half an hour before you plan to go to a wash room.
This will not only provide the necessary pressure but also provide you time to think about the list of problems you are going to solve there.
#Tip 2:
Postpone all the meetings which you have around this time , You really need don’t want all those meetings during such an important part of your work.
#Tip 3:
If you have a cell phone make sure you carry it with you to the washroom.
#Tip 4:
If your cell phone doesn’t have good games , please carry a pocket game with you. Believe me it helps!!
#Tip 5:
Last but not the least. Before entering the washroom make sure there is enough paper and the flush works!!!
Ontario Driving License G1 Test
If you are new to Canada and you need a Ontario Driving Licence you would need to pass the G1 Test first
This test although not very difficult but is definetly tricky. I have gone throught many sites and books
but all of them focus more on driving skills , not many of them test your knowledge on number
of points you might get for breaking a rule.
These questions are also asked in G1 test and not knowing answers for these can be tricky.
I had developed a small java program to test my knowledge on this. I am sharing this for helping all others
http://visrow.googlepages.com/g1.jar
Please NOTE:
You need JRE to Run this jar file.
This Test was developed by me just to help me memorize these points. I take no responsibity for this java program or if the rules have
changed now or the points system might have changed.
For more information you could refer to Ministry of transportation web site.
http://www.mto.gov.on.ca
This test although not very difficult but is definetly tricky. I have gone throught many sites and books
but all of them focus more on driving skills , not many of them test your knowledge on number
of points you might get for breaking a rule.
These questions are also asked in G1 test and not knowing answers for these can be tricky.
I had developed a small java program to test my knowledge on this. I am sharing this for helping all others
http://visrow.googlepages.com/g1.jar
Please NOTE:
You need JRE to Run this jar file.
This Test was developed by me just to help me memorize these points. I take no responsibity for this java program or if the rules have
changed now or the points system might have changed.
For more information you could refer to Ministry of transportation web site.
http://www.mto.gov.on.ca
Monday, March 9, 2009
5 Tips before you go for a meeting
Tip #1
Always have a notepad , pen and few blank papers in your office drawer. When called to attend a meeting carry these items with you . Even though this meeting might be absoulutely unimportant, a waste of time, or totally unrelated to your work , you must still carry these things into the meeting to show that you are sincere and you are interested.
Tip #2
When inside a boring meeting room which is full of people, who are blabbering things which even they dont understand, you must try and scribble continuously on your notebook. You could draw some cartoons or make your grocery list in this mean time. Make sure you look up to the speaker once in a while to look interested and concerned. You must keep nodding your head vertically . Once in a while you can nod horizantly too.
Tip #3
When inside a meeting once in a while you should say , "oh sorry I missed that point", the speaker will be more than happy to repeat his statement. This would give you a major advantage over other passive and non interested listeners. Others will think that you are the most keen listener in the room. If your manager is one of the attendees he will be tremendously impressed.
Tip #4
Once in a while try to catch up with the last statement and repeat it in your own words full of jargons and technobabbles. Make sure that it appears as if you are consolidating what the speaker just said so that it makes more sense. This would give you 2 more brownie points. For one , it will make the speaker look stupid who lacks basic communication skills. Secondly it would make you look technically superior to all other attendees. An example for this would be.
Lets assume the speaker (Tom) just said.
"We must have less number of defects"
Try to say the same in your own words.
"So I think what Tom really means here is, Since we are following the iterative model of XP with other agile methodologies in this project ,the ratio of defect versus code developed in this project should not be more compared to the previous project which was entirly based on waterfall model of SDLC."
It requries some amount of practice to do this. I suggest you do your homework and practice it for few hours everyday. You could do while you are in traffic signal while going to work or in your office washroom.
Tip #5
Last but not the least. Try to practice "Catch & Release". When inside a meeting try to catch important jargons and accronyms . You can release these words later in any other totally unrelated meeting where you get chance to speak. Dont bother to search for meaning of these words in dictionary or web. They will probably never be there.
Always have a notepad , pen and few blank papers in your office drawer. When called to attend a meeting carry these items with you . Even though this meeting might be absoulutely unimportant, a waste of time, or totally unrelated to your work , you must still carry these things into the meeting to show that you are sincere and you are interested.
Tip #2
When inside a boring meeting room which is full of people, who are blabbering things which even they dont understand, you must try and scribble continuously on your notebook. You could draw some cartoons or make your grocery list in this mean time. Make sure you look up to the speaker once in a while to look interested and concerned. You must keep nodding your head vertically . Once in a while you can nod horizantly too.
Tip #3
When inside a meeting once in a while you should say , "oh sorry I missed that point", the speaker will be more than happy to repeat his statement. This would give you a major advantage over other passive and non interested listeners. Others will think that you are the most keen listener in the room. If your manager is one of the attendees he will be tremendously impressed.
Tip #4
Once in a while try to catch up with the last statement and repeat it in your own words full of jargons and technobabbles. Make sure that it appears as if you are consolidating what the speaker just said so that it makes more sense. This would give you 2 more brownie points. For one , it will make the speaker look stupid who lacks basic communication skills. Secondly it would make you look technically superior to all other attendees. An example for this would be.
Lets assume the speaker (Tom) just said.
"We must have less number of defects"
Try to say the same in your own words.
"So I think what Tom really means here is, Since we are following the iterative model of XP with other agile methodologies in this project ,the ratio of defect versus code developed in this project should not be more compared to the previous project which was entirly based on waterfall model of SDLC."
It requries some amount of practice to do this. I suggest you do your homework and practice it for few hours everyday. You could do while you are in traffic signal while going to work or in your office washroom.
Tip #5
Last but not the least. Try to practice "Catch & Release". When inside a meeting try to catch important jargons and accronyms . You can release these words later in any other totally unrelated meeting where you get chance to speak. Dont bother to search for meaning of these words in dictionary or web. They will probably never be there.
The Jargon Man
If you are in IT you must have heard this particular word "Jargon" many times. Jargons are also known as buzzwords. For beginners
this is the meaning of Jargon from dictionary (http://www.merriam-webster.com/dictionary/jargon)
"
confused unintelligible language or a strange, outlandish, or barbarous language or dialect ....."
another explanation from same site
"
obscure and often pretentious language marked by circumlocutions and long words"
Usually jargons are the words or term used by people working in a particular field or industry. Its assumed that people working in the same ( specific) field must be aware of these terminologies.
I guess you might have known by now what exactly a "Jargon" means. Its any of those words which is hard to understand or make sense of , even for any person belonging to the same industry. These words are extermely ( almost impossible) for a layman to understand.
In a nutshell, making sense of a Jargon is :
Extermely difficult for some people.
Almost impossible for rest of the people.
So why do people use jargons afer all ?, lets rest this discussion for a while and try to throw some light on IT ( information technology) field first. IT is relatively a new field compared to other fields such as manufacturing, finance etc. This field is full of meaningless, confusing, nonsensical jargons used by people who are either too intelligent or too dumb. The overuse of jargons in IT fields have reduced the importance of these words and made them "Technobabble". The primary function of technobabble (from wikipedia) is to obscure the truth of a situation by overdressing the words and concepts.Technobabble (a portmanteau of technology and babble) is a form of prose using jargon, buzzwords and highly esoteric language to give an impression of plausibility through mystification, misdirection, and obfuscation (http://en.wikipedia.org/wiki/Technobabble). It field is full of these technobabble. If you are in IT industry you must have heard tons and tons of these words, if not please google for "IT jargon" , there are sites faithfully dedicated to these words.Some of the statments with jargons can be quite funny an example ,
We reduced the bugs after we started using SOAP.
Now lets answer our previous question , why do people really use jargons or technobabbles ?
Here is the answer from wikipedia.
Authors and others who wish to convey a feeling of technical sophistication may write or talk in technobabble. They may use the jargon without considering what it actually means in order to give an impression that they know things that their readers or listeners do not. However, if the jargon is decoded it becomes apparent that the originator does not really understand what has been said or is deliberately being unclear. When used in this way, technobabble is considered pretentious and often unacceptable. If used inappropriately even novice listeners can often detect that nonsense is being spouted forth.
Actually one of the problems blocking SOA adoption in companies was that when the architects and developers start talking in jargon, they lost the business executives and managers in the blur of XML, WSDL, SOAP and UDDI (http://searchsoa.techtarget.com/news/article/0,289142,sid26_gci1191671,00.html).
You will definetly have one or more than one jargon man in your team. The primary aim of this jargon man is to capture the free flowing jargons in the atmosphere and release it on unsuspecting , so-called-ignorant listeners. They do this to show their techical superiorty and hide the lack of knowledge on that particular topic.
Jargon man can be found any where , during meetings , during presentations , during interviews etc. A misconception people have is as they start growing in a particular field their dictionary of filthy, confusing jargons should also grow. So as typicall a lead or a manager would could potential throw more jargons than a tiny developer or a programmer.
Having a jargon man could be very injurious for a team or a customer. Team mates of this jargon man could suffer from inferiorty complex since the manager of this team would promote the jargon man. On the other hand a company might loose buiness by making a customer meet the jargon man since this would leave the customer confused. So if you have a jargon man in your team , the best way to deal with him would be to kick him out till he changes his dictionary.
this is the meaning of Jargon from dictionary (http://www.merriam-webster.com/dictionary/jargon)
"
confused unintelligible language or a strange, outlandish, or barbarous language or dialect ....."
another explanation from same site
"
obscure and often pretentious language marked by circumlocutions and long words"
Usually jargons are the words or term used by people working in a particular field or industry. Its assumed that people working in the same ( specific) field must be aware of these terminologies.
I guess you might have known by now what exactly a "Jargon" means. Its any of those words which is hard to understand or make sense of , even for any person belonging to the same industry. These words are extermely ( almost impossible) for a layman to understand.
In a nutshell, making sense of a Jargon is :
Extermely difficult for some people.
Almost impossible for rest of the people.
So why do people use jargons afer all ?, lets rest this discussion for a while and try to throw some light on IT ( information technology) field first. IT is relatively a new field compared to other fields such as manufacturing, finance etc. This field is full of meaningless, confusing, nonsensical jargons used by people who are either too intelligent or too dumb. The overuse of jargons in IT fields have reduced the importance of these words and made them "Technobabble". The primary function of technobabble (from wikipedia) is to obscure the truth of a situation by overdressing the words and concepts.Technobabble (a portmanteau of technology and babble) is a form of prose using jargon, buzzwords and highly esoteric language to give an impression of plausibility through mystification, misdirection, and obfuscation (http://en.wikipedia.org/wiki/Technobabble). It field is full of these technobabble. If you are in IT industry you must have heard tons and tons of these words, if not please google for "IT jargon" , there are sites faithfully dedicated to these words.Some of the statments with jargons can be quite funny an example ,
We reduced the bugs after we started using SOAP.
Now lets answer our previous question , why do people really use jargons or technobabbles ?
Here is the answer from wikipedia.
Authors and others who wish to convey a feeling of technical sophistication may write or talk in technobabble. They may use the jargon without considering what it actually means in order to give an impression that they know things that their readers or listeners do not. However, if the jargon is decoded it becomes apparent that the originator does not really understand what has been said or is deliberately being unclear. When used in this way, technobabble is considered pretentious and often unacceptable. If used inappropriately even novice listeners can often detect that nonsense is being spouted forth.
Actually one of the problems blocking SOA adoption in companies was that when the architects and developers start talking in jargon, they lost the business executives and managers in the blur of XML, WSDL, SOAP and UDDI (http://searchsoa.techtarget.com/news/article/0,289142,sid26_gci1191671,00.html).
You will definetly have one or more than one jargon man in your team. The primary aim of this jargon man is to capture the free flowing jargons in the atmosphere and release it on unsuspecting , so-called-ignorant listeners. They do this to show their techical superiorty and hide the lack of knowledge on that particular topic.
Jargon man can be found any where , during meetings , during presentations , during interviews etc. A misconception people have is as they start growing in a particular field their dictionary of filthy, confusing jargons should also grow. So as typicall a lead or a manager would could potential throw more jargons than a tiny developer or a programmer.
Having a jargon man could be very injurious for a team or a customer. Team mates of this jargon man could suffer from inferiorty complex since the manager of this team would promote the jargon man. On the other hand a company might loose buiness by making a customer meet the jargon man since this would leave the customer confused. So if you have a jargon man in your team , the best way to deal with him would be to kick him out till he changes his dictionary.
Friday, March 6, 2009
eDocuments
eDocuments
Moving towards a paperless world
Problem
We have moved to an information and technology age. Most of the transactions in our day to day life are done on the net. There are many transactions which people never imagined could be done on net safely and in secure way. Still there are so many transactions which are done on paper. For example,
1) Certified Documents: These are copy of original documents which are certified by a notary as genuine. To have a document certified, a person should make a photocopy of the original document and take the original and the copy to an authorised person. This authorised person then verifies the document and puts a “seal” or “stamp” on the document.
2) Degrees/ Transcripts: Even in today’s world Schools/Universities continue to issue the degrees transcripts on paper based materials.
3) Other certificates : Every day there are tons of paper/ certificates printed and distributed all across world (in corporate , government organizations , tickets , passes etc)
Solution
There are millions of papers which get printed/photocopied and distributed everyday. eDocuments is a way in which the paper expenditure can be reduced and distribution of documents becomes easy, safe, secure and fast. The key to this solution is public key encryption mechanism. Each and every document issuing agency has a set of public and private key. This key set is issued to them by eDocuments.org in collaboration with governmental and other non governmental authorised agencies. The private key is confidential to the document issuing agency and public key is available to every one using a central website (eDocuments.org). All the documents would be encrypted and can be transferred and be decrypted and viewed only by using public key.
The rule is simple, “Any document which is not encrypted is not valid or true”
Scenarios
Lets take few scenarios to explain how this solution works
1) Scenario 1: Certified Documents
Present Situation
-----------------------------
Gary photocopies a document and takes the original and the photocopies to Sue the Notary. Sue the Notary, validates the documents and puts a seal or stamp on the copy. This seal was given to Sue by “The Law Association”.
Gary takes the certified copy and mails to the organization which requires it. This document reaches the destination in 4 days.
It is a valid document since it has a seal or stamp on it.
Future
---------------
Gary scans the documents and takes soft copy and originals to Sue the Notary. Sue the Notary, validates the documents and encrypts them using his private key. This private key was issued to Sue by “The Law Association” in collaboration with eDocuments.org.
Gary takes the certified copy and emails them to the organization which requires it. This document reaches the destination immediately
It is a valid document since it can be decrypted only by public key of Sue which is available on eDocuments.org website.
2) Scenario 2: Certificates / Transcripts
Present Situation
-----------------------
Gary graduated from the university today. He got a degree certificate, he also got the transcripts of all semester and other school leaving certificates. All these documents carry university seal and logo. Gary has to keep this certificates safely and carry them with him whenever he moves or changes his job.
Future
-----------------
Gary graduated from the university today. He got a degree certificate, he also got the transcripts of all semester and other school leaving certificates. All this documents are given to him on DVD and are encrypted using university private key. It can be decrypted using public key of university which is available on eDocuments.org website. Gary is very happy since he can always keep his documents with him without worrying about wear and tear.
Summary
It is a brand new concept and all the financial details needs to be worked out, revenue can be generated using different ways ranging from , charging for each and every documents , issuing the license of encryption, monthly fees to maintain the public key. The concept of eDocuments is not only environment friendly but could also save money and time of organizations.
Moving towards a paperless world
Problem
We have moved to an information and technology age. Most of the transactions in our day to day life are done on the net. There are many transactions which people never imagined could be done on net safely and in secure way. Still there are so many transactions which are done on paper. For example,
1) Certified Documents: These are copy of original documents which are certified by a notary as genuine. To have a document certified, a person should make a photocopy of the original document and take the original and the copy to an authorised person. This authorised person then verifies the document and puts a “seal” or “stamp” on the document.
2) Degrees/ Transcripts: Even in today’s world Schools/Universities continue to issue the degrees transcripts on paper based materials.
3) Other certificates : Every day there are tons of paper/ certificates printed and distributed all across world (in corporate , government organizations , tickets , passes etc)
Solution
There are millions of papers which get printed/photocopied and distributed everyday. eDocuments is a way in which the paper expenditure can be reduced and distribution of documents becomes easy, safe, secure and fast. The key to this solution is public key encryption mechanism. Each and every document issuing agency has a set of public and private key. This key set is issued to them by eDocuments.org in collaboration with governmental and other non governmental authorised agencies. The private key is confidential to the document issuing agency and public key is available to every one using a central website (eDocuments.org). All the documents would be encrypted and can be transferred and be decrypted and viewed only by using public key.
The rule is simple, “Any document which is not encrypted is not valid or true”
Scenarios
Lets take few scenarios to explain how this solution works
1) Scenario 1: Certified Documents
Present Situation
-----------------------------
Gary photocopies a document and takes the original and the photocopies to Sue the Notary. Sue the Notary, validates the documents and puts a seal or stamp on the copy. This seal was given to Sue by “The Law Association”.
Gary takes the certified copy and mails to the organization which requires it. This document reaches the destination in 4 days.
It is a valid document since it has a seal or stamp on it.
Future
---------------
Gary scans the documents and takes soft copy and originals to Sue the Notary. Sue the Notary, validates the documents and encrypts them using his private key. This private key was issued to Sue by “The Law Association” in collaboration with eDocuments.org.
Gary takes the certified copy and emails them to the organization which requires it. This document reaches the destination immediately
It is a valid document since it can be decrypted only by public key of Sue which is available on eDocuments.org website.
2) Scenario 2: Certificates / Transcripts
Present Situation
-----------------------
Gary graduated from the university today. He got a degree certificate, he also got the transcripts of all semester and other school leaving certificates. All these documents carry university seal and logo. Gary has to keep this certificates safely and carry them with him whenever he moves or changes his job.
Future
-----------------
Gary graduated from the university today. He got a degree certificate, he also got the transcripts of all semester and other school leaving certificates. All this documents are given to him on DVD and are encrypted using university private key. It can be decrypted using public key of university which is available on eDocuments.org website. Gary is very happy since he can always keep his documents with him without worrying about wear and tear.
Summary
It is a brand new concept and all the financial details needs to be worked out, revenue can be generated using different ways ranging from , charging for each and every documents , issuing the license of encryption, monthly fees to maintain the public key. The concept of eDocuments is not only environment friendly but could also save money and time of organizations.
Ant and Automation (Part I)
I was an ardent fan of javac (*.java) until I was introduced to Ant in the year 2000. Ant changed the way I looked at process automation. After having used Ant for more than a decade now, I am still amazed with the array of tasks Ant can help with.
As a disclaimer, I’d like to say that this article is not a 5 minute tutorial on how to use Ant, since www is full of such articles, Apache Ant web site being the best. The sole purpose of this article is to enlighten fellow enthusiasts with the hidden secrets about Ant that I have discovered.
Most of the projects use Ant for automating their build processes. These automation scripts are nothing but sequential processes of checking out from repositories, building, & deploying the project. Some other projects go a step further and combine the unit test process with this to check the integrity and validity of application. Few others configure automated functional tests to be triggered after a successful build and deploy. Some also combine Ant with other tools such as CruiseControl and Maven to achieve what they think is “build nirvana”.
**For beginners:
Maven is …
“.. A software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.”
http://maven.apache.org/
And CruiseControl is..
“Both a continuous integration tool and an extensible framework for creating a custom continuous build process.”
http://cruisecontrol.sourceforge.net/
**
Even though both of these are excellent tools and they deliver what they promise, still a lot of areas in terms of automation are left out which can be explored by inquisitive software automation believers like you and me!
Now let’s discuss some of the features which can revolutionize mundane tasks through automation:
Step 1
----------
Currently, whenever there is build failure most of the systems send an email to a distribution list and depend on the lead/developer to find out the problem and fix it. However there is a scope to automate here:
The automation could be achieved by writing listener/loggers which parse the failure message (from the build logs) to get the list of all the files which failed to compile. Now for each of this file we need to get a repository history and find out the last check in. This would give us the repository ID of the user which is mapped to an email id with the supervisor’s name. The build failure message goes to the intended developer with an expected time of resolution. As soon as that time passes out the build triggers again and if the problems still exist an email goes to the user as well has his/her supervisor.

Step 2
---------
“I was not checking my email”. Haven’t we heard that before? Well, not all of us have access to the emails at all times; neither can we be checking emails all the time. Won’t integrating Ant with SMS facility be an excellent idea?
As we all know most of the telecom service providers have a facility through which emails gets converted to SMSes, for example, if you send an email to 9198xxxxxxx98@airtellkarnataka.com , the mobile number owner will receive it as an SMS. Why not send important build related messages to intended recipients through this free and reliable service?

Step 3
-----
“Ping Pong” is something which can be achieved using Ant or any other automated script. In any enterprise web development environment there are servers which need to be up and running for testing purposes, although all the HA environments have mechanisms in place to keep these servers up to 99.99%. However development environments usually lack these features. An Ant script could come in handy here. The script could be configured to ping the server at regular intervals and wait for the reply, if there is no reply, the script can then notify the concerned party. The script could also be configured to bring up the server automatically!
Step 4
------
Using Ant to achieve Automated Check in. In a typical development project we all checkout code, modify and check it in at on a daily basis. What if each developer has an Ant script on his machine which checks-in the modified code at end of day automatically? This would simplify maintaining processes and standardize daily check ins.
To be continued….
As a disclaimer, I’d like to say that this article is not a 5 minute tutorial on how to use Ant, since www is full of such articles, Apache Ant web site being the best. The sole purpose of this article is to enlighten fellow enthusiasts with the hidden secrets about Ant that I have discovered.
Most of the projects use Ant for automating their build processes. These automation scripts are nothing but sequential processes of checking out from repositories, building, & deploying the project. Some other projects go a step further and combine the unit test process with this to check the integrity and validity of application. Few others configure automated functional tests to be triggered after a successful build and deploy. Some also combine Ant with other tools such as CruiseControl and Maven to achieve what they think is “build nirvana”.
**For beginners:
Maven is …
“.. A software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.”
http://maven.apache.org/
And CruiseControl is..
“Both a continuous integration tool and an extensible framework for creating a custom continuous build process.”
http://cruisecontrol.sourceforge.net/
**
Even though both of these are excellent tools and they deliver what they promise, still a lot of areas in terms of automation are left out which can be explored by inquisitive software automation believers like you and me!
Now let’s discuss some of the features which can revolutionize mundane tasks through automation:
Step 1
----------
Currently, whenever there is build failure most of the systems send an email to a distribution list and depend on the lead/developer to find out the problem and fix it. However there is a scope to automate here:
The automation could be achieved by writing listener/loggers which parse the failure message (from the build logs) to get the list of all the files which failed to compile. Now for each of this file we need to get a repository history and find out the last check in. This would give us the repository ID of the user which is mapped to an email id with the supervisor’s name. The build failure message goes to the intended developer with an expected time of resolution. As soon as that time passes out the build triggers again and if the problems still exist an email goes to the user as well has his/her supervisor.
Step 2
---------
“I was not checking my email”. Haven’t we heard that before? Well, not all of us have access to the emails at all times; neither can we be checking emails all the time. Won’t integrating Ant with SMS facility be an excellent idea?
As we all know most of the telecom service providers have a facility through which emails gets converted to SMSes, for example, if you send an email to 9198xxxxxxx98@airtellkarnataka.com , the mobile number owner will receive it as an SMS. Why not send important build related messages to intended recipients through this free and reliable service?
Step 3
-----
“Ping Pong” is something which can be achieved using Ant or any other automated script. In any enterprise web development environment there are servers which need to be up and running for testing purposes, although all the HA environments have mechanisms in place to keep these servers up to 99.99%. However development environments usually lack these features. An Ant script could come in handy here. The script could be configured to ping the server at regular intervals and wait for the reply, if there is no reply, the script can then notify the concerned party. The script could also be configured to bring up the server automatically!
Step 4
------
Using Ant to achieve Automated Check in. In a typical development project we all checkout code, modify and check it in at on a daily basis. What if each developer has an Ant script on his machine which checks-in the modified code at end of day automatically? This would simplify maintaining processes and standardize daily check ins.
To be continued….
Learn IT from Bollywood
Kitne aadmi the ?
Sholay, 1975.
A crude translation in english would mean “How many people were there ?”.
Its not always about manpower and size of the team. In this particular bollywood blockbuster , just two good people with skill and determination were enough to handle hurdles and difficuties thrown at them compared to more than twenty. In todays slowing economy and competition its absolutely mandatory to maintain small but determined team rather than maintaining large team of unmotivated people. It’s a well known fact that team work plays an important role in success and failure of any project. You might hire the best of resources but if there is no team work the project is not going any where. If we take inspiration from this movie a team in present situtaion should :
Be small but with skilled and determined people.
Have good team work between members.
Have access to tools and resources.
Ye haath muje de de Thakur!!!
Sholay, 1975.
Another one from the same blockbuster movie which means . “Give me your hands” .Although its not necessary to have a Gabbar singh ( villian ) in a project. But we do have a virtual Gabbar singh in our work life. Yes, the competition , the peer pressure, the greed to get ahead and become a manager “could” be a virtual Gabbar. It’s a typical scenario in every software company a yough engineer joins a company, he becomes a team lead in few years and in some time he rises to become a manager, but all the while he forgets to update his technical skills, thinking that its enough to have good managerial skills rather than technical.But what he forgets is the software company is a technology company. Mangers are needed to manage people just because there is a tremedous growth and size of the team gets bigger and bigger. Although it’s a good idea to get some management skills but every one in a software company should be hands on.
Remember : A manager without technical skills is like Thakur without hands in the movie.
He has will , determination and good intentions but he is not capable of performing himself . His “hands” has been cut off by todays “virtual Gabbar singh”. All he can do is rely on his team to complete the project.
Mogambo khush hua .
Mr. India, 1987
Although we might not have Gabbar in our work lives but you will have to agree that we definetly have lots of Mogambos in our day to day lives. If you are software developer you have to consider your lead, your manager your QA and finally your client as Mogambo and try to extract this famous words from them which litrally means “I am Happy!!!”. Well, making them happy means producing good quality and timely work rather than developing PR skills or being friendly with them. Remember that in todays economy its the share holder who is The Greatest Mogambo. Your being friendly with client or manager might not increase the share value of the company but producing good quality work and completing the projects on time by meeting the deadline and keeping them bug free will definetly increase the share value.
Ek macchar aadmi to hizda bana deta hai.
Krantiveer , 1995
Yes, you gussed it right . These “macchars” are nothing but bugs in every software project. Bugs can come at any phase of the project and can have many causes, which inculde lack of requirements, lack of technical skills etc. Although its very diffucult to make any project bug free , it should be taken care that bugs don’t come at later stage of the project. We all software engineers know the importance of unit testing yet when it comes to actual task we espace by giving reasons like lack of time , lack or resources etc. We call consider oursleves to be too good programmer to need unit tests. We rely on QA and integration testers to catch bugs.
This figure is from “Applied Software Measurement”, by Capers Jones, McGraw-Hill 1991, for the time taken to prepare execute and fix defects.
Sholay, 1975.
A crude translation in english would mean “How many people were there ?”.
Its not always about manpower and size of the team. In this particular bollywood blockbuster , just two good people with skill and determination were enough to handle hurdles and difficuties thrown at them compared to more than twenty. In todays slowing economy and competition its absolutely mandatory to maintain small but determined team rather than maintaining large team of unmotivated people. It’s a well known fact that team work plays an important role in success and failure of any project. You might hire the best of resources but if there is no team work the project is not going any where. If we take inspiration from this movie a team in present situtaion should :
Be small but with skilled and determined people.
Have good team work between members.
Have access to tools and resources.
Ye haath muje de de Thakur!!!
Sholay, 1975.
Another one from the same blockbuster movie which means . “Give me your hands” .Although its not necessary to have a Gabbar singh ( villian ) in a project. But we do have a virtual Gabbar singh in our work life. Yes, the competition , the peer pressure, the greed to get ahead and become a manager “could” be a virtual Gabbar. It’s a typical scenario in every software company a yough engineer joins a company, he becomes a team lead in few years and in some time he rises to become a manager, but all the while he forgets to update his technical skills, thinking that its enough to have good managerial skills rather than technical.But what he forgets is the software company is a technology company. Mangers are needed to manage people just because there is a tremedous growth and size of the team gets bigger and bigger. Although it’s a good idea to get some management skills but every one in a software company should be hands on.
Remember : A manager without technical skills is like Thakur without hands in the movie.
He has will , determination and good intentions but he is not capable of performing himself . His “hands” has been cut off by todays “virtual Gabbar singh”. All he can do is rely on his team to complete the project.
Mogambo khush hua .
Mr. India, 1987
Although we might not have Gabbar in our work lives but you will have to agree that we definetly have lots of Mogambos in our day to day lives. If you are software developer you have to consider your lead, your manager your QA and finally your client as Mogambo and try to extract this famous words from them which litrally means “I am Happy!!!”. Well, making them happy means producing good quality and timely work rather than developing PR skills or being friendly with them. Remember that in todays economy its the share holder who is The Greatest Mogambo. Your being friendly with client or manager might not increase the share value of the company but producing good quality work and completing the projects on time by meeting the deadline and keeping them bug free will definetly increase the share value.
Ek macchar aadmi to hizda bana deta hai.
Krantiveer , 1995
Yes, you gussed it right . These “macchars” are nothing but bugs in every software project. Bugs can come at any phase of the project and can have many causes, which inculde lack of requirements, lack of technical skills etc. Although its very diffucult to make any project bug free , it should be taken care that bugs don’t come at later stage of the project. We all software engineers know the importance of unit testing yet when it comes to actual task we espace by giving reasons like lack of time , lack or resources etc. We call consider oursleves to be too good programmer to need unit tests. We rely on QA and integration testers to catch bugs.
This figure is from “Applied Software Measurement”, by Capers Jones, McGraw-Hill 1991, for the time taken to prepare execute and fix defects.
If cost of fixing a bug found in unit testing is Y then its cost in integration could be 4 multiplied Y , and in production it could be “12 x Y”. So you could end up paying 12 times more tomorrow if you try to save on unit testing today.
As you can see the cost and time taken in unit testing is far less than cost and time taken to fix a bug a later stages of the project. Remember that a bug in production might waste your entire effort of design and development .
Chota risk aur bada fayada yaane “mauka” !!!!
Maharathi, 2009
This is a dialog from not so well known movie but it makes lots of sense in today competitive software market. The protagonist in the movie says :
A little risk and little benefit is what we call business, whereas
A major risk and a major benefit is what we call lottery but
A little risk and a major benefit is what we call “Oppurtunity”!!!!!
Taking risk is necessary in every phase of life, but in a typical software project there are numerous time where one might have to take risk. Its always a tradeoff between the risk we are going to take and benefit we are going to get out of it. Refactoring the code is one such risk. Refactoring is a very good practice and you will find tons and tons of articles on net in support of it, however a very carefull cost-benefit analysis should be done before taking up any such work. Risk analysis is also very important aspect of software development life cycle. We must ensure that we don’t let go of any Oppurtunity at the same time we don’t take any unnecessary risk which are not going to yield equivalent benefit.
Sardar meine aapka namak khaya hai sardar!!!
Sholay, 1975.
Change is the most powerfull law of nature. You need to keep moving to achieve growth and success. Once we get good oppurtunity we move on to a different organization. I still remember one of the famous Indian enterprenur once said. “Don’t love your company, Love your work”. Although this might be true we still need to have respect and loyality towards the organization we are working in. We have to maintain decipline and not take undue advantages of the facilities provided by the company. Few of my friends used to stay in company till 8.30PM in night everyday. I used to appreciate their dedication till I found out the reason for their late schedule. The reason was , hold your breath, the company used to provide free dinner and free cab dropoff after 8.30PM. Another friend of mine used to work for a company which used to provide telecommute option to all of its employees. Well for starters telecommute means “work for home”. This is really a good option since it saves a lot of travelling time. We can utilize all the time we waste on roads in a good way. This option definetly improves the work-life balance. My friend used to take this option “work from home” every 3 days a week. But only change was “work” was missing from his schedule when he used to be home. This is a balant cheating, its like robbing your organization , their client and other loyal employeers of valuable time and money. Remember , work from home means you have to treat your home as work place and bheave in exactly the same way as you were in office, period.
Another way of robbing time could be spending a lot of time in company cafetia or recreation area of your company. Please remember that these areas are provided so that you can take a break from your work. But some people make this other way round. They start working when they take break from these places.
Mere paas maan hai..
Deevar, 1975
After working loyally and faithfully for almost 3 years in the same company and always proving myself again and again I was amazed when a new person with almost same level of experience as me was named technical architect instead of me. I the only qualification he seemed to have was “onsite experience” of around 2 years. The fact that he was laid off in this “onsite” country due to economic slowdown dint bother any one. It’s a well known fact now that India is one of the best producers of engineers in the world.
Alghough engineers from IITS and MBAS from IIMS have been been hired by best of multinationals since beginning even less known engineering colleges and universities are not far behind.
http://www.rediff.com/money/2007/jul/05eng.htm
Today india and indians have achieved a lot in software industry. More than 20 Indian software companies have achieved the prestigious SEI-CMM level. India also has the highest number of ISO-9000 software organizations. In the U.S alone, more than 80% have ranked India as their first choice, when outsourcing software and IT services. The U.S has also recognized India as an outsourcing superpower. Although I agree that above statements is bound to open “can of worms” and some readers would disagree with me saying that India is chose not because of quality but because of cost. But we all agree that Indian engineers have proved themselves time and again but still the indian management has a mind set of treating “foreign returned” engineers differently compared to local experienced.“Good quality engineer” is product of education, work experience, and opportunities to grow. Engineers in same Corporation should be paid equaly in different countries, period. There are mind set shift necessary when you hire talent. But this will take time till then if your onsite colleague tells you that today he has a flat, a car, and a TV and asks you what do you have . Just tell him .. Mere paas maan hai.. which means I have mother and mother land.
Chota risk aur bada fayada yaane “mauka” !!!!
Maharathi, 2009
This is a dialog from not so well known movie but it makes lots of sense in today competitive software market. The protagonist in the movie says :
A little risk and little benefit is what we call business, whereas
A major risk and a major benefit is what we call lottery but
A little risk and a major benefit is what we call “Oppurtunity”!!!!!
Taking risk is necessary in every phase of life, but in a typical software project there are numerous time where one might have to take risk. Its always a tradeoff between the risk we are going to take and benefit we are going to get out of it. Refactoring the code is one such risk. Refactoring is a very good practice and you will find tons and tons of articles on net in support of it, however a very carefull cost-benefit analysis should be done before taking up any such work. Risk analysis is also very important aspect of software development life cycle. We must ensure that we don’t let go of any Oppurtunity at the same time we don’t take any unnecessary risk which are not going to yield equivalent benefit.
Sardar meine aapka namak khaya hai sardar!!!
Sholay, 1975.
Change is the most powerfull law of nature. You need to keep moving to achieve growth and success. Once we get good oppurtunity we move on to a different organization. I still remember one of the famous Indian enterprenur once said. “Don’t love your company, Love your work”. Although this might be true we still need to have respect and loyality towards the organization we are working in. We have to maintain decipline and not take undue advantages of the facilities provided by the company. Few of my friends used to stay in company till 8.30PM in night everyday. I used to appreciate their dedication till I found out the reason for their late schedule. The reason was , hold your breath, the company used to provide free dinner and free cab dropoff after 8.30PM. Another friend of mine used to work for a company which used to provide telecommute option to all of its employees. Well for starters telecommute means “work for home”. This is really a good option since it saves a lot of travelling time. We can utilize all the time we waste on roads in a good way. This option definetly improves the work-life balance. My friend used to take this option “work from home” every 3 days a week. But only change was “work” was missing from his schedule when he used to be home. This is a balant cheating, its like robbing your organization , their client and other loyal employeers of valuable time and money. Remember , work from home means you have to treat your home as work place and bheave in exactly the same way as you were in office, period.
Another way of robbing time could be spending a lot of time in company cafetia or recreation area of your company. Please remember that these areas are provided so that you can take a break from your work. But some people make this other way round. They start working when they take break from these places.
Mere paas maan hai..
Deevar, 1975
After working loyally and faithfully for almost 3 years in the same company and always proving myself again and again I was amazed when a new person with almost same level of experience as me was named technical architect instead of me. I the only qualification he seemed to have was “onsite experience” of around 2 years. The fact that he was laid off in this “onsite” country due to economic slowdown dint bother any one. It’s a well known fact now that India is one of the best producers of engineers in the world.
Alghough engineers from IITS and MBAS from IIMS have been been hired by best of multinationals since beginning even less known engineering colleges and universities are not far behind.
http://www.rediff.com/money/2007/jul/05eng.htm
Today india and indians have achieved a lot in software industry. More than 20 Indian software companies have achieved the prestigious SEI-CMM level. India also has the highest number of ISO-9000 software organizations. In the U.S alone, more than 80% have ranked India as their first choice, when outsourcing software and IT services. The U.S has also recognized India as an outsourcing superpower. Although I agree that above statements is bound to open “can of worms” and some readers would disagree with me saying that India is chose not because of quality but because of cost. But we all agree that Indian engineers have proved themselves time and again but still the indian management has a mind set of treating “foreign returned” engineers differently compared to local experienced.“Good quality engineer” is product of education, work experience, and opportunities to grow. Engineers in same Corporation should be paid equaly in different countries, period. There are mind set shift necessary when you hire talent. But this will take time till then if your onsite colleague tells you that today he has a flat, a car, and a TV and asks you what do you have . Just tell him .. Mere paas maan hai.. which means I have mother and mother land.
Subscribe to:
Posts (Atom)