Lucky to attend event organised by thoughtworks featuring Martin fowler in chennai. I never thought in my life I might get a chance to attend a event having Martin Fowler as a speaker. He gave a talk similar to suiteoftalks that he has been following of late. The areas he covered in his talks include Continuous Integration/Delivery, Strategic and Utility projects and Domain Specific languages, none of this is new if you have been following his blog closely. I was just happy to hear him talk probably this was the first time I am meeting someone in person who has made great contribution to the software community. After the talk I got a chance to have a personal chat with him and raised question about my dilema of whether to move forward to DVCS (git, mercurial) rather than the current source control (Borland StarTeam) that we have, his direct answer was "Depends on the maturity of the team, if the team is mature, DVCS is the way to go".
Hope I get a chance to meet more people like him in the future (Anders Hejlsberg ranks high on that list).
Prem's views on life, .net and software development (everything contained in one strongly typed weblog).
Friday, December 17, 2010
Explaining things effectively
I have always been fascinated how people come up with good visual ways of explaining complex things, this video is one such appreciative work on explanation of quicksort algorithm (link got from blog of my friend Santhosh Ahuja). Being in the software field and involved heavily in recruitment of people at various levels, what I have learnt is it's easier to find people with sound knowledge but difficult to see them possess the art of explaining things effectively (which unfortunately is a key trait needed in a personnel not only in the software field but in other fields as well).
Quicksort Explanation Video
Quicksort Explanation Video
Monday, October 25, 2010
Attended Jean Paul Boodhoo's NBDN Remote program
Couple of weeks (October 11th - October 15th) ago I had the opportunity to attend JP Boodhoo's Nothing But Dot Net remote course. I was very interested to learn more about TDD and getting myself comfortable with some of the advanced concepts in C#.
I wouldn't classify this course as advanced course in C#, rather it was advanced basics in C#. The first day JP gave us a simple task of filtering/sorting sample, JP had created test cases for each of the filtering/sorting scenario and we were writing code to make the test case pass. We went from creating a simple for loop to all the way of creating generic delegates to handle most of the collection related activities, we learnt how we could use delegates and generics effectively.
The next couple of days we created a the fictitious web application that has a shopping catalog and JP taught us about using FrontController architecture for building the application.
The final day JP discussed about the Inversion of Control Container and showed us how to create a container from scratch. I always understood the concept of dependency injection but didn't have a good idea of containers, after this session I was not only able to clearly understand the need of containers but understand the inner workings of container since we created one from scratch.
JP's style of teaching is awesome, he starts by giving us a simple code piece and takes the code of the team that completes the task first and starts refactoring the code from there. His inspirational talks all along the course was an added bonus.
A cool added knowledge I got from the course was the knowledge of DVCS (usage of git and github) for coding purpose, I understand how effective DVCS is over the traditional source control repository and how to use it effectively in the current projects where we do quite a lot of branching.
I would seriously recommend this course to anybody who has been doing OOPS development (not necessarily c#) for atleast 5-6 years to take this course and understand what the real OOPS development is all about. I don't think anybody would walk out of the course and say that they are an TDD expert or anything of that sort (and JP doesn't expect you to say that as well), the course makes you understand where you stand and gives pointers on where to go from here and how to achieve your goals. I certainly think the course would have profound impact in my professional as well as personnel life. Since I was from India and JP has never been to India for taking NBDN courses, I had no choice but to take NBDN remote course, given a choice I would advice people to take NBDN direct course rather than remote course since you would be interacting with JP and your fellow developers directly which would be even more awesome. JP has promised to come down to India some time soon and I am looking forward to attending the NBDN direct course once again.
The only difficult part for me was I was attending the course from Chennai, India the course timing for my time zone was from 9 PM to 9 AM India time. I tried to get as much sleep possible during my day time, but it was not possible to get good amount of sleep and I was mentally exhausted by the end of the week.
Even though I paid for the course myself, it was money well spent. Now I am off to read through the books suggested by JP. I have successfully completed my first objective of reading through "Refactor with Wetware" by Andy Hunt. Now comes the difficult part, applying it in real life :)
I wouldn't classify this course as advanced course in C#, rather it was advanced basics in C#. The first day JP gave us a simple task of filtering/sorting sample, JP had created test cases for each of the filtering/sorting scenario and we were writing code to make the test case pass. We went from creating a simple for loop to all the way of creating generic delegates to handle most of the collection related activities, we learnt how we could use delegates and generics effectively.
The next couple of days we created a the fictitious web application that has a shopping catalog and JP taught us about using FrontController architecture for building the application.
The final day JP discussed about the Inversion of Control Container and showed us how to create a container from scratch. I always understood the concept of dependency injection but didn't have a good idea of containers, after this session I was not only able to clearly understand the need of containers but understand the inner workings of container since we created one from scratch.
JP's style of teaching is awesome, he starts by giving us a simple code piece and takes the code of the team that completes the task first and starts refactoring the code from there. His inspirational talks all along the course was an added bonus.
A cool added knowledge I got from the course was the knowledge of DVCS (usage of git and github) for coding purpose, I understand how effective DVCS is over the traditional source control repository and how to use it effectively in the current projects where we do quite a lot of branching.
I would seriously recommend this course to anybody who has been doing OOPS development (not necessarily c#) for atleast 5-6 years to take this course and understand what the real OOPS development is all about. I don't think anybody would walk out of the course and say that they are an TDD expert or anything of that sort (and JP doesn't expect you to say that as well), the course makes you understand where you stand and gives pointers on where to go from here and how to achieve your goals. I certainly think the course would have profound impact in my professional as well as personnel life. Since I was from India and JP has never been to India for taking NBDN courses, I had no choice but to take NBDN remote course, given a choice I would advice people to take NBDN direct course rather than remote course since you would be interacting with JP and your fellow developers directly which would be even more awesome. JP has promised to come down to India some time soon and I am looking forward to attending the NBDN direct course once again.
The only difficult part for me was I was attending the course from Chennai, India the course timing for my time zone was from 9 PM to 9 AM India time. I tried to get as much sleep possible during my day time, but it was not possible to get good amount of sleep and I was mentally exhausted by the end of the week.
Even though I paid for the course myself, it was money well spent. Now I am off to read through the books suggested by JP. I have successfully completed my first objective of reading through "Refactor with Wetware" by Andy Hunt. Now comes the difficult part, applying it in real life :)
Friday, February 19, 2010
Cool SQL tool - SQL Heartbeat
I have lived many a days watching performance of SQL queries using SQL Profiler (Claims Inquiry??? - for people who knew about it) . Finding ways to improve the time taken and optimizing the same was a fun exercise; I always hate the idea of using SQL profiler, I always thought it was probably one of the worse Microsoft tools without good user interaction, I agreee that it was one of the powerful tools available to monitor SQL Server but not the best tool in terms of user interaction.
Anybody who feels the same way should try (free) tool SQL Heartbeat, it gives the information of your database in a visual way so it makes it easy to grasp the data.
Processes grow larger as they use more resources. Red balloons appear when locking occurs. Download it from: sqlsolutions
Anybody who feels the same way should try (free) tool SQL Heartbeat, it gives the information of your database in a visual way so it makes it easy to grasp the data.
Processes grow larger as they use more resources. Red balloons appear when locking occurs. Download it from: sqlsolutions
Thursday, January 21, 2010
Interesting Video on "What stops population growth"
While reading bill gates new website The Gates Notes stumbled upon a good link for a presentation by Hans Rosling on What stops Population Growth, it gives a totally different thinking on population growth in world. I liked the way Rosling uses very little time and excellent charts/graphs to convey the points effectively across to the audience.
While in the gapminder website, take a look at the various statistics they have to compare countries and how they stack up against the world. Excellent usage of charts and graphs to compare countries !!
While in the gapminder website, take a look at the various statistics they have to compare countries and how they stack up against the world. Excellent usage of charts and graphs to compare countries !!
Tuesday, December 15, 2009
Performance Issues
I have been part of software projects where we constantly have to tune the code (C#/SQL) for performance improvements. The question you have to ask yourself before doing any code change for performance is "Does this code really warrant changes for performance issues"? Most of the time someone would say changing the code to use LINQ instead of for each loop would make it faster.. Most of the time such recommendations tend to be wrong. Write code that is readable/maintainable before thinking too much about the performance issues.
Always, Always measure your performance problems before and after making code changes to conclude that you have impacted code in a positive way. Even though this principal applies for both code that is in active development and production, it is critical in case of code that has already been deployed to production.
One of my favorite c# blogger John Skeet wrote an excellent article on this topic. He sums it up real nice in one line "Performance is important - too important to be guessed about instead of measured."
Always, Always measure your performance problems before and after making code changes to conclude that you have impacted code in a positive way. Even though this principal applies for both code that is in active development and production, it is critical in case of code that has already been deployed to production.
One of my favorite c# blogger John Skeet wrote an excellent article on this topic. He sums it up real nice in one line "Performance is important - too important to be guessed about instead of measured."
Monday, November 23, 2009
Funny Take on LinkedIn
This was a real funny take on the Jod oriented social networking site LinkedIn.
Anybody who knows what a linked in is should see this :)
Anybody who knows what a linked in is should see this :)
Wednesday, September 16, 2009
Cool new technology
Wanted to blog about this new product/application/company that made waves in the techcrunch top 50 of 2009.. IMO is an application that would turn your iphone to a joystick kind of device for your PC games.. I think this is a nice idea, sure it's not going to beat wii in terms of gameplay, but I am impressed with the idea of controlling your PC games using your iphone or ipod touch.
I was really surprised to see that this company is run by bunch of guys from Gurgoen, India.. nice to see an indian company making waves in innovation rather than doing the mundane software development/maintenance
I was really surprised to see that this company is run by bunch of guys from Gurgoen, India.. nice to see an indian company making waves in innovation rather than doing the mundane software development/maintenance
Monday, June 15, 2009
SQL Server Optimization tips
Nice article on SQL Server Optimization tips and performance consideration for selecting SQL Server data types.
Most of the content of this article would have been greek and latin to me had I not been working in Lumenos.
I still remember those days when I used to write "Extravaganza Report" in one single stored procedure spanning 2000 lines. I have moved more toward ORM based architecture these days in my current company, but I still think a report as complex (it really was) as extravaganza needs stored procedure for the kind of SLA that was expected out it..
Most of the content of this article would have been greek and latin to me had I not been working in Lumenos.
I still remember those days when I used to write "Extravaganza Report" in one single stored procedure spanning 2000 lines. I have moved more toward ORM based architecture these days in my current company, but I still think a report as complex (it really was) as extravaganza needs stored procedure for the kind of SLA that was expected out it..
Thursday, June 11, 2009
Scenarios when you can use struct
Nice article by Chris Eargle on when we should use structs:
He mentions the following criteria for creating struct
1. Does it represent a single value?
2. Will the instance size be under 16 bytes?
3. Should it be immutable (modifications actually make a new copy in memory, forcing you to pass by ref to methods)?
4. Will this rarely need to be boxed (cast to an object)?
5. Will it usually be short-lived?
6. Will it mostly be embedded in other objects?
Click here to read the full article
He mentions the following criteria for creating struct
1. Does it represent a single value?
2. Will the instance size be under 16 bytes?
3. Should it be immutable (modifications actually make a new copy in memory, forcing you to pass by ref to methods)?
4. Will this rarely need to be boxed (cast to an object)?
5. Will it usually be short-lived?
6. Will it mostly be embedded in other objects?
Click here to read the full article
Subscribe to:
Posts (Atom)
Loading...