Archive for the ‘General’ Category

Random differences between CodeIgniter and symfony

Thursday, November 12th, 2009

1) CodeIgniter is sleek, easy to learn compared to symfony.

2) CodeIgniter project set up time is very less compared to symfony.

3) CodeIgniter works well for something quick and small, symfony hits when it comes for complicated projects.

4) As CodeIgniter does not accept arguments via the command line, you can not call a specific controller or function, a work around should be adopted but it’s not the case with symfony as it provides a concept called task.

5) CodeIgniter does not have any code generators like symfony which completely rocks symfony.

6) Working with fixtures makes life easier in symfony during development phasem, this is missing in codeIgniter again a run  around should be done.

7) Symfony allows to view the queries fired through development environment but codeIgniter has no such option.

Team Outing at The Rappa!

Monday, November 9th, 2009

dsc03198.JPG

Last weekend we went to The Rappa -An Island Eco Resort located 210 kms away from Bangalore near Hassan. We left Bangalore on the 31st of October at 7.15am, families were also invited. The bus took the NICE Road till Magadi and we stopped at Kunigal for Breakfast. We played Dumb Charades, Cards, Housie and Antakshari during the journey. We were only few kms away from Rappa when we had to stop our bus as the road ahead was blocked due to temple inauguration in the village. We were invited to join in the festivities as it would take 2 hours to clear the road ……so we decided to do the 30 minutes walk in the afternoon sun accompanied by the cool breeze from the river to reach Rappa. We were welcomed by 3 lovely dogs -Shunti(Pomeranian), Brownie(Golden Retriever) , Shadow(Basset Hound) and another surprise awaiting us was Jack, a mighty horse which was brought to Rappa a month ago. We were so excited to check out our accommodations which were Machans, Tree houses and Swiss Tents spread beside the river. After the walk, we had all worked out a good appetite and so we enjoyed the lunch.

Nobody wanted to rest so we started with the games. We had four teams for each game which were divided earlier and each team came up with team names like Jinis, Shakalaka boom boom , Rainbow, TechJini Warriors, Parasites and Halloween. Yes, Amal we haven’t sensored ‘Shakalaka boom boom’ from being mentioned in this blog :)

We started with Lagori which was good fun and The Rainbow team won the game….. of course there were lot of fights which added to the fun. It was not tiring enough for few so we decided to play Cricket followed by Foot ball. I guess too much work and no play gave everyone too much energy :) we didn’t even want to take the tea break. The Sun was setting by then and we were surrounded by good music, chill breeze and everybody settled down on the sand around the campfire under the dark sky, full moon and stars shining bright (which we hardly get to see here due to city light). After soaking into the lovely atmosphere everybody started dancing and singing along with the music. We had hot hot bajjis and chicken kebab served during the campfire. The dancing did not stop till the fire went off and we had dinner around 12. People at Rappa had planned a Night trek for us. We drove 20 kms from Rappa to reach the point where we had to begin the climb to the top of the hill. We started the climb accompanied by the Shunti, Shadow and Brown with the help of Moon Light. There is a temple on top which is opened once a week to worship God. The view from atop was spectacular (Should be clear and better in day light) . We could see other range of hills, forest and Tipu’s Fort below. It was quiet, dark and very cold on top. We sat there, enjoyed the view and listened to the stories of Tipu Sultan and his secret underground path told to us by our Trek Guide(Nagesh). And yes how can I forgot Rohit and Santosh have lost their 4 hours of memory due to too much mixing of water and juice :)

We came back to Rappa at 4am to catch up on some sleep and were up by 6.30 to do Kayaking. The river is wide and long as it is a place were two rivers meet and there is an island in the middle of the river. Most of us went rowing till the island and some went swimming in the deep waters.

We had a good breakfast of bread, jam, butter, omelet , poori, saagu, orange juice,tea and coffee. We went by the river side to play team building games to encourage bonding among each other. Each team had 6 members in this game and one person was blindfolded. The blindfolded person would lead the line and rest stand behind to pass on the instructions given from the last person. The twist in the game was that no member was allowed to speak. Instructions were to be passed on only through actions. There was a start line and finish line and on the way three objects were placed. The blindfolded person had to pick up these objects and then move ahead to the finish line. The Rainbow team won this game as well. The second game we played was ‘Brick Game’. There were 6 members in each team and were given 4 bricks. Three people had to step only on the bricks and three would move the bricks to make sure those on bricks are moving ahead towards the finish line without stepping on the ground.

We were physically getting tired and people started complaining about body pain :) so the next game we played was ‘Create an Ad’ where each team had to Create an Ad on the given product , name the product and enact. The products given were Baby Nappies, Glue, Designer Saree, Hair Growth Cream, Fat losing Belt, Detergent Powder and Mouth Freshener. This was real fun and told us a lot about people’s personal life like how is Akshi as a wife, Amit Singh as a husband and how was Rohit’s childhood :D

It was lunch time by then and we had to check- out after lunch so we packed our bags had lunch and left Rappa half hearted.

dsc01254.JPG

 dsc03221.JPG

 dsc01213.JPG

dsc03353.JPG

dsc01219.JPG

You are NOT an iPhone developer

Saturday, October 24th, 2009

After interviewing several iPhone developers here in Bangalore, I am really frustrated. We already have a team of iPhone developers (who are the best) and now we are trying to add a couple more people to the team. But we have not been able to hire even 1 person after more than 40 interviews. And we have interviewed candidates from all types of companies, big (the top 10) and small.

Well, lets get this straight, you are NOT an iPhone developer if:

  • you have no idea why you write “nonatomic” and “retain” in all properties. And you’ve never tried to find out.
  • you cannot tell the difference between release and autorelease
  • you hear the terms “main run loop” or “event loop” for the first time during the interview
  • you think all classes are either views or controllers
  • you have never written code for “applicationDidReceiveMemoryWarning” and “didReceiveMemoryWarning”
  • you do not know if you should release objects you created by through “copy” or “mutableCopy”
  • the terms build configurations and provisioning profiles do not ring a bell
  • you have never even seen the iPhone HIG (Human Interface Guidelines) document
  • you think both “viewDidLoad” and “loadView” are same methods
  • you have never used breakpoints and the debugger
  • you have never used the Instruments Application to monitor memory or network usage
  • you do not know how to read crash logs or how to add symbols to crash logs
  • even after programming for iPhone, you do not know about the Model-View-Controller pattern or the delegate pattern

And in case you are just starting off with iPhone programming, it would be wise to know the basics of both objective-C and the iPhone SDK. Don’t skip reading at least the following:

Thunderbird 3 beta 4 - Search and Conversations (Gloda)

Thursday, September 17th, 2009

I have been using Thunderbird 3 (various beta) for quite some time now. There were quite a few new features but the ones I really liked or have been most useful were ‘tabs’ and new ‘Lightning’ add-ons.

Thundebird 3 tabs

I mostly use tabs to remind me of important emails. One, they are always in front and second when I restart Thunderbird I don’t have to look for them again as Thunderbird remembers/maintains last open tabs. Ofcourse tabs are also very helpful in keeping all open windows clean.
New Lightning addon works well with google calendar. Very helpful when sharing different calendars with different people. It synchs well and also gives reminders.

But thats not what excited me enough to write this article :) I upgrade to b4 pre today and they have included Gloda search engine based search and conversations. Earlier it was available as an add on and I tried this earlier with b2 but it didn’t work.

Thunderbird 3 search everywhere

Thunderbird 2 has per folder indexing which is not so helpful. You will have several folders and then your replies going into sent items. So what is needed is a tool to search across all folders. Also several times you need to read full conversations which is very very difficult right now. Thunderbird 3 has this powerful search engine ‘Gloda’ which search across all the folders and presents them either as a list or as conversations. WOW!! could it get better? :)

Now you can search your entire mailbox, rss feeds etc from single place and that too with lot of intelligent options. The result is also displayed very nicely. You have several filters to further refine search/conversations.

Thunderbird search

Thunderbird conversations

Thunderbird 3 beta 4 (Shredder)

Independence Day Celebration!!

Wednesday, August 19th, 2009

Independence Day was just around the corner and we started planning for the special day!! Typical ideas like having ethnic day, giving away best dressed award, games, team lunch etc etc came up….I was discussing these ideas with Amit and a great idea of spending time with children in an Orphanage came up. The team was very supportive and contributed generously to organize the activities. The Company decided to contribute the same amount that was collected from the team :-) . We identified a Ashram called Anatha Sishu Sevashram located in Wilson Garden and planned to make the visit on Friday (14.08.09) as the children would be engaged in school activities on the 15th ).

We organized for distributing snacks, gifts (thanks to Akshi,Arun and Santosh) and planned to conduct games for the children. Another objective of the visit was to identify long term needs of the children and the Ashram so that we could help them in their development and not just provide them with momentary happiness.

As some of the team members were caught up at work :-( (we missed you all) only 10 of us visited the Ashram. We reached the Ashram late in the afternoon and were glad to see that the children were back from school. The Ashram is an old house which needs infrastructural development (like painting, lighting, modern amenities) and accommodates 60 kids at present . There is a play area , garden with fruit bearing trees, washing area for the children and a friendly Dog named Belli  :-) (means silver in English). We met Parvathamma (blind lady) who runs the Ashram and spent time talking to kids about their School and how they spend time in the Ashram. We then distributed snacks, gifts and asked every child to write a wish list. The children were welcoming and disciplined. Majority of the children were able to understand English hence we  were able to communicate with little difficulty.

It felt nice to bring a smile on the face of the children. We plan to sponsor education, provide uniforms for the children in future (during June-July) and get involved in the development of the Ashram.

As the children had to do their home work we could not conduct games  :-( but we did play in the swing, see-saw, slide!!!! :-)

Pillars of TechJini - Sapna

Friday, August 7th, 2009

Yesterday while driving back home I saw Sapna, one of our PHP team members (almost running) to catch probably what was her last bus. I offered her a lift till her stop and then when I was coming back I thought I will write about ‘GEMS’ / ‘Pillars’ of TechJini. People who make TechJini what it is today, our ‘power performers’. Initially I thought we should have ‘performer of the month’ but then I realized I will end up writing about everyone anyways :)

Sapna was impressive right from the first question of her interview. We have very strict interview process and have history of upsetting recruitment companies (we keep on asking for candidates but no offers). There was not even a single question which I asked her and she had to think. She always had a way to solve the problem instantly, not always the best way but she always knew in which direction to go. Her interview went for 3 hours then I told Shyamal she is really good. He was pleasantly surprised as I have not said that often so he went to talk to her. He talked to her for another 2 hours. Thats a good sign when Shyamal doesn’t send someone back in first 15 minutes.

She is spontaneous - Always has a solution
She is VERY hard working - Travels daily for 2 hours (one way) in ‘local transport’ and usually one of the last ones to leave office. And yes mostly among early comers too.
Extremely dedicated - She is one of few persons I have never seen taking a break.
Desire to learn - Never settles with the solutions, she always wants to know why? how?
Dependable - If any work is assigned to her, you can be sure it will be done and she will not rest until its done.
Proactive and Responsible - Even when she was over loaded she volunteered to take up second project.
She is very emotional - She scared everyone on her first day when she started crying during our group lunch. She was missing her colleagues from old company.

We thought she was a very serious person until we went on our river trip. It was so difficult to get her out of the water :) Sapna is one of our ‘jinis’ :)

Writing good code - Design patterns group formed

Thursday, August 6th, 2009

This is how we at TechJini define good code
- Code that fulfills customer requirement. This is the most important of all, no matter how you have coded, what process you have followed if it doesn’t do what is expected of it, its useless. Ofcourse has to be bug free.
- Easily maintainable code. Do not write thinking that you are responsible only for version 1.0. Think ahead, code should be very easy to maintain. Easy maintenance include - easy for new team members to understand, easy to test, easy to change/add features, well documented etc
- Reusable. Code which can be transformed into components and reused.
- Thoroughly tested, test cases should have full (maximum possible) code coverage.
- Future and change ready.

There are several things we can do to ensure that we write ‘good code’, one of the way is to start with good design. Understanding and having ability to correctly utilize OOP concepts and design patterns. To ensure that everyone in our company is a master we have formed and started TechJini Design Patterms study group. We had our first class yesterday which covered introduction of OOP concept and healthy discussion covering real life examples trying to model real life problems. Its clear that everyone has good base and is an expert in analysing and applying OOP concepts, so we expect to have good discussions in future.

Next session is about Abstract Factory Pattern. Looking forward to it.

HTC Magic - android phone in India total let down

Friday, July 17th, 2009

UPDATE 18th Aug 2009:

Finally fastboot problem of perfected SPL is taken care of. We were able to flash new ROM on our android. Google Maps, Android Market, Gmail, Quickoffice, youtube etc are available.

We also tested our application Aw’ Shugs, need some tweaking.

Following links were extremely useful.
http://forum.xda-developers.com/showthread.php?t=548218
http://forum.xda-developers.com/showthread.php?p=4335330#post4335330
How to create GoldCard

All credit goes to xda-developers guys.
————————————————————————————
We bought HTC Magic India’s first and only android phone hoping to test our applications but it has been a total let down. Complete waste of money.
- Cannot root it. SAPPHIRE PVT 32A SHIP S-ON H, HBOOT-1.33.0010 (SAPP10000) CPLD-12 which cannot be rooted.
- There is no android market
- There are no applications by default for eg google maps.

All you get is an expensive touch phone with normal features and no useful app.

We called at least 30 dealers before purchasing and none of us any idea what is android market and whether handsets will have it or not. Only response was buy it to find it. I contacted HTC support asking them how to install google maps, they gave me long instructions on how to use android market to install google maps :) Anyway, it took 3-4 emails and then they realized this handset does not have android market with no immediate plans to release it.

If you are planning to buy HTC magic (India) for development, don’t.

Images after upgrade:

Phone after the upgrade | newdevice2.png

Democratic Company - everyone tells how their preformance should be evaluated.

Friday, January 23rd, 2009

We have these open sessions regularly in our company where everyone talks about why they chose TechJini, what they like here, what should be changed, we share company’s vision, goals and make everyone understand how they are part of it.
Today’s session was to decide ‘appraisal policy’ i.e. on what criteria company should judge performance. Following are the inputs and will form the basis of our policy.

  1. Initiative / pro-activeness - Do I wait for work to be assigned to me? Even after seeing/knowing about a bug do I wait for someone to raise it?
  2. Following deadlines Following deadlines in itself is not a sign of ‘good performance’ that’s what we are ’supposed’ to do anyways but its considered as good performance if you are given something completely new and you ‘learn and deliver’ or you have a completely untrained team or in any other special scenario.
  3. Commitment / ownership - Accepting the bottom line of any work you do. One of the examples given was if I go on a leave I will ensure that none of my project/customers/work is affected, I will do the needful (without someone telling me) to transfer knowledge and if some urgency happens I will be taking out time from my vacation to help the new/replacement team.
  4. Doing more than what was assigned - Have I worked on projects/tasks which were not part of my regular work? Do I also participate in other activities which do not fall in my job description?
  5. Customer Oriented - Do I always think of what is best for the customer? Do I keep in mind which feature, technology, code will help improve performance and will benefit customer in long run? Do I always point out issues before customer does? Do I get nervous and excited with the customer?
  6. Domain Understanding - At the end of the project do I completely understand the domain?
  7. Knowledge sharing - Am I contributing to company’s body of knowledge? Am I taking sessions or writing articles to share my learning? Am I being approached by team members to solve issues?
  8. Acquiring knowledge - Am I learning only enough to finish the task or at the end of project I am capable of becoming a tech lead for similar technologies?
  9. Homework / spoon-feeding - Am I always finishing my homework before asking for help? Do I ask questions the smart way? Do I need spoon-feeding?
  10. Then there are other good to have skills like general behavior with others, influencing/persuading skills, communication

We also had very interesting discussion on what we think is ‘hard work’.

What we like and dislike about TechJini - Joys and pains of working with TechJini (a start up or small company)

Tuesday, January 20th, 2009

Right from the heart, this is what we ‘jinies’ (I just invented that term :) ) have to say about life at TechJini.
So here is what we like and what we would like to change:

  1. Exposure - We get exposed to different kind of work, something we will get to do in 2 years in a big organization we get to do it in first few months only. - Nuwas
  2. Good Learning - With so many new projects and all with different technology there are new challenges and lot to learn almost every day. - Akshi
  3. More responsibility - Our work is not limited to what is assigned and just coding or testing or designing. We do almost everything and very early in our career. - Everyone
  4. Different technologies - Exposure to different technologies and very easy to shift/learn. We get all the help but are also encouraged and showed how to do quick self learning. This acts as a big confidence boost. - Vipindas
  5. Flexible timings - Flexible working hours in true sense. No enforcement of mandatory working hours, can work from home, if I work on holiday I am given a compensatory off or cash - Everyone
  6. Friendly environment - Very very friendly environment, there are no bosses (absolutely no hierarchy), feels like a small family, even policies are made after open discussions - Everyone
  7. Technical Challenges - We get to face more technical challenges which is making us better programmers. - Everyone
  8. Neelima - Very friendly and helpful person, someone we will not have anywhere else - Sapna
  9. No bureaucracy or politics - Cant be more democratic and fair then in TechJini - Everyone
  10. Open to do whatever I want - I get enough opportunity, time and space to do whatever I want other than my regular work. I was able to finish a certification (which company is happy to pay for) and I can interact with everyone in the company - Arun
  11. No bench - We have never seen anyone without work. There is absolutely no bench and so many product ideas to work on.
  12. My product - Only place where I am encouraged and given full opportunity to work on my own idea and the best part is I don’t have to work alone, everyone in the company will work on my idea.
  13. Formal corporate culture - Culture here is too relaxed, we are serious in what we do but we do not get to see a very formal corporate culture which also has lot to teach.
  14. Brand Name - All the benefits of working for a big brand name.
  15. Company conveyance - hmm…. :)
  16. 6 days a week - Sometimes it pinches that our friends are having fun but we work on Saturdays too. Even though we do not do regular work (extra learning or activities) but still.
  17. Good Office building - We need to move to an attractive address soon, guys are finding it difficult to call prospective in-laws ;)
  18. Website - NEED to change website.

Update:
- Website changed :)