I was just going through the my blog url referrers and found this url which points to my own blog but in different language. I certainly dont understand or know what language is this and i am certainly sure that its my blog because it show case my writeup on blueclove which happens to be a bluetooth stack on windows xp, by the way this also happens to be one of the most read writeup.
i was just going through the documentation section of the Google Apps. There was some videos which i thought is the best way to get to know things. I must say this was the best ever presentation i had come across till now. it was just specific to the point and will have a impact on its customers . whats the big deal its google! might be the kinda first reaction from people. We all know google ‘s expertise in xyz blah blah stuff, But thats not the point. The fact of the matter is of the creativity of the presentations. it just ease its essence to customers.
The presentaitons links are as follows :-
http://www.google.com/a/help/intl/en/admins/video/salesforce_video.html (excellent presentation)
Well,its been some time since i penned for my blog. But better late than never… I came across a issue which was quite interesting. It had atleast 5k loc, which i was wondering like wat made the previous developer to code so much for a functionality,after all 5k is some amout of code right? Initially when i went through the code i was kind of felt that previous developer has compromisd with the OOP concepts ,and after understanding the code completely i felt like both the design and OOPs principle is compromised.
Now the problem is quite simple which involves checking for some elements if its same and offcourse the data is quite a lot, again the way the data objects were designed is some thing which i wanna forget as soon as possible. I think this code is the perfect example for “code smell” (any thought work guy will agree with it once he goes through that code :p)
So the problem is as simple as this , it has N number of data objects of set x and N number of objects of set y. it needs to be just verify if these data is same and there is certain constraints like say if some option is checked (ie in checkbox) or if some option is selected in the combobox , only that attribute needs to be verified.
So, when i am given to code , first and foremost thing i think is about the data structure of the data object. secondly the algorithm to use which results in maximum performance and least cost of both memory and CPU time , which is directly proportional to the number of passes you take to verify.
As the basic task is to just verify i would have used some generic algorithm which verifies any kind of data, (I would like to keep the explanation simple as i will be writing an algorithm in my next post).
secondly when there is a constraints, one thinks of using series of “If else ” conditionals , but offcourse your code clutters and i personally feel the “if else” conditionals is just too much for say N number of conditonals, and its bound to change later , so its important to use an “if else ” breaker design pattern 🙂
The design abstract is some thing which is a combination of a proper use of data structure + verifying algorithm + “if else ” break design pattern thats it and if required we shall refactor the code once its done.
In my next post i will device both the algorithm and code in either java or groovy or python.
The main purpose of this title is because i had lots of questions which needs to be answered. they are as follows:-
- why developers wont follow the proved practice and why the management wont encourage to go with the proper design and allocate enough time for the same?
- why the OOP concept is compromised?
- why people just give excuses when asked about the good design and coding standards?
- Is management just worried about the productivity and is the good design and proved software development practices a cost we pay for it ?
- Do the management think about the maintenance problems with such a haphazard design?
- Is the concepts of “software engineering” and “system analysis and Design” which we studied is just meant for exams ?
- should Project managers(technical managers who review it ) be blamed for it or is it the software engineer responsible for it.
- In spite of knowing the repercussions of the bad design and horrible coding standards why many well known product based / service based companies dont bother to give importance to it?
Still i cant think of any answers for these…..
Its been early days for me with LISP. A great deal of time went in searching the tools like tutorial , IDE , LISP compiler etc (its indeed a confusion to choose). finally everything is settled down , guess which editor is chosen for LISP? its Eclipse, the CUSP plugin is great though the lisp purists argue that emacs or slime is the ideal one. I feel eclipse + cusp = great LISP environment.
As for as tutorials for LISP is concerned SICP is the best but i feel the Apress publications Practical Common LISP is some thing which i can digest. I have been using the LISPBOX which is tailor made for the newbie like me. Its just simple download , decompress and launch the SLIME else install the CUSP (be sure to choose the CLISP of LISPBOX instead of SBCL which is a default LISP for CUSP plugin). And there you are up and running your LISP environment.
LISP is extremely interesting. I initially had an idea like its only meant for stuff like AI, or some mathematical computing, but i was thrilled to learn that its not the case. You can use LISP to develop some webapplication as well. it has a persistance called Elephant and the web server called Hachentoot.
LISP is really cool and i am sure i shall get use to it in some time. do check this section for more updates.
Yes, I am alive.. its been long time since i blogged. This post is kinda to say that i am alive 🙂 I have been playing around with groovy,Common LISP. I feel Common LISP is one language to learn properly. will be back in near future with my experiences with LISP and Groovy…..
JRuby Meta Programming
Open JDK (Tentitive)
Date :-23rd December 2007, Sunday
Time :-10-30 am.
ThoughtWorks, Diamond district(building name)
Airport road, Bangalore
There is an hands on Lab kinda session on Design Patterns. So dont forget to get your Laptops.
I just went through this article from one of the blogs, which says like Ubuntu will have HDD in trouble when your laptop is running on the battery. The reason is that, the disk heads are parked as part of the power saving strategy. When the disk needs to be accessed, the heads are unparked.This can only happen about 600000 times before a disk becomes likely to fail :p.
Its been found that “Feisty and Gusty releases of Ubuntu do this up to 4 times per minute, which is _bad_, considering that kind of frequency gives your hard disk a life expectancy of 104 days! ” it seems , which is really an alarming issue to the Ubuntu team.
All said and done , now whats the solution? The solution is to turn off this power management issue by executing the following commands.
” sudo hdparm -B 255 /dev/sda ” :- to turn off the power management.
“sudo smartctl -d ata -a /dev/sda | grep Load_Cycle_Count” :- to check life left in your hard disk :p
I hope that ubuntu team team take this issues seriously before it looses its faithful users.