Tuesday, 22 March 2005
Renewed Renault
Renault really seems strong at this moment of time in F1. Looking at the performances till date in the new season, we are forced to think that 'Days of Ferrari dominance are over'. At the same time I think these are the days of Renault dominance. I have little doubt in my mind about Alonso n Renault being on top this year. This car seems to have a very powerful engine as compared to earlier Renault cars with as always great aerodynamics giving it an edge in handling over the other cars( At least this is what I hear from other people and I haven't driven the new car, Hehe).
However, there was one disappointing thing for me so far as this new season is concerned and that is "New Montoya" that we see on the track. No aggression, no bolt overtaking, no amitious rash starts, no heated word-exchanges. This is not the Montoya we've been used to looking at. This is a very sad thing if Montoya has changed his attitude towards driving. He said to a press conference that he has absolutely no problem with him being second driver in the team and that even he thinks that Kimi is a better driver. If Montoya really thinks that way, I think this is the end of a great driver which F1 once had. Perhaps, he is waiting and watching at the start of the new season, getting used to the new rules and his new team( I hope so..). I think even in 2005, he has had better results compared to Kimi and he is as good as any other driver (i am talking about the front-runners) in F1.
Talking of Kimi, he drove a good race and in the process I think he tried a bit too hard ending in a tyre failure. The new Mclaren is not as impressive as it should have been after 'very poor performance not suitable to Mclaren reputation last year'.
All in all a good demanding race. Not a bad result for Montoya. Excellent performance by Alonso and Renault.
Monday, 7 March 2005
Picture Perfect!!!
ENGINES
Engines must now last for two races, rather than just one, with any unscheduled change resulting in a 10-place penalty on the starting grid. That will put a premium on reliability. "Every second grand prix is going to be tough, particularly Malaysia
where we'll all be stepping into the unknown," says Williams'
Australian driver Mark Webber. The change is aimed at cutting costs and improving safety through reduced speeds. A two-race engine should be less powerful than one
designed for half the distance.
QUALIFYING
Qualifying will be held over two days, with the final session on Sunday morning. The Sunday and Saturday times will be aggregated. This will mean more action for the crowd at the circuit on Sunday but the starting grid and pole position will not be decided until shortly before the race.
AERODYNAMICS
Front wings have been lifted by 50mm, to reduce downforce, while the rear wings have been brought forward 150mm relative to the centre line between the rear wheels. The diffuser at the rear becomes shallower, at around 40 percent the height of 2004 levels. The changes, intended to cut downforce by about 25 percent to slow
cars on safety grounds, should make cars 'twitchier' to drive and more
spectacular to watch with less grip. "The focus in the factory has been to recover that downforce and obviously it won't be until the early races of the season that we'll see how well each team has done," said Williams' co-owner Patrick
Head. Testing has seen teams experiment with innovative aerodynamic parts,
notably McLaren with a horn-like wing on the engine cover.
TYRES
Tyres must last for qualifying and the race. The reason being that harder, and therefore more durable, tyres will reduce cornering speeds. This means that pit stops will look very different, with fewer mechanics involved as cars take on fuel without tyre changes, and will be less frequent. Tyres can be replaced in the event of a puncture or damage caused by debris, but not at a refuelling stop. Drivers would previously have changed tyres two or three times during a race, after around 70 to 100 km, in carefully orchestrated pitstops. They must now last around 350km.
All drivers will be allowed three sets of the same specification tyres for Saturday and Sunday. One will be used for Saturday practice, another for qualifying and the race while the third set is held back in case of a puncture. "The driver who can look after his tyres best, and has the feel for how to maximise tyre performance over a full race distance, will undoubtedly gain a performance advantage," says Renault's engineering head Pat Symonds. "I think we will see a change in the rhythm of races this year."
Now about the race, Indian rookie Narain Karthikeyan managed to do a decent job by completing the race in 15th position ahead of his team-mate and the running Minardi. He seemed pretty reluctant at the start though and Montiero looked better of the two in the initial stages.
About the front runners, Fisichella drove a perfect race without any mistake and really seems a contender of the driver's championship. However, personally I feel Alonso will end up higher than his team-mate and may even finish at the top of the leader-board.
Barichello managed to gain a few well earned positions through excellent ferrari strategy and so did Alonso. The driver who lost out on a podium position however, was DC who drove well only to end up 4th behind Alonso.
Surprisingly, Montoya did not make any move on anybody throuout the race. I wonder if the original, rash, daring Montoya is replaced by a more diplomatic, calm Montoya. I wonder what is it that these ESPNSTAR people have with Montoya. Heard one of the commentators saying that Montoya finally accepted that he is not the best F1 driver in a press conference and that he stands no chance even to beat his partner Kimi. I think if Montoya really thinks that way, he should have no place in F1 and as always if he has been pressurized to think and most importantly express himself that way, then everything is alright with F1 this year.
Sepang is next in the queue which demands maximus out of the car's engine. It could be one of the reasons why Montoya and some of the other guys did not push too hard may be.
Finally, Schumi as always managed to make another intelligent move. When he collided with Williams of Heidfield, he retired rather than continuing the race so that he may now use a new engine for the next race.
Hope that next race will also be as fun as this one.
Friday, 25 February 2005
Pirates of The Silicon Valley
Friday, 7 January 2005
A bit too late I guess...
Advice for Computer Science College Students
Joel Spolsky
Sunday, January 02, 2005
A part of Joel on Software, http://www.joelonsoftware.com
--------------------------------------------------------------------------------
Despite the fact that it was only a year or two ago that I was blubbering about how rich Windows GUI clients were the wave of the future, college students nonetheless do occasionally email me asking for career advice, and since it's recruiting season, I thought I'd write up my standard advice which they can read, laugh at, and ignore.
Most college students, fortunately, are brash enough never to bother asking their elders for advice, which, in the field of computer science, is a good thing, because their elders are apt to say goofy, antediluvian things like "the demand for keypunch operators will exceed 100,000,000 by the year 2010" and "lisp careers are really very hot right now."
I, too, have no idea what I'm talking about when I give advice to college students. I'm so hopelessly out of date that I can't really figure out AIM and still use (horrors!) this quaint old thing called "email" which was popular in the days when music came on flat round plates called "CDs."
So you'd be better off ignoring what I'm saying here and instead building some kind of online software thing that lets other students find people to go out on dates with.
Nevertheless.
If you enjoy programming computers, count your blessings: you are in a very fortunate minority of people who can make a great living doing work they enjoy. Most people aren't so lucky. The very idea that you can "love your job" is a modern concept. Work is supposed to be something unpleasant you do to get money to do the things you actually like doing, when you're 65 and can finally retire, if you can afford it, and if you're not too old and infirm to do those things, and if those things don't require reliable knees, good eyes, and the ability to walk twenty feet without being out of breath, etc.
What was I talking about? Oh yeah. Advice.
Without further ado, then, here are Joel's Seven Pieces of Free Advice for Computer Science College Students (worth what you paid for them):
Learn how to write before graduating.
Learn C before graduating.
Learn microeconomics before graduating.
Don't blow off non-CS classes just because they're boring.
Take programming-intensive courses.
Stop worrying about all the jobs going to India.
No matter what you do, get a good summer internship.
Now for the explanations, unless you're gullible enough to do all that stuff just because I tell you to, in which case add: 8. Seek professional help for that self-esteem thing.
Learn how to write before graduating.
Would Linux have succeeded if Linus Torvalds hadn't evangelized it? As brilliant a hacker as he is, it was Linus's ability to convey his ideas in written English via email and mailing lists that made Linux attract a worldwide brigade of volunteers.
Have you heard of the latest fad, Extreme Programming? Well, without getting into what I think about XP, the reason you've heard of it is because it is being promoted by people who are very gifted writers and speakers.
Even on the small scale, when you look at any programming organization, the programmers with the most power and influence are the ones who can write and speak in English clearly, convincingly, and comfortably. Also it helps to be tall, but you can't do anything about that.
The difference between a tolerable programmer and a great programmer is not how many programming languages they know, and it's not whether they prefer Python or Java. It's whether they can communicate their ideas. By persuading other people, they get leverage. By writing clear comments and technical specs, they let other programmers understand their code, which means other programmers can use and work with their code instead of rewriting it. Absent this, their code is worthless. By writing clear technical documentation for end users, they allow people to figure out what their code is supposed to do, which is the only way those users can see the value in their code. There's a lot of wonderful, useful code buried on sourceforge somewhere that nobody uses because it was created by programmers who don't write very well (or don't write at all), and so nobody knows what they've done and their brilliant code languishes.
I won't hire a programmer unless they can write, and write well, in English. If you can write, wherever you get hired, you'll soon find that you're getting asked to write the specifications and that means you're already leveraging your influence and getting noticed by management.
Most colleges designate certain classes as "writing intensive," meaning, you have a to write an awful lot to pass them. Look for those classes and take them! Seek out classes in any field that have weekly or daily written assignments.
Start a journal or weblog. The more you write, the easier it will be, and the easier it is to write, the more you'll write, in a virtuous circle.
Learn C before graduating
Part two: C. Notice I didn't say C++. Although C is becoming increasingly rare, it is still the lingua franca of working programmers. It is the language they use to communicate with one another, and, more importantly, it is much closer to the machine than "modern" languages that you'll be taught in college like ML, Java, Python, whatever trendy junk they teach these days. You need to spend at least a semester getting close to the machine or you'll never be able to create efficient code in higher level languages. You'll never be able to work on compilers and operating systems, which are some of the best programming jobs around. You'll never be trusted to create architectures for large scale projects. I don't care how much you know about continuations and closures and exception handling: if you can't explain why while (*s++ = *t++); copies a string, or if that isn't the most natural thing in the world to you, well, you're programming based on superstition, as far as I'm concerned: a medical doctor who doesn't know basic anatomy, passing out prescriptions based on what the pharma sales babe said would work.
Learn microeconomics before graduating
Super quick review if you haven't taken any economics courses: econ is one of those fields that starts off with a bang, with many useful theories and facts that make sense, can be proven in the field, etc., and then it's all downhill from there. The useful bang at the beginning is microeconomics, which is the foundation for literally every theory in business that matters. After that things start to deteriorate: you get into Macroeconomics (feel free to skip this if you want) with its interesting theories about things like the relationship of interest rates to unemployment which, er, seem to be disproven more often than they are proven, and after that it just gets worse and worse and a lot of econ majors switch out to Physics, which gets them better Wall Street jobs, anyway. But make sure you take Microeconomics, because you have to know about supply and demand, you have to know about competitive advantage, and you have to understand NPVs and discounting and marginal utility before you'll have any idea why business works the way it does.
Why should CS majors learn econ? Because a programmer who understands the fundamentals of business is going to be a more valuable programmer, to a business, than a programmer who doesn't. That's all there is to it. I can't tell you how many times I've been frustrated by programmers with crazy ideas that make sense in code but don't make sense in capitalism. If you understand this stuff, you're a more valuable programmer, and you'll get rewarded for it, for reasons which you'll also learn in micro.
Don't blow off non-CS classes just because they're boring. Blowing off your non-CS courses is a great way to get a lower GPA.
Never underestimate how big a deal your GPA is. Lots and lots of recruiters and hiring managers, myself included, go straight to the GPA when they scan a resume, and we're not going to apologize for it. Why? Because the GPA, more than any other one number, reflects the sum of what dozens of professors over a long period of time in many different situations think about your work. SAT scores? Ha! That's one test over a few hours. The GPA reflects hundreds of papers and midterms and classroom participations over four years. Yeah, it's got its problems. There has been grade inflation over the years. Nothing about your GPA says whether you got that GPA taking easy classes in home economics at Podunk Community College or taking graduate level Quantum Mechanics at Caltech. Eventually, after I screen out all the 2.5 GPAs from Podunk Community, I'm going to ask for transcripts and recommendations. And then I'm going to look for consistently high grades, not just high grades in computer science.
Why should I, as an employer looking for software developers, care about what grade you got in European History? After all, history is boring. Oh, so, you're saying I should hire you because you don't work very hard when the work is boring? Well, there's boring stuff in programming, too. Every job has its boring moments. And I don't want to hire people that only want to do the fun stuff.
I took this course in college called Cultural Anthropology because I figured, what the heck, I need to learn something about anthropology, and this looked like an interesting survey course.
Interesting? Not even close! I had to read these incredibly monotonous books about Indians in the Brazilian rain forest and Trobriand Islanders, who, with all due respect, are not very interesting to me. At some point, the class was so incredibly wearisome that I longed for something more exciting, like watching grass grow. I had completely lost interest in the subject matter. Completely, and thoroughly. My eyes teared I was so tired of the endless discussions of piling up yams. I don't know why the Trobriand Islanders spend so much time piling up yams, I can't remember any more, it's incredibly boring, but It Was Going To Be On The Midterm, so I plowed through it. I eventually decided that Cultural Anthropology was going to be my Boredom Gauntlet: my personal obstacle course of tedium. If I could get an A in a class where the tests required me to learn all about potlatch blankets, I could handle anything, no matter how boring. The next time I accidentally get stuck in Lincoln Center sitting through all 18 hours of Wagner’s Ring Cycle, I could thank my studies of the Kwakiutl for making it seem pleasant by comparison.
I got an A. And if I could do it, you can do it.
Take programming-intensive courses.
I remember the exact moment I vowed never to go to graduate school.
It was in a course on Dynamic Logic, taught by the dynamic Lenore Zuck at Yale, one of the brightest of an array of very bright CS faculty.
Now, my murky recollections are not going to do proper credit to this field, but let me muddle through anyway. The idea of Formal Logic is that you prove things are true because other things are true. For example thanks to Formal Logic, "Everyone who gets good grades will get hired" plus "Johnny got good grades" allows you to discover the new true fact, "Johnny will get hired." It's all very quaint and it only takes ten seconds for a deconstructionist to totally tear apart everything useful in Formal Logic so you're left with something fun, but useless.
Now, dynamic logic is the same thing, with the addition of time. For example, "after you turn the light on, you can see your shoes" plus "The light went on in the past" implies "you can see your shoes."
Dynamic Logic is appealing to brilliant theoreticians like Professor Zuck because it holds up the hope that you might be able to formally prove things about computer programs, which could be very useful, if, for example, you could formally prove that the Mars Rover's flash card wouldn't overflow and cause itself to be rebooted again and again all day long when it's supposed to be driving around the red planet looking for Marvin the Martian.
So in the first day of that class, Dr. Zuck filled up two entire whiteboards and quite a lot of the wall next to the whiteboards proving that if you have a light switch, and the light was off, and you flip the switch, the light will then be on.
The proof was insanely complicated, and very error-prone. It was harder to prove that the proof was correct than to convince yourself of the fact that switching a light switch turns on the light. Indeed the multiple whiteboards of proof included many skipped steps, skipped because they were too tedious to go into formally. Many steps were reached using the long-cherished method of Proof by Induction, others by Proof by Reductio ad Absurdum, and still others using Proof by Graduate Student.
For our homework, we had to prove the converse: if the light was off, and it's on now, prove that you flipped it.
I tried, I really did.
I spent hours in the library trying.
After a couple of hours I found a mistake in Dr. Zuck's original proof which I was trying to emulate. Probably I copied it down wrong, but it made me realize something: if it takes three hours of filling up blackboards to prove something trivial, allowing hundreds of opportunities for mistakes to slip in, this mechanism would never be able to prove things that are interesting.
Not that that matters to dynamic logicians: they're not in it for useful, they're in it for tenure.
I dropped the class and vowed never to go to graduate school in Computer Science.
The moral of the story is that computer science is not the same as software development. If you're really really lucky, your school might have a decent software development curriculum, although, they might not, because elite schools think that teaching practical skills is better left to the technical-vocational institutes and the prison rehabilitation programs. You can learn mere programming anywhere. We are Yale University, and we Mold Future World Leaders. You think your $160,000 tuition entititles you to learn about while loops? What do you think this is, some fly-by-night Java seminar at the Airport Marriott? Pshaw.
The trouble is, we don't really have professional schools in software development, so if you want to be a programmer, you probably majored in Computer Science. Which is a fine subject to major in, but it's a different subject than software development.
If you're lucky, though, you can find lots of programming-intensive courses in the CS department, just like you can find lots of courses in the History department where you'll write enough to learn how to write. And those are the best classes to take. If you love programming, don't feel bad if you don't understand the point of those courses in lambda calculus or linear algebra where you never touch a computer. Look for the 400-level courses with Practicum in the name. This is an attempt to hide a useful (shudder) course from the Liberal Artsy Fartsy Administration by dolling it up with a Latin name.
Stop worrying about all the jobs going to India.
Well, OK, first of all, if you're already in India, you never really had to worry about this, so don't even start worrying about all the jobs going to India. They're wonderful jobs, enjoy them in good health.
But I keep hearing that enrollment in CS departments is dropping perilously, and one reason I hear for it is "students are afraid to go into a field where all the jobs are going to India." That's so wrong for so many reasons. First, trying to choose a career based on a current business fad is foolish. Second, programming is incredibly good training for all kinds of fabulously interesting jobs, such as business process engineering, even if every single programming job does go to India and China. Third, and trust me on this, there's still an incredible shortage of the really good programmers, here and in India. Yes, there are a bunch of out of work IT people making a lot of noise about how long they've been out of work, but you know what? At the risk of pissing them off, really good programmers do have jobs. Fourth, you got any better ideas? What are you going to do, major in History? Then you'll have no choice but to go to law school. And there's one thing I do know: 99% of working lawyers hate their jobs, hate every waking minute of it, and they're working 90 hour weeks, too. Like I said: if you love to program computers, count your blessings: you are in a very fortunate minority of people who can make a great living doing work they love.
Anyway, I don't think students really think about this. The drop in CS enrollment is merely a resumption of historically normal levels after a big bubble in enrollment caused by dotcom mania. That bubble consisted of people who didn't really like programming but thought the sexy high paid jobs and the chances to IPO at age 24 were to be found in the CS department. Those people, thankfully, are long gone.
No matter what you do, get a good summer internship.
Smart recruiters know that the people who love programming wrote a database for their dentist in 8th grade, and taught at computer camp for three summers before college, and built the content management system for the campus newspaper, and had summer internships at software companies. That's what they're looking for on your resume.
If you enjoy programming, the biggest mistake you can make is to take any kind of job--summer, part time, or otherwise--that is not a programming job. I know, every other 19-year-old wants to work in the mall folding shirts, but you have a skill that is incredibly valuable even when you're 19, and it's foolish to waste it folding shirts. By the time you graduate, you really should have a resume that lists a whole bunch of programming jobs. The A&F graduates are going to be working at Enterprise Rent-a-Car "helping people with their rental needs." (Except for Tom Welling. He plays Superman on TV.)
To make your life really easy, and to underscore just how completely self-serving this whole essay is, my company, Fog Creek Software, has summer internships in software development that look great on resumes. "You will most likely learn more about software coding, development, and business with Fog Creek Software than any other internship out there," says Ben, one of the interns from last summer, and not entirely because I sent a goon out to his dorm room to get him to say that. The application deadline is February 1st. Get on it.
If you follow my advice, you, too, may end up selling stock in Microsoft way too soon, turning down jobs at Google because you want your own office with a door, and other stupid life decisions, but they won't be my fault. I told you not to listen to me.
Friday, 19 November 2004
No One Day for Tests now...
Anyway Xams are on. So right now I dont have much time to think about it. Seems like my "One Day Preparation Strategy" is not working very well in BE. Lets wait and see till the Xam gets over.... Still I have no plans of studying regularly in the next semester.
In F1 news Montoya finally won the last GP of the season and gave something to celebrate to his fans. Next season is really gonna be fun when Montoya will take on Schumi n Barichello with Kimi alongside him. Can't wait till 1st week of March when the action kicks off.....
Friday, 15 October 2004
One more Submission over....Huh!!!
Monday, 30 August 2004
Not "Just Another Day"
Montoya was again involved in a controversial whhel to wheel instance, this time with Renault Driver Jaro Trulli. I think he was a bit too aggressive and should have backed off on the particular turn as he did not have enough speed carried through the turn to get passed Jarno.
Rubens was lucky and gained positions as safety car was introduced twice and finally finished third. Schumacher drove brilliantly again to finish second. He could not clinch one more driver's championship in this race though as Rubens finished third. Probably he will do that in front of all Ferrari crew and fans in Monza.
A good race all in all and more importantly a different result this time. Hope everybody continues to give difficult time to Ferrari.
Monday, 23 August 2004
Why am I writing this in vi?
A few days ago I got my hands on Fedora core 1 installation CDs. As per the tradition I installed the brand new Linux system and started working on it. The first thing that I always have to do after installing Linux is adding my windows drives to automount by edition /etc/fstab. I wonder why has Red Hat not come up with something that automates this procedure as only a fool will install Linux onto the PC without any windows version (Only Mandrake 7.1, I guess...., does this identification and auto mounting of windows partitions for you.). After completing my traditional installation configuration which cannot afford to include luxuries like KDE as my system runs on a 64 MB RAM chip and with onboard 16 MB video memory, I happily logged onto my brand new Linux FC1 machine. It is always nice to listen to some music when you are really happy. What the heck!!! Xmms does not support mpeg anymore due to some licensing problems blah blah blah..... This did not surprise me though, as after every fresh Linux install I always wait for something shocking (In some earlier version they completely forgot to include xmms.....). The real fun comes after this.....
I needed text browser for some reason a few days later. I had to install it using add/remove applications in the control panel as it was not included in the basic installation schema. I also thought of adding a few more applications like mysql which is surprisingly not included in basic database support by default, etc. I selected approximately 25 new apps. to install and 5 apps. to remove. Now before you read next part I want to first give you a few tips and tell you about a few mistakes that people always do and then later curse innocent Linux developing team.
Always see to it that you have plenty of time to do any system changes or installing Linux for that matter as some unforeseen situations may arise which even linuxers (this term a references those people who claim to have a very satisfactory working experience with Linux) cannot explain. It took me 4 iterations and 3 days to install a basic Linux configuration on a PC in my college (Ah college PCs.....Always problematic. Isn't it?). Every time some a new error message would flash on screen (that too after 25/30 minutes when the installation is almost complete) informing me that I am a fool and don't know even the basics of installing an OS and that perhaps I should read a few reference books before trying something as adventurous as this. In an other incidence the installation simply refused to detect the extended secondary memory on my friend's computer. The poor fellow did not upgrade his BIOS and so his BIOS could not detect the newly added 40 GB HDD. Windows though did not even complain of such a problem(Ah, these windows guys......I donÂt know how do they manage to be that over smart). Apart from these minor things Linux installation is fairly simple and even a novice could manage it.
Take a few hours' rest before attempting to upgrade a Linux system. I will explain this later...but probably this is the most important tip as otherwise you may end up losing your beloved PC or have a nervous breakdown.
Forward this to everybody you know and ask them to please reply to me if anyone has any answers.
Now the rest thing. I selected all add/remove applications, put FC1 CD in my CDROM drive and decided to spend next half an hour watching Indianapolis GP as system was being upgraded. As this thought struck my mind my CDROM drive ejected and a message flashed on my screen indication to put the 2nd FC1 CD to continue installation. I was amazed at the speed of upgrade and thought of first completing the upgrade (as I thought it would take 5 minutes more at this speed) and then watching schumi. I was correct I guess, in less that 15 seconds my CDROM drive ejected out again and a message informing me to put in FC1 3rd CD into the CDROM drive to continue installation. Frankly speaking I was impressed by this upgrade speed. I put in the CD for upgradation to finish and again the same thing happened. My CDROM drive ejected out and a message informing me to put in FC1 1st CD flashed again. Believe me people this fun continued for next 20 minutes and involved at least 12 ejections and reinsertions. I have nothing more to say....Have Fun. the only question to be asked here is "Why am I writing all this in vi?".
Prasad R. Shahane.
Email: prasadshahane@yahoo.com
URL: http://www.prasadshahane.co.nr/
Do you Yahoo!?
New and Improved Yahoo! Mail - 100MB free storage!
