last updated:01 Mar 2004 14:37 UK time
Joel On Software Discussion Forum
JOS Statistics - Recent Comments
(Comments added for week ending Sun 29 Feb 2004) | View Other Weeks
YAED | Sun 29 Feb | snotnose
Yet another ethical dilemma. Ive been consulting for a company (startup, 8-10 people) for almost 3 months. Theyre about to put me on a 6 week project that is key to their success. I was approached last friday by an old boss, who is at a company I would Really Like To Work For (tm). Interview is Wednesday. Need is immediate. So. First off, Im currently paid by the hour, and Im looking at 60+ hour workweeks for 6 weeks (deadline is a trade show). I can deal with that, Im paid by the hour and if my car was a cat 8 of its lives would be history (and the car I need is about $18k, the G35 I want closer to $35k). Not to mention my hourly rate is better than the salary/benefits Ill (probably) be offered. Second, did I mention I really want to work for this company? They make the 10 best places to work list every year. I know several people there, they say its great. Ive spent some time there myself, looks sweet. Id have my own office. 10 of us would share a secretary (they arrange offices in pods, each pod has a secretary). Considering half my documentation time is just fighting with MSWord over crap like indentation and dammit, this drawing goes with this fn text so keep em together, this is great for productivity. Third, nothing is a given. I could botch the interview, or something could come up such that Im not offered the job. Or they make an offer lower than Im willing to take. I finished my last project friday, Im expecting the official can we hire you for 6 more weeks offer tomorrow (monday). There is no way I can put off my start date for the other company for 6 weeks. So, ahhh, what would you do?
Sun 29 Feb | The real Entrepreneur | Have you talked to your old Boss and asked if he could move up the interview to Monday or Tues? Have you talked to your old boss about this dilemma? If you clearly communicate that you are NOT trying to pressure him, but rather, that you'd like to not leave starutp in the lurch, he will hopefully appreciate your honesty and try to move quickly. If the old boss's need is immediate, you'd think they'd be motivated to interview you ASAP. Can you delay the 6 week gig by a few days? Could you take the 6 week gig then, after accepting the new job at the old company, give them 2 weeks notice? Would your old boss be able to wait for 2 weeks. BOTTOM LINE You have to look out for YOU. It's perfectly acceptable to give 2 weeks notice, especially as a contractor, and especially 3 days into the project. THEY could do it to YOU in a heartbeat. If they could suddenly get someone twice as good for half the price and replace you with no ill effects on the project, they'd do it, and justifiably so. And the chance of a full time permanent dream job vs. a 6 week grueling assignment seems like an easy choice. Loyalty is a process, not a state. I.e., loyalty is not a promise to always bend over backwards, it's a commitment to work with the other party to BOTH party's benefit.
Sun 29 Feb | snotnose | The wed interview is my doing, ye old used-to-be-faithful steed needs to enter ye-old-open-wallet-turn-upsidedown garage monday morning,and I don't get the car back until Tues. So I don't have a car monday/tuesday. Not an emergency, just something I had scheduled before this whole mess came up (schedule mechanic, get ride home with friend, and ride to work tuesday with a different person). I would love to postpone the job start for 6 weeks, but didn't want to mention it friday as I don't think things have gone that far. If I don't take the 6 week job I don't think the other company has another job for me (e.g. I'm not working). And they have been much too good to me for me to spend 2 weeks on this thing and say 'toodles'. I figure the interview/negotiation/2 weeks notice will take up 3-4 weeks. As I said, it's a hard deadline (trade show), so I only need 2 more. But talking to my ex-boss, he needs me yesterday. I need to do the interview, and talk to O.B., before I really know if I can wait 2 weeks. But I don't want to ask for a 6 week delay only to find that botches the whole opportunity for me. Sigh. 5 months, no work, nobody wanted me. Now that I'm working everyone wants me. Reminds me of when I was young. No women wanted to date me. Until I got a hot, and I mean hot, girlfriend. Suddenly I had chix hitting on me everytime she went to the bathroom. It was ego-boosting and pathetic at the same time. Of course, when I got tired of the hot girlfriend then no women wanted to talk to me anymore. grrrr.
Sun 29 Feb | no name | If it was really a good company to work for, I would think they could wait 6 weeks for you. 
Sun 29 Feb | Ken Klose | You could definitely get them to wait six weeks. I was in the identical situation a couple years back. The new company needed me IMMEDIATELY. But I said, 'look I'm 5 weeks from a major deadline and I don't want to leave them in a lurch, I'd give the same consideration to you if the situ was reversed'. They took a few days after the interview to ponder it, but rewrote my offer letter to give me 5 weeks. A question for you: what's the name of this great company, where are they located, and do they need java programmers? (or programmers willing to learn anything for that matter)? I'd love to have a secretary! Especially if she's cute.
Sun 29 Feb | Alex.ro | May I ask which "top 10" list is that?
Sun 29 Feb | Ray | You don't have dilemma until you have an offer letter. :)  Even if you do get an offer letter, you will only have a dilemma if you can't get them to delay for (what will probably closer to 4-5 weeks at that point) 6 weeks.  I would think you have a pretty good shot at getting the delayed start date.  But no reason to stress about it until the ball is really in your court.
Sun 29 Feb | Damian | I agree with Ray. These things take time, so even if the new company made an offer, that will probably take them a few weeks. Even when they say immediate, it usually isn't. By the time an offer is looking like being made, tell them you have a current commitment that will take you another few weeks. Most companies understand you have to finish up other jobs first.
Leveraging Development skills. | Sun 29 Feb | Anonx
I have been reading with interest the recent posts on career directions, specifically Norrick’s thoughts and experiences mirror what I am going through right now. My background is in the classic multi-tier business applications. It is the same boring pulling and pushing data to a database, with the occasional data massaging in-between. I have been doing some soul searching for the past year and I have come up with little thoughts on how to leverage software development skills into a new profession. Once you strip the buzzwords away from my resume there seems to be little to offer a business. My interest is working for and with small businesses. All my experiences have been with the megacorps and I hate it. I keep thinking that my background is overkill for the small businesses but I must be overlooking something. Given that being my frame of mind I ask this question; Are there any ex-developers on this board who could share how they have leveraged their development skills into a new profession or finding work being more of a computer generalist? Or should I just accept my fate and eventually become a graybeard. That is, if I am lucky enough to have a career that can last until I reach graybeard status. Any thoughts?
Sun 29 Feb | Bored Bystander | The good thing about working with small businesses given where you are coming from is that your current skills are a vast superset of the skills necessitated by the IT needs of small businesses, and you will handily outclass almost anyone else that approaches a small business. The bad things about working with small businesses are that (are you ready ;-) ): They can be incredibly cheap. Many small business owners started small businesses because THEY didn't have a diploma from a 'good school', so these types will carry a 'working class hero with attitude' chip on their shoulder. Mainly, the profound cultural differences keep the two worlds from mixing. It's going to be rare to find a small business that isn't put off by someone who has done high level enterprise work. And, you have to talk on their terms, which are paybacks for investments in months, not years, and absolutely no budget for R&D or anything else that 'sounds expensive'.
Sun 29 Feb |  me again | The problem with working for small businesses, is that they are... small. Thus, they usually have no money. I disagree with Bored Bystander's 'cultural assessment.' Small businesses are not cheap because of some blue collar / white collar divide, they are cheap because they have to be. They don't respect people with years of enterprise software experience most likely because they have no need for enterprise software. They need microsoft office, quickbooks, and a web site from pair.com. In any case, being a consultant that works with small businesses is a bad business model. If you want to 'consult' the best bet is to target the hugest, richest, and most dysfunctional organizations you can find. The kind who won't even notice they are cutting you $30,000 checks every month.
better chkdsk for Windows XP? | Sun 29 Feb | Dave Navaro
I have been having terrible disk problems as of late. Chkdsk /f isnt fixing it. In the old days, Norton Disk Doctor and other tools were better at fixing sector problems. They all seem to have disappeared with the advent of Windows XP. Anyone know of a better tool for disk repairing beside chkdsk?
Sun 29 Feb | Brad Wilson | CHKDSK has never repaired bad sectors, and still doesn't. SCANDISK does this, and has been around for god only knows how long (at least a decade). Here's how to use SCANDISK in XP: Right click on My Computer, click Open. Right click on the hard drive in question, click Properties. Change to the Tools tab. In the Error Checking box, click 'Check Now'. Make sure 'Scan for and attempt recovery of bad sectors' is checked (this will scan the surface of the disk for bad sectors, and yes, it takes a LONG time). You may also wish to check 'Automatically fix file system errors', which is the equivalent of running 'chkdsk /f'.
Sun 29 Feb | John Topley (www.johntopley.com) | SCANDISK was a DOS and Windows 9x tool. The Windows NT equivalent has always been CHKDSK. CHKDSK /R will locate bad sectors and recover readable information.
Sun 29 Feb | Brad Wilson | Huh. Learn something new every day. :)
Sun 29 Feb | DJ | I guess the confusion comes because chkdsk was the original disk checker from the very begining of DOS.  Scandisk which was better than chkdsk and came out in DOS 6.2 and was used in Win9x and Win ME.  In Windows NT, 2000 and XP the disk checker is also called CHKDSK but is probably not related to the original DOS chkdsk. Clear as mud??
Sun 29 Feb | John Topley (www.johntopley.com) | Then there's AUTOCHK... ;-)
Interface and Implementation | Sun 29 Feb | Eddy
In object-oriented programming, a lot of emphasis is placed on knowing the interface and implementation. from a book, i come across this piece of code public class IntSquare { //private attribute private int squareValue; //public interface public int getSquare(int value) { squareValue = calculateSquare(value); return squareValue; } //private implementation private int calculateSquare(int value); { return value * value; } } the reason giving was to separate implementation from interface so as to hide details from users, and the implementation without affecting the user. i was thinking if it is ok to write the above code in the following manner public class IntSquare { public int getSquare(int value) { return value*value; } } i find it more concise and lesser code to be written, or is there something that i have missed out? i think the first method is good if there are other methods in the class that need to use the calculateSquare method comments?
Sun 29 Feb | K | Of course your example is better.  In fact, it'd be even better just to write a global function to handle that task, since it's not inherently stateful.  Really it's a bad example to work from.
Sun 29 Feb | Brad Wilson | Whatever book that is, throw it away. The author is clearly an idiot.
Sun 29 Feb | Dan Maas | Yes separating interface and implementation can be a powerful technique, but that example is a horrible mis-use of it. Reminds me of a Java homework assignment I saw at a major university that required the students to write stateful classes for trivial stateless operations like multiplying arrays.
Sun 29 Feb | Mike Treit | Isn't it possible the author was purposefully using a trivial example just to illustrate the concept?
Sun 29 Feb | no name | even if he wants to show that, book authors should indicate that the given class is a bad design or not. one of the reasons this world has so many lame programmers is that their first experience is a f...ing lame code, but at that time they cannot realize that. after that they learn that and it will be a habit to create classes like the above one. grrhh.
Sun 29 Feb | Brad Wilson | 'Isn't it possible the author was purposefully using a trivial example just to illustrate the concept?' It's possible that that's what he intended. Of course, he failed miserably, because he clearly doesn't even KNOW what it means to separate interface and implementation, which is why the book should be burned. :-p
Sun 29 Feb | Joe | eddy, Do you remember the title of that book? I'd like to know so I can be sure to *NEVER* buy it.
Sun 29 Feb | Thomas | Whoever wrote this doesn't get 'separate interface and implementation'. Here's a proper example: public interface IntSquareCalculator { public int getSquare( int value ); } public class MyIntSquareCalculator implements IntSquareCalculator { public int getSquare( int value ) { return value*value; } } Why is this a proper example? Because a user of IntSquareCalculator doesn't care what the implementation does: it only cares about the contract provided by IntSquareCalculator. The implementation could be as above, it could be an invocation of a Web Service, it could be a lookup table, etc. This is what is meant by separation of interface and implementation: the user is separated from the implementation by the interface. The interface provides a contract, and that's all. The implementation provides a concrete mechanism for fulfilling that contract, and that's all. -Thomas
Sun 29 Feb | Name withheld out of cowardice | Well written Thomas.  I would only add that the only reason one would want to do this in the given example is if he thinks that different implementers of the getSquare method might want to do it in different ways.  It seems unlikely.
Sun 29 Feb | Koz | replace getSquare with getUserProfile and it makes a lot more sense. Maybe the UserProfile could come from a web service, database call, flat file or even hard coded for running in unit tests. Now you may not see the value here, but if you've coded your application to call the database, then someone decides that the firewall rules shouldn't allow the server to query the database directly (I'm speaking from experience) then you can replace it another implementation without *too much* heart ache. This is more what seperating interface and implementation is about.
C# 'Servlet Engine' | Sun 29 Feb | Seun Osewa
I like the C# Language because its well designed, and .NET because its well supported on Windows and available on Unix-like systems (courtesy of Mono). I like the Java Servlet Specification (I dont care for the other server-side Java standards) because its neat, efficient, simple, gives me maximum flexibility. Does anyone know of a Servlet-like specification or engine for server-side development with C# or .NET?
Sun 29 Feb | Brad Wilson | I'm not a Java expert by any stretch, but I imagine that what you want to do is write classes that implement IHttpHandler, and then hook them up to URLs using Web.config.
Sun 29 Feb | Thomas Eyde | I also think that would be the way to do it, but how is that different from having an aspx file "without" gui?
Sun 29 Feb | Brad Wilson | The fact that you don't have to deploy an ASPX file, basically.
San Diego - the new Silicon Valley | Sun 29 Feb | Tony Chang
So, someone mentioned San Diego as one of the worlds leading tech centers and this came as a BIG surprise to me and I was skeptical, but I googled and found this article only 2 wks old: http://www.azcentral.com/business/columns/articles/0215talton15.html Any one want to comment? Should we all move to San Diego then?
Sun 29 Feb | Geeky | Yeah! San Diego rocks : Nice bars ... Hot hispanic ladies ... Got for it pal ... Just a few hours drive from TJ in Mexico where you could meet even hotter babes ....
Sun 29 Feb | Philo | 'A few hours drive from TJ' You must mean during rush hour... Philo
Sun 29 Feb | Sassy | I've lived in Dago for 8 years (originally from Long Island, NY), and I've witnessed the tech-splosion first hand. Firstly, SD is not comparable to SV in terms of software companies or software jos. Generally, engineers will fare better here. Tech jobs in SD fall into one of a few gigs: * DoD prime or subcontractor (Cubic,Northrop/Grumman/,Titan,SAIC) - This is mostly embedded / systems engineering , but there is some applications stuff here. * Wireless - 99% sales jobs, but usually some RF / CDMA / BREW / engineering jobs * Biotech - just IT and some informatics - 99% of the companies are drowning in losses - The culture around biotech promotes PhD's working for very low wages . * Start-up / Niche tech companies - Some good options here if you are an expert / specialist / willing to work cheap. You cannot compare SD to SV because there are simply fewer software companies - but I suppose that could be offset by a smaller population. I have always found SD to be a good place for work - not saturated with local talent like SV and a lot of churn, so new things always come up. The main problem is that SD is a very expensive place to live, and wages here are, on the whole, low. This combination makes SD a lot less atttractive after a while. We recently tried to buy our first house here - and with a combined income of almost 100k - we are looking at a back-breaking $2500/mo - a prospect that's causing us to re-examine staying in this city.
Absolute and Relative Margins? | Sat 28 Feb | Stripes != Honor
Has anyone ever heard of Absolute and Relative margins? Relative to the unprintable area and Absolute as measured from the edge of the page. If so what applications have you used that supported them? Also on the subject of text output I was wondering if using the Uniscribe API would be better than using the ExtTextOut function?
Sun 29 Feb | a cynic writes... | From memory WordPerfect 5.1 had absolute and relative margins.
Moving to XP | Sat 28 Feb | MikeG
Well, I am finally where it becomes necessary to move to XP from 98SE on my home boxes. As this tends to me a more mature forum, I have a few questions for those who have made the migration: - Any reason to spend the extra for PRO over Home? - Should I migrate or just start fresh on a clear hard drive? My concern is some of my older hardware, like my scanner has software that was a bugger to install the first time. - How long do I need to set aside for this, assuming I am PC savvy, and have used XP, just not done a migration. - I have heard we are allowed a Laptop and Desktop from the same license, yet I cannot find where this is the case. If it is, would that include two desktops at home? Of course, feel free to toss in any advice. For the Linux folks, I do have a Linux box running Red Hat, so no need to suggest switching. ;) Cheers, Mike
Sat 28 Feb | Gwyn | Hard Drive crashed yesterday (IBM 40Gb Deskstar - less than 3 years old) so rebuilding as we speak Had Win2K Pro, installing XP Pro. Takes about an hour + installing any specific drivers you'll need. Definitely install from scratch. You can always partition your drive (if you have the software to do in non-destructively like Partition Magic) and copy anything you want to save off first. Don't know about licences. XP Home vs Pro is going to depend on what you're going to do with it. I was surprised how lite XP Home was in terms of connecting to network domains. But it's good enough for the missus's machine.
Sat 28 Feb | Gwyn | Oh yes. The real bastard I'm not looking forward to is spending 3 hours reinstalling .NET framework/VS.NET/MSDN!
Sat 28 Feb | MikeG | Therein lies the catch does it not? Sure, I can format the drive and load XP in an hour. Loading all those applications I have installed over the years, takes a the time. I am tempted to do on-demand installs, as I need them, but they problem is I generally use them because I am in a pinch. To then go back and find the CD (easy) or the website with the download (sometimes very hard). As for Home vs. Pro, what made you choose one over the other (and the 2nd box is my wife's)? What networking item was required or did you find essential to justify 2x the cost? Keep those suggestions/thoughts coming.
Sat 28 Feb | no | i've installed XP Pro on 3 different machines. no problems. and the first install was directly over 98. it was a little funky, but it's run great for 3 years. XP pro has Remote Desktop and IIS, which Home doesn't. those werre the 2 biggest differences for me. (there's a hack on google groups to get IIS running on XP Home.)
Sat 28 Feb | no | >i've installed XP Pro on 3 different machines i've installed THE SAME XP Pro on 3 different machines.
Sat 28 Feb | Seth | Mike - what do you need from your home box? If you're only now switching from 98 I'm guessing (hoping!) it's not a development box. The Pro version is much more flexible and robust in its networking capabilities. Remote Desktop is only available in the Pro edition for example. And you'll need Pro to access a domain-based network. XP Home will not allow you to be joined to or managed by a domain. So. if you're accessing objects on a domain (via VPN for instance) with any frequency you'll soon grow tired of re-authenticating. XP Pro also has file encryption and restricted file access built into the OS. Do you keep sensitive data on your local drive? The system restore features in Pro are more robust including things like device driver rollback. What else?.... IIS is part of Pro not Home. XP Home doesn't support multiple processors (don't know about HyperThreading though). I'd say, if you even think you might do more with your machine than read e-mail, surf the web, and play games and mp3s then go for Pro.
Sun 29 Feb | Ken Klose | If you have to connect frequently to a domain, that is the only reason I can see to justify spending the extra moolah on Pro. - I don't think you need the secure files feature if you're still on 98SE. - Remote Desktop is great. Only comes on the XP Pro CD, but will install on XP Home. Borrow the CD, install it. - As said above, IIS is for Pro only, but an easy hack and it runs on XP Home. Do a reinstall. Inventory your apps FIRST. I'm in the process of doing this myself right now. It takes long. It sucks, but its like going to the dentist, sometimes you just got to do it. Take a stiff drink first, that will help ease the pain.
Sun 29 Feb | NathanJ | I do Java development work on XP Home. I think XP Home is fine for a personal machine. Maybe XP Pro is better if you do Microsoft development work, but all of the tools I need work just fine with the Home edition.
Sun 29 Feb | MikeG | Thanks all -- Seth - I do java work so 98 has been fine. The processor is fast and I rarely have an issue. As for domain connection, I use VPN through client provided software so I am not sure if XP pro makes a difference. I would also be interested in hearing if anyone knows of something that will do an inventory of all installed software. I am leaning toward a clean install as I have not done one since I install 98 5 years ago. I am _not_ one of those who have had problems with 98, until I tried burning CDs. For some reason any burner software I install gives me the BSOD in VXD VWIN32(05). Perhaps I am just wishful thinking that XP will solve my issue.
Sun 29 Feb | Rob Walker | > XP Home doesn't support multiple processors (don't > know about HyperThreading though). XP Home does support HyperThreading just not multiple physical processors.
Sun 29 Feb | no | >I would also be interested in hearing if anyone knows of >something that will do an inventory of all installed software. http://www.belarc.com/free_download.html
Sun 29 Feb | Joe On Software (Joe) | A couple of years ago I went to a 2 hard drive set up and I would never go back: 1. Do a fresh install, tweak everything the way you want it and install your favorite applications. 2. Using a program like Norton Ghost (or similar), make an image of your hard drive and save it to the second hard drive. 3. There is no step 3 4. Do regular back ups of important data, (e-mail, porn, etc,) to the second drive. When something (a new driver, program, etc) farqs your computer, just restore from the Ghost image and then copy you data files over from the second drive. I use this at home and work and it has saved my butt on more than one occasion.
Sun 29 Feb | Stephen Jones | You're talking about not having done a clean install for fiive years. I presume you have upgraded the hardware during that time? You'll want 256MB of memory minimum, and I would say aim for a 1GB processor. Next disappointment will be that some of your hardware just won't install. You can forget about your scanner for a start - you need to change scanner pretty well every time you change OS.
Sun 29 Feb | Ken Klose | Stephen, I've got to disagree with you about hardware not installing.  I've been running a Dell box for past 5 years.  It came with 98.  I put NT on, what a nightmare!  I upgraded to Win2K, and was surprised at how few problems I had.  I only needed to track down drivers for Video, Modem and Scanner.  I just did a complete wipe and install of XP and it was smooth as silk, picked up all the hard-ware by itself.
Sun 29 Feb | Stephen Jones | I'm amazed you got your scanner to install. I had to ditch the scanner when I upgraded to W2K because there were no drivers, and no intention of making them. It actually took me nearly a year from when I first upgraded to Win2K to when I had everything working. The zip drive took months and the Adaptec software for the CD/RW wouldn't let the machine go into standby for nearly a year. A 2K to XP upgrade should go pretty easy. Basically the drivers are the same; they should have been the same for win 98SE adn W2K, but few companies seemed to bother with WDM until Win2K was out and they had to support both OS's.
Dvorak on cookies | Sat 28 Feb | Sam Livingston-Gray
From a semi-recent John C. Dvorak column: Who ever thought that browser cookies were a good idea? Im not even sure theyre legal: I was under the impression that hacking was against the law. The last time I ran Ad-aware on my machine, it turned up 54 processes sending marketing data (and who knows what else) to various companies. I didnt give anyone permission to do this. Shame on companies—all of them—that insist on using cookies and demand that users allow them before they can access a site. You can be certain that when the Big One hits, cookies will somehow be involved. ...Im ashamed to admit that I ever thought this guy was intelligent.
Sat 28 Feb | Cristian Cheran | This guy is smart alright but he appears to know nothing about coding or alike and sometimes he simply pops really weird sentences when programming reasons might be involved. I have also heard him saying that the whole .NET Framework thing is just another stupid move of MS that stresses good ol' VB programmers for nothing (or something along this line anyway)
Sat 28 Feb | Fred | If you don't use cookies, users will be required to create an account on the server, and log on every time before they can use the site. Mmm...
Sat 28 Feb | AnonAnonAnon | He missed his own point. By going to a site with cookies on, he _did_ agree to let them.  And it was not the cookies that created the spyware, but that may go to the reason the original poster questions his intelligence...
Sat 28 Feb | Dennis Forbes | Of course the real blame in all of this really goes to AdAware (i.e. LavaSoft) -- A "tracking cookie" (which is just a cookie from a defined list of "bad people" like Doubleclick) is treated with the same seriousness as a spyware trojan, so it's a bit understandable that the somewhat naive Dvorak was misled.
Sat 28 Feb | Seth | My hunch is most spyware is authorized by users. When was the last time you actually read through to the end, word for word, a EULA that was required to finish installing some freeware app? Most spyware scrubbers even remind users 'wiping out the following processes may violate the EULA of some other app and cause it to stop operating correctly' Like spam, most of the solution is already in the hands of the end user: the ridiculously, obscenely prosaic RTFM
Sun 29 Feb | Sum Dum Gai | EULA makes it OK? What a load of crap. I'll support that position when you have to write your EULA in one paragraph of English a non-lawyer can understand. How about 'This program will install spyware and fuck up your system!' As has been said elsewhere here, 'But our sales would plummet' is precisely the reason it SHOULD be mandatory.
Sun 29 Feb | Simon Lucy | A single sentence,'Crunchy Frog protocol applies.'
Sun 29 Feb | Stephen Jones | ----' A 'tracking cookie' (which is just a cookie from a defined list of 'bad people' like Doubleclick) is treated with the same seriousness as a spyware trojan,'------- A tracking cookie is the same a spyware Trojan. It let's the advertiser know which web sites you visit. Mozilla and IE6 let you disable cookies from third party websites, but it is a clear abuse to have tracking cookes in the first place. There are sites that work perfectly without cookes; I have them disabled for this site, and have no problems. Per-session cookies should be the most that is needed for all sites. Persistent cookies should be an option.
Sun 29 Feb | www.marktaw.com | The third parties cookies thing doesn't work for Doubleclick. Since Doubleclick opens inside a frame, they're first party links for Doubleclick. Doubleclick then tracks what sites in their network you visit. Once you create an ID at one, wham - they've got you. Your name, address, and sites you visit. Once again I'll relate the story of my sister browsing maternity sites and getting maternity ads when she logged on to her Yahoo mail. So while these cookies can't execute code, they can in a very real sense send back information about you from your preferences to your mailing address. I've been successfully blocking most of them by editing my Hosts file with known offenders. Various versions of the hosts file can be found online.
Sun 29 Feb | www.marktaw.com | Oh, and I browse with Firebird which I've set to purge all cookies on exit. I use IE for sites like this where I want to have cookies & a history.
Sun 29 Feb | Interaction Architect | If you add lines like the following 127.0.0.1 ad.doubleclick.net to your 'hosts' file, they'll never load because doubleclick isn't hosted on 127.0.0.1 (your localhost). You get a few 'file not found' messages in your pages which beats seeing ad crap all over the place.
CD-ROM Serial | Sat 28 Feb | alien
Greetings! I am not sure if it is possible but I have to try. My idea is to protect software from illegal copying by CD-ROM serial number. Protected program will run from CD, get its serial (if there is one) and check it. There are some numbers or letters near center of (every?) CD. Have you seen them?
Sat 28 Feb | Jordan | I'm not an expert in CD burning, but I think that when you do a CD-to-CD copy, everything is duplicated including the serial number.
Sat 28 Feb | Inidan Developer in India | Hmm! Competition? Welcome to to the jungle. Well, long story short, not possible, but there are other methods and a bit of self promotion is not out of line, is it? http://www.seplweb.com Regards KayJay
Sat 28 Feb | Inidan Developer in India | Oh! The Whitepaper is not uploaded yet. Will do so shortly.
Sat 28 Feb | Robert Jacobson | I think Jordan's right -- if you 'press' your CDs (the traditional way to mass-produce CDs) the disks will all have identical data, down to the serial number. There are some third-party solutions that can burn a unique ID into the disk after it's been pressed. E.g., http://www.postscribedid.com/en/portal/g-spec_e.html Alternatively, if you used CD-R technology instead to copy the disks, you could probably find or write a program that would burn a unique number into the disc when it's being burned. However, CD-R's aren't very cost-effective or fast for large production runs. If you really need strong protection, there are copy-protection systems like SafeDisc -- although these have a tendency to really piss off your legitimate customers, and even these can be defeated.
Sat 28 Feb | David Jones | CDs do not have a 'serial number'. The lettering that can be seen around the clamping region on the disc is not machine-readable. If you really require CD-based protection (i.e. FlexLM from MacroVision or a value-add such as support for registered users won't cut it) then check out the Tages CD protection system. It is the only one that I know of that has not been defeated.
Sun 29 Feb | Inidan Developer in India | David Jones, There is one more that is (not yet) defeated ;) In fact, known hacks are available (even generic ones) for SafeDisc protected CDs. Regards KayJay
Sun 29 Feb | mb | odd, i thought the bar-code in the center of the disk was machine readable. just most drivers don't have a method to read it, the drive does. old CD-Rs had increasing serial numbers on them. some new ones might too, but most are so cheap they barely hold data. sounds like a pretty clever idea to me, though of course it will be hacked in the normal way. (e.g. if you have a function called 'isCdOk' someone will replace the function with 'return true')
Post-deployment stress | Sat 28 Feb | Eric Debois
There is really no point to this post other than venting a bit of frustration. In early January I finished and deployed a webapp for a client. They found it to be working according to our agreement so they filled it up with data and I sent them a bill which they paid. All is well so far. Actually, things are still well I suppose. Its just that the other day I logged on to the app just to see if everything was allright and it is not. One of the users is basicly destroying data. I wont go into details of the app, suffice it to say he is shoehorning thingummies into the widget tables and widgets into the thingummy tables. This isnt a design error on my part and the rest of the users get it and like the app very much. Besides, most of the data is backed up, so, I should feel cool about it. But I dont. Im worried that they will blame me. Im worried that the app will break down and they will stop using it. Im worried that they will ask me to somehow fix the thing and I wont be able to decline. I also feel kind of sad that this one dude is absuing my creation. Oh well.. Im just venting. Anyone else ever feel like this?
Sat 28 Feb | Ron | Everything you're worrying about will indeed happen.... but that's normal, the users always find a way to mess it up no matter how much idiot-proofing you put into it, it's part of the job. But you need to contact them and let them know what's happening, and either retrain the user or work on a patch to prevent it. They're far more likely to use you for follow-on work and enhancements if they use it a lot and know you'll fully support it.
Sat 28 Feb | Sam Livingston-Gray | Interesting. I have a program that does some statistical analysis using a paper form that's been filled out by social service workers for years. (Bear with me; this is relevant to your case.) This paper form is, of course, one of dozens or hundreds these workers come in contact with during the course of their jobs, and every last one of them (the forms, not the workers) is Really Really Important because it's required for compliance with some grant or another. Even on a simple form (twenty questions scored 1-5, with painfully clear scoring criteria), we've seen some really creatively screwed up forms. They pick a number from 1-5 and draw a line down one bubble for all 20 questions (the cleverer ones fill in the same bubble for all 20 so it looks like they gave it more than two seconds' thought), they score a given question both 2 *and* 3, et cetera... But now that the software lets their agencies analyze the data, it very quickly becomes *glaringly* apparent when someone hasn't been filling out the form properly. (Especially when the app is used in a meeting with evaluators, directors and line staff all in the same room, and line staff see that someone really is looking at their work.) Basically, the app turns the usual one-way workflow process (fill out the form, toss it in a file somewhere, it's never seen or heard from again) into a feedback loop. Contacting the agency is a one-time way of completing that loop. Next time, maybe there'll be a way to design the software to explicitly support that same process, which makes everyone's lives better.
Sat 28 Feb | one programmer's opinion | 'Im worried that they will ask me to somehow fix the thing and I wont be able to decline.' What does your contract with this client look like? Does it specify the amount of time you must support the web app? If not, you might want to contact this client and let them know about the 'bad data' and offer your services for a fee. Below, are few ideas you could pitch to them: * A maintenance contract * Make the web app idiot-proof * Train the end-users
Sat 28 Feb | Eric Debois | Hi hi.. I was in a perfectly good self pitying mood, but you guys just had to go and be all productive on me. Well, I've mailed them about it. Sam > Interesting thoughts on the feedback loop.
Sat 28 Feb | Fred | What's wrong with just telling the manager over there that one employee is not using the app as intended, and that this may/might break things? Considering that all the other users seem to get it, I don't think the manager will blame you.
Sat 28 Feb | Anon-y-mous Cow-ard | Unless the "bad user" *is* the manager.
Sat 28 Feb | no name | they wil say: "fix it, it's your problem, you put that feature in so you can fix this issue and get more money out of it.f
Sat 28 Feb | Must be a manager | You have done the correct thing in emailing them. What you should also do is offer them some training and approach it in a positive way. You are offering them something to help them, not to show they're dumb. By the way, at the design level, you should have detected data types during input and prevented bad data being inserted.
Sat 28 Feb | Sam Livingston-Gray | Must be a Manager:  Type checking alone is not sufficient to ensure that data in a table is correct or meaningful.
Sat 28 Feb | Eric Debois | All the data is must be correctly formated and resonable. The problem isnt the integrity so to speak, its that the data is plain wrong. The wrong names in the name fields, the wrong descriptions in the description fields, the wrong dates in the datefields. But! I recieved a reply to my email. Aparently they are all well aware of the problem, and managment suspects that the guy is deliberatly trying to screw things up. Turns out, he was caugt pornsurfing in september and his manager has been trying to fire him ever since, but hasnt be able to because of employment laws and stuff with the union. So now he is trying to get back at them. Sad (and weird) as that is, it makes me feel kind of relieved.
Sat 28 Feb | Must be a manager | Sam, I said to prevent bad data being inserted, not to perform type checking. Type checking is what a dumb person would do. Understanding and filtering input data is what a smart person would do.
Sun 29 Feb | Must be dumb | Even if you filter for bad data it would be almost impossible to find someone entering first name/last name as Smith/John or Jones/Bill. Dates are also a problem. Is 04/02/27 an incorrect date value? One thing I really hate about this board is all the asshole junior programmers that jump in and criticize other people's work as being dumb or badly designed.
Sun 29 Feb | Must be a manager | Right.
An online bookstore for Indians | Sat 28 Feb | Sathyaish Chakravarthy
Amazon has India on its list of countries where transactions are barred. What that means is that Indians (or more appropriately residents of India) cannot buy books from Amazon. Is there any place else, an online bookstore, where I can order books from?
Sat 28 Feb |   | That settles it, God is an Iron!
Sat 28 Feb | Sathyaish Chakravarthy | Did I miss something?
Sat 28 Feb | MacSqueeb | Assuming Barnes and Noble doesn't impose a similar restriction, perhaps http://www.bn.com may be of some use. Also, a quick look indicates O'Reilly sells directly from their site, which of course limits one to their titles (and a few others the carry), but that's still a lot: http://www.oreilly.com/catalog/prdindex.html
Sat 28 Feb | Sathyaish Chakravarthy | Thanks for your reply, MacSqueeb. O'rielly has distributors in and around Delhi, where I stay. They sell through Shroff Publishers and Distributors (SPD), so I don't find it difficult to acquire their titles. But here, only Pearson Longman has some of the titles from Addison Wesley, Currencey Publishers and the like. We have very limited A-Press and Microsoft titles available in other book stores. Besides that, we have some Techmedia and SAMS publications too available at BPB bookstores. So I was thinking of ordering online. Most of the books I want are not available anywhere in Delhi. Books like Hard Drive, Over Drive, How to Move Mount Fuji, About Face, the Inmates are running the Asylum, Show stopper (about the making of Windows NT) are just not available in India.
Sat 28 Feb | Stephen Jones | Is it Indian government foreign exchange transactions that forbid you buying from Indai, or is it because of credit card fraud. Are they just banning payments from Indai. or are they banning deliveries to India. Are they just banning credit cards, or can you send them a cash advance?
Sat 28 Feb | MRC | >> Most of the books I want are not available anywhere in Delhi. Books like Hard Drive, Over Drive, How to Move Mount Fuji, About Face, the Inmates are running the Asylum, Show stopper (about the making of Windows NT) are just not available in India. hey that's a big problem. currently, india is not in the list of countries where Amazon delivery is available. Currently, i came to USA on a short term trip. i desperately wanted to buy many of those you listed above when i was back in india. now, i already bought them and many of the books in the 'Joel's Book recomendations' and some of the books floated around in this forum. most of them, i bought from the Amazon used books at very reasonable prices even as low as 4$.
Sun 29 Feb | Ken Klose | So Sathyaish what you need to do is set up a website in India where your countrymen can order these titles, get someone in the US to buy them off of Amazon and ship them over to you (or direct to your customers) and reap profits.  No?
Sun 29 Feb | one meeeellion dollars! | Circumventing import restrictions? Sounds illegal. But, eh, who cares? Indian jails are nice this time of year, I hear.
Caveat Emptor | Sat 28 Feb | Sathyaish Chakravarthy
In the smallest of nutshells, a discussion on Condions and Warranties under section 16 of the Sale of Goods Act (India) says, let the buyer beware. No, not about the dogs guarding the house, but of the quality of the subject matter of the sale - goods. I forget the provision but it says the seller is under no obligation to convey to the buyer about the *strings attached to the goods being sold or of any compromising nature of the quality of the goods*. Until a long time, I didnt carry a credit card with me. I didnt have too much money. Now, that I have a little bit of money, I signed in for a credit card. The credit card salesman promised me that there was a credit period of 52 days for cash withdrawals as well as purchases. I was informed of a monthly interest rate of 2.95%. Today, I got my last months statement and I was shocked. Well, for a cash withdrawal of Rs.600, there was an cash advance fee of Rs.100, an interest of Rs.8.XX (@8.XX%) and a service tax of 8%. My purchases were about Rs.2,600 something for the month. On inquiring about the excessive charge, I was informed that: (1) There was no credit period for cash withdrawals. So no 50 days cash credit. You pay interest for every day you keep the cash. (2) There was a cash advance fee for every cash transaction upto 2.5% of the amount withdrawn or Rs.100 whichever was higher (3) Thered be a service tax Id paid Rs.1409 as joining fee for three ears. If I opted out, it would be forfieted and I wouldnt get any of it refunded. And I have no excuse for not being informed even inspite of the fact that I was lied to. How convenient is the law.
Sat 28 Feb | Sathyaish Chakravarthy | --No, not **about** the dogs guarding-- No, not of the dogs guarding... --for a cash withdrawal of Rs.600, there was **an** cash advance fee-- there was a cash advance fee --How convenient is the law-- How convenient the law is
Sat 28 Feb | M | Sathyaish, it sounds like you're joining the consumer society. Rule number one - companies offering money in any form are always rogues and will always try to screw you one way or the other. Being in India, I guess you would know that, from what happens in rural areas. Heavy fees for cash advances are common, because they know that, if you want a cash advance from your credit card, you're probably desperate. So they can squeeze you. The way to use credit cards is to not take cash advances from them, to pay the bill in full each month and to keep the lowest limit you need. Don't accept offers to go for a bigger limit.
Sun 29 Feb | Tony Chang | Credit cards are the same here in the US as you are finding - they have to pay hard cash money on any cash advances you take out, so they have to charge you interest starting they day you take it plus processing fees. Otherwise it would be a free loan and for that, the bank is not the right place to go. I am sure that the fees were disclosed in the fine print of your contract.
Sun 29 Feb | M | For credit card providers, funding cash advances is no different from them funding purchases. The extra fees are purely based on the fact they can charge them. The fact that something is in the terms of the contract means very little in terms of legitimising it as a business practice. Most people do not read those contracts, and even if they do, credit card providers collude sufficiently that customers have very little choice.
Sun 29 Feb | Rob Walker | > For credit card providers, funding cash advances is no > different from them funding purchases. The extra fees > are purely based on the fact they can charge them. Not exactly. When a vendor takes your credit card in payment they have to pay a fee to the credit card company for the privelege - typically in the 1.5 - 2.5% range. Most non-chain computer stores around here list their prices as cash-discounted. If you pay by credit card you pay that charge. Otherwise everyone would max out their credit cards with a cash advance on the 1st of the month. Put it in a savings account, withdraw it on the 30th, pay off the credit card and repeat the cycle the following month.
Bubble sort reversed | Sat 28 Feb | Sathyaish Chakravarthy
Bubble sort is known to have a predictable N square iterations before the array is fully sorted. Here, N refers to the number of elements in the array. The code from http://linux.wku.edu/~lamonml/algor/sort/bubble.html looks like this, as it would from anywhere else, as long as Bubble sort was the topic. void bubbleSort(int numbers[], int array_size) { int i, j, temp; for (i = (array_size - 1); i >= 0; i--) { for (j = 1; j <= i; j++) { if (numbers[j-1] > numbers[j]) { temp = numbers[j-1]; numbers[j-1] = numbers[j]; numbers[j] = temp; } } } } We can see the outer loop traverses the array from back to the front N number of times and its function is not only to factor the inner loop N times but also to go backwards, so the array is sorted properly. If I were to reverse the bubble sort, could I reverse the outerloop by forcing it to traverse forwards instead of backwards? Coupled with this, I would reverse the swap algorithm in the inner loop to check for a smaller value and push it leftward. Would that still work? I am beginning to imagine voices, Sathyaish, youre damn lazy. Try it yourself. But Ive already written so many words here. It will a sin to erase them. Im all set (to hit the button). Push, aeyee....
Sat 28 Feb | Clay Dowling | Well, you've answered the question yourself. Try it and see. If you're doing much with sorting, check out more advanced algorithms like shell sort or insertion sort. Insertion sort in particular is a very efficient algorithm. If you really want speed and have a very large data set, take a look at quicksort. Make sure you understand the shell or insertion algorithms first though, because quicksort tends to optimize itself by sorting small partitions via one of those.
Sat 28 Feb | Sathyaish Chakravarthy | Yup! Thanks for the reply. I am aware of Quick sort, selection sort and insertion sort too. I've been using Quick sort in my programs actually. This was just Saturday time-pass.
Sat 28 Feb | Sathyaish Chakravarthy | *It will a sin to erase them* be be be be be
Sat 28 Feb | Sathyaish Chakravarthy | Okay, I tried it straight first and it works. [CODE] Option Explicit Public Sub Main() Dim IntArr(0 To 9) As Integer Call FillArray(IntArr) Call BubbleSort(IntArr) Call DisplayArray(IntArr) End Sub Public Sub FillArray(ByRef IntArr() As Integer) Dim LngCounter As Long Randomize (100) For LngCounter = LBound(IntArr) To UBound(IntArr) IntArr(LngCounter) = Rnd * 100 Next LngCounter End Sub Public Sub BubbleSort(ByRef IntArr() As Integer) Dim LngCounterOut As Long Dim LngCounterIn As Long Dim IntTemp As Integer For LngCounterOut = UBound(IntArr) To LBound(IntArr) Step -1 For LngCounterIn = LBound(IntArr) + 1 To UBound(IntArr) Step 1 If IntArr(LngCounterIn - 1) > IntArr(LngCounterIn) Then IntTemp = IntArr(LngCounterIn) IntArr(LngCounterIn) = IntArr(LngCounterIn - 1) IntArr(LngCounterIn - 1) = IntTemp End If Next LngCounterIn, LngCounterOut End Sub Public Sub DisplayArray(ByRef IntArr() As Integer) Dim LngCounter As Long Dim StrDisplayText As String For LngCounter = LBound(IntArr) To UBound(IntArr) StrDisplayText = StrDisplayText & Str(IntArr(LngCounter)) & vbNewLine Next LngCounter MsgBox StrDisplayText End Sub [/CODE] Now I'm gonna try it backwards and see.
Sat 28 Feb | Sathyaish Chakravarthy | Eureka! This one works too. [CODE] Public Sub ReverseBubbleSort(ByRef IntArr() As Integer) Dim LngCounterOut As Long Dim LngCounterIn As Long Dim IntTemp As Integer For LngCounterOut = LBound(IntArr) To UBound(IntArr) For LngCounterIn = UBound(IntArr) - 1 To LBound(IntArr) Step -1 If IntArr(LngCounterIn + 1) < IntArr(LngCounterIn) Then IntTemp = IntArr(LngCounterIn) IntArr(LngCounterIn) = IntArr(LngCounterIn + 1) IntArr(LngCounterIn + 1) = IntTemp End If Next LngCounterIn, LngCounterOut End Sub [/CODE] Thanks, Sathyaish! :)
Sat 28 Feb | x | Let me guess... a US company outsourced some cheap coding to you - and that's exactly what you're providing...
Sat 28 Feb | Sathyaish Chakravarthy | Hey, X guy, you are such a dumb ass to be assuming that a US company would outsource the reversal of a sorting algorithm.
Sat 28 Feb | Ori Berger | Just a quick note: Quicksort isn't too quick. The choice of name has done wonders for quicksort's reputation; I think it wouldn't have been half as a popular if it was called 'recursive partition sort', which it should be. Heap sort is simpler to code and generally faster with guaranteed O(n log n), unless you do your quicksort extremely well. Merge sort is often simpler to code, and requires some additional storage (but provides sort stability in return - a very useful feature). Bubble / Insertion / Shell / Comb sort might be interesting for 200 element lists sorted infrequently. For all other stuff, spend a little time and use heap or mergesort. Your users will thank you eventually.
Sat 28 Feb | Anyone remember Ultrasort?? | 'Quicksort isn't too quick.' Can you elaborate Ori? Everything I've read on the subject indicates that Quicksort is the fastest of the fast, in the general case. Admittedly, I never bothered to check these assertions, but I've seen data to back this claim up. For example: 'The quick sort is by far the fastest of the common sorting algorithms. It's possible to write a special-purpose sorting algorithm that can beat the quick sort for some data sets, but for general-case sorting there isn't anything faster. ' [1] The same reference also states that, 'The heap sort is the slowest of the O(n log n) sorting algorithms...' which seems contrary to what you recommend. Maybe there are some new developments that I'm not aware of? [1] http://linux.wku.edu/~lamonml/algor/sort/quick.html
Sat 28 Feb | Robert Jacobson | Sathyaish, You might be interested in a great book, 'Ready to Run Visual Basic Algorithms' by Rod Stephens. It's a very readable introduction to complexity analysis, data structures and algorithms, with code snippets in VB6. It has a chapter on the major sorting algorithms, and compares their various advantages and disadvanges.
Sat 28 Feb | Clay Dowling | Ori, I'm going to suggest that your position is not backed by well-implemented code. When I was teaching the subject, we implemented several common sorting algorithms and compared times on data sets of varying size. Quicksort lived up to its name once we crossed into the thousands or tens of thousands. Before that insertion sort was our best algorithm. Merge sort is only applicable to certain situations. It's great when you want to combine a couple of sorted data sets, but not terribly appropriate otherwise.
Sat 28 Feb | Kevin | There's also the fact that QuickSort's worst case is still O(N^2).
Sat 28 Feb | x | Why on earth does anyone care at all about Bubblesort? This is sort of like arguing which Hyundai we'll race in when we have an unused Porsche and Lambourghini available. I have a modified version of heapsort that I mostly use that has two nice properties: 2*(n log n) speed and it's an in-place sort - no additional memory required. If speed is an overriding factor and I have lots of memory available (I work in embedded systems, so this is rarely true), I use a recursive implementation of mergesort: it's n log n. Quicksort has bad pessimal performance so I don't like it - embedded systems have to have predictable performance, so heapsort is usually best.
Sun 29 Feb | Ori Berger | My experiments with 'simple' heap sort, 'simple' merge sort, and 'simple' quicksort were not too favorable to quicksort. If your data is randomly ordered, quicksort and merge sort are generally equal, with mergesort requiring more memory (~50%, definitely NOT negligible), and a little more time - often unnoticable on machines with caches, as mergesort has perfectly sequential read and write access. The problem with 'quicksort' on real world data is that it is often NOT random. Many quicksort algorithms, especially those in textbooks, reduce to a horrible O(n^2) when all values are equal (more generally, when the range of data is significantly smaller than the length of the data). And ... guess what? That's often the case in real life. Also, most textbook quicksorts reduce to O(n^2) on sorted input. That _also_ happens quite often in practice. You can go horribly wrong with Quicksort; You can't go horribly wrong with either mergesort or heapsort - you're at O(n log n) at worst. My results may stem from subjecting quicksort to what you might consider 'non random' data, but it is (in my experience) more representative of the real world. Furthermore, I've only met one (1) quicksort implementation that guaranteed never to become O(n^2); And it was horribly complex - because, among other things, it needs to select something close to the median in O(n) time. How many quicksort implementations have you used that do that? Clay, I did my testing years ago; A non optimized heapsort was comparable to quicksort - not much faster, not much slower for most cases; Much slower for some cases. But if you can point me to a quicksort algorithm whose implementation you find worthy, I might find the time to give you a comparable heapsort (no promise - not enough free time these days). As for mergesort - a recent variation developed by Tim Peters for the Python library seems to beat _every_ other comparison sort implementation hands down, both in theory and in practice. And it's stable to boot. The memory cost is 2*n bytes, where n is the list length. On most of today's system, this is very little to pay (For a 10 million element list, this means 20Megs of RAM = your elements, unless they are integers, will probably take ten times as much).
Thank you,Joel. | Sat 28 Feb | Sathyaish Chakravarthy
No, its not farewell time. Just that I talk too much. I came here to JoS last June or July. I believe I began posting to this forum September 2003 onwards. Ive learnt about some of the finest of books on software from Joels book list and from members of this forum. Ive had the pleasure of reading golden words of wisdom from the most pearlish of books one softy-guy could ever read on the subject, all because of this website, to which many of the people in *my* world are oblivious. Like I never shared my possession of Dostoevskys novels with my schoolmates because they were too materialistic I thought for the treasure of his spiritual revelations, I do not share this web address with many of my colleagues simply because they are not deserving. On this site I meet everyday, people who are brilliant in many ways and have awe-inspiring knowledge of their craft. I could linger on to some experiences common to all of us members of this site, but Ill be sparing in words and just say what I have to. I have to say, Joel, if there are any other words that carry better an import of thanks than the words thank you, if there be any other word to measure gratitude of the magnitude we have for you, then I must know them, Guru Joel, and I must say them to you. Ah! And I am still kicking... *softy-guy: May be its not in the dictionary. My coinage. Just felt like shortening software guy
Sat 28 Feb | Sathyaish Chakravarthy | I sure am an Indian, but I didn't. Who ate the space after the comma in the title of this post?
Sat 28 Feb | Sathyaish Chakravarthy | Would the moderators be so kind as to insert a space after the comma there? It looks ugggggly this way, not to mention frightening. It will gimme a compiler error anytime. Option Explicit Dim you as Whatever Dim Joel as Whatever Compiler Error: Variable (you,Joel) not defined Hey, but...!
Sat 28 Feb | MacSqueeb | I too have become a huge fan in a short time. I spend way too much time on forums, but much less of it is wasted here. Off-line, I don't socialize with a lot of people who share my passion for software creation, so it's nice to find a community from whom I am learning so much in that arena. I have done a bit of proselityzing of JoS to my collegues, and while it's generally been well received, they do bust my chops--accusing me in jest of having some kind of obsession with Joel the man as opposed to JoS the resource. The thing is, whether you see Joel the man as a guru or an egomaniac, there should be no denying that the resource is awesome. Things like the Sloppy Test and Painless Bug Tracking have become some of the stimuli for improving a lot of processes in the shop where I work. Whether that is because his observations are revelatory--going where no software pundit has gone before--or whether he just has an uncanny knack for stating the best lessons of the last 50 years of software creation in ways that make the reader say, 'yes, that just makes sense,' I won't say, but it works for me. And of course, credit goes to the forum contributors too, from whom I also learn an incredible lot.
Sat 28 Feb | Zahid | Softy-guy wrote, 'I do not share this web address with many of my colleagues simply because they are not deserving.'. I might suggest that those of your colleagues who are not deserving are the ones who need forums like this the most.
Sun 29 Feb | Friend | It seems u have problem with everyone. IITians IIM people Your colleagues You talk too much insane.
Sun 29 Feb | Sathyaish Chakravarthy | >It seems u have problem with everyone. IITians, IIM people, your colleagues. Utter nonsense! My comments on that particular IITian need not be generalized, and as such IITians are brilliant. I was offering my experience in having known an IITian and that's all. The piece on IIM was a debate on fee slash, that was all over the news.
Some reasons not to buy a home | Sat 28 Feb | VP
An article offering some good points to consider: http://moneycentral.msn.com/content/Banking/Homebuyingguide/P37627.asp Getting laid off would have been a horrible experience for me, if I had listened to everyone and bought a house. Because I rent, I not only have the freedom to live wherever I find a job, I have the luxary to work only for a company thats worth working for. The main problem with a mortgage is that its an expense which you cant easily reduce when you need to. Unlike children, who dont HAVE to be fed. They can beat up someone elses kids and steal their lunch money. Live off the land, and all that.
Sat 28 Feb | Oren Miller | As a homeowner all I would have to do is become a recalcitrant landlord and have someone like you pay my mortgage.
Sat 28 Feb | Oren Miller | It's also not true that you can't reduce the expense. What you generally do is get a long term mortgage say 30 years, and plan to pay it off in say 20 years. You do the numbers before hand to figure out what you can afford at this rate. If you have problems and can no longer afford to pay at that rate, you can begin reducing you're payments to the 30 year schedule (or somewhere in between) with no penalties. With the tax break on the interest and the equity you build on the principal, it really is *generally* a good deal. What is true is the part about flexibility of location. If you have to move within 5 years of a purchase of your home, then the benefits are lost because of the various fees involved (though I would say 10% is very exaggerated).
Sat 28 Feb | The Ted | The Ted bought a house that he could afford to pay off in 15 years, but took out a 30 year note on it, precisely in case I did get laid off.  Also, around here, my house payment is only $100 more than what I was paying in rent.  If I would've put 20% down on it, I could rent it out cash flow positive immediately. 
Sat 28 Feb | Ken Klose | I don't know about where you guys live, but here in NJ, owning a home was a plus during the economic downturn. I had one friend who had bought a new home only a few months before getting laid-off. By that time, his builder was charging 75 grand more for the identical house, he therefore had 75 grand of equity that he borrowed against to live off of while searching for a new job. He got a nice new job, with more salary, has paid off his equity loan, and now has 125 grand in equity since prices have climbed another 50 grand in the year since he got a job. Try doing THAT with an apartment.
Sat 28 Feb | dir at badblue dot com | If you can: buy. Especially if you're young. Can't remember who said it, but words to the effect: 'They ain't makin' any more land' Look at the price curve in Boston, NYC metro, etc. You could have lost tons in the stock market in the last few years and made it all up in equity.
Sat 28 Feb | no name | Also, with the current interest rates and depending on your location, paying a "mortgage" is often cheaper than renting.
Sat 28 Feb | Bella | VP, buying is a no brainer for the long haul. When you buy, you lock in the same payment for 30 years. The renter, OTOH, will only see your rent rise for the next 30 years. A person who bought a house in 1975 for $60k has been paying $300/mo to live in their house for the last 30 years. And, now the house is paid and the cost is $0. and they are also sitting on a $500,000 profit which will finance their retirement. Meanwhile, the renter, is now paying $3000/mo to rent the same house. And has $0 profit. Also, last I checked, you ARE allowed to sell your house and move. And in this market, you can find 3 buyers at the end of a week. It can take the same time to sell a house as it does to get out of your renters lease.
Sat 28 Feb | Bored Bystander | Since this is a programmer's board, let's attune this reasoning to programming as an occupation. Demand has become increasingly spotty for our line of work. I know *many* programmer types who are hanging on by their fingernails, invested in home payments that were predicated upon the late 1990s type compensation schemes increasing ever upward. Back in the 1970s and early 80s, the rust belt of the US was a bloodbath because of blue collar layoffs in the auto industry. Towns that specialized in auto manufacture and related stuff had incredibly damaged real estate markets that took years to recover. And what happened to blue collar industries in the last 20 years is now happening on a smaller scale to IT. This is why I bought cheap and paid off my house early. At least I don't have a mortgage payment to think about.
Sat 28 Feb | Ray | I don't think the issue is about buying a house or not. It is about living within your means. Buying a house that requires payments equal to 40% of your take home pay probably isn't the smartest thing that you can do financially (although I have done it). It is just important to have an emergency fund that can get you through 3-6 months (or more) of 'normal' monthly expenses. Although in this market maybe you need closer to a year or two worth of expenses to be really safe. Having said that if you are the type of person that likes a new environment every couple of years, maybe buying a house isn't for you at all. You will almost certainly lose money if you buy and sell a house every two years...
Sat 28 Feb | Ploni Almoni | In Israel, the situation is reveresed - econmocially, if you can afford to buy a house without a mortgage, you're better off putting your money in the bank and renting a place with the interest you receive. If you buy a house and rent it out to someone else, you're getting less than you'd get at the bank. And mortgage interest is not tax deductible, so you end up paying a _lot_. Unfortunately, since it isn't possible to 'short sell' a house, I see no way to take advantage of this anomality, (other than renting my flat). There are, of course, other reasons to buy a house - but the economics of the situation isn't one of them.
Sat 28 Feb | VP | I've found that a big part of making the right the decission is having the right point of view. The more point of views you have to consider, the better your chance of making a good decission (then again, if you're given a lot of of the same point of views, then it might sway your decission that way, but I digress). Thanks for sharing your opinions everyone. Oren, Good point about taking out a longer mortgage than you're planning to need. When it finally does come time for me to buy a home, I'll keep that in mind. Heh, too bad I can't take out a 100 year mortgage. Though maybe that would have it's gotchas also, outside of not being able to find a bank that would give you one. Ted, Good point about renting your property to make cash flow. Hopefully the renting market is good at the time when you need the cash, but it definately is an option. I keep hearing horror stories about bad tenants you can't get rid of, due to some local law. I guess it's up to you to keep informed. On a side note, I came to realize that if I ever wanted to become a landlord, a source of advice would be my past landlords who I've rented from. Assuming I didn't burn down their places *knock on wood* I would think they'd be happy to give me some pointers. Ken, Ah yeah equity. Your example is what they call leverage? Badblue, It's true, over the very long term, land prices can only go up...unless they discover some nasty thing about your area, like it's susceptable to landslides, wildfires, full of chemical pollution, etc. I agree that a home can be a good investment, as long as you remember that you can't sell it as quickly or easily as something like stocks or mutual funds. As the article pointed out, if you know you'll be in the area for many years, you can wait out the the slow down turns. Bella, The article makes a point of home owners having to deal with rising property tax and the cost of maintenance (if they didn't buy their home fee-simple). Of course how that compares to the rise of rent, I have no clue. The cost of rent probably fluctuates more. Good point about comparing the time it takes to sell a house vs. the time to get out of your lease. I guess it depends on your luck at the time. Are you in a seller's market? Is your landlord nice enough, or lazy enough, to switch to monthly pay after you prove yourself with a few leases. Bystander, Yeah it's a shame tech jobs have become so volitale. Morale of the story: Marry rich! Yeah like you, I can't help but compare the tech industry to the old blue collar industries. When it does come to buying a home, I think I'll follow your lead and go cheap. Once I have a home secured, I might consider the McMansion (heh, assuming I get paid enough for that, yeah right) Ray, Very good point, about living within your means. Another critical part of me handling the layoff well was not have much in the way of expenses. I'm lucky that my wife and I are happy with a simple life style, and the kids are still very young, but old enough to understand some simple tactics in intimidation and terrorizing. I agree with you that 6 months of savings doesn't seem like enough these days. The nice thing about one to two years savings is it allows you do more research and be more selective about the job you take. I'm not the one uproot for the heck of it, but there are probably a good number of readers out there with wanderlust who should consider your point.
Sat 28 Feb | Simon Lucy | It would be nice if when you got a mortgage that it locked the price for 30 years.  Unfortunately that isn't the case in the general run of things in the UK, at most you'll get a deal for five years.
Sat 28 Feb | The Ted | You can't get a 15 or 30 year fixed note in the U.K.? Holy crap.
Sat 28 Feb | VP | I should have put my original post into context. I live in an area where there are few tech companies to choose from. If I get laid off, either I stay and take a crappy job, or move to greener pastures. Hence my current preference for mobility. Of course those of you who live near tech centers like Silcon Valley or San Diego, you can afford to stay put, so buying a home there is less risky. Simon, Ouch, only five years? Hmm do you think that's because there's less living space in the UK than the states? Though I can't see an obvious connection. Hmm. There's probably another reason for only a 5 year mortgage.
Sat 28 Feb | Simon Lucy | Nope, well I'll revise that. Gordon the Gopher Brown (Chancellor) would like long term mortgages, if nothing else it would cool the housing market and help bridge the gap between Us and Euroland so we can have multicoloured money too. But there are reasons for them not really existing. Historically the mortgage market has lived off marginal rates mostly running at around 2% above bank rate. Now you'll see fixed rate offers for five years, or fixed marginal rates, our personal remortgaged rate is now about 1.6% below the bank rate. In mid-80's the bank rate was at 15%, so some people were paying 17% on their mortgage at a time when housing prices were falling after a boom. Right now were in another housing boom but in a market with far lower interest rates. The result is that first time buyers are becoming excluded from the market, which in the end will slow it down.
Sat 28 Feb | a cynic writes... | The usual in the UK is for 25 year mortgages *but* variable interest rates and often an initial discount. The tendency is therefore for people to remortgage at the the end of the discount period. You can get a fixed loan but there's a premium to pay and as Simon pointed out people have been caught out previously. The UK Housing marking tends to be volatile to put it mildly - with booms followed by sharp corrections - but overall house values are relatively high - a product of population density and cultural values.
Sat 28 Feb | Mark Hoffman | I can't even imagine not owning a home. That was my first priority once I started working. I suppose if you plan on being transient and moving around a lot, then perhaps a home isn't such a great idea, but if you're having to uproot every few years I might suggest a different line of work. Life's too short to spend half of it moving! Our first home is now a rental property and I've got someone else paying the mortgage and the taxes while I deduct it from my income tax. All the while I'm capturing the appreciation in value; not them. And I'm doing this on an initial investment of $2,500 down on the house. That's double-digit ROI. Try getting that every year on your 401k without insane risks. Granted, this works out well until they move out and leave the house in shambles and I'm forced to pay two mortgage payments. But the risk is worth the reward. One of the best ways to slowly accumulate wealth in the US is through real estate.
Sat 28 Feb | Me and the view out the window | > One of the best ways to slowly accumulate wealth in the US is through real estate. Which suggests something is wrong. Why should people get wealthy by doing nothing, and exploiting others?
Sat 28 Feb | Mark Hoffman | 'Which suggests something is wrong. Why should people get wealthy by doing nothing, and exploiting others? ' Exactly how am I exploiting them? Are you going to let them live with you? Are you suggesting that they move into Section-8 housing, or perhaps you would rather than live on the street rather than enrich someone else? My tenants, who have lousy credit, are able to live in a nice that they couldn't afford to purchase. That's a benefit to them. I take a risk because if they up and leave, I'm stuck paying the mortgage until I find new tenants. For that risk, I am compensated by the income I earn on my investment. Furthermore, most of the wealth is earned by the appreciation of the property value, not by the rental payments. Are you suggesting that the appreciation in land values in somehow unethical or immoral? How do you figure that?
Sat 28 Feb | Rob Walker | > Heh, too bad I can't take out a 100 year mortgage. > Though maybe that would have it's gotchas also, outside > of not being able to find a bank that would give you one. I remember hearing about very long term mortgages (50+ years) in Toyko due to the extremely expensive real estate market (and very low interest rates?). I think the idea was you passed what was left of the mortgage on to your kids along with the house. The problem is that the difference in payments between a 30 yr mortgage and a 100 yr mortgage would be very small, but you are paying one for a *lot* longer. At a mininum you have to pay your x% interest a year regardless of the amortization term.
Sat 28 Feb | Les C | FWIW A Cynic Writes's comments apply to Australia as well.
Sat 28 Feb | Devil's Advocate | On the other side of the coin, I am a fairly recent graduate who lives and works about 45 min from NYC. Thanks to the 2-decade housing boom in this area, I can't afford a Condo inside a 1-hr commute radius, despite a salary which is quite comfortable. Furthermore, housing costs continue to outstrip wage increases (both on average and mine in particular) by a healthy margin. This means that neither I nor anyone in a comparable or lesser-paying job in this area will likely ever own a home. That is simultaneously aggravating and demoralizing.
Sun 29 Feb | Bella | > I can't afford a Condo inside a 1-hr commute radius, despite a salary which is quite comfortable By definition, you do not have a comfortable salary. Wake up. You are poor. Piss poor, in fact.
Sun 29 Feb | Simon Lucy | In Japan its normal, especially in the cities, to have the children inherit the parent's mortgage this is equivalent to serfdom, especially as many of the holders of the mortgage are the companies they work for. Whether these can truly be called mortgages is moot.
Sun 29 Feb | George | Mark, you just explained how you're exploiting them. You're having them pay your mortgage while you derive all the appreciation in value. You do nothing but get wealthy. They pay the bills and get nothing. If it wasn't profitable for people like you to buy houses you don't need, other people would be able to afford them, instead of having to pay people like you for housing. Second, you take very little risk or you wouldn't do it. You make a motza without lifting a finger. Third, the appreciation in value arises from actions of the community, including better transport, not from anything you do.
Sun 29 Feb | The Ted | 'They pay the bills and get nothing.' Actually, they get a place to live.
Sun 29 Feb | mb | housing prices don't always go up. here in the seattle area, rents are far cheaper than real estate. real estate is probably in a bubble, it will correct or stop increasing at some point. people who bought recently and rent out their houses lose money each month. if they're lucky, they don't lose much, and will gain it back very long term. real estate is illiquid; not only is it hard to sell, the transaction costs are high (6-10% for most cases). so if you plan to be somewhere long term, sure, it's worth it. and if the market is in the right place, it's worth it. but it's not the guaranteed investment some people make it out to be.
Sun 29 Feb | no name | 'but it's not the guaranteed investment some people make it out to be' It sure does sell books though.
Sun 29 Feb | Christopher Wells | mb, for example there's a graph at http://www.randi-emmott.com/market.htm that shows the fluctuation in Toronto.
Sun 29 Feb | Stephen Jones | I've got a colleague here in Saudi whose family lives in a house in the Rust Belt, Pittsburg I believe. It's a four bedroom town house, maybe 1,600 square feet. He bought it for $24,000 about fifteen years ago, and it is now worth a whopping $32,000 he says. You couldn't build a house for that price, never mind the cost of the land! Land prices go up where there's work, skiing or nice weather.
Sun 29 Feb | Devil's Advocate | I suppose I know better than to feed the trolls, but perhaps some of this bears spelling out. My earnings are very high (esp. for someone my age), but my assets are low as I have not been working very long. I say I am comfortable because I can afford everything I want (except real estate) and still put a nice chunk of money in the bank every month. It doesn't take a genius to see that as long as housing prices increase at a faster rate than both wages and most investments, more people will be precluded from 1st time home ownership. For single wage earners (in my demographic) starting to work in this area today, only the top 7-8% will be able to afford home ownership unless one of the trends mentioned above reverses. Hence 92% of new hires are destined to be 'piss-poor' as Bella put it. Unless we all just save up for a few years and move to the Midwest, where houses are dirt cheap.
Sun 29 Feb | VP | As a landlord, Mark does carry the burden of risk. Also the cost of maintaining the home is his, not the renter's. Therefore he should be compensated. Being wealthy or increasing your wealth doesn't automatically make you evil.
Sun 29 Feb | Katie Lucas | I decided to buy a house at the point owning a house became cheaper than renting one. I was kind of fortunate to jump on the housing bandwagon at that point. I wanted a decent house in a nice area - where I wouldn't have to worry about parking the car at night... So I happened on just the right place and bought it. It wasn't anywhere near my borrowing limit. People kept wittering at me that I 'could borrow much more' when I inquired about loans. People looked at me askance for only borrowing twice my annual salary. A year later, I've changed jobs and dropped salary, the same houses on the same estate were going for more than 3.5 times my salary. A year after that, the same houses are going for nearly 3 times the combined income of me AND my other half. And my salary has gone down again... which is bonkers. It's a 3 bed detached 'starter home'. The house market in the UK is NUTS!
Sun 29 Feb | mb | here's another problem: now if you want to sell that house and make back the 6 fold increase or whatever.... where are you going to live? (if you believe it's a bubble, you could sell & rent for a while. but market timing is always hard.)
Sun 29 Feb | Mediocre ASP Monkey | I'm in a similar boat to Devil's Advocate, though I suspect my salary sucks in comparison (and conversely, real estate in Melbourne, despite it's insanity, is probably much less crazy than NYC). All I can say is no amount of long-term gain stops borrowing an amount of money equal to *fifteen times* my current after-tax salary from being terrifying. Every degree of terror down from there takes me a *long* way from the city, which is not only where I work, but where I overwhelmingly prefer to live. Add in my complete lack of interest in housing matters (not only the market, but renovating, gardening etc) - and I'm at a distinct disadvantage to the thousands in this town who live and breathe housing. Maybe it's not the best move in the long term, but I'll keep renting, thanks.
Sun 29 Feb |  me again | Devil's Advocate, there are plenty of condos in New Jersey which are affordable by anyone making a 'comfortable salary' ($100K) in Manhattan. I have a friend who just bought a house in Ruthersford for $270K. Also, anywhere with jobs and decent school districts in the midwest is going to be more expensive than you think.
Sun 29 Feb |   | All, As I understand it, interest repayments on your own home is tax deductible in the US? This is not the case in all countries (eg Australia). Seeya
Emulate Mac OS X from within OS X? | Fri 27 Feb | Wayne
I know you cant run OS X on x86 yet, otherwise Id be able to do this in VMWare, but if I buy a Mac to do software development on, can I at least emulate the OS from within the OS? Ever since I discovered VMWare, I havent been able to live without it. Its invaluable for software development. How do Mac Developers do this?
Fri 27 Feb | Jim | Good lord, why?
Fri 27 Feb | Lou | I'm not aware of a way to emulate OS X from within OS X, however you can install Linux on PPC and emulate multiple instances of OS X. It's not even emulation as much as it's time sharing, the calls all run straight through to the processor, the Linux program just manages the instances.
Fri 27 Feb | Wayne | That is !fantastic! Lou, is this with Bochs or something? Why what, Jim?
Fri 27 Feb | Dennis Forbes | 'It's not even emulation as much as it's time sharing, the calls all run straight through to the processor, the Linux program just manages the instances.' This is pretty much what VMWare does. While it virtualizes some generic hardware, when doing process-heavy tasks (with a limited amount of GUI interactivity), VMWare sessions are very close to 100% of 'native' speed.
Fri 27 Feb | Pierre-Luc | Mol (Mac on Linux) running linux PPC can do what you ask. So you can run multiple instance of OSX within Linux. But you need to run linux this app does not work on OSX. The principle of MOL are about the same as VMWare.
Fri 27 Feb | Lou | MOL is the project I was thinking of.
Sat 28 Feb | Wayne | Awesome!  I am buying a PPC machine tommorrow.  Thanks again!
Sun 29 Feb | Brent Gulanowski | Lou: what you're describing *is* emulation. Problem is that too many products that call themselves emulators are actually *simulators* -- at least according to what they taught me in school. (Simulator: software-based processor+system; emulator: real processor + different hardware and/or software combination). Running in emulation is a good idea. It is much more secure, amongst other benefits. Apple could probably make an OS X emulator using code from Classic. In fact, it might even have been better if they had just made a generic Mac emulator and let people run multiple instances of OS 9 and OS X to their heart's content. OS X 10.4 feature, anyone?
Sun 29 Feb | Brad Wilson | Does MOL work on ANY Linux PowerPC, or only on Macs running Linux?
Nextel direct connect - why? | Fri 27 Feb | Philo
Can someone help me out? Why is this walkie-talkie thing such a big deal? I understand walkie-talkies - you can talk for free without a network. I understood Nextel direct connect as initially pitched - you could talk for free without a network (or so I thought) But with nationwide direct connect Ive gotta guess theyre using their network. So why should I prefer half-duplex with silly beeps over full duplex telephone communications? I honestly dont get it. Philo
Fri 27 Feb | Joel Spolsky | You've never seen how contractors work. I say to my Irish contractor James: when is this toilet getting hooked up? He hits the button and says 'Jimmy, when are you hooking up the toilet? Jimmy replies. I then say, 'And why is this light not hooked up?' He hits the button and says, 'Seamus, what's with the light in the downstairs bathroom?' Seamus replies. (My crew of Irish builders are all James, Jim, Jimmy, and there are at least two Seamuses). The interesting thing is that these guys are all over Manhattan and half in Westchester, but the conversation is instantaneous and short-lived. It's just voice IM.
Fri 27 Feb | Nick | Why? Because I have a very pretty daughter that will be in high school in a few years. I'm the genre they should be marketing to.
Fri 27 Feb | Rob Walker | I don't get it either -- who are you connected to? It can't be everyone in range since it wouldn't scale or work nationally. So do you have to join a group somehow? Can you be in more than one group? Isn't having your phone squawk to life on its one just irritating. I'd imagine most conversations start with 'what was that ...?' Guess I'm definitely in the wrong demographic!
Fri 27 Feb | Mike Swieton | I thought that they provided free walkie-talkie service to anyone on that provider?
Fri 27 Feb | MikeMcNertney | Whatever it is, the commercials certainly do a horrible job of selling it to me.  They don't show me anything that the direct connect does that I wouldn't rather just call the person for
Fri 27 Feb |  me again | direct connect is HUGE with construction workers, truck drivers, and other 'operations' type people. when I looked for apartments in NYC, my realtor used it to bring in his agents... any business types who normally use radios, are into direct connect. rumor has it that many of the other carriers are trying to offer the same service. I know for a fact that a huge UK mobile provider is going to roll this out at the end of this year or early 2005...
Fri 27 Feb | Joel Spolsky | Technically, think of it as a phone call that connects instantaneously. No dialing. No ringy-dingy. The speakers are much louder than usual cellphone speakers -- more like speakerphones -- so you don't have to hold the phone up to your ear to hear the caller, which means you can keep hammering in nails while your boss starts talking to you directly. And in the US only Nextel has it. The other phone companies simulate it using normal phone calls behind the scenes, or using their data services, but the connect time and latency on those providers is ridiculous and it just doesn't work, so everyone's going to stick with Nextel.
Fri 27 Feb | AnonAnonAnon | Why? Because someone needed to come up with a way to make cell phones even more annoying. Now we get the beep/click from every idiot who feels self important.
Fri 27 Feb | FredF | Maybe a stupid question but... if you don't dial a number, how can you reach a given walkie-talkie ? PS: For some reason, the French use it backward: 'Ceci est un talkie-walkie' :-)
Fri 27 Feb |  me again | http://electronics.howstuffworks.com/question530.htm
Sat 28 Feb | Oren Miller | I worked at a trading firm 5 years ago and this system was really useful. What it does it free you up from the 'activity' of being 'on the phone'. You don't need to glue the device to you're head or be put on hold. You can make multiple inqueries to several people at the same time without having to hang up on someone. There isn't the overhead involved in establishing a connection in order to send/recieve information. No ring ring ring ring. Just b-beep, 'here's your information'. But really best of all, the half duplex nature makes for greatly improved communication. You get to finish you're sentences. People actually listen attentively to what you have to say, and you them. This system is not intended for joe schmoe who wants a phone, and that is probably a poor way to market it. It is intended for people who work as a group but are not always physically in the same place due to the nature of their jobs. Although I do have to say it is brilliant for bar hopping and making sure everyone knows where to go next.
Sat 28 Feb | Alex.ro | >> how can you reach a given walkie-talkie Everyone can hear you. It's like a JoS forum over the air :) I worked for a company where we used walkie-talkies before cell phones came in. A lot of fun -- even physically separated, you always knew what 'the guys' were doing.
Sat 28 Feb | Zahid | No, not everyone can hear you (using the Nextel). You can broadcast if you'd like, or you can just target when I was directing an end-user support team several years ago, we were early adopters of Nextel Direct Connect, and it was very cool and useful. I don't know that I would need it now, however, where my work is strictly analysis and coding. I certainly don't have any desire to have my family and friends beeping me while at work, where anyone can hear the conversation.
Sat 28 Feb | www.marktaw.com | Because if you have dozens of short messages throughout the day you. 1. Don't need the formality of a phone call. 2. Don't have to dial. 3. Don't have to pay for the minutes. Another example: I saw a cab company use them. Goes farther than the old way, and works about the same, perhaps with even less of the chatter. Whoever said it was IM for the phone is right on the money.
Sun 29 Feb | Philo | I think the 'IM for the phone' misses just like the nextel commercials do. To me, snail mail=email, phone call=IM. I can see the value of the walkie-talkie style, which IMHO is completely missed in the commercials, which show what I consider to be normal phone calls (which prompted this thread). I suspect Nextel has either saturated their appropriate markets and are now targeting inappropriate markets, or else they figure that appropriate markets aren't going to make major capital expenditures based on TV ads, so they think targeting the execs is a better idea. On the other hand, there's a whole thread about them here, so who am I to call their advertising misguided? Mindshare is mindshare, right? :) Philo
Sun 29 Feb | anonymous | I think the advertising is rather poor, but most people who want such a service (contractors, delivery people, etc) tend to already be using it or at least know about it.  It is possible to get the direct connect service without cell phone service.  In other words you can use it strictly as a walkie-talkie service and not have to worry about employees making phone calls.  The traditional walkie-talkie services used by companies are not free either.  They pay to use a private frequency.  You can also talk directly to one person with Direct Connect, which isn't possible with traditional walkie-talkie services.
Why Spirit stopped working... | Fri 27 Feb | Kentasy
Another great story about how hard complete testing is and how important exception handling is in software. http://www.eetimes.com/sys/news/OEG20040220S0046
Fri 27 Feb | pdq | What I find remarkable is not that they had a bug, but they anticipated the fact that they might have problems and had systems in place to recover.
Fri 27 Feb | sgf | So the Spirit was willing, but the flash was weak. :)
Fri 27 Feb | son of parnas | Most complex embedded systems have recovery mechanisms for when it really goes wrong. I am still somewhat stunned that they made such a bad mistake. It's not like it's a difficult scenario to construct.
Fri 27 Feb | AnonAnonAnon | Picking the winning lottery numbers the day after the lottery is easy too. Of the 5,308,134 things to test, something is always going to be left out. Otherwise the project would take 50 years, and cost $100,000,000,000,000. Sure it was an easy scenario to setup, it was just thinking would actually be a problem that was hard.
Fri 27 Feb | son of parnas | Pish. This isn't monday morning 20-20 hindsight. I work on embedded systems and it should have been thought of.
Fri 27 Feb | Robert Jacobson | Here's what really happened to Spirit: http://images.spaceref.com/news/2004/rover.armspin.mov (Via the Chris Sells blog.)
Sat 28 Feb | Rocket Scientist | Yeah parnas let's see your space probe. Sheesh.
Sat 28 Feb | Sam Livingston-Gray | sgf:  OUCH.  (Nice pun.)
Sat 28 Feb | son of parnas | Rocket scientist, i would love to create a space probe. I would make mistakes, but hopefully they would be a little less obvious ones.
Sun 29 Feb | Dan Maas | Hehe, the arm-spin animation is my work :). www.maasdigital.com
BACKWEB-8876480.EXE - What the hell is that ? | Fri 27 Feb | Hotgen
Can someone tell me why this file (BACKWEB-8876480.EXE- 0566499E.pf) would need server access to the internet. Or what this file does. Thanks.
Fri 27 Feb | B | google for it - BACKWEB-8876480. The first link says its not bad. But everyone else seems to think it is. Use AdAware
Fri 27 Feb | Nigel | Do you have F-Secure anti-virus installed?
Fri 27 Feb | R Chevallier | See http://www.liutilities.com/products/wintaskspro/processlibrary/backweb-8876480/ (Google is your friend)
Fri 27 Feb | Dennis Atkins | On this general topic, that page says: Description: Comes with the software for Logitech products. Automatically checks for software upgrades and new products, services, and special offerings from Logitech. Security Risk ( Virus/Trojan/Worm/Adware/Spyware ): No Now, the thing is I think its misclassified. It checks for 'new products, services, and special offerings'. Now how the heck is that not adware???? Furthermore, the user didn't know what it was so he didn't specifically ask to have this ad-grabber installed. Sounds like a trojan to me! He installs his mouse driver and the next thing ya know it's downloading ads frem the net without permission! You can't tell me that ain't trojan adware!!!
Fri 27 Feb | Chris Ormerod | I have backWeb-7288971.exe and that came with my Kodak digital camera and is in a folder named 'Software Update' Could it be a different version of that?
Sun 29 Feb | armcurl | It's not so much adware as optional update checking ware, similar to that built into XP. It's quite easily turned off. Go Start -> Logitech -> Desktop Messenger Uncheck both boxes. :)
$299 Deal on A TON of Microsoftware | Fri 27 Feb | Ken Klose
http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=3663452078&category=41888 This guy claims you can buy 10 copies of Windows and Office and a bunch of other stuff for $299 if youre a Microsoft Reseller/Integrator/etc. Is this true? Anyone know about this?
Fri 27 Feb | Steve Jones (UK) | Might be the MS Action Pack. I got that a couple years back now and it had loads of copies of Windows, Office, Visio, Project, etc, etc, and was meant for VARs. It only cost a couple hundred pounds, so it was a very good deal, even though it was only licensed for a year. Now I've got MSDN Universal, so I let the Action Pack subscription expire. OTOH it could just be some gray market / OEM pack, or indeed a complete pirate copy.
Fri 27 Feb | Doug | Yes, I think it is the ActionPack. Here's an info page: http://members.microsoft.com/partner/salesmarketing/partnermarket/actionpack/actionpackus.aspx eBay is really bringing out the slime. I also noticed Microsoft has lowered the price of the 'Empower ISV' program to $375: http://members.microsoft.com/partner/isv/empower/default.aspx That gets you a MSDN Universal subscription. Just have to promise to realease an app in a year (that's all). I wonder what the penalty is for failing to do that? That's doesn't appear to be addressed in their FAQs. Doug
Fri 27 Feb | Ken Klose | Wow! I post a question like this in the middle of the night and get two high-quality responses in less than an hour! Gosh! I *LOVE* this site!
Fri 27 Feb | Simon Lucy | The Empower deal was covered around the turn of the year, the consensus was that as the licence on the software expires after a year and its non-renewable, unlike the regular Universal subscription, that if you failed to relaease an application and progress in the Partner program nothing much was going to happen. I've finally received an invoice from Microsoft for the Empower plan, after first they couldn't get to the web site (temporary router problems) and then didn't realise that I'd paid online so I was rung up by this guy with a very Austrian kind of accent demanding money. After I explained they already had the debit card details he went away. So now I'm just waiting on the DVDs, which is irritating because if I'd known it was going to take this long I'd have gone out and bought version 8 of Visual Foxpro rather than wait for the MSDN.
Fri 27 Feb | tapiwa | Ken, off topic, but just for the record, it is not the middle of the night everywhere on the planet. Like they say, the world won't end today because it is already tomorrow in Australia!
Fri 27 Feb | GuyIncognito | http://images.andale.com/f2/101/120/11575300/1075980248020_MS_Software_Advisor.JPG Is there even such a thing as a 'Microsoft Certified Software Advisor / System Builder'? That logo looks home made.
Fri 27 Feb | Dennis Forbes | Not just home-made, but mistyped ("Advior") as well. That's pretty nasty.
Fri 27 Feb | Ken Klose | Tapiwa - but don't forget, I'm an "ugly American" and don't acknowledge a world exists outside our borders.  Heck, I barely acknowledge the American Midwest!  Except of course when Playboy does a "Girls of Ohio State" issue. :-)
Fri 27 Feb | Bored Bystander | Oh, brother! This Ebay guy is an idiot. A 'one time consulting fee of $19.99'. And he is misrepresenting the Action Pack, it is intended to be restricted to consultants and IT professionals. For free, I will post the link. I have the Action Pack. I paid $99 during a promotion last year. Even at $299 it's a bargain. You basically get every non development platform thing they sell. http://members.microsoft.com/partner/salesmarketing/partnermarket/actionpack/actionpackus.aspx
Fri 27 Feb | Ken Klose | A $99 promotion last year?  Why di *I* never hear about these things!  Is there some mailing list or something that I should be on to not miss out on these things?
Fri 27 Feb | Bored Bystander | It came through one of the IT magazines's email lists. I think it was 'Networking Magazine'. It sure wasn't promoted very much. Basically they gave you a referral code which you entered into the ordering page for the action pack, and the final price at the checkout was $99 plus shipping. The deadline was June 30. BUT even at $299 it's almost mandatory for someone in this business. And you get four quarterly updates.
Fri 27 Feb | Stephen Jones | Outside the States only for resellers.
Sat 28 Feb | James U-S | We have this - I think it was Ł199 + VAT in the UK. I've been very happy with it; there are a few apps that I wish it included like the new MS Virtual PC but that's only on MSDN if I remember correctly.
Sat 28 Feb | Bored Bystander | The Action Pack update I just received contains Virtual PC.
Sun 29 Feb | James U-S | I'll look forward to my next update then :) It wasn't included in the last update but was publicly available at that time so I assumed it was not available.
Windows XP Reloaded | Fri 27 Feb | your address is never revealed
Fire and Motion revisited: http://news.com.com/2102-1016_3-5165966.html?tag=st.util.print
Fri 27 Feb | Simon Lucy | That's no more than a natural result of their policy on lifetimes for products which is now 6 years.  So 6 years after the first release of XP they'll stop supporting it.
Fri 27 Feb | GiorgioG | You'd be lucky to find a car with a 6 year warranty (other than the import cars you're already weary of i.e. Kia, Hyundai - who have no choice but to do this in order to get you to buy their cars.) This is not to say you shouldn't be able to pay for an extension, but without large numbers of companies asking/paying for this - it doesn't make much sense for Microsoft or any other company. I'm not sure why after 6 years they should have to support it - from their business perspective anyway. If there was enough money in it for them, IOW - fat support contracts, it would make sense. Remember, they're in it for the money - rolling a new product out will always rake in more cash than offering any type of extended support for existing products - at least in the Microsoft world anyway.
Fri 27 Feb | Nigel | I'm not sure if software qualifies, but for hardware there are laws about having to support the product for a number of years.
Fri 27 Feb | Stephen Jones | Nobody really cares about losing phone support. It is the question of security patches. If MS don't want to fix bugs and security holes after six years let them telease the source code, so at least the customer can do it for free. The guarantee period for cars is a red harring. Hardware deteriorates with time. And the equivalent would be Hyundai offering a six year guarantee from the day they first sold a car in the States, not the date you bought one.
Sun 29 Feb | Brent Gulanowski | My roommate already has Windows XP reloaded — I think he's on the fourth "reload" in as many months. ;-)
The next Fog Creek product | Thu 26 Feb | magoo
Lets suppose, for the sake of discussion, that Joel is getting bored with the Fog Creek product line and wants to introduce another app. What should the next Fog Creek product be? (and why)
Thu 26 Feb | Damian | Fog Creek Salad Cream
Fri 27 Feb | GuyIncognito | What makes you think 'Ask Joel' isn't it? Oh sure, the first couple of answers are 'free', but then they jack up the price! ;)
Fri 27 Feb | Justin | You joke, but that's exactly what happened with 'Experts Exchange'. Following a rebranding (probably because people like me kept calling it 'Expert sexchange') it became subscription only. I think you now have to pay for different subscription levels. The original premise was a free to post BB where people ask technical questions and others post answers. As you might imagine, after a couple of years or so of this they have a massive technical repository. I will not comment on the quality of a lot of it. To be honest, I'm only mildly surprised that Joel hasn't capitalised on this. He'd just need a reaonably intelligent elf to aggregate to posts and categorise them.
Fri 27 Feb | Aussie Chick | Experts-exchange isn't subscription only, though I suppose when subscribers with unlimited points can post maximium amounts for each question....well it means you can no longer ask a question for 50 points and expect an answer. I liked it alot until they did the website redesign, lucky they have kept the 'oldlook' around for people like me...
Fri 27 Feb | Stephen Jones | I spent a couple of months answering questions, but it takes ages to load a page, and they don't render properly on Netscape anyway, so I haven't checked back in nearly a month. The other thing that irritates me is that it appears that the points you earn for answering questions can't be usd to ask questions. You can be their leading expert and spend three hours a day answering questions for free, but still only get the same number of free questions you get if you subscribe and never touch the site for a couple of years.
Fri 27 Feb | Steve | How about an application builder companion to CityDesk?  Kind of like Access only the forms and reports are web-based.  The key being the build-preview-publish model.  Click publish (or "Deploy" in this case) and everything loads up in the correct place to the app server - probably limited to IIS.
Fri 27 Feb | www.marktaw.com | Let's see, the bug tracking system they used in house. A CMS that filled a market niche, and JoS was ported to it. In retrospect a CMS seemed like an obvious choice based on what Joel was talking about a few years ago. So so far tools that are useful to Fog Creek & Joel. I'm going to go out on a limb and say a CRM system because they may have built one in house already. They seem to be the ultimate victims of the Not Invented Here syndrome.* Or maybe they just use an FTE, FogBugz, their forums, and MS Office. There's a lot of talk here about project management and project knowledge tools, and Joel's written essays on the subject, though in many respects FogBugz can do this kind of work. So I think a project management, customer management, and project knowledge suite sold in a package with FogBugz. Or maybe a plugin for Winamp that makes pretty colors. * Joel worked at Microsoft, so in a sense MS Office was invented here.
Fri 27 Feb | Kevin | I'm surprised we haven't heard more about the ASP -> PHP compiler.  I'd think that would be a popular product.
Sun 29 Feb | Brad Wilson | We've heard about it nearly endlessly. Here's the key fact: It was not designed to be a general ASP to PHP converter, but rather one that was only good enough to port THEIR code, the way they typically write it.
Leap Year Date Problems | Thu 26 Feb |
Anyone know of any good stories about leap year date problems in software.  Id be willing to bet that leap years have cause more problems in software than all of Y2K.
Fri 27 Feb | Joel Spolsky | Lotus 123 thought 1900 was a leap year. For compatibility, Excel had to calculate dates the same way. So Excel also treats 1900 as a leap year. Visual Basic wanted compatible dates but couldn't bear to be wrong about the leapyearness of 1900, so they set their epoch one day earlier (Dec 31, 1899). Meaning date calculations across Excel/Visual Basic boundaries are screwed up, but only for January and February 1900.
Fri 27 Feb | no name | Also did you know that when is a leap year, there is a leap day in that year, but it's not Feb.29. but Feb.24. as I remember. Strange but true,
Fri 27 Feb | a cynic writes... | I thought the Feb 24th thing was a bit weird so I checked - at least in the European Union it *used* to be true. There's a bit about it on Wikipedia: http://en.wikipedia.org/wiki/Leap_year . You learn something new every day.
Fri 27 Feb | Stephen Jones | Beautiful!
Fri 27 Feb | Stephen Jones | And two other posts seemed to have lept in while I was replying to Joel :)
Fri 27 Feb | Ron Porter | 'Meaning date calculations across Excel/Visual Basic boundaries are screwed up, but only for January and February 1900.' Actually, if 'Day 1' is one day earlier in one product than in another product, that also likely means that the 'date serial' is out by one forever. So be very careful passing dates around. (And I'll leave all the bad puns to someone else)
Fri 27 Feb | Nigel | When it comes to Gantt charts used to solve real problems, Leap year comes second only to DST on the pain-in-the-butt scale.
Fri 27 Feb | Dennis Atkins | Um, am I missing something here? Even if you call Feb 24 your leap day, you still end up with a Feb 29 only in leap years, right?
Fri 27 Feb | Yo | http://en.wikipedia.org/wiki/Leap_year
Fri 27 Feb | Aussie Chick | >Even if you call Feb 24 your leap day, you still end up with a Feb 29 only in leap years, right? Yes but it is the point of it. You see according to this tradition, if you are born on Feb 24 on a leap year, then you should only celebrate your birthday once every four years. If you are born on any day after Feb 24 on a leap year, then in any year not a leap year, you would celebrate your birthday one day earlier. ie born on Feb 26 on a leap year, then in normal years you celebrate your birthday on Feb 25, because you were actually born on Feb25, its just that in leap years we renumber all the dates after Feb 24. Conversely, if you are born on any day Feb 24 or later on a normal year (ie Feb 26), then in a leap year you will be celebrating your birthday one day later (ie Feb 27 on a leap year). You see our present way of thinking is that if you are born on Feb 29 in a leap year then you only celebrate your birthday on a leap year, but according to the roman way of thinking you would be celebrating your birthday on Feb 28 in normal years.
Fri 27 Feb | Stephen Jones | I suspect it had something to do with Saints' days. For some reason a gap between the Saints for the 23rd Feb and 24th Feb was considered less harmful than a gap between the 28th Feb and 1st March would have been.
Sun 29 Feb | Lee Kaiwen | The practice of inserting an extra day after February 23rd (not the 28th) goes back to the ancient Roman tradition of adding intercalary months. Before the calendar reform that gave us the Julian calendar, the lunar calendar was kept in synch with the solar year by the occasional insertion of an extra month (called Intercalaris). By royal decree, this extra month was inserted after the "seventh day before the Kalendae [i.e., the first] of March", which corresponds to our February 24th. Later, when Julius Caesar reformed the calendar, and instituted the practice of an additional day every four years, he decreed the sixth day before the Kalendae of March be doubled. This second sixth day was called bisixtiles.
I'm DOne.  I Don't Want To Be A Developer Anymore. | Thu 26 Feb | Norrick
This is an extension of my career rant from a couple of weeks ago, but its been building ever since my In Search of the Peopleware Workplace post here a couple years ago. And Ive been fighting it. But as hard as I push myself, as many hours as I force myself to bill as I rebuild the finances that were devastated by being laid off, as hard as I try to stay interested enough to pick up some .NET skills, I keep coming back to the same conclusion: I just dont want to DO this anymore. I used to feel like it was leading someplace - Ive mentioned that I was on a track that led to Project Management - but right now, working as a consultant, I feel like Im going nowhere. And I dont know what to do about it. I dont know what else to say.
Thu 26 Feb | Bottoms up | 'as hard as I try to stay interested enough to pick up some .NET skills, I keep coming back to the same conclusion: I just don't want to DO this anymore.' That's how I feel about Windows and SQL Server and I'm a dba. Pretty bad huh? I just hate dealing with their bugs and the fact that anyone with any real amount of data is running another OS and RDBMS (Mainframe, Unix, Oracle, DB2 etc). Factor that with I don't like the direction MS is taking and it just makes my attitude worse. I think I'm at the point, I'll leave IT if I have to keep supporting Microsoft technologies. Give me Unix, give me OS400, give me OS/390, Linux, Oracle, DB2, anything but Windows. I've been a SQL Server admin for 2 years and haven't learned shit and don't plan to.
Thu 26 Feb | no name | Norrick, I'm with you on this. The pushing down of rates, the relentless undermining of professionalism, the lack of recognition for good work - all these have turned me off commercial developing.
Thu 26 Feb | Courage | Congratulations on seeing the light, Norrick. It takes a bold person to reassess their life and decide that what they're doing currently is not fulfilling. The next logical step is to decide which road out of the many that are available you will take next. You've done the hard part. You've looked inside yourself and found that something wasn't quite right. The next step will be easier. Just follow your heart and there is no way you can go wrong.
Thu 26 Feb | Nike Nike Nike | Go get some Brian Tracy cd's or book, or Robbins or somebody.  Decide what YOU want to do then just do it. 
Thu 26 Feb | Sum Dum Gai | I disagree that he's done the hard part. The hard part is deciding what you do want to do, not what you don't want to do. There are 1000s of jobs I know I DON'T want to do, but I don't know what I DO want to do yet! :)
Thu 26 Feb | Norrick | I'm thinking about applying to the FBI.
Thu 26 Feb | Philo | Hey Bottoms Up - nice troll! :) Philo
Thu 26 Feb | Vince | hahaha. So true Philo, so true. I've just been doing resume/phone screening the last couple weeks, and after talking to most of these people, I've come to the conclusion that two thirds the people shouldn't be in this industry.
Thu 26 Feb | T. Norman | It took you all these years to come to that conclusion?
Fri 27 Feb | Dennis Atkins | Hm Norrick, I too have been thinking of the FBI - I take it you saw their call for 900,000 intelligence analysts and all they require is a college degree. I'm great at finding patterns and I'm naturally paranoid so it seems the perfect job. I've already found and turned in a couple of al qaeda cells just from screwing around with google and other tools tracking down weird net scams that aroused my suspicion. Lot's of fun and more satisfying than consulting. Would be awesome to get paid to be professionally suspicious. Maybe I'll see you at the bureau someday!!
Fri 27 Feb | realist | I haven't had the misfortune of being out of work and I'm currently working on a client server development using vb.net. Even thought it's a 'new' technology, ultimately it's identically the same to what's come before, ie. - the same head with a different haircut, same shit, different bucket. My work pipeline goes for about another year, I'm currently on $75 per hour as a technical lead (I also have a huge amount of business experience in the industry I work in) and it's going to be hard to let it go, especially as they'll start shovelling cash at me when I tell them I want to leave. But let it go I must, for the same reasons you mention.
Fri 27 Feb | Vince | Dennis- lol. Thats fantastic. Realist- haven't seen you around here in a while. Making a crapload of money keepin you busy?
Fri 27 Feb | Fred | Learn Arabic. I hear the CIA is having a hard time finding any American who really speaks the language :-)
Fri 27 Feb | Simon Lucy | And for British 'Norricks', MI5 can now recruit thousands more analysts http://www.mi5.gov.uk/ It used to be that The National Health Service was the largest employer, actually I think the second largest employer on the planet after the Red Army of the PRC, now it feels like its going to be the security industry.
Fri 27 Feb | Stephen Jones | -----'I've already found and turned in a couple of al qaeda cells just from screwing around with google and other tools tracking down weird net scams that aroused my suspicion.'------ The worrying thing about this post is that Dennis might be serious! If any frequent posters suddenly disappear from this board perhaps we should be trying to find them a Guatanamo or San Diego.
Fri 27 Feb | Michael Popov | 'If any frequent posters suddenly disappear from this board perhaps we should be trying to find them a Guatanamo or San Diego.' May be he's already writing from there :)
Fri 27 Feb | MR | >I'm thinking about applying to the FBI. That's what I am doing. Boy, when there comes a day in which I don't have to worry about keeping up with the IT fads...
Fri 27 Feb | The Ted | 'all they require is a college degree' And no history of using the Chronic. I didn't know you could GET a college degree w/o smoking some dope.
Fri 27 Feb | Bill Rushmore | I was in your situation a little over a year ago. I even contemplated the FBI thing but unfortunately for me I have medical issues that would make that impossible. Since I was 8 years old I have always loved playing around with computers. But after working at a horrible place where I had constantly had one foot out the door and another on a banana peel I was sick of it. I spent months looking for a new job and went from the frying pan into the fire with the new place. Not surprisingly, that place self destructed quickly. I decided to go on a long shot and I approached a customer of the former company who I really liked dealing with. They were a small privately held construction company who had only two people that did IT let alone any developers. They hired me and now I am back to being excited when I wake because I can’t wait to get to work. The big difference is that I am just not a “developer”; I also have to be part of the business. I just don’t get requirements handed to me and turn into an app. I am part of decisions on what will be best for the company. My advice to you is this: First, has hard as it is, you can’t have a self defeatist attitude. You need to be as positive as you can that things will be better. Second, try to find something where you’re more than just a hired code monkey. I can’t see much long term satisfaction in that. You need to code with a purpose. Third, watch “Office Space”, at least you can laugh.
Fri 27 Feb | no name | The benefits of your FBI career will even start at the interview. I bet they don't give you a written test on muzzle velocities, ranges and accuracy of handguns, or  expect you to know the February 2004 Operations Procedures manual inside out - before starting.
Fri 27 Feb | Norrick | Just to clarify a couple of things, based on eMails I'm getting and some of the comments I see here: 1) I'm not angry or negative about this. I'm actually a little sad. Programming has been good to me for the most part. My heart just isn't in it anymore. 2) My comment about .NET wasn't a swipe at .NET or the need for continuous learning - I just can't muster enough love of the game to learn ANYTHING new, and that's the kiss of death for any developer. 3) This isn't so much about the pushing down of rates or the lack of professionalism in the business (although I do have a bone to pick with a lot of developers re: professionalism) - my consulting practice is doing alright. I just plain don't enjoy the work anymore. No - scratch that - I just plain don't enjoy the *developing* anymore. When I do project management for my clients (I offer development, training and project management services), I'm happy as a clam. But when I have to do the development, I find myself dreading it. So I'm looking at my recent epiphany as a good thing. To do the FBI, I'll need to finish my degree - also a good thing. And if I ultimately decide to not go the law enforcement route, I might be able to contribute to the profession of software development by going full-time into project management. Or not. :) That's the beauty of it - the world is wide open if you have brains and hustle. You guys rock. Whether I end up being Agent Norrick or Project Manager Norrick or Janitor Norrick, I'll be around.
Fri 27 Feb | RP | Amen Brother!
Fri 27 Feb | Joe Hendricks | It took me 4 yrs to get established as a local software consultant and other consultants in my little 'network' took as long or longer. I now LOVE being an independent consultant, in biz for 11 yrs total. So my response is to not give up too soon... Joe Hendricks
Fri 27 Feb | Norrick | I appreciate your comments, Joe, and you're right - it DOES take a while to build a booming practice. My practice is OK - it's not booming, but it's at least clicking. I'm not hurting for money. Really, the problem is this: I went into private practice not because it was what I wanted to do, but because it was the only thing I COULD do to make money immediately after being laid off. Remember this: http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=3790&ixReplies=41 I quote myself from that post: 'In truth, I do work for private clients’ on weekends from time to time. But I’m not sure I’m prepared for the leap to full-time self employment. I’m already in a state of high frustration and burnout; self-employment takes dedication that I simply can’t muster at the moment.' I was burnt out and ready to leave development back then. Two things kept me in the industry: 1) I took a long vacation 2) When I got back from that vacation, my employer put me into Project Manager training. I had a clear path out of development, which helped me hang on. But when the company started bleeding money, I got washed out and had to do something to keep my family fed. Cue private practice as a custom developer. So really, I'm not being impatient about building my practice - I never wanted to be in private practice to start with. So what do I want? That question keeps coming up. Let's look at what I wanted back when the burnout first hit me. Again quoting myself: 'What I DO want: 1) A high degree of responsibility. 2) Involvement in strategy issues pertaining to the business, or at least the product. 3) Responsibility for leading teams. 4) Ownership of my work. 5) A mentoring relationship with a senior person.' That all sounds desireable to me still. And those are not items that are limited to the dev industry. I can probably find that in another business. Let's see what I definitely did not want back when the burnout first hit: 'What I do NOT want: 1) To be the front-line coding grunt. 2) Isolation from the business considerations of my work. 3) Limited or unclear paths of career progression from my current position to other positions I am interested in.' Heh. Some things never change - I STILL don't want any of that. So please don't view this as impatience. I feel more like a grizzled old veteran who has been in one too many ugly battles and has now lost his desire to fight. I'm ready for a different kind of life; not better or worse, just different. When you get right down to it, what I really want is a complete professional rebirth. And I'm lucky to be living in a time and a place where such a thing is possible.
Fri 27 Feb | Elephant | 'What I DO want: 1) A high degree of responsibility. 2) Involvement in strategy issues pertaining to the business, or at least the product. 3) Responsibility for leading teams. 4) Ownership of my work. 5) A mentoring relationship with a senior person.' ... 'I can probably find that in another business.' You should take a look at construction. Building someone's office or home has a high degree of responsibility. You definately have involvement in the development of the product and strategies regarding the production of the product. After gaining experience, you almost assuredly will be leading a team of builders. There is definate pride in building something and taking ownership in it. And in the business, you will definately find mentorship from senior people. Personally I enjoy ditch digging and excavation for landscaping. I also enjoy wood working, which you could take a look at. None of these professions offer much money at first, although there is potential in them for earning a comfortable living. I am a developer and don't claim to be anything I described, but I enjoy tinkering with these things in my spare time, and somehow find them much more fun and satisfying than development. If I did them all the time, I wonder if it would be as much fun? I personally don't have it in me to make as radical a switch as I described, but it sounds like you are more than willing to make a radical decision, so I was just throwing some ideas out there. Best of Luck!
Fri 27 Feb | Joe Hendricks | Well, it sort of depends on the kind of consultant you become. I only take projects where I have access to the CEO/Owner, which places me in an advisory role as well as delivering (or subcontracting) the code. And if they are good, working closely with them has some mentor-like aspects. It's a lot of fun, especially if the project is mission critical for the company. Obviously this limits me to small and some medium size businesses to have that kind of access, as a hands-on consultant. But maybe something to keep as another option, given your criteria, if your first choice or two don't work out.
Fri 27 Feb | Norrick | 'But maybe something to keep as another option, given your criteria, if your first choice or two don't work out. ' What? Only taking on projects where the CEO or principal is the project sponsor? Heh. That's my whole problem right now: business owners who are so used to micromanaging their own people they harass and second-guess everything I do for them. :)
Fri 27 Feb |  me again | you can get into the FBI even if you smoked weed a few times in college. The actual requirement is that you can't have smoked weed in the past three years, nor can you have smoked weed more than fifteen times total. Also, it isn't clear if both of these disqualifly you if you posess some other crucial skills (fluent in Arabic, look 'middle eastern', have a PhD in data-mining, etc). The thing to remember, is the FBI places more weight on if you are down for the cause than they do on your actual skills. The FBI is a huge bureaucracy and it is more important that you fit into that bureaucracy than how skilled you actually are. I would advise pure technical types to learn some language skills, or get a master's degree in something you are interested in BEFORE applying to the FBI. I was a crack (ed?) programmer and got through three rounds of FBI interviews, but then it became pretty clear that my job was going to be the same job I already had, only in an office building in suburban virginia and being paid much less. If this is what you want, I would go for it. However I would advise to analyze what you are getting into before you commit.
Fri 27 Feb | Norrick | 'you can get into the FBI even if you smoked weed a few times in college. The actual requirement is that you can't have smoked weed in the past three years, nor can you have smoked weed more than fifteen times total. ' I have never smoked weed. 'I was a crack (ed?) programmer and got through three rounds of FBI interviews, but then it became pretty clear that my job was going to be the same job I already had, only in an office building in suburban virginia and being paid much less.' When I said I was thinking of applying to the FBI, I didn't mean I wanted a job as a programmer. I was thinking Agent.
Fri 27 Feb | secret agent man | 'There's a man who leads a life of danger. To everyone he meets he stays a stranger With every move he makes, Another chance he takes. Odds are he won't live to see tomorrow. Secret Agent Man. Secret Agent Man. They've given you a number. And taken away your name. Beware of pretty faces that you find. A pretty face may hide an evil mind. Ooh be careful what you say. Or you give yourself away. Odds are you won't live to see tomorrow. Secret Agent Man. Secret Agent Man. They've given you a number. And taken away your name. Swinging on the Riviera one day Layin' in a Bombay alley the next. Oh don't let the wrong word slip. While kissin persuasive lips. Odds are you won't live to see tomorrow. Secret Agent Man. Secret Agent Man. They've given you a number. And taken away your name.'
Fri 27 Feb | Sum Dum Gai | 'I have never smoked weed. ' Maybe that's the problem? :)
Fri 27 Feb | VP | Norrick, I know nothing personally about the FBI other than a few conversations with a manager, that I respect, who used to be an agent (her husband is still one). It's possible the FBI might be just as messed in the head as any other company or government institution. People are still people after all. This manager is a smart cookie and fiercly independent. For what it's worth, she prefers the company of CIA people over FBI. She says CIA people are more in touch with reality and highly intellegent. Incidently, an ex-SpecOps soldier I know enjoyed working with CIA people. Of course, even as a CIA agent, you're still working for a bureaucracy, so who knows. Being in a bad job situation is like being trapped in an abusive relationship. There's so much fear, you feel like you can't do anything. It drains so much of your energy, you can't think your way out of it. Luckily in my past job situation, a layoff broke me free from that trap. Unfortunately, I can't give you any help other than a few wild ideas: 1) Find someone you trust who can help you get an objective handle of what your finances really are (without the fear that clouds your vision). How long could you survive if you quit cold turkey, consolidating debt (maybe even bankruptcy), etc. 2) Find a way to spend about a month in a totally different environment, where you're not reminded of your job or any of life's obligations. Heh I don't even pretend to think that'd be easy to do or how to do them. I don't know, maybe mail your story to the Oprah show and hope for some freebies :_)
Fri 27 Feb |  me again | 'When I said I was thinking of applying to the FBI, I didn't mean I wanted a job as a programmer. I was thinking Agent.' That was my plan also. However if you have significant technology experience, they will try to funnel you into a support role. Most programmers have no edge when applying for an agent role - you are competing against ex-military types, police officers, etc. Good grades and a record of being an athlete are an advantage. I don't mean to sound discouraging - just check out fbijobs.com and some of the various message boards about the subject to get more of a feel for what to expect and how to give yourself an edge, if you decide the FBI is what you really want to do.
Fri 27 Feb | Norrick | I'll do that.  And just for the record, applying to the FBI is just one of several things I'm pondering.  I'm also mulling the possibility of boxing professionally, working with handicapped children, and commercial collections, among other things.
Sat 28 Feb | Silly Rabbit | How about boxing handicapped kids?
Sat 28 Feb | Norrick | You think I was joking. I was not.
Sun 29 Feb | Aussie Chick | He didn't think you were joking, he was just being a silly rabbit.
Sun 29 Feb | Aaron F Stanton | How about having a doctorate in chemistry and not being able to find a job? I'll probably be working in a mall within two weeks just to try to staunch the arterial flow of red ink. Why am I in this situation? It's the same problem - knowing what you don't want to do and not being completely clear on what you do want to do. Do yourself a big favor and figure out what you really want to do as soon as possible.
IIS->COM+->Service communication via MSMQ? | Sat 28 Feb | Wayne
Next week Im going to build a model to try this out, but Im not quite sure how best to allow ASP pages running in IIS to communicate with a Windows Service running on the same or different machine. Here is the scenario that Im envisioning: I have an NT Service that can accept commands via TCP or MSMQ (I havent built it yet, but I can use either). ASP creates a COM+ object and gives it a session key. Then it calls a method on the object that validates the call, sends a command to the NT Service, receives a response from the NT Service, and gives the result back to ASP which sends it down to the client. Here is my question: When the COM+ object wants to talk to the NT Service, would it be better to use MSMQ or a TCP connection? I would like to use MSMQ, but does it add more overhead than simply connect/send/receive/disconnect with TCP? Also, do I have to block the thread in my COM+ object myself while waiting for a response MSMQ message, or can calls be made synchronously? Ive been experimenting/reading books on COM+MSMQ (got myself an oreilly Safari membership), but if anyone could help me out, thatd be great. Thanks.
Sat 28 Feb | Wayne | Also, is it safe to use mult-threading techniques in a COM+ object like using a timer to re-enter into the object and respond to a method call asynchronously? I realize this may be totally stupid, as I'm just learning about this stuff but I figure I'd ask before I try it out.
Tea time gossip | Sat 28 Feb | Sathyaish Chakravarthy
Gimme the codes youve written, said Joe, the lead one of the dramatis personae of my yesterdays pass time day dreaming. Just wondering how the word codes, the plural for code sounds jarring to the programmers ear, wheras source code or simply code has taken on the plurality.
Sat 28 Feb | MacSqueeb | I think the connotation of the word 'codes' is more along the lines of 'keys' as in to access a restricted area, or a secret message encrypted with one's handy-dandy Cap'n Crunch decoder ring. Whereas when we say 'the code for foo,' we mean 'the body of code for foo.'
Sat 28 Feb | Jimmy Jojo | I hear the code for foo was leaked the other day.
Please recommend a DVD-RW | Fri 27 Feb | MoreStorage4Me
Guys, I need more storage than my PCs CD-RW allows. Can someone please recommend a rewriteable DVD player? Also, what do all the designations (+RW, -RW, etc) mean?
Fri 27 Feb | Koz | +rw -RW etc are the different formats. The drive I have is a pioneer 106-d. It works with all the formats except DVD-RAM (which no-one seems to use). It works great for backups.
Fri 27 Feb | Philip Dickerson | Any of the major name brands (Sony, HP, Plextor, etc) should be fine. I have a Sony Sony DRU-510A and I'm very happy with it. You may want to get a 4-format drive (-R, +R, -RW, +RW), but you can probably ignore the DVD-RAM format. For reviews, try c|net's site: http://reviews.cnet.com/Storage/2001-3185_7-0.html?tag=cnetfd.dir and http://reviews.cnet.com/Multiformat_DVD_burners/4520-3185_7-5059562.html?tag=prmo1
Fri 27 Feb | Philip Dickerson | The DVD '+' and '-' are different recording formats, and 'R' is 'recordable' (write-once) and 'RW' is 'rewriteable' (can be erased and re-recorded). Blank DVD discs are available in all 4 of these formats. If you are recording a video DVD to play in your DVD player connected to your TV, for example, you need to find out which format(s) of DVD the player will accept. This article (although it's a couple of years old, and some of the information, such as price data, is no longer correct) at PC Magazine http://www.pcmag.com/article2/0,4149,1177333,00.asp (and the follow-on pages) is one explanation of the different recordable DVD formats.
Fri 27 Feb | Brad Wilson | The -R format is the most widely supported among the consumer players (I believe it was something like 98% of players). DVD-RAM isn't an issue, because this format is smaller than 4.7GB, and the media is encased in plastic, so it's not compatible with anything except another DVD-RAM drive. Just +1 for the advice here. Get a 4-format drive from Sony, Plextor, HP, or Pioneer. Don't settle for less than 8x. They'll all burn CD-R and CD-RW as well.
Sat 28 Feb | Doug | DVD-RAM sure is getting a bad rap. That's too bad because it is a superior format for data storage where interoperability with typical home DVD players is not an issue. Current capacity is 4.7GB, double sided discs are available with 9.4GB capacity (they have to be manually flipped, however) and the use of cartridge discs is optional. Windows XP has support for treating the discs as standard removable media without the use of packet writing software. There may be some question about it's future but Panasonic and others sell a lot of home DVD recorders that can use DVD-RAM. When it comes down to it, all of these existing formats are going to be old news before long when the blue laser DVD formats are finalized and reasonably priced.
Sat 28 Feb | MoreStorage4Me | Thanks for the suggestions guys!!!
Sat 28 Feb | James U-S | I have a 4-format drive from Sony (not sure of the exact model) and have been really happy with it. I've written about 100 - 150 DVD's with it in the last few months with few problems.
Sat 28 Feb | Stephen Jones | LG -produce a four format drive that is actually cheaper than most of the competition.
-- Convert presentations to image files -- | Fri 27 Feb | Evgeny Gesin /Javadesk.com/
Im looking either for a command line utility (Red Hat) or Java API to convert a Power Point and Open Office slides to image files, a file per slide.
Fri 27 Feb | Ken | I don't know of a command-line app, but BlackIce has a set of print drivers to do this sort of thing.  I assume you're looking to do this in an automated way- which you could do thorugh powerpoint's automation interface.  If not, you could use WebEx do this manually.
Fri 27 Feb | Seth | PowerPoint to JPEG - http://www.newfreeware.com/business/118/ to PDF - http://www.8848soft.com/ppt2pdf/index.htm
Sat 28 Feb | Jan Derk | You might try open office. It allows exporting powerpoint presentations to many formats like pdf, html, flash, png, etc and comes with a very powerful api.
Sat 28 Feb | Evgeny Gesin /Javadesk.com/ | I need to convert presentations automatically, not manually.
Sat 28 Feb | Seth | Evgeny...did you even look at those apps I linked to? I'm certain the first one allows batching as I've used it. I'm pretty sure the second one does too. It doesn't get much more 'automatic' than batch converting. I'd remind you too of the nod to OpenOffice's API but you might actually have to write three or four lines of code......
Learning XSLT | Fri 27 Feb | PERL programmer
I am habituated with procedural, functioanl or OO style of programming. Imperative style is new to me. Before learning XSLT, where I can learn the basics of imperative style? Thanks..
Fri 27 Feb | surely you're joking | Before learning imperative programming you should really learn about compiler design.  And before you learn language processing, you'll need a firm grasp of natural language and linguistics.  Better get started on latin right away.
Fri 27 Feb | PERL programmer | Nah, I don't want to learn compiler design.. I think if I learn from immidiate basics, I would learn better. Over the years, I have feel home with Perl. Similar I like to feel with XSLT. It may take some time, but right mind-set is important. I found few things here.. 1. http://en.wikipedia.org/wiki/Imperative_programming 2. http://burks.brighton.ac.uk/burks/pcinfo/progdocs/plbook/imperati.htm
Fri 27 Feb | Alexander Chalucov (www.alexlechuck.com) | Learn Prolog?
Sat 28 Feb | Oren Miller | Doubtful that imperative programming http://en.wikipedia.org/wiki/Imperative_languages is new to you seeing as perl is imperative (as is C++, Java, et al). The word you are looking for is declarative programming http://en.wikipedia.org/wiki/Declarative_programming, which is what XSLT is.
Sat 28 Feb | Oren Miller | Here's the link without the extra ',' http://en.wikipedia.org/wiki/Declarative_programming
Sat 28 Feb | Clay Dowling | If you want to learn XSLT, learn xslt. It's not complicated enough to justify the kind of navel gazing that you're talking about.  There's a simple tutorial at w3c.org that will have you up and running very quickly. Follow that tutorial up by installing an xslt processing engine like Cocoon and try building a web site. You won't know everything about XSLT at that point, but you will know enough to make good use of XSLT in applications.  This is the route that I followed, and I picked it up very quickly.
Sat 28 Feb | r1ch | When you do decide to learn XSLT check out zvon.org - there are some good tutorials and refererences there. http://www.zvon.org/
Hybrid Application: Java + (C++|C#|Cocoa)? | Fri 27 Feb | Monad
Hello everyone. Welcome to the twilight zone. Were getting ready to start serious work on v2 of our main application, a desktop application of moderate complexity. Our v1 is written entirely in Java. Of course, our main problem was the UI. You can do amazing things with Swing (as the IntelliJ folks have proven). Unfortunately, were just a bunch of bare-metal AI theorists and network developers. Although we *could* go through the pain of building up a solid set of Swing talent, thats looking more and more like a dead-end road. SWT is interesting, but way too quirky and unproven for us to stake our future on at the moment. So, were looking outside of Java for UI purposes, but we also have a ton of top-notch, well-tested non-UI code that functions as the core of the application. Our current working theory is that we could continue to develop that piece in Java (which gives us great advantages for what we do compared to C++), and hook it up to a native interface layer written in C++ or C# for Windows, or Cocoa/ObjectiveC for the Mac (hell, even QT for Linux if we ever find linux users willing to pay for software!). At a high level, this looks like a great solution. We can link things through JNI very readily for the Windows version, and Cocoa/ObjectiveC has a wonderful native Java bridge available that makes building a native UI on top of a Java library quite painless. And, if we ever develop the gravitas to provide the applications functionality as a subscription-based web service, we could get there really easily. Of course, the potential potholes of this approach may be enormous -- it feels like a very large iceberg, despite its massive potential upside. Thoughts?
Fri 27 Feb | John Topley (www.johntopley.com) | Have you had a look at JGoodies? http://www.jgoodies.com/
Fri 27 Feb | Evgeny Gesin /Javadesk.com/ | Consider server-side JSP to generate UI for client web browsers or an XML-based UI solution, if possible.
Fri 27 Feb | Monad | Yeah, we've tinkered with JGoodies (a large part of which is now LGPL, BTW). It's a nice compromise solution, but there are many reasons why it's just not where we want to go: - While it goes 90% of the way towards making things look native on windows, it's that last 10% that breaks the deal. - It makes things LOOK pretty, but that doesn't buy us any of the wonderful native widgets that OS X and Windows provides. That's the price of running with Swing/Java that I think has hurt our productivity immensely (i.e. rolling our own components that should come with the platform). I could go on, but I don't want to belabor the point. I can appreciate JGoodies as being a wonderful compromise solution, but we're hoping to be uncompromising in v2 :-) Re: XML, this is a desktop application today, and it will be for a good long while.
Fri 27 Feb | son of parnas | Do you need a rich client? If not try html. Though why do you think C++ or whatever will be simpler? Have you tried a pilot port to test this assumption?
Fri 27 Feb | Jordan | On OS X, you can use Java to drive Cocoa. In fact, Cocoa has both Java and ObjectiveC interfaces.
Fri 27 Feb | Should be working | Multi-language development is hard. Though there are ways to make it less difficult and painful, some of which you've noted. So you're trading one problem (that last 10% of user interface that is lacking) for another (difficulties with multi-language development). What about your application makes that last 10% of user interface so important? Carefully consider the cost of going 'native' for the user interface. Is it really worth the benefit, or is this one of those things that is an irritation but doesn't affect the core functionality of the product? Are you losing sales (or existing customers) because the UI isn't 100% native look-and-feel?
Fri 27 Feb | Just a suggestion | What about migrating all your code to .NET's J# ? That way you could reuse your current code and develop the UI using .NET Winforms. However, I don't know how feasible this really is.
Sat 28 Feb | Monad | I don't see how converting the interface to HTML is a step in the right direction. We'd lose more flexibility compared to just sticking with Java, and we'd have to force users to have/install a web server. Portability of the core logic of the application is critical -- our userbase is about 60/40 Windows/Mac. Therefore, moving to .NET wholesale is just not an option. Yes, multi-language development is hard, but I think it might be the best way to make up that last critical 10%. And that last 10% is critical to our ongoing success (it's probably what is keeping us from jumping the chasm, as Eric Sink likes to say) -- that's why we're looking for an uncompromising solution.
Sat 28 Feb | Synder | Java for GUIs has been a fustrating experience for me also. However, JNI & java-objective C bridge sounds hard. How about messaging between the java and the GUI? Run both apps on the client machine sending XML-RPC or SOAP between. It's not entirely clear, but it sounds like it might work.
Sat 28 Feb | Clay Dowling | If you need cross-platform GUI capability, take a look at wxWindows. There has been some discussion of it in the past here. I know that it is available for the Mac, although I don't actually have any firsthand knowledge of it, since adding a Mac to the mix in this house is further than I want to go. The library is wonderfully portable though. It's truely write once, compile anywhere code. Take a look at http://www.lazarusid.com/notes/archives/Article-21.shtml to see how I managed it for my own uses.
Sat 28 Feb | Monad | Clay, thanks for the wxWindows idea -- I'll check it out. Using some kind of RPC between a native app and a java backend running in the background is an idea that we've kicked around here also. It's sure to be slower than hooking a UI directly up to the java core library, but I suppose if we design the external API of the RPC interface, then we could get around any bottlenecks that come our way. I could see this being our fallback position (or our early prototyping foray). Thanks for the idea!
Sat 28 Feb | Chris Hanson | Someone said 'However, JNI & java-objective C bridge sounds hard.' Yeah, it does. Good thing you don't need to have anything to do with JNI directly to integrate Cocoa and Java. Java is the other language supported by Apple for Cocoa development, and while there are some pitfalls it's actually really easy and clean to integrate your pure Java code with a fancy Cocoa interface. The framework isn't actually a separate implementation; rather, it's a JNI-based wrapper around the Objective-C framework with all of the hard work bridging everything done for you. Email me if you're interested in going this route and I can give you some more detailed advice and fill you in on the pittfalls involved. (Nothing serious.) I've worked on both Objective-C and Java Cocoa projects, and the Java one was specifically done to integrate some Pure Java code with a nice Cocoa interface like you're talking about.
interprocess communications in Windows? | Fri 27 Feb | George M.
Is there any good book or website about interprocess communication in Windows? I know there are many ways to do IPC: sockets, pipes, named pipes, mapped files, mailslots, SendMessage/PostMessage, etc. What I need is a systematic and complete description of those - with advantages, disadvantages, how to use, code examples, etc. Is there any book or web site detailing all the ways you can do IPC in Windows? Thank you!
Fri 27 Feb | Li-fan Chen | >I know there are many ways to do IPC: sockets, pipes, named pipes, mapped files, mailslots, SendMessage/PostMessage, etc. You forgot station wagons.
Fri 27 Feb | Li-fan Chen | ISBN: 0201703106
Fri 27 Feb | Andrew Burton | Two questions: 1. In/with what language? 2. have you checked the MSDN?
Fri 27 Feb | Li-fan Chen | > MSDN? *lol* *weep*
Fri 27 Feb | Jordan | IPC introductory page in MSDN contains a good description of each mechanism and what is good for.
Fri 27 Feb | Wayne | Would MSMQ be useful for this as well?  The IPC page at MSDN didn't mention this one.
Sat 28 Feb | Fred | 0201703106 = Win32 System Programming: A Windows(R) 2000 Application Developer's Guide (2nd Edition) by Johnson M. Hart http://www.amazon.com/exec/obidos/tg/detail/-/0201703106/
Sat 28 Feb | Michael Moser | The fastest way to do IPC in windows was to send a windows message with shared memory handle in lvalue. (actually you can keep a pool of shared memory handles and reuse them) I did a check some way back - and this info was in no book. - i don't think that IPC on wndows changed since 98 ;-) Since windows 2000: If both processes are on different desktops (like one process in NT service), then you have to bother about using the same thread desktop.
Is this funny or not? | Fri 27 Feb | Andrew Burton
Quick backstory: Im the webdev/LAMP guy here, and Im working on getting our E-Learning and intranet stuff to talk to the iSeries/AS400 (whatever IBM calls them now) minicomputer. Only Rumba, the package/driver we use, wont ODBC. I call the tech support line, and the guy explains that IBM basically broke ODBC when they upgraded to OS/500 R5. Okay, now, is that supposed to be funny? Is my impending deadline screwing up my sense of humour? When I think iSeries/AS400, I think data warehouse. A back-end system built for two purposes: 1. To store data. 2. To send/recieve data. What part of IBM broke #2 then shipped their product makes any kind of business sense? Am I missing some secret, clandestine humour from IBM?
Fri 27 Feb | Andrew Burton | Sorry, OS/400 R5.
Fri 27 Feb | John | Call IBM they may have a workaround
Fri 27 Feb | Andrew Burton | They do, I'm just amazed that they'd ship their software when it didn't work.  It seems like a bad way to do business.
Fri 27 Feb | sgf | Seems to work for a lot of companies.
Fri 27 Feb | Andrew Burton | True.
Sat 28 Feb | MacSqueeb | At the risk of sticking my neck out and ending up revealing my lack of Phat Skilz, I've spent the last six months working on a project that gets data out of AS/400 X V5R1 for a web based workflow application using the ODBC driver that ships with Client Access V5R1. Andrew, if you care to elaborate on the trouble you're having I would be happy to pitch in anything I've learned during the process. BTW, we had a lot of trouble with ODBC, but IBM never told us it was broken (although I don't doubt that it is--we do seem to have it working, however). They did fail to come up with answers to my problems though, leaving me to eventually figure them out myself, so maybe there are some similarities in our situations. Do you have access to an MSSQL server? If so, and it's not too late to consider architecting your application with it as the back-end and having MSSQL do the talking to AS/400, that might prove more sound than trying to glue a pure web app directly on to the AS/400 (unless you go the websphere, JSP route--so I've heard). Our application is in ASP.NET, but I'm a LAMP guy outside of the day job, so hopefully there can be some skill translation there. Feel free to email me directly--that is if I'm not sounding like I have no clue what I'm talking about (which is entirely possible!).
Sat 28 Feb | MacSqueeb | BTW, I am aware that the M in LAMP stands for MySQL, but from your original post it sounded like you aren't factoring MySQL into this particular solution.  I spoke of MSSQL, not because I don't like MySQL (I love it), but MSSQL has linked servers and DTS, which saved our bacon on the project in question.
A Quote By Charles Simonyi | Fri 27 Feb | Humble Uni Student
(This was written some 20 years ago Do you think hes right in his statements, Any comments? things to add to that? What does he actually means by maintaining invariances in the structures? (Just another Phd idiot or am I too dumb!) ;-) ... The knowledge of the best algorithms is the science, and the imagining of the structure is the art. The details of algorithms, writing efficient lines of code to implement transformations on those structures, is the trade aspect of programming. Technically, this is called maintaining the invariances in the structures. Writing the code to maintain invariances is a relatively simple progression of craftsmanship, but it requires a lot of care and discipline. - Charles Simonyi
Fri 27 Feb | John Topley (www.johntopley.com) | Microsoft tried to follow Simonyi's idea of having master programmers leading lesser coding monkeys and it didn't work.
Fri 27 Feb | Humble Uni Student | John Topley : From what I've read he has shipped world class software using his methodology (based on his Phd thesis) In the 1970's at the Palo Alto Research Center he shipped Bravo, the first WYIWYG word processor for a machine called 'The Alto' (designed by Butler Lampson I think, now at Microsoft Research Labs) The Alto was pretty much a Mac : Bitmapped graphic user interface with a mouse ... Later in the 80's he build the unfamous Application Division at Microsoft where they shipped certainly the most used pieces of sofware ever .... I wonder what Intentional Programming is going to be all about ? A New paradigm in computer programming ? Has anyone got a clue here???
Fri 27 Feb | Katie Lucas | I read a bit about IP in a book; it's basically about moving development closer to problem domains using customisable languages and stuff. The code, rather than being a plain text file which is compiled is written as a parsed tree, allowing the context which underlies the code to be saved. You don't need a 'search/replace' tool to go rename a variable, you just change the name in the declaration and all the references know they're talking to the same variable, so the 'names' in the code all change. Rather disturbingly, the code in the screenshots, although in neat little context-driven editors, where you can't write insyntactic code, but it still appears to need all tat Hungarian alphabet gunk on the front of the identifiers. Which seems unnecessary in an environment where the type of a variable is only a click away... I guess, once CS has created an idea, he can't bear to throw it away...
Fri 27 Feb | Humble Uni Student | Katie : I also read an article which confused me a hell of a lot : I've have some recollection of Biological Metaphors such as Enzymes trees, etc,etc ... That was some 5 years ago I think, and back then it was very theoretical, I wonder if an Enzyme tree compiler is now available somewhere in Hungary :-)
Fri 27 Feb | pdq | 'Best', 'Efficient' Bah. Just give me a program that works and meets the needs of the customer. Moores Law or a modicum of optimization will sort things out if it's too slow.
Fri 27 Feb | Nick | Based on the context, it sounds like Simonyi is talking about invariants. An invariant is a condition that always true a a certain point (or points) in the program. The most common example is a loop invariant. Therefore a structure invariant is a condition that must be held true throughout the transformation of the data. P.S. I double-checked by googling 'define: invariances' and came up with no definitions. So I'm pretty sure his English was just wrong. I think he assumed that invariances was the plural for invariant.
Fri 27 Feb | veal | By "maintaining the invariances in the structures" he probably means making sure the rules that should always stay true from one state of data to the next *do* stay true.  It's a rather academic way to say "ensuring the data always satisfies certain integrity constraints" by the end of each transformation.  See for example Bertrand Meyer's discussion of class invariants in Object Oriented Software Construction.
Fri 27 Feb | Phillip J. Eby | A big second here on the Meyer book: the insights it gave me about loop invariants were a *big* leap in my understanding of algorithms about 15 years ago when I first read it. To this day, if I am about to write a complex loop, I think about it in terms of the loop invariant, and suddenly things become clear.
Fri 27 Feb | John Topley (www.johntopley.com) | 'He shipped Bravo, the first WYIWYG word processor for a machine called 'The Alto' (designed by Butler Lampson I think, now at Microsoft Research Labs) The Alto was pretty much a Mac : Bitmapped graphic user interface with a mouse ...' So customers actually paid Xerox money for an Alto and Bravo did they? I didn't think it ever left the confines of PARC. 'Later in the 80's he build the unfamous Application Division at Microsoft where they shipped certainly the most used pieces of sofware ever ....' Yes, but they weren't using Simonyi's methodology. Read your JoS: http://www.joelonsoftware.com/articles/fog0000000034.html
Fri 27 Feb | hoser | free( lpstrSimonyi ); lpstrSimonyi = NULL; // Now I feel much better.
Fri 27 Feb | Robert Jacobson | This article discusses the Alto in the context of the award recently given to its inventors. It's not entirely clear, but it sounds like they sold a few of them (600 were produced.) http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2004/02/25/BUGDD57F741.DTL Also, some interesting screenshots and histories about the Alto here -- I hadn't realized just how advanced and Mac-like it really was. The inventors truly deserved that award. http://members.fortunecity.com/pcmuseum/alto.html http://www.aci.com.pl/mwichary/guidebook/articles/thexeroxaltocomputer http://www.digibarn.com/collections/software/alto/index.html
Sat 28 Feb | Seth | ship != sell
Buffer Search Algorithm | Fri 27 Feb | S. Tanna
1. You have a large nul terminated string (the haystack buffer), 2. You have a very large array* of short-ish nul terminated strings (needles) * (its not quite an array in my problem, as I sort of have a window onto a few at a time, but cant see the next items until I have completed the current ones) 3. You need to find out - as quickly as possible - how many times each needle occurs in the haystack**, ** (its not quite like that in my actual problem, its provided it occurs more than some minimum number of times, if it occurs less than the minimum number, I dont actually care) QUESTION: What is the fast way to do it. SOLUTION A (terrible): A linear search of the haystack buffer for each needle, for example using strstr to find first occurance of needle in haystack, then loop and strstr again +1 position after last occurance. Until we ahve a count. SOLUTION BI (still pretty terrible) Pre-scan the buffer, count the occurances of each character, e.g. A occurs 237 times, B occurs 124 times, C occurs 68 times. When testing a needle, the maximum number of times it can occur is that of the least popular character in the needle, e.g. Continuing from A occurs 237 times, B occurs 124 times, C occurs 68 times. -- then ABC *maximum* occurances would be 68 times, although it may be less Previous paragraph potentially allows (i) earlier termination of linear search e.g. when weve hit 68 ABCs there cant be any more, so time to stop searching (ii) avoid unnecessary searches, e.g. if searching for ABCZ and we know Z occurs 0 times, no need for linear search (iii) Because of my rule 3** (above). In my particular case, I can eliminate additional linear searches. SOLUTION BII (getting better) As with BI, but work with (say) 2 character sequences, e.g. AB occurs 15 times, BC occurs 7 times When testing a needle, the maximum number of times it can occur is that of the least popular 2-character in the needle, e.g. Continuing from AB occurs 15 times and BC 7 times -- then ABC *maximum* occurances would be 7 times, although it may be less Previous paragraph potentially allows (i) earlier termination of linear search e.g. when weve hit 15 ABCs there cant be any more, so time to stop searching (ii) avoid unnecessary searches, e.g. if searching for ABCZ and we know CZ occurs 0 times, no need for linear search (iii) Because of my rule 3** (above). In my particular case, I can eliminate additional linear searches. Heres the challenge, anyone - SOLUTION BIII or C -- even better ones?
Fri 27 Feb | r1ch | Maybe I'm missing something, but surely you can just do one pass through the buffer and keep the results in a map of the form map like so: 1) Get string from buffer 2) Check map for string, if it's not there create an entry with a count of 1. If it is there increment the count. 3) Repeat for next string from buffer until you reach the end of the buffer. 4) Your map now contains a count of occurances for each string in the buffer.
Fri 27 Feb | S. Tanna | What you're missing is the vast number of needles (I probably didn't emphasize that enough) What if I have 100,000,000 needles? What you are proposing is comparing every needle against every character position in the buffer. That is the same number of comparisons as the linear search, solution A -- it is just that you are doing them in a different order.
Fri 27 Feb | r1ch | ah, right - so you only need to know the results for a small number of needles?
Fri 27 Feb | S. Tanna | You need the result for every needle You just don't need to keep it in memory For a simple version - Imagine you write the result for each needle to an output file or something, and then can throw it away. Actually a more accurate characterization of my particular problem - imagine you have 100,000,000 needles, and you need to find the 1,000 most frequently occuring needles.
Fri 27 Feb | Tim H | My favourite searching shortcut involves skipping ahead whilst doing a linear search. If you are searching ABCZ and you encounter an A; next check for the Z backwards. If there's no Z then there's no match. If your search in in memory this will be quick. If you produce a table of start char and end char+offset you could perform on linear search, and trigger a reverse offset search for hits on start character. With quick supporting structures this could fly! Good luck!
Fri 27 Feb | Robert 'Groby' Blum | I think I'd want to pick up a book or two on how gene sequencers work. IIRC, that's a pretty similar thing - how to match up a ton of small needles to a huge haystack. In the worst case, you've read about an interesting topic :)
Fri 27 Feb | pdq | Does the haystack change frequently? Or do the needles? If the haystack doesn't change, you could run a slow process to somehow index the haystack. The obvious one would be to make a list of all of the possibe strings in the haystack, but there is probably a much better way.
Fri 27 Feb | S. Tanna | Yeh haystack and needle based on user supplied files
Fri 27 Feb | Rob Walker | If the number of needles is very large then precomputing some hashs from the buffer may help. Say all of your needles are at least 8 characters long. Generate a set of hashes at each offset and store these in a map of (hash value -> offset). For each needle compute the hash of the first 8 characters and look this up in the map. You get a list of *possible* offsets to verify. Depending on the distribution of the needle lengths, etc you could tweak this algorithm. For example, compute hashes for all prefixes 1 ... N (giving N maps).
Fri 27 Feb | S. Tanna | BTW I forgot to mention I did a B.IIb Which is to use 4 character sequences as well as 2. I could I suppose do 3, 5, 6, 7, 8, etc. too Storing counts for every possible occurruence is impractical, as the size of the array required for these counts grows massive (e.g. 5 char sequences would potentially require, if 256 chars, 2^40 array elements), so do a bit of hashing around where a single array element in a reasonable size array (say 2^16) represents the highest of each of a number of the large array (e.g. each element in a 2^16 array, represents the highest number in 2^24 arrays) I have explained the last para very well, but the principle is the same as doing 2 characters And this does make a dramatic (but not enough) difference.
Fri 27 Feb | S. Tanna | Rob, I posted at same time as you. Needles are not all the same size, but interesting idea. And the kind of thing I'm looking for.
Fri 27 Feb | MikeMcNertney | A minor improvement you could add to your BII idea... if you are already keeping a count of each letter or 2-letter combo int he buffer, you could also keep a list of the index of each occurence. Then when matching your needle you only need to match against the indexes that match the start of the needle, instead of the whole buffer I dont know what your memory constraints are though, this could be too much data to hold around
Fri 27 Feb | MR | If I'm reading this correctly, it sounds like a SolvedProblem -- namely the longest substring problem? http://www.cs.sunysb.edu/~algorith/files/longest-common-substring.shtml Search google for it; I distintly remember learning a great algorithm for it in college but my textbook is at home.
Fri 27 Feb | MR | Ooops, more like: http://www.cs.sunysb.edu/~algorith/files/string-matching.shtml
Fri 27 Feb | MikeMcNertney | Yes, finding all instances of a string in a text is more or less a solved problem.  However, in this case we have the added knowledge that we are not searching for 1 string, but many many strings.  This changes the parameters of the question and makes pre-processing of the buffer more viable
Fri 27 Feb | Ken | I like Rob's algorithm-  to generalize it to work with needles of arbitrary length would just require a hash table for each possible needle length.  If the needles are between, say, 3 and 10 chars in length, this only requires 8 hash tables- and 8 passes though the haystack to generate them.
Fri 27 Feb | Ken | Ah, actually Rob's doing something different, by storing the list of offsets in the table as opposed to the counts.  My strategy won't work if the needles can be arbitrarily long.  I like his idea even more now!
Fri 27 Feb | Li-fan Chen | I am a db guy, so this is how i think, provided haystack is gigabytes, and needles are say 5-1000, if the needles are long (512k) and you need to match the entire breath of the needles, find a unique signature of each needle (say a reasonable length 32 bytes) and sort them.... the signature will fill a thin space inside that many number of bytes.. and then do a first pass over the long haystack.. this should reduce it to the likely occuring strings.. because you don't want to compare long strings.. you want to compare short strings. after that do the most straightward search you can... that's a rough it.. not sure if the optimization will work for you.
Fri 27 Feb | Li-fan Chen | Have you tried citations archive? There must be a trillion ways to solve this problem :D
Fri 27 Feb | veal | Your volume of search strings complicates matters immensely, but you might wish to start by looking at the standard single-string search algorithm, Boyer-Moore, which Tim H. described above. Sunday and Hume made some refinements, particularly in the area of searching for natural language words. I didn't quite catch whether your list was more static than your haystack, but if so, you could precompute and store the table for each needle. At any rate, here are some references that might lead you to some more relevant work for your particular problem. Boyer R.S., Moore J.S. 1977. A fast string searching algorithm. Communications of the ACM. 20:762-772. Sunday, D. M. 1990. A very fast substring search algorithm. Comm. ACM 33(8):132-142. Hume A., Sunday D.M. 1991. Fast String Searching Software - Practice and Experience 21(11):1221-1248
Fri 27 Feb | veal | Missed an important period... Hume A., Sunday D.M. 1991. Fast String Searching. Software - Practice and Experience 21(11):1221-1248
Sat 28 Feb | David Jones | The needles can be represented as a regular expression consisting of the logical-OR of the individual strings. Now research regular expression processing algorithms. There may be a way of combining the DFSM generated by a regexp compiler and the Boyer-Moore algorithm to produce a high-performance string searcher.
ESR 0, CUPS 1 | Fri 27 Feb | snotnose
Now this is how a rant should be. Funny, informative, and gives ideas on how to fix the broken misfeatures. http://www.catb.org/~esr/writings/cups-horror.html
Fri 27 Feb | Wayne | 'If the designers were half-smart about UI issues (like, say, Windows programers) they'd probe the local network neighborhood and omit the impossible entries. If they were really smart (like, say, Mac programmers) ...' As soon as I got to this comment, I stopped reading the article. You are not allowed to have a different opinion than me.
Fri 27 Feb | Lou | The printer sharing feature in Mac OS X is quite nice. You select (from a dropdown) the type of sharing (Rendezvous, Ethernet, etc) and a list of available printers appears. (printer sharing must be enabled on the host machine through the 'Sharing' Control Panel). While setting up my home network I was quite surprised at how simple it was. I'm sure someone has a horror story, but my experience was so basic and easy that I presumed it couldn't possibly be working (until paper came out of the printer). When the UI guides the user very clearly, things are wonderful. And please, will someone think of the users and stop with all the Wizards for adding a local printer. The Mac dialog is primarily contained in one window. Drop-down shows the list of available printers, select one, done! There's little worse than being Wizarded to death for no good reason.
Fri 27 Feb | joev | Since CUPS is Open Source, Eric, you can change it to meet your needs! See this chapter, you may find it familiar.. http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ar01s03.html Anyway, a lot of the pain has to do with how it is packaged. It was trivial to install CUPS on Gentoo Linux/KDE in a similar configuration that ESR described, and I have very little knowledge of CUPS...
Fri 27 Feb | hoser | Actually, I got more information out of the rant than I ever got our of the CUPS HOWTO!
Fri 27 Feb | pdq | JoeV, what a clever troll.
Fri 27 Feb | RocketJeff | pdq, joev's not that clever - he's just reciting half of the messages posted to /. about this story. The other half are agreeing with ESR; there seems to be some progress in the thinking over there (not that I think that the average /. troll has anything in common with most of the people that write OSS).
Fri 27 Feb | break -gimme(1) | To me Linux dudes are much like a guy I knew in high school. He actively sought out cool bands on alternative and college radio stations that nobody had heard of (REM, Red Hot Chili Peppers, The Sugar Cubes, etc). Then when enough people found out about them, he lost interest and went searching for new ones. I think that explains why despite the hype to the contrary, Linux will not be on many desktops for years to come. The folks that love it the most don't want to lose that cloak of mystique that they have wrapped around themselves as being uber geeks.
Fri 27 Feb | hoser | What Cramer (as in Cramer & Kudlow on CNBC) says about MSFT stock price - article on RealMoney.com ($$ subscription), excerpted: But the maniacal focus on deferred revenue with Microsoft (MSFT:Nasdaq - commentary - research) is a bit mystifying, if only because the numbers for it are so small compared with the larger picture. In fact, even if the deferred revenue had been blown away, I don't know how much it would mean. Yet somehow, I think it doesn't hold the key to the stock. On the positive side, the key is still held by the need to upgrade on the corporate front. On the negative side, I think the key is Red Hat (RHAT:Nasdaq - commentary - research) and the Linux challenge. In fact, I think the Linux challenge is what underlies the real weakness of the stock. There ya go. Linux no longer the stronghold of garage band groupies, but the watch word note of Wall Street suits.
Fri 27 Feb | Nate Silva | Lou: The printer sharing feature in OS X is nice, except when you have an unsupported printer. Then you have to use... CUPS.
Sat 28 Feb | joev | My intent wasn't to troll (and this wasn't up on /. until after I posted), but to point out that a) ESR is also guilty of this, and b) some distribution vendors are solving this problem on their own. An application is only as good as its interfaces, so some distribution vendors are trying to bury CUPS into their systems more deeply, with a better interface on top.  In this case, I pretty much agree with ESR, but the way he presents his opinions never sits well with me.
Any New Rich Microsofties | Fri 27 Feb | BioTek
Is there a lot of Microfties who joined MS as Software Engineers 5 years ago and can claims that theyre Millionaires... Im not talking about early MS employee such as Doug Klunder, Charles Simonyi, Richard Brodie and other legend ... Just newbies (programmers only)who have been at MS around 5 years...
Fri 27 Feb | Wayne | Are you going to kidnap their children?
Fri 27 Feb | BioTek | Wayne : Nope! Just checking if it's worth going for a job interview there
Fri 27 Feb | Ray | Look at the stock price of MS over the last 5 years. Yahoo! Finance tells me the stock has gone from around $40 to around $26-27 today ( http://finance.yahoo.com/q/bc?s=MSFT&t=5y ). Unless they hand out 'short' options I don't see how any one would be getting rich with options on that...
Fri 27 Feb | Elephant | Someone didn't take into account the stock split that occured this past year.  Anyone one that owned shares on or prior to 01/29/03 got a 2:1 split.
Fri 27 Feb | Elephant | In reference to the actual question, they pay well, so although you might not get 'rich' in the dot.com sense, if you save your dollars, you would be able to live a comfortable life style and retire at a reasonable age. This is true many places though. I'd go for the interview. It can't hurt to see what they have to offer and Seattle is a beautiful place to visit (fun even if it is raining which often it isn't). Why discount an opportunity before it's even there? Worry about accepting the job after it's offered to you.
Fri 27 Feb | Nigel | I don't believe they hand out options anymore, just straight stock. Has to do with new taxes involving dividends and the like.
Fri 27 Feb | Name withheld out of cowardice | Never expect to get rich off options.  It is vanishingly uncommon and always has been.  Microsoft is a mature company.  You should expect mature company growth rates.
Fri 27 Feb | Dennis Forbes | 'Someone didn't take into account the stock split that occured this past year. ' Sure it did. Around January, 2000, Microsoft was at around $120.00, but the Yahoo chart shows them as at $60 at that time because they've factored in the split retroactively (as all half decent stock charts do). Microsoft is at less than half their all-time high, obviously because stock prices often 'price in the future', and the future is that Microsoft's revenue has been flat. Even more disconcerting, for the last quarter Microsoft's server and tools division actually turned in a loss. We are at that crossroad that a lot of tinfoil hats worry about -- Will Microsoft start turning the screws?
Fri 27 Feb | Elephant | Remove foot from mouth and actually look at the chart next time before commenting ...
Fri 27 Feb | Clutch Cargo | If you're not smart enough to figure out how the Microsoft stock has done in the past 5 years, then they won't hire you to be anything more advanced than a janitor.
Fri 27 Feb | Alexander | Is it a good time to purchase Microsoft stocks ? since they're quite low
Fri 27 Feb | Mike Treit | By the way, and this is just a pet peeve of mine, it is worth pointing out that stock splits are totally irrelevant in terms of the value of the stock and/or the value of the company. Stock splits are meaningless. They're a gimmick. If you are one of the many people who thinks that it's some kind of great deal to own a stock when it splits, you need to snap out of it. I can't believe how many people I know who say things like 'I wish the stock would split' or 'Oh, I should have bought that before it split! I missed out!' Arrrrghhhhhh!!!! Ok. I feel better now.
Fri 27 Feb | no name | While it's true that stock splits *ought* to be meaningless in an economic sense, in actual practice they have great psychological value and do tend to drive a company's market valuation up. Just look at all your friends who think a split means the company's price is about to go up! Think about it: if splits didn't have a postive effect, then why do so many companies bother doing them?
Fri 27 Feb | Dennis Forbes | 'it is worth pointing out that stock splits are totally irrelevant in terms of the value of the stock and/or the value of the company' While a lot of people do take splits and share prices grossly out of context, share splits are a very real phenomena that often mean billions of dollars in capitalization -- generally a company wants to keep its shares between I think around $20 and $100 -- Over $100 and the granularity gets too coarse for the small investor (which, these days, does account for a far number of shares), and psychologically it has a feeling of 'cresting'. Under $20 and you start to look shady (indeed we have the term 'pennystock' for close-to-bankruptcy style companies -- but who's to say that it isn't a Microsoft with a trillion shares outsanding?). Share-splits are a sign of success, while share merges (I can't recall the term) are a huge sign of weakness.
Fri 27 Feb | Robert Jacobson | A bit of trivia... Warren Buffet's company Berkshire Hathaway has never done a stock split. If you want to buy a single share, it'll set you back a cool $94,000. http://www.forbes.com/finance/mktguideapps/compinfo/CompanyTearsheet.jhtml?tkr=BRK.A This seems to be the exception that proves Dennis's point... the company's known as being a very exclusive investor's club. The hoi polloi need not apply.
Sat 28 Feb | Oren Miller | That is why Berkshire created class B shares, which trade at 1/30th the value of class A shares. http://www.berkshirehathaway.com/compab.html
Now I did it...... | Fri 27 Feb | RP
This time Ive really screwed up. I recently left a job in the midst of a lot of hurt. The company wasnt good, the boss did what he could to kick me out and that left me morally devastated. I was looking for a job in *another industry* when a 6 month contract showed up. I immediatelly accepted it, its better to work than to go hungry. But my low morale has followed me. I walk around all day in a sulk, I dont care about learning new things or remembering what I learned so far, and my colleages noticed this. Now the morale: I dont even know why Im explaining this to you guys, but I sure hope I could give more of myself to this project.
Fri 27 Feb | Aussie Chick | I know that feeling. Not to blame an employer, just to acknowledge an environment contributes to an attitude. I was a different girl before I ended up working for a mob of accountants, too much office politics, and upper-class snobbery in a small city where you have to go to the right school. I have never liked that sort of stuff, but being immersed in it has just turned me into an apathetic person. I just don't want to get excited about anything. I don't want to be part of the crowd, I don't want to sing and dance and jump around. I am not getting excited about the latest cool thing someone in the office does. I mean, there was always this part of me that wanted to stand away from the crowd and over-analyse everything. But the longer I have been employed at this firm, the more that part of me has taken over. I have been trying to make a conscious effort to get back to my normal fun self. I used to be called 'pyscho number 1' because of my general exctiement levels. Now I just want to sit on the sidelines and watch. ....Oops going to university now, will have to get excited, hit the uni club and join a congo line....
Fri 27 Feb | RP | How long will your Electrical Engineering Bsc take?
Fri 27 Feb | Aussie Chick | B Eng (Electrical) and it will take between three and four years full-time, I should get about a year exempted (because I already have a B. Comp Sci.).  But then I am only taking a part-time load this semester (still strying to decide whether I am committed to this or not).
Fri 27 Feb | Aussie Chick | And uni life is exciting me again, I love to study, and nothing amps me like a thick textbook and the thought of new knowledge. Plus this time round I get to be an internal student...Woohoo.
Fri 27 Feb | 2_legit | That's funny, I have a B.Eng in Computer Engineering and am thinking of moving to software.
Fri 27 Feb | VP | RP, Don't beat yourself over the head for having low morale. The reason why it's still low: You took the contract job because you felt you were forced to, not because you wanted to. Context makes all the difference in the world. Now most companies are mediocre, and maybe this contract place is also (then again, maybe not?). But one way you might get excited from this contract job, is to think of the networking potential it presents. Even crappy companies can still have a few cool people in it. The key is to find these people. Now most people have this negative impression of what networking is. It's NOT about using and manipulating people. That's the stupid version of networking. Real networking in it's essence is finding people whose company you enjoy and helping them succeed or knowing how to let them help you succeed. It's simple, but is it easy to do? Hell no. Well at least at first. But once you get a hang of it, it's pretty darn fun. I hope the other JoS readers who are successful at networking can chime in. Here's a few articles that you might enjoy reading: http://www.asktheheadhunter.com/hanetwork1.htm http://www.asktheheadhunter.com/hanetwork2.htm http://www.asktheheadhunter.com/hamentor.htm I have a horrible time explaining things verbally, but luckily I'm decent at listening and I can ask thoughtful question. That allows me to be mentored by others. I'm pretty good at writing, and that lets me help others. Heh, there's more to solving your problem than this, but it's a good start. Remember, you're not alone in how you feel (sadly). Good luck and best wishes!
Sat 28 Feb | Anon-y-mous Cow-ard | Bah! Throw some dirt on it and shake it off. Your letting your boss win and even worse, now he's probably yakking it up with all his cohorts at your former work place! Get in the game, man!
"The Apprentice" (Spoilers) | Fri 27 Feb | Philo
Wow - Bill strikes back: In business its all about the numbers. Its not just you should buy this product because Im cute Nicely done. Trump is making a killing on this - hes getting thousands of man-hours of work for nothing... *Awesome* to see the contrast between Troy and Nick - Troy working *with* his clients, Nick selling *at* his clients. Heidi shouldve made noise about only rewarding two of her team (Mr Trump, why dont you leave the camera crew behind so I can reward my whole team?). I also think she shouldve sent three subordinates instead of going herself. ROFLMAO!!! Trump to Nick: What makes you think you have charisma? Very nice to make Bill choose - to see how he handled the decision. And Bill fumbled the ball - he was bitter about Erika ignoring his decisions, so he made the personal decision. Its really a tough call on who to fire - I was concerned that they were going to fire Erika just for being frazzled while she was putting the paperwork together - thats something that can be trained away, and controlled stress in a pressure situation can be beneficial. Nick, on the other hand, is arrogant and incompetent and doesnt even realize it - when pinned down with numbers, instead of questioning his abilities he questions reality. But when Trump said that Erika was simply too emotional in general, including picking her companions based on emotion (now I get your girlfriend let you off the hook) - that makes it more of a coin toss between the two of them. Also of note - no shots of the people Heidi *didnt* pick during the helicopter ride? :) My prediction, absent another shakeup - Troy vs. Bill in the final showdown. Philo
Fri 27 Feb | Nigel | Does Kwame ever do anything? I haven't seen him be an issue in any setting, or have any interviews with the camera.
Fri 27 Feb | Burninator | My money is on Troy and Amy being the finalists. Troy has awesome people skills, which I believe are one of the most important keys to success. Amy has a combination of people skills and intelligence that is a very formidable combination too. I would love to work with either of them. The others? Whatever. A few of them are going to have difficulty getting work after this. For example, I can't imagine why anyone would ever hire Omarosa.
Fri 27 Feb | Nick | My money has been on Bill and Amy, but now I'm starting to reconsider. Troy has really stepped it up in the past two episodes. Not only is he good at sales, but also he steps into the lead and pulls people together. Amy's always solid. I still like her to be in the top two. Donny Deutsch (of the Deutsch ad agency from episode 2) has been subbing this week for Kudlow on CNBC's Kudlow & Cramer. He said Amy was the most impressive, and, ironically, he was really impressed with Jason (who got canned that episode). Regarding Kwame - he's floating under the radar. The people who get the most air time are the one's in conflict with one another and the one's in frontline (sales/negotiating) positions. He doesn't seem to have a lot of conflicts, nor does he take alot of frontline positions. Being nice makes for boring TV, so he doesn't get coverage. Also, has anyone else noticed that you get punished for stepping up to bat on this show? In the past 3 or 4 episodes, the people who take the support roles are less likely to be picked for the boardroom than people who take frontline roles.
Fri 27 Feb | Canuck | A little off topic ... but I promise there's a point here ... For some reason, they have been broadcasting a lot of poker on TV lately. Big names in the poker world playing for big money. Inexplicably, I am hooked. There's this one guy, Phil Helmuth, who is just awesome, basically a king among kings at the game. He has this fantastic ability to read people. Based on how they bet, sit, fidget and so forth, he knows what they are going to do. Recently, after a fellow contender beat Phil, he commented, 'I only won because I had better cards. He knew what I had every hand ... he kept telling me so.' Apparently during the game, Phil had continually dropped hints that he knew what the guy was holding. Anyway, watching Phil work his opponents is kind of like watching Troy sell water. He seems to have a much similar innate ability to read people and respond to that in a manner to his favour. He was passive with some customers and more aggressive with others. Always seemingly to his advantage. I think its this intangible that will eventually win him the job. Ereka is a basket case. I would lose it working with someone as flighty as her. It was really funny at the end when she wouldn't shake Bill's hand after she got the boot. Did she honestly expect him to side with her when the three of them had to meet with Trump? Yikes ...
Fri 27 Feb | GuyIncognito | When is dt going to fire the guy who makes (grows?) his hair-piece?
Fri 27 Feb | www.marktaw.com | I'll predict Bill and Amy because it started as Men v. Women and in order to keep the viewers, just like with Average Joe, Trump was probably told 'keep one of each until the end.' Though Trump does seem to have a certain admiration for raw chutzpah, I think this week he ruled out Nick simply for being not self aware enough. He makes assumptions about himself and others without getting feedback, and his promises about how he'll run Trump's corporation are obviously a lot of hot air. 'I did great today and I'll continue to do great' sound bad when you actually did horrible today. Erika being 'frazzled' is just the flipside of Nick's bluster. I.e. not thinking clearly because of a high pressure situation. I was surprised how awkward and nervous Nick seemed in the sales situations. It's not that he didn't care about the customer, it's that he was too nervous to think clearly. I've seen it in his eyes before, he's very stiff in general, too self concious. I don't know how Bill would've done as the sales guy (wasn't he the guy who negotiated the apartment last week?), maybe side guy helped him think more clearly. Certainly realizing it's about the money (come on folks, it's water, nobody even sees the brand of water you're being served). More important than the man hours he got promoting his water, Trump got national exposure, which is important in getting an off brand accepted. If I saw Trump water on the street I'd never buy it - it's obviously someone coming in to a market late in the game, and using his name to sell something. But now at least I think it's not from the tap in Trump's gold and porcelin bathroom, so he's gained some trust there. In the boardroom, when Trump made Bill choose, several minutes earlier he said 'I worked with Erika and not with Nick,' so Trump understood the constraints he was dealing with. What's important here is that I think Bill will learn from his mistakes. When he said 'but you don't have to live with them' and Trump said 'sometimes you do,' I think Bill understood that he was in an uncomfortable situation, and generally acknowledged it. Nick and Erika didn't seem to. To put it another way, when the receipts started rolling in and Erika blamed Nick, Erika was flustered. Nick got blustry, but in the same situation, if Bill was in Erika's place, he may have gotten nervous, but taken a step back and said 'Okay, what needs to be done?' Or if he was in Nick's place he would've said 'What? No I did that right - Let me see them' and tried to correct his errors. Kwame got them a lemonade stand, and signed basketballs instead of running Planet Hollywood. Sure it's 'stick your neck out and it gets chopped off' but everyone on this show will have to stick their neck out sooner or later, so it's no real loss to Trump if they're passive early on. Troy has good people skills, but I don't think he's the man with the plan. Troy is your point man, your coach, and your cheerleader. Bill is your general, and sits in the tent with the maps. Troy is the guy who leads the troops into battle. I'd want both in my organization - Troy working for Bill. As far as training away nervousness, it can be done, but I just don't think Erika is a big picture kind of person. As far as choosing between Erika and Nick this week... It's not which one's a keeper, it's which do you think you can put up with longer. At least Nick is entertaining.
Fri 27 Feb | anon | 'Troy has good people skills, but I don't think he's the man with the plan. Troy is your point man, your coach, and your cheerleader. Bill is your general, and sits in the tent with the maps. Troy is the guy who leads the troops into battle. I'd want both in my organization - Troy working for Bill.' Well said Mark. My views too.
Fri 27 Feb | Lou | Can someone please explain, when faced with a volume distribution business for a new product that offers no tangible benefit over existing products, why one would have THREE people in a meeting with a buyer for less than 72 cases? Separate, put a person or two on the phones all day and set up meetings and make sales. When trying to win total sales in a 24 hour period why use your resource (time) so poorly? Each team wasted 50%+ of their most significant resource to no tangible benefit.
Fri 27 Feb | The Ted | This is a pretty sorry group of people, as a whole. Troy & Bill are the only ones that have shown any promise. Amy's saving grace IMO is that she hasn't done anything that reveals her as incompetent. Ditto for Kwame (he's still ON the show, isn't he?). Cluetrain: One of the people on your team is involved in the distribution business (Bill). Why not use his expertise?!?! Nick was disappointing this time around. If I had to work for somebody, or had to hire somebody to run one of my businesses, it would be Bill. Troy would be in consideration, but Bill would be w/o a doubt the #1 choice.
Fri 27 Feb | Ken | I think Ereka lost it when she explained why she didn't choose Katrina to come to the boardroom- essentially saying she didn't take a leadership role or whatever.  As a manager, you should be rewarding initiative, not punishing it.  I would have fired her based on that alone.
Fri 27 Feb | Nick | Mark, I completely agree with you about Troy versus Bill. But this show isn't geared toward showing what a great general someone is. That's why I'm leaning toward Troy now. I think in the final weeks of the show, the teams will be too small to effectively show leadership skills. The contests will get down to an individual level, where selling and negotiating skills will play the biggest role. I think Troy has a big edge over Bill if that scenario plays out. Also, a note on the previews for next week. You heard the female voice, 'I can't take the pressure anymore.' Then they showed the camera panning the players. The only female they didn't show was Amy, but I think it was an editing rouse. I'm guessing it was Heidi due to her mother's colon cancer. Two people in my own family have died of it, and my heart truly goes out to her. It's awful. For her own sake, I hope she decides (decided) to quit the contest and go back home.
Fri 27 Feb | Clutch Cargo | Phil Helmuth?? He's a clown. He's the Sam of poker. Or maybe the Omarosa of poker. Whichever, it's not good. He's best know for throwing tantrums, whining and berating his opponents.
Fri 27 Feb | www.marktaw.com | Nick, you never know, they may put the final 3 and 2 in charge of small teams of people otherwise unrelated to the show, similar to running Planet Hollwood. It's too bad one of them will have to be eliminated a week early because the show will probably demand it stay men v. women until the end. I'd love to see Troy and Bill go head to head. The man with the plan vs. the action superhero. I hope I'm wrong and we do get to see this. Remember, Nick's background is in a mail order business - not much customer interaction, and I think that's his achilles heel. He's more sedentary, he's a thinker. Troy's a doer. Regarding Ereka's (I'm using your spellings here, but someone has to be wrong) comments in the boardroom about her 'girlfriend' as Trump put it, I wouldn't put too much stock into it. These are off the cuff remarks in a tense situation where Trump's job is to throw you a curveball. Now here's a question: What do you think of Trump's skills as an interviewer? Is he the ultimate 'What is your weakest trait and why?' Do you think he has as much insight as he likes to think?
Fri 27 Feb | www.marktaw.com | > Remember, Nick's background Bill's background
Fri 27 Feb | Lou | I don't think Trump's abilities as an interviewer are that great, but he seems to be an astute observer.  It does appear that he and his aides watch a lot of tape before making their decisions, as Mr. Trump seems to know more than is said in the Boardroom alone.
Fri 27 Feb | magoo | Interesting comment, Lou. Some people attribute Warren Buffet's success to his ability to read a person's character, not his ability to pick stocks. I like the Warren Buffet hire/no hire test: 1. Do I like him? 2. Do I trust him? 3. Do I respect him? But it's easy to be fooled on any one of these.
Fri 27 Feb | Philo | Mark - Trump made the 'girlfriend' comment, and I saw it as referring to the idea that Erika chose who she did based on emotion (bring the people you don't like, not the people who didn't perform). Philo
Fri 27 Feb | www.marktaw.com | I don't disagree with you. You're right about the girlfriend comment being about someone she liked, not someone who actually screwed up or didn't contribute. Once she made her chioce she had to defend it, and that was what I was referring to. Tangentially: A lot of who you choose in any situation is going to be someone you feel you can get along with. Other things being equal, you'll have a more efficient organization if everyone gets along and can work towards a goal rather than at cross purposes. You just hope you don't end up with an organization of yes men. Speaking of which, I'll say again that Trumps advisors are yes men (and women). They may be good at what they do, they may be uncomfortable in front of the camera, they wait for Trump's approval before they speak about anything, and phrase things a little too carefully.
Fri 27 Feb | Clutch Cargo | Oops. That Helmuth thing made me forget to comment on the episode: People who think Bill has done a good job are “being duped”. He’s all style and no substance. Troy is light years ahead of Bill. While Bill may have pulled the wool over the eyes of some gullible JoS forum members, Trumps advisors easily saw through him when they said that none of the three in the boardroom were impressive. Another great episode for Omarosa, who apparently wanted to sell Trump Ice one bottle at a time on the street corner. Classic moment was when she stopped to have a makeover while they were trying to do sales calls. Right now Troy is so far ahead I’m wondering if the other contestants are going to try and sabotage him somehow. (The other advantage Troy has is that he’s the only guy around with worse hair than Trump.)
Fri 27 Feb | Dan Brown | I agree with the comments about Troy.  He's the only one that thought of selling water by the truck and delivering in smaller increments.  If he would've realized that the first day they would've outdone the other team 2:1.  Smartest of the bunch if you ask me.
Fri 27 Feb | Tom Vu | >>Bill's background You do know that Bill is a millionaire who has walked the walk. As I said on a previous thread, Bill will win.
Fri 27 Feb | Clutch Cargo | BTW, does anyone know if the contestants are staying in his building for free? If Trump actually got NBC/Burnett to pay rent while they're there then The Donald is the Master of the Deal. As for being a millionare... I think Sam was a paper millionare too, before the crash.
Fri 27 Feb | The Ted | Bill owns a company that does a few million in business, but that doesn't make him a millionaire.  Though I wouldn't be surprised if he was.  Where did you get that info? 
Sat 28 Feb | Tom Vu | >>Bill owns a company that does a few million in business, but that doesn't make him a millionaire. He sold the company. He has proven that he has what it takes to start and follow through with an idea.
Sat 28 Feb | The Ted | Tom Vu: Are you just making sh*t up? Where did you see that he had sold the company? He's still listed on the website as being the sole proprietor. Even if he would've sold the company, that still doesn't make him a millionaire. Even if that company was valued at 10 Million selling it wouldn't necessarily make him a millionaire. Time to put up or shut up.
Variable declaration location preference/rule? | Thu 26 Feb | Vans Davis
In C, I know it was once required that all non-global declarations appear at the beginning of the enclosing block, meaning either at the start of a function or at the start of a control structure. I prefer to declare and define my variables as needed. This is supported by GCC with or without the -ansi option. My question is, how widespread is the support for this practice? Is support still rather new? Do people more than anything else use the older style because they prefer it or because the declare/define as you go syntax isnt well-supported yet? If I want to write a portable app that will compile with any modern ANSI compiler, what should I do?
Fri 27 Feb | Chris Nahr | Depends on your target compiler. The C89 standard is still the only one recognized by most compilers, and it clearly says that you can only declare variables at the beginning of a block (anywhere after an opening curly brace). The current standard is C99 and lets you declare variables anywhere but few compilers support it, so I wouldn't count on it. However, unless you're doing embedded systems the compiler is likely a C++ compiler anyway which would support such declarations either as a non-standard enhancement, or simply by compiling in C++ mode.
Fri 27 Feb | S. Tanna | > If I want to write a portable app that will compile with any modern ANSI compiler, what should I do? You answered your own question If compatible with standard C is the goal, follow the standard. I don't see it as such a hardship to declare variables at the start of the block. If that is your worst problem, I envy you!
Fri 27 Feb | Mark Tetrode | It seems ver logical to me to declare the variables very close to where you are using them. If your compiler(s) and platform(s) support them, please do so, it will make the maintenance of your sourcecode much simpler.
Fri 27 Feb | Simon Lucy | It will will it? In five years time when someone else comes to maintain the code are they going to know where all these squirrelly definitions of local variables are?
Fri 27 Feb | Wayne | I used to declare all the variables at the start of a function but I switched recently to declaring them closer to where I use them. This is what is suggested in the book 'Code Complete' which is what made me change it. Simon: When you're maintaining code with 'squirrelly' defs, what do you think makes it harder? Personally I think it's easier because you don't have to hunt through a bunch of vars that have nothing to do with the piece of code you're concerned with.
Sat 28 Feb | no name | if you create 500-line functions then declare it closer where you use. if you create a 5-line one, it will be in the beginning in any case
Sat 28 Feb | Christopher Wells | > In five years time when someone else comes to maintain the code are they going to know where all these squirrelly definitions of local variables are? They're easier to find in the middle of the function than at the top: partly because they're closer to where they're used, partly because syntax highlighting makes the type declaration stand out(1). They're easier to maintain when you're refactoring (cutting and pasting) code. Most importantly, with this convention you virtually never need to declare a variable without simultaneously initializing it: this avoids 'uninitialized variable' errors, *and* makes it easier to understand the declaration when you see it (because you see not only the variable's name and type, but also the value that is initially assigned to it). Not so 'squirrelly': I'd say it's widely accepted as a good practice, in C++ at least. (1) For example, in the following fragment, my editor highlights the 'int' in blue: blah(); x = 7; int y = 16; more_blah(y);
Outsourcing & Programmer Retraining | Thu 26 Feb | anon
Outsourcing advocates say that what programmers need to do is get retrained.  I have a MSCS, and because Ive been working primarily in VB for the past four years, Im having a heck of a time getting a stupid Java job.  If industry doesnt think that with an MS, I have the ability to retool myself for a Java programming position, how the fark am I going to convince industry that I should get that cool genetic engineering position with no education whatsoever?!?
Thu 26 Feb | RP | Amen Brother! Let alone the fact that College education takes a lot of time and when you get out of it you're too old to be hired by most companies. What the heck are we going to do, beyond moving to India or China?
Thu 26 Feb | The real Entrepreneur | The problem is that the tools of programming change so rapidly that they dominate reusable skills (like good UI design, architecture, etc.). Imagine where doctors would be if THIER tools (scapels, etc.) changed completely every 3 years. Or imagine tht mgmtn told them to start using thier LEFT hand. We have to start focusing on REUSABLE skills or we're going to be in a viscious treadmill forever. It's incredibly frustrating.
Thu 26 Feb | njkayaker | Industry does not necessarily think you can't learn Java (or whatever). They just don't want to pay you to learn it.
Thu 26 Feb | Tayssir John Gabbour | The secret is to retool at your job. I helped a sysadmin learn Java right before he was laid off, so he could claim it. He actually wrote some nice programs. If you have an MSCS, it's really worthwhile. Just spend like a couple hours a week writing something in Java instead of VB or Perl. And look around the community, you can learn a lot about the tools. You already know the concepts, you just need the easy trivia. And the added feeling of security will probably keep you more productive.
Thu 26 Feb | x | The OP is correct and the subsequent advice to 'learn Java' misses the point. Industry selection criteria are seriously flawed. The question is why this is so, and why do programmers tolerate this situation. The medical analogy would be demanding that surgeons have experience with particular brands of scalpel or monitors, or maybe particular types of people. As we all know, that's not how it works in medicine.
Thu 26 Feb | Gerald | Of course it works that way in medicine, just use the right analogy. No one would hire a neurosurgeon for a proctologist position and similary no one will hire a VB guy for a Java position. The point we miss is that while learning a language is relatively easy and trivial, learning the platform is not. Using a different brand of scalpel is trivial, learning a different branch of medicine is not. The reality is when HR says they are looking for Java skills it is rarely just Java the language, what they really mean is someone fluent in the Java platform which includes both language and corresponding frameworks. As another poster mentioned, unless it is a rank beginner position no one is interested in having you learn on the job. The market is so saturated that companies expect you to be productive when you start. It sucks and I've felt your pain myself, but that's the way it is and you need to devise a strategy for dealing with it. I think the advice given to try to broaden your skill set while on your current job is spot on.
Thu 26 Feb | Bored Bystander | The outsourcing advocates who preach 'retraining' are policy wonks and empty suits with business and economics degrees who honestly, sincerely believe that this work is low grade idiot and grunt work. They have no idea. They are just saying 'retraining' because they can congratulate themselves on their honesty and toughlove. They see it similarly to telling any blue collar supposedly undeserving dumbass schlub to go back to school. And any programmer who takes this advice to heart is naive. The only solution to this problem is to do what the offshore people can't do and that which most geeks won't do: get out from in front of a monitor and network with people.
Thu 26 Feb | x | Gerald, Java and VB can be learnt reasonably quickly by someone who is already a good developer. This happens all the time. Where do you think VB and Java developers come from? The categories you nominated are precisely the categories industry uses, and which are flawed. Not only do they exclude excellent people, they also frequently lead to selection of people with superficial familiarity in the 'skill,' but no important capabilities. You nominate some medical specialities, but development does not have the formal equivalent of such specialities. One day we probably will, but we don't at the moment.
Thu 26 Feb | Sum Dum Gai | Anyone who can't be productive in Java within a week of first seeing it isn't worth hiring as a programmer anyway. Learning a new programming language is simple if you understand the basics. Learning the 'platform' is irrelevant - nobody memorises every little function and class Java has. That's what the documentation is for! A good programmer is a good programmer regardless of tools - not because of them.
Thu 26 Feb | Sum Dum Gai | 'The only solution to this problem is to do what the offshore people can't do and that which most geeks won't do: get out from in front of a monitor and network with people.' Doesn't anyone see the irony that the best way to keep your job is to do something that is likely to make you less productive? ;)
Thu 26 Feb | x | Bored, I have to agree with SDG. 'Networking with people' is a stupid thing to recommend. Who says developers don't do that now? Who says it makes any difference when senior management sniff their next $500,000 bonus and decide to send another 1,000 jobs to India.
Thu 26 Feb | Gerald | Certainly there is a difference of scale between my allegory of medical professions and technical knowledge, just like there is a difference between the scalpel allegory and technical skills. Perhaps I am being overly harsh in my assessment, the point though is that the learning a new environment/technology is not an overnight affair like using a new scalpel. Can somebody be productive in Java in the first week, maybe if all someone does is JSP. However I strongly doubt someone could go from a VB/COM environment to a J2EE environment and be fully productive in a week. I'd say your probably looking more like 2-3 months to completely ramp up. And just to clear, by fully productive I mean as productive as someone who's been working in that development environment for a year or more, because that is who you are competing against for that job. Also, there seems to be this feeling that 'Joe shit hot VB developer' is competing for a Java job against 'Billy know nothing Java guy'. Given todays market, the reality is both are probably equally as good and why wouldn't the company choose the person who already has the experience in the environment they are looking for. Bottom line, if you want a job in a specific technology beyond entry level you need to acquire the necessary hard skills before trying to get a job in that technology, either on your time or at your current employer. While I do think a good developer on one platform can be as equally good on another given a modicum of time, given how many excellent developers are currently available in any particular technology you need to have the specific skills required by the job, otherwise your already way behind the rest of the pack trying to land that gig.
Thu 26 Feb | x | Gerald, the requirements for most development jobs are common. Very little is dependent on the particular language. They include things like determining the requirements, designing the architecture, designing for robustness and avoiding dependencies. Most development jobs are in teams and are long enough to accommodate the ramping up of language expertise.
Thu 26 Feb | Gerald | x, Most places that are hiring a developer need him now. They are not in the mode of having a developer sit around learning the language and platform for a few weeks while the requirements are gathered, the architecture is designed, etc. Given today's environment, companies prefer to either hire 'just in time' or late for perceived savings, for better or worse. It also doesn't invalidate my point, given two equal people, one with existing competence in the tools your using and one without, what sane company would go with the guy without the experience? Because frankly, it is that competitive nowadays, for every Java job the OP applied for there were probably several very good candidates to choose from, why pick him over them?
Thu 26 Feb | x | Gerald, I don't think you understand development. The process of gathering requirements and developing a design is almost totally independent of the language. Those tasks can certainly proceed at the same time the good developer comes up to speed on a new language. Most development contracts last from 3 to 12 months, which is ample time for a good developer to implement well in a new language. Most development jobs are staff jobs, and are for longer periods than that, providing ample time for learning. This completely invalidates the common industry practice of rejecting good candidates who simply haven't spent a few weeks on, or developed a project in, a specified language. Your point wasn't about comparing two people with equal capability; it was about there being two distinct types of specialists, with that specialisation being defined by the language, and not being transferrable.
Thu 26 Feb | Gerald | Neither of our allegories match up particularly well as I stated in a previous post. While the difference between technical platforms is certainly not as complex as the difference between a proctologist and a neurosurgeon, neither can it be compared to the simplicity of different scalpels. To your second point, most reasonably sized organizations don't hire developers to gather requirements (business analysts do that) or do design (architects do that). Most organizations hire developers to develop, to implement the design and specifications gathered by others. But fine, let's say the developer does it all in this case, it certainly does happen. While the functional specification is independant of language and platform, design and architecture is not. I don't know about you, but when I get into the nitty-gritty of doing technical design I try to take into account the underlying strengths and weaknesses of the platform (be it .Net, Delphi or Java) I will be using. If I have never developed anything of note on that platform then it can be quite difficult to do that and make sure the design will work within the technical constraints of the platform. How many posts do we see here about clueless managers and architects with zero experience in a given platform doing design? Plenty. Anyways, the main point I was making is that it is a very competitive environment out there, not having the skills the company is looking for sets you back. If the OP does not have Java skills and everyone else who applies does, he's not competitive in that market, it is as simple as that. It's not fair, and it doesn't mean the guy is useless and can't learn the skills, it just means he is uncompetitive in that market. In a nutshell my point is that while I agree technical knowledge and skills are transferable, it's not a one week affair and given the vast number of qualified unemployed people, in any given skill set, that are out there, why hire the guy without the skills when you can hire someone with the skills. I don't see why the original OP finds this situation confusing. As others advised, the guy needs to get some Java skills before applying for Java jobs if he wants a reasonable chance to land one.
Fri 27 Feb | x | Gerald, you're not a developer, that's clear. Developers do in fact do requirements and design. The belief that developers just implement designs that others do is a cherished belief of those who aren't developers and want to be one, but it's not true, I'm afraid.
Sat 28 Feb | MacSqueeb | X, You're correct (interpersonal) networking does not insulate you from getting the cut when a suit, completely disconnected from the task set, decides to give another 1000 jobs the axe. The reason you do interpersonal networking is so that when you do get sacked from Monilith-Outsourcers, Inc., you're already in tight with people who can feed you the hot tips on the positions that don't show up on the typical job hunting radar. I'm not necessarily talking about fellow tech people either--i.e. it's good to have friends who are HR professionals. Along those lines, is it reasonable to assume that one is safer as a dev in a small but stable company where off-shoring wouldn't even make any sense? In our shop, it would cost more in travel and fees just to arrange a contract in a foreign country than the salary of the two developers for a year!
Sat 28 Feb |  me again | Macsqueeb, are you saying that you can't fly to india and back for less than $80,000 ? Or are you saying that you only pay your developers $3000 a year?  I went to india for a month and it cost $1400, 70% of which was air fare.
Sat 28 Feb | MacSqueeb | That was humor.
Terminology - Budgeting | Thu 26 Feb | Sathyaish Chakravarthy
I havent had luck with Google, searching for expense or activity related budgeting concepts. Most of the links that came up were either related to the preparation of simple Cash Budgets or with Public/Union Budgets or about Budgeting software tools or with Marginal Costing Concepts of breaking even, variable and fixed costs and the like. What Id be interested in would be a web resource that explains the difference between the following terms: (1) Original Budget (2) Latest Estimate (3) Revised Estimate (4) Forecast (5) Commitment (6) Spend While I do know the meanings of the terms I mentioned above, Id like to read something more fulfilling, something more profound so I can answer some of the questions I have in mind. How many times is it possible to revise a latest estimate? If there isnt a restriction on the number of revisions until the month for which the budget is being prepared is closed, then what is the rationale behind a Forecast? A forecast is also, after all, a revised estimate. Id be grateful if you can provide me some links.
Thu 26 Feb | Slough Bloke | Sathyaish, these terms have sligthly different meanings in different organisations (and sometimes within the same organisation. They seem so obvious at first glance that no one bothers to define them). I suspect your search for an illuminating link will be a tough one but good luck, anyway. Cheers
Thu 26 Feb | Simon Lucy | The number of revisions an estimate can have is more about the individual business rules than any academic or limit by definition. If its a Costing use of 'Estimate' then revised estimates are usually because of some negotiation process between buyer and supplier. If that is an important part of the Business, and there are many consulting firms on both sides of that equation that depend on this kind of process, then any system they use should also model it. Because you're interested in monthly budgets that sounds like its more of a General Ledger question. Then Estimate is more about Revenue coming in and personally I keep fictitious figures away from General Ledgers. Some account heading may have an annual budget and that is broken down monthly, if that is adhered to rigidly then other than cash flow benefits it would likely be too rigid. What you overspend this month you underspend in some future month. I haven't come across mixing the terms Forecast and Estimate for the same side of the Ledger. If people use the term Forecast then they'll tend to keep using that for Original Forecast and any Revised Forecast. i.e. we forecast that sales in the third quarter will be 7% up on sales in the same quarter last FY. I suppose an individual sales person might estimate some amount of revenue but in terms of the Management Accounts forecast is the more usual term. Perhaps, it makes it clearer if in my experience you give Estimates and you make Forecasts. So you give estimates to customers and you forecast whether they actually buy from you. If you Google for 'management accounting forecast standards' you might find some of the links helpful.
Sat 28 Feb | Sathyaish Chakravarthy | Thank you, friends, for your replies. Due to the individualistic nature of the question I asked, I realize I can get a better answer from your advice: consult the organization whose budgeting behaviour I am studying, and secondly, search google for management accounting forecast standards. I am very thankful for the advise and also for your time.
Any solution to decrease long load time? | Fri 27 Feb | sam
Any solution to decrease the long load time while debugging using VS.NET2002? I am running my dll inside IE. When I try to debug, the output window in VS.NET IDE keeps showing lots of dll getting loaded from system32 dir. It takes about 4 minutes for all the dlls to finish loading. I am using P4, 17Ghz, 1gb ram and WinXP. Upgrading the system is not an option for me.
Fri 27 Feb | Almost Anonymous | 17Ghz!?!...  wow... where I can get one of those.
Fri 27 Feb | no name | I need a 17Ghz machine too ;-)
Fri 27 Feb | sam | I meant 1.7Ghz
Fri 27 Feb | Evgeny Gesin /Javadesk.com/ | You need to check, it could actually be a 8088 machine.
Fri 27 Feb | Rob Walker | Are the dll load messages evenly spaced, or is there one of two dll's that cause long delays. I know Internet Explorer isn't exactly fast to load but 4 minutes seems extravagant. Try deleting all the breakpoints in your project and seeing if that makes a difference. Visual Studio seems to sometimes reach a point where lots of break points cause everything to reduce to a crawl. Also if IE fires up fast outside of the debugger then try doing that and attaching instead.
Fri 27 Feb | Insert half smiley here. | I'm pretty sure there was an option in VC6 to stop VC trying to find debug info for all the DLLs the program loads. I can't find the VS.NET equivalent, but I'm sure it must be in there somewhere. As another possibility, try downloading the Windows symbol files from MS' website. If your PC is spending ages finding them, or trying and failing to get them from a symbols server, that might stop that. If none of those off-the-cuff ideas are of any use, I suggest you get someone else to upgrade the system for you :)
Fri 27 Feb | sam | Thanx for all ur help... I found a solution myself..changing the working directory solved the problem.. earlier it was pointing to a sub dir inside the system32 dir...when i pointed the working dir to c drive, it loads quickily..
Fri 27 Feb | Should be working | Oh, change the working directory. Yes, makes perfect sense why that would make the load time decrease. And ESR rants about CUPS....
interview questions revisited | Fri 27 Feb | Nathan
After reading this board for awhile now, I finally had the courage to answer those stupid, what are your strengths interview questions. I was asked, Whats your greatest non-technical strength? I replied, Upper body. He smiled, and said that was a great answer. They offered me the job. Ah, feels good to finally say something like that in an interview.
Fri 27 Feb | Lou | What is your greatest strength? The ability to deftly handle bad interview questions such as this. What is your greatest weakness? The same, as I tend to answer them with a bit of sass. Way to push back on that question.
Fri 27 Feb | www.marktaw.com | You know, I have a theory about this kind of thing... It goes a little something like this. When you have two or more people having a conversation one of them tends to take a lead role, defining everyone else as they go along. Typically everyone else will accept their role and go along because a) it's easy and can be fun and b) it reduces conflicts. However, you can usurp the leader by creating a new game, like switching from Monopoly to Trivial Pursuit by asking nonsense questions during Monopoly until everyone is more interested in that than Monopoly. The guy who wanted to play Monopoly doesn't mind the switch because your game is more fun anyway. In an interview the interviewer is the default leader, so 99% of applicants are going to take a follower position. As with any other negotiation, genuinely not being too concerned with the outcome will help, and this will let you break out of the traditional role as follower. Anyone who doesn't just accept their role as interviewee and can steer the topic where they want will have the upper hand over those who follow the traditional interview format. My interview habits and hiring patterns have borne this theory out. The more fun I'm having, and the more I define what we talk about, even if it's not related to the job in question, the better I do. YMMV
Fri 27 Feb | Nathan | I think that's definitely a theory with some merit, Mark. I did not want this job, and told them they couldn't pay me enough to pull me away from my current job. They begged me for an interview, so I said sure. I actually had fun in the interview. I talked about stuff that interested me, and I answered his questions as well as I could. I think I grilled him more than he was expecting. I went through the Joel test and asked how their builds go and all that stuff. Mark, you mentioned taking the upper hand in the conversation - when my interviewer asked me a question that piqued my interest (What do I admire in a manager?) I answered then remembered to ask him pretty much the same kind of question, 'What is your managerial style?' It's a loaded question, because I just told him that a manager who hires someone then never trusts them to do the job they were hired for is not a good manager. It was amusing to see him dance a bit.
Fri 27 Feb | Philo | Again, you guys do realize this question isn't about the answer itself, but rather how it's answered, right? Going back to the Apprentice thread - if the question was 'what do you consider your greatest weakness?', Nick would give one of those silly 'my greatest weakness is that I don't have any weaknesses' answers, while Troy would give a sincere 'I tend to come on too strong' or 'I sometimes rush into engagements before doing the research - I need to learn to slow down' type answer. BTW, my reaction to 'upper body' would be to have the interviewee do pullups - you'd better be able to put your money where your mouth is. ;-) Philo
Fri 27 Feb | Canuck | 'I answered then remembered to ask him pretty much the same kind of question, 'What is your managerial style?' ROFLMAO That's very slick.
Fri 27 Feb | www.marktaw.com | Actually we're going back to an earlier inteview thread where you said something about answering it honestly and being able to self asses yourself. Or to the thread about the lie detector test really being about convincing the person you're giving the test that you have the ability to see right through them. I still think this is the rorschach of interview questions - so open ended it's really designed to elicit an emotional response they can use to asses your level of maturity. Certainly if you had any hangups this kind of question would bring them out.
Fri 27 Feb | Lou | Aside from technical interviews that I've been conducting lately the only interview experience I have from the other side comes from my time in a business fraternity. When interviewing one candidate I asked... 'What sets you apart from the other candidates we've seen.' The candidates actually had time to meet and talk to each other in some meaningful fashion and I was anticipating a weak response along the lines of, 'I'm a harder worker'. What I got was, 'Hah! I'm French.' She was, and it was so off from the line I was looking for it was just hilarious - she carried it off without much attitude and the entire experience from that point forward was very different. ---- And a quick story from The Restaurant. When interviewing for wait staff Rocco kept having candidates tell him that they were a 'people person' and that they liked people. Finally he was getting quite tired of this fake attitude and asked the next candidate if he was a 'people person'. The response? 'No, I hate people.' Instant hire.
Fri 27 Feb | www.marktaw.com | I assumed Rocco hired people who had waitstaff experience, but going on the Today show (or whatever) instead of placing ads in papers was hilarious. He seemed to hire for emotional reasons. That guy who was first in line had to be hired because he would've felt bad not hiring him and so forth. 'Are you a people person?' == 'Can you answer this simple yes or no question that I'm giving you the answer to?'
XP Account and Virus | Fri 27 Feb | Windows User
Hi, When I open a new account on my computer with WIndows XP and open the Internet Explorer, It open bunch of Internet Explorers and then Jams my computer.. Whats the going on? It happen on every occasion over the span of last 10 days. Is it the problem with XP, IE or Newaccount? IE works fine with my regular account. I just want to create new account for my other family members. I appreciate your help. Thanks,
Fri 27 Feb | Rob Walker | Run this: http://www.lavasoftusa.com/software/adaware/
Synchronising a Pocket PC via Citrix | Fri 27 Feb | Dexterity
Were using Citrix Metaframe, I know that its possible to print locally when being connected to a Citrix Server Now I wanted to know if its possible to synchronize my Pocket PC to MS Exchange (when Im connected via Citrix) Is it possible to tell ActiveSynch to hook up to a Citrix Server?
Fri 27 Feb | Chris Ormerod | You might want to look into getting your IS dept to look at Mobile Information Server for exchange, it provides an alternative way to synch your outlook with the Pocket PC without requiring a connection to your PC version of Outlook.
Dev tools for developing Pocket PC Application | Fri 27 Feb | Dexterity
What would you advise for me Pocket PC development ? In my software shelf Ive got MS Visual C++ or MS .NET When developing a Pocket PC application how big will be your RunTime if I choose to use .NET
Fri 27 Feb | James 'Smiler' Farrer | Just make the choice based on your needs. Straight C++ is going to give you the raw performance, but involve a lot more donkey work - this will also have the advantage of running on more platforms if that is a requirement (from WCE 3 upwards) and users won't need the .NET runtime installed. IIRC .NET runtime only first shipped with Windows Mobile 2003 and CE.NET Obviously .NET is a lot faster development wise and has lots of nice libraries to hookup to lots of things extremely quickly and hassle free.
Fri 27 Feb | Dexterity | James : What about Pocket PC 2002 and prior to that ... I cannot use .NET for those then ?
Fri 27 Feb | Li-fan Chen | To a degree pre 2003 will run .Net, but users have to actively install it. So just ask yourself, if you are writing a 48K shareware solitaire game, will your users feel the runtime footprint is justified. If it's a go, then you can use .Net. Another possibility is AppForge, you get to code VB using the VB6 environment.
Fri 27 Feb | sedwo | We had the same dilemma, and in the end opted for straight Win32 API using the free eVC 3.0 package. True. Development is dog slow compared to eVB or .NET stuff (C#), but our reasons and purpose are probably different then yours. And hence, choosing the right tool for the right job becomes subjective. Still, we support PPC2002/2003 and required tight, low-level control, with greater compatability and less baggage for distribution (unlike MFC, .NET). We view the platform and its devices as embedded and usually the philosophy in this area screams for SMALL and FAST code. Bloated code has always been an uncomfortable feeling. Nevertheless, the .NET technologies do intrigue us and will probably consider them more seriously in maybe 2 years; when at which point the majority of the PPC world will have the runtime built in.
Fri 27 Feb | James 'Smiler' Farrer | Same for me sedwo. I'm having to develop an application that runs from Windows CE 3 right upto the latest CE.Net so embedded Visual C++ has been the only option for me. Being new to C++ it's been something of a challenge and still ongoing, but at least I am now in the category of knowing what pointers are :) I do wish I could do it in .NET. The simplicity to hookup to databases etc. is astounding compared to win32 c++
Hardware usability | Thu 26 Feb | S.C.
The Dell Optiplex GX270s (tower case) we use have a cool, dark, high-tech looking case and a thick round-edge front panel. The opening of the floppy disk drive is of course on the front panel. The problem is the disk drive is buried deep inside the thick front panel. So sometimes even if the floppy is out, it is still trapped inside the thick front panel. I have to dig it out by my finger. And I hate to do that. Like many other PCs, there is a USB port on the front panel too. But the port is covered by a lid with a big Dell logo on it. It is obvious that Dells designers put a lot of effort to hide the port and make it hard to use. The port is facing down and well-hidden so its hard to locate and plug anything in. And it is well obstructed so most USB flash disks/MP3 players cannot fit in. The otherwise completely useless lid makes it even harder to use. Sometimes I hate to see some flaws which are extreme obvious which are easy to fix. Especially from products produced by big brands. And I believe hardware usability is as important as softwares.
Thu 26 Feb | Philo | For the floppy drive, if the floppy is ejected but still nearly in the drive, push it all the way back in, then smash the eject button, keeping your fingers out of the way of the diskette - it should come out far enough to grab. But I agree that that floppy drive is the second worst floppy placement I've ever seen. (The first is my Inwin tower that places it next to the power switch so the eject button is about 1' from the switch) Philo
Fri 27 Feb | Almost Anonymous | What's a floppy drive?
Fri 27 Feb | Simon Lucy | Something middle aged men worry about in the middle of the night.
Fri 27 Feb | Anonymous Coward | I wish hardware manufacturers and case vendors would realize that floppy drives are a thing of the past.  Now that USB-based floppy drives are readily available for users that cling to this unreliable media form, and USB-based flash drives are even more readily available, it would be nice if The Rest Of Us would be saved from horrible looking case designs with an unsightly slot that is rarely, if ever used.
Fri 27 Feb | John Topley (www.johntopley.com) | Where I work, we're still using Windows NT 4.0, which doesn't support USB, so I'll keep my floppy drive, thank you.
Fri 27 Feb | Ron Porter | An while we're talking about design madness related to drives... Why the heck are the CD drive buttons *under* the tray. Was the original designer on acid? A yoga master? Kept his computer on an overhead shelf?
Fri 27 Feb | Elephant | I think the Sony VAIO's take the cake.  They have the button for the CD-ROM on this spring-hinged door.  When you push it in, the door flaps down underneath the tray facing some sort of down direction.  It's now completely infeasible to find the button.  So you just push the tray to send it back into the machine.  Somehow I always felt like I would break something doing this.
Fri 27 Feb | Philo | AC - remember that Steve Jobs tried to force the issue in '98 by shipping the iMac without a floppy drive and got soundly ridiculed by the press and public. I suspect less conventional PC manufacturers aren't willing to try again just yet. BTW, in some emergencies (dying hard drive, virus, forgot your root password, etc) having a floppy drive is a real godsend - as a $20 insurance policy it's not *that* bad a thing to have around... Philo
Fri 27 Feb | MikeMcNertney | I haven't used a floppy drive in ages. With CDRs pretty much standard these days, and computers able to boot from CD, I haven't even needed it for those 'emergency' situations. It doesn't really bug me if my computer has one, but I doubt I'll be spending $20 to buy one ever again
Anyone see this? | Thu 26 Feb | Aussie Chick
http://www.wired.com/news/business/0,1367,62430,00.html A neat spin on outsourcing, it still has all the evils of outsourcing, yet without the accent. Somehow this sort of thing even makes you feel like the company is helping people turn over a new leaf. Funny, I was attending uni orientation yesterday, the head of department welcomed the 50 of us, and said to the sole guy doing a software engineering major you picked the right one, you will be popular in a few years, for some reason software engineering enrolments have dropped dramatically....
Thu 26 Feb | Sam Livingston-Gray | Grr. And of course, the US has 25% of the world's prison population with only 4% of its income, so it's a booming market. Gotta hand it to wars on nouns. I'll be in the corner, quietly frothing at the mouth.
Thu 26 Feb | programmer dude | I am utterly unconcerned about a prisoner acting as a call center employee taking my programming job.  However, if the government ever makes it illegal to watch the SciFi channel, then I'll start worrying.
Thu 26 Feb | NathanJ | Every once in a while I get called by a telemarketer that sounds like a thug. Now I know why.
Thu 26 Feb | Philo | Law & Order did a show where a serial rapist got a job in one of these call centers - he hacked the database, got the caller's personal information, and started stalking her when he got out of prison. But I'll just file this under my 'Crunchy Frog Law' - there should be full disclosure requirements for call centers: 'Hello, my name is James and I have been convicted of two felonies. May I please verify your name and address for our records?' Philo
Thu 26 Feb | Nigel | Philo...I'm scared to ask, but "Crunchy Frog Law" ???
Thu 26 Feb | Damian | That was actually based on a true story. I read about that someplace.
Fri 27 Feb | Damian | Philo's Crunchy Frog Law (PCFL ?) http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=76295
Fri 27 Feb | Philo | Philo's Crunchy Frog Law: 'If a company's reaction to a proposed disclosure is 'but our sales would plummet!' then that disclosure is required.' Based on the Monty Python sketch of the same name. Philo
Fri 27 Feb | Looking for Work | India turned down my application to emigrate, but this seems like just the ticket and no dysentary! Who do I gotta kill to get this job?
Fri 27 Feb | Nick | 'The prisoners work 40-hour weeks in rows of nondescript cubicles.' I think I used to work at that place.
Fri 27 Feb | Vince | I wonder if thousands of indian programmers are complaining about how they'll lose their jobs to american prison workers...
Fri 27 Feb | blargle | the sad thing is this creates a conflict of interest between the state - release trained staff who've fully completed their sentence = potential loss in revenue .. it's open to a huge amouint of corruption
Fri 27 Feb | a cynic writes... | Slightly off topic, that episode of Monty Python was on Paramount Comedy Channel last night - at least in the UK. Also featured in the Wizzo Chocolate Assortment was Cherry Fondue ('...very nasty but we actually get you for that...') , the Rams Bladder Cup, the Anthrax Whirl and the Spring Surprise ('...pop it in your mouth and two bolts spring out and piece both cheeks...'). I appear to have turned into an anorak. It's a fair cop.
Fri 27 Feb | a cynic writes... | ...and back on topic - the whole prison call centre thing was on an episode of CSI.
Fri 27 Feb | Aussie Chick | I read the sketch. It was really good. 'No artificial sweetners, colours or flavours' and no dead frog, cockroach or sheep parts was going to take that away from them.
Fri 27 Feb | The real Entrepreneur | The problem with prison labor is that it artificially deflates wages. It's one thing to let an Indian (in India) compete for my job. It's another for the government to put someone in jail (however legal that was) and then 'encourage' that person to compete with me. MY tax dollars are SUBSIDIZING this competitor. Those tax dollars are paying his healthcare, room, board, etc. It simply would no longer be a 'free market'. And the govenement has a MONOPOLY on that labor force. Microsoft was 'regulated' because it was deemed a monopoly. This regulation was intended to foster competition, which eventually helps the customer.
Fri 27 Feb | Rob VH | This brings to mind the scene in Shawshank Redemption when the corrupt warden accepts a bribe from a local businessman to refrain from bidding on a project. You have to love the government. First they tax you, then they use your tax dollars to "compete" for your job. BTW, where's the AFL-CIO on this issue? Why aren't they raising hell demanding that these prisoners be paid a living wage?
Fri 27 Feb | anon | And now for something completely different...  the larch.
Fri 27 Feb | anon | >> 'India turned down my application to emigrate, but this seems like just the ticket and no dysentary! Who do I gotta kill to get this job?' In the US, you'll only get probation for muder. For an extended, lucrative term in prison, you'll need to be caught smoking weed.
Fri 27 Feb | Nick | As an Oregon resident, my tax dollars are subsidizing this competitor too.  I'm generally against prison labor competing against the free market, but I might be more inclined to accept it if the business subsidized the Oregon state prison system.  The only other upside is that I'd rather see a ex-felon hit the streets with 3+ years experience behind a desk than 3+ years walking the prison yard.
Vendor Programs for software consultants? | Thu 26 Feb | Bored Bystander
I thought I would ask the collective JOS brain trust this one: can you guys enumerate the vendor programs you know of that exist for software consultants who are developers? I am interested in knowing which vendors have programs in place that permit a SW consultant to approach end users, for the purpose of modification or adaptation of that package for user needs. Either businesses that already use that package, or businesses that would have need of such a package. An obvious genre are the accounting packages that come with source code. While that sounds just dandy, I have trouble targeting a class of business users that broad (IE, almost everyone uses accounting packages). I am open to any niche or class of application, from business to engineering to vertical market. Even an RTFM style pointer would be helpful - perhaps there is a list somewhere. Thanks.
Thu 26 Feb | The real Entrepreneur | Goldmine is a contact manager that consultants configure for individual companies. I asked for a quote from a Portland, OR consultant and he quoted me $12,000. I could have paid someone to write (a simple version) of GM for that much. I did the work myself in about 40 hours (counting learning how to use Goldmine). I'm guessing SOMONE must be willing to pay this guy $150 an hour (just not me :-). SUGGESTION: whatever app you choose to 'support', I recommend *eventually* develop a PRODUCT to sell instead of just your time. By the time you've consulted for a year or so, you'll have a good idea of what common need your clients have. Then, write a reusabel (read: resellable) product that addresses thier needs. The problem with selling your time is... you're always running out of inventory.
Fri 27 Feb | no name | There's a contact manager program called Act that complete morons seem to charge a lot for in consulting. They're not even developers, yet they charge more than developers. A lot of this stuff has to make you wonder.
Fri 27 Feb | Bored Bystander | I remember hearing about these now. This is exactly the sort of thing that I am describing. Thanks. So far so good.
Fri 27 Feb | Me | I worked with a product called ... I think it was Alpha5. It looked like forms and reports for some sort of backend database (dbase maybe). The client wanted to get his business online. Some woman 3 states away was his 'consultant' for this product and had designed Alpha for his business but she wasn't much geared for the web. I thought it was pretty interesting. Just did a goole and here it is http://www.alphasoftware.com/
Fri 27 Feb | Justin | I used to be a registered Sage developer. You get quarterly CDs with the latest tools and SDK etc and loads of 'I'm a Sage boy' stickers.
Fri 27 Feb | ERP_Boy | I'm a Navision developer since 1997 : www.navision.com This ERP is a Danish product which has been purchased by Microsoft last year. The programming language is similar to Pascal : You can customize almost everything, like the posting routines which creates the different ledgers entries(Accounting, Item, Fixed Assets et,etc...) The Database is either Native or MS SQL
Fri 27 Feb | Joe Hendricks | MAS90 consultants get easily $150/hr and I think the same goes for many other accounting packages.
Fri 27 Feb | ERP_Boy | As a Navision Consultant you could charge 1000 Euro a day (8 hours) Joe : Does MAS is written in Business Basic ? (MAI or Thoroughbred?)
Monitoring Server Resources in Unix | Thu 26 Feb | Alfred E Neuman
What would commands to use to monitor system resources in UNIX? I have used top and src - I was wondering if there are any others that can be useful. Thanks.
Thu 26 Feb | Rhys Keepence | ps - list of processes running on system lsof - list open files for a process netstat - various network statistics
Thu 26 Feb | Lou | I use glance all the time. It will show you disk usage, memory usage, cpu usage, and network i/o (I think). It also breaks down each number into System consumed and User consumed. You can check the CPU stats (C) to view the issue queue (should be at 5 or below for system responsiveness). It's a pretty handy tool. Also, if you have certain types of processes you want to check, for instance you want to see what processes are operating under a particular user, use ps -ef | grep .
Fri 27 Feb | Fredrik Svensson | Have a look at Nagios http://www.nagios.org/ or Ganglia http://ganglia.sourceforge.net/ Ganglia is more for clusters, but Nagios can be configured in many combinations. You can also check windows machines remotely, giving facts like CPU Load, Disk Usage, Uptime, Service States, Process states, Memory Usage, File Age and Most Perflib counters. (with a http://nsclient.ready2run.nl/ plugin. I have not used the windows check.. ) Your whole network can be displayed in a nice overview, and you can configure mail warnings, pager warnings etc if a service fails. Runs with apache and can be accessed by any browser.
What kind of revenue from simple web apps/sites? | Thu 26 Feb | Me
Im one of those old fogies that have been in the threads lately. I keep thinking to create some popular web apps and sell them (a version with ads for free otherwise paid) and of course it would be OS. There have been people doing this for many years. I wonder if anyone is making any money from this. I have never seen a website which shows all the different ways that just small businesses (very small like under 100K or heck Id be happy with under 30K) are making money on the net. Ive seen an article or two but no in depth information. What about people using the google ads or amazon and other affiliate systems. What about people selling a photo gallery, or bulletin board, or shopping cart etc. Anyone have any info on this?
Thu 26 Feb | Nigel | Probably misunderstanding you, but how do you make a business around open-sourced adware?
Fri 27 Feb | Me | I'm sure creating applications and then fixing bugs and responding to new user requests might only be something to do other than watch friends. I'm wondering if there might also be profit in it. I like the idea of people trying out an app and some people who just don't want to pay. So what do you do if what you are doing is because you don't have a TV? You can put out a version which will show ads for you so you profit from those ads appearing or being clicked on. See Opera for an example. Opera shows google ads which seems against the Google rules but then I might be misreading them.
Fri 27 Feb | Li-fan Chen | Just so you know, you'll probably end up selling services anyway, because having customers take your source and custumize it effectively turns it into a new software. Not many people know exactly what's going on when the custom has hade extensive code changes, so they end up spending a wealth of time reviewing what was changed, before support can even be rendered. So you might as well either: 1) don't give away the source, 2) digitally sign the source and map the signatures to a billing system that bills higher the more customized the software.
Fri 27 Feb | James 'Smiler' Farrer | I expect most small businesses on the net that are making money are selling goods to consumers with their simple web sites and Paypal accounts. Selling niche products or highly specialised goods. This is the beauty of the web for small companies. I've ordered all sorts of things from one man shops etc with a web presence and you probably haven't read anything about these people because they just go about their business and keep themselves to themselves. Until you've got high traffic, Ads are going to make you nothing.
Fri 27 Feb | S. Tanna | We've tried several of these things - Ads on a web site: You can make (some) money, but you need a lot of traffic and lots of skill in getting the right kind of of traffic, right kinds of ads for traffic, etc. It's not easy but is possible. - Selling software/shareware/downloads: Works for us I don't think you will make any money from ads in software, unless your software is downloaded by lots of people using it for hours each day (which might apply to opera or something, but not to some utility or whatever) Also I don't think Open Source Adware makes any sense. If your App is unpopular, you won't make any money from ads. If you App is popular, because it's Open Source, the first thing somebody can do is make a fork/patch to disable ads.
Daydreams | Thu 26 Feb | Li-fan Chen
I am disturbed by some of the newer threads (yes, another thread about a thread about a thread x N) where posters suggest they want to get into a new field. Like from programming to being a lawyer. Is this what everyone is day-dreaming about? Isnt anyone here aiming a little higher? I havent heard a single peep about starting your own ventures (especially ventures completely outside of a techies domain) from the fine salary men and women on this forum. Lets make this a confession thread for the quiet group of JOS Entrepreneurs Anonymous--who here is plotting to open a bar in Saint Lucia? Raise your hand!
Thu 26 Feb | Burninator | Actually, I HAVE had recent - serious - discussions with people about opening a bar/restraunt. Not so much as a get rich quick scheme, but simply as a fun diversion. However, I'm yet to be convinced that there would be sufficient demand for the particular concept I have in mind -- while it's not a serious money making venture, I'm in no hurry to lose money either. This is one of a numer of business ventures I have in mind.
Thu 26 Feb | Vince | my advice to anyone who wants to start a business on their own:  Work for a small company first.  I've had the pleasure of working with a small startup, and i've learned a ton from both our mistakes and what we've done right.  The best part is, it isn't my capital, so i'm learning for free. (actually, i'm getting paid to learn).  I think anyone who comes from a medium sized company or a large company is going to be in for a shock if they try to do their own thing.  (unless they have a *lot* of capitol).
Thu 26 Feb | In need of a small eye for the bigcorp guy | On that note, how does one go about finding jobs with those smaller startups?  In all my searching, all I can find are jobs looking for MegaCorp #4792 looking for cog #2785a to fill a position....
Thu 26 Feb | Clay Dowling | I've been working casually towards starting my own brewery for the last several months.  Most of that time dedicated to learning how to brew beer commercially and develop a good recipe.  That and a little bit of talking to folks to learn how to get startup financing.
Thu 26 Feb | Aussie Chick | I am not quiet about it. I am going to make myself a millionaire baby. *grin*, well at least I devote as much enegry as financially possible towards making my 'caleb software' dream into a reality.
Thu 26 Feb | Aussie Chick | Oops, whack a comma in up there in the appropriate place. I want to be the millionaire, not my child.
Thu 26 Feb | Andrew Hurst | 'I am going to make myself a millionaire baby.' Hell if I knew it was that easy to become a millionaire -- just have rich kids -- I'd have started having kids already. How do you make sure they come out rich? {-:
Thu 26 Feb | no | get knocked up by the right rock star/athlete/ceo ... slap a Paternity suit on 'em .... and bingo bango you got a millionaire baby, baby.
Fri 27 Feb | Diego | Vince...  What are some of the mistakes you saw happen that surprised you or would surprise any entreprenuer before working for a small/med. company?
Fri 27 Feb | no name | > I am going to make myself a millionaire, baby [comma included for clarity] If I give you the wool will you make me one as well?
Fri 27 Feb | a cynic writes... | Daydreams yes - practical reality no. More to the point, me owning a bar? Standing next to booze all day? My liver would never survive.
Fri 27 Feb | Joe Hendricks | 'I haven't heard a single peep about starting your own ventures (especially ventures completely outside of a techie's domain) ' Interesting. My background was as a sales & marketing MBA slogging up the ladder in a Fortune 500 pharmaceutical firm. Programming was my hobby and passion on the side. So I guess I did your idea in reverse, left that world to become an independent developer/consultant for small-medium size businesses locally. It's a blast to write a mission critical app for a biz while advising them on how to sell it.
Fri 27 Feb |   | I always wonder about those developers who daydream to become lawyers. If I wanted to descend to a lower circle in dante's office space hell, I'd bypass the lawyer rung and drop all the way down to sales and marketing - far more upside potential. In any case, I'm lucky to have some marginal artistic talent, and mostly used my programming career to fund my photography habit. I've finally saved up enough dough and made enough contacts to pursue this full time.
Human Resources | Thu 26 Feb | Cedilha
When searching for work: How do you work with them? How do you get around them? Any success stories here would be gladly appreciated. :)
Thu 26 Feb | Evgeny Gesin /Javadesk.com/ | Create a technical forum and let people talk, you will see who is who..
Thu 26 Feb | old_timer | You have to know someone on the inside. Get your resume to an engineer or hiring manager where a job opening exists first, then when there is an interest expressed from within, you can run your official application through the paper shufflers. The H.R. people exist only to throttle back the volume of resumes that flow in and they use some strange and mysterious processes to discard most of them before the hiring manager even gets to see any. If you had first made the contact inside, the hiring manager will tell the H.R. droid to pass this one through without filtering.
Thu 26 Feb | Bob | here's how to get past them: * be highly qualified for the job they're trying to fill
Fri 27 Feb | Checkpoint | The simple answer is you don't deal with them. You instead do *anything* to avoid them. They are the gatekeepers whose job is to keep out the unwashed masses and wave their magic wand over a few choice selections that score high in terms of matching the top 10 list of buzzwords that the hiring manager gave them. Your key to making this and future job searches easier is to start networking and create value for people that will connect you with other people who need what you have. You have to drop the 'instant society' ideas of simply signing up for some networking site on Monday and have a list of good contacts on Friday. I have a few good contacts that I've only known for a few months, but the great ones have taken years to develop. It pays off though. A great contact I have known for about 4 years handpicked me to lead one of his new groups. I had to turn it down since I'm already on a client assignment until July. He was disappointed but reiterated that he still wants to utilize in some way in the future. The only HR involvement in this case would have been the day I showed up to work and sign the paperwork for their files. That's the best you could hope for - to have something already, being offered other opportunities, *and* having one of those opportunities remain an open offer. It's money in the bank. The idea is nothing new either. Read Dale Carnegie's 'How to win friends and influence people'. It was written in 1936 and referenced ad nauseum yet very few people apply the simple ideas it presents.
Sql server development tool? | Thu 26 Feb | martydud
I started a new project where i take care of the sql server side. Can anyone recommend me a good develompent tool, like TOAD is for oracle? Ive tried query analyzer, omniview, mssqlexpress... and they all have some good features missing. Is there something good out there for sql server like there is for oracle?
Thu 26 Feb | MR | TOADsoft has a version of TOAD for SQL Server: http://www.toadsoft.com/toadss.html
Thu 26 Feb | martydud | ah, that feels nice... but unfortunately it doesn't let me edit raw data, like images... it does have the select button on that column, but it doesn't do anything:/
Thu 26 Feb | EMBT Employee | Check out DBArtisan from Embarcadero: http://www.embarcadero.com
Thu 26 Feb | Philo | 'but unfortunately it doesn't let me edit raw data, like images... ' Uh, there's a reason for that... In general DBA's shouldn't be fiddling with data. If data routinely needs to be fiddled with, you put the appropriate fiddling interface into the appropriate application, or you automate the process. Relying on a process step labeled 'DBA fiddles with data' is a recipe for long-term grief. I've done four years of heavy SQL work with just Enterprise Manager and Query Analyzer with occasional forays into Profiler. I'm not sure what else you would really need... Philo
Fri 27 Feb | Steve Jones (UK) | I'm with you on that one Philo. Some DBAs do seem to have a tendancy to tinker, for no apparent reason, although possibly to make themselves look busy. No reflection on the OP, just a general observation.
Fri 27 Feb | Justin | I agree with Philo, despite the fact there are no disclaimers and he's outrageously biased in favour of MS ;) Enterprise Manager is 95% all you need. There are occasions when I need to do something it won't do...but, hey. I'm a developer.
Fri 27 Feb | martydud | 'Uh, there's a reason for that... In general DBA's shouldn't be fiddling with data. ' In general DBAs probably shouldn't do many things, but i was just wondering why most of the sql server development tools don't allow me to fiddle with binary data like images and blobs. btw, thanks for that Embarcadero link, they had some nice products.
Fri 27 Feb | Philo | 'I agree with Philo, despite the fact there are no disclaimers and he's outrageously biased in favour of MS' Hey, I don't need a disclaimer when the original post already specifies the platform. I only disclaim when I'm recommending selection of a solution. :-P But for the record, I am indeed a MS employee. Philo
How do you manage software variations? | Thu 26 Feb | Gertjan
At the company I work for, a small software shop, we build serveral (Linux based) products based on a single C/C++ code tree. For specific markets and client, we roll out different versions based on this set of code, executibles, web pages and data files. The products share about 90% of the code and files but, as you would guess, the 10% of differences is a pain. It requires tedious and error prone book keeping of the various differences in code, data files, 3rd party software and their location in the target setup, and all this over different revisions. Currently that means a lot of #defines, symlinks, duplicate files, blood, sweat and tears. So Im looking for options on how to make it easier to create, build, deploy and maintain multiple variations and revisions of the project in parallel. Though I suppose many developers must have solved these issues, I havent found much literature or tools on it. Did I miss the obvious? What do you do/use to manage this? Btw, this is what we already use for CM: - CForge for IDE, GNU make and a bunch of shell scripts to do the (daily) builds. - version control to keeps track of revisions, branches and merges. CVS. - change management to keeps track of issues and changes. Now Mantis, soon FogBUGZ.
Thu 26 Feb | matt | If it's possible, keep your variations in terms of data only. That is, you have your source code shared for all clients, and what is client specifc are only files, variables, images, etc. If more powerful customization is needed, try and do it through plugins. It might pay to break your development into two groups. One group handles the source that is generic across clients. The second group would handle and track client customizations. This would reduce the temptation for a programmer to tack another #define in the shared source.
Thu 26 Feb | Nigel | Is it possible to move to a plug-in framework, where you have a consistent base, and then have various plug-ins available for your user?
Thu 26 Feb | veal | Modularize all the variations. Capacity for product variation is not a function of fancy 'configuration management' incantations but of good programming. Refactor when you have a variation, striving to isolate that variation into a component containing all the variations for a particular market or client. You can usually even statically bind particular variations into your programs by hardcoding the configuration of factories and such at the highest levels of your programs, having a unique 'main' for each variation. Since you say C/C++ rather than C++, that makes me worry that you're not taking the OO route. If so, you might have a somewhat harder time. Keep in mind that subtyping in OO is primarily an act of specialization, or said differently: making special variations of something. Using abstraction patterns such as Abstract Factory, Template Method, and Factory Method, along with sensible class design, you should be able to produce endless variation simply, without a preprocessor or tricky builds, just by normal skillful programming and a component-based programming perspective.
Thu 26 Feb | The real Entrepreneur | Sounds like a perfect application of objects. Per 'Design Patterns Explained' by Shalloway and Trott: If you find yourself using a lot of Select Case statements then you may want to encapsulate that functionality in an object. Or, put another way: take the feature/code that will be likely to change and put it into an object. BTW, most programmers who tout the benefits of OOP talk about reusing the OBJECT. In reality, I've found (and the above book illustrates VERY WELL) that the benefit is that by changin the OBJECT, you can reuse the other 99% of your code. I.e., benefit of OOP is reusing the NON-OBJECT code. I view an object like video game cartridge. You slip a new cartridge into the game console and viola! you've now got a completely different game. But you only changed one (physically) small piece of the device. Now... I do realize that it's hard to do this after the fact and that the variances between the different software versions can spread out all OVER the application, making it difficult to just move that code into an object. But the real benefit is ... when you want to create yet another variation. Also... obviously if each software variation differs in different ways, an object approach is not of benefit. (.e.,g if you've got 10 variations and they each change one thing.... argbhhh.... nighmare)
Thu 26 Feb | Gwyn | Strange, I put the video game cartridge in and... piano-accordion!
Thu 26 Feb | veal | You *can* do it as an afterthought, even with an existing design that doesn't support variation well. Write a really good tests, then refactor, refactor, refactor. Look at the subtitle of Fowler's book. The original poster uses CVS, which in my opinion makes refactoring less fun -- CVS can't track the frequent renames, moves, etc. without pain -- but it's far from impossible. What you can't do without is skill. But then without skill, all is hopeless anyway.
Thu 26 Feb | Gertjan | Thanks for the feedback so far. I understand the concern regarding reuse in terms of objects (the project's code is OO except for some 3rd-party software running as different processes) but the issue I have goes beyond code alone. I'll have to manage various 'distributions' including library dependencies, file locations, etc. Example. One product includes an email feature, the other does not. That means optional wrapper functions, libraries, depencies of libraries, configuration files, cgi and html. A third product might have the email feature but with different default values (in configuration file).
Thu 26 Feb | Alyosha` | Yes, modularize it. #ifdefs are your enemy. Polymorphism is your friend. The majority of your code goes in the parent class; the SKU-dependent versions are subclasses that override virtual functions in the base class.
Fri 27 Feb | matt | This isn't an OO vs. procedural vs. functional issue. All those styles have adequate means of coping with customization. > Example. One product includes an email feature, the other does not. That means optional wrapper functions, libraries, depencies of libraries, configuration files, cgi and html. A third product might have the email feature but with different default values (in configuration file). Why do you have to do this? To be blunt, it sounds like your program does not offer smooth customization. Ship the email feature disabled by default. Whoever wants to use it can enable it if they want by entering the configuration information in a GUI (rather than having you write a cryptic config file for them). If I want the Mozilla browser but not their email tool, do I have to download a completely different version from everyone else? Do I have to tell Mozilla what my email server is so they can #define it in their source? The image is funny, but thankfully they don't work that way.
More on Career Paths | Thu 26 Feb | RP
One thing has surprised me on this forum: the sheer amount of errr.... hmmm... old timers that suddenly left the tech sector and joined a law school. How do you guys succeed? What do you expect to take from this? And is it the law sector that allows people to drop in at any time or is the entire market like that: you got the skills, well hire you. Im asking this because Im 25 (ooooh, so old) and I am seeing myself trapped on the developer role forever. I dont want to be an enterpreneur (dont have the guts) and I dont want to fade slowly as a developer. What career paths do you see for someone like me? Teacher? Manager? Going to med school and be set for life (impossible)?
Thu 26 Feb | Dan Brown | Do it now.  It gets harder to alter your course every passing year.
Thu 26 Feb | Yves | Sales engineer. Then later on you can even become a salesman, except you'll be one the rare breed that knows what they're talking about.
Thu 26 Feb | no name | I must confess I have never understood what a "sales engineer" does. Someone who visits the customers in overalls and after a sharp intake of breath says "Well, it'll be expensive guv, you can't get the bytes these days"?
Thu 26 Feb | a cynic writes... | The impression I get is that when you ask a technical question, a look of terror creeps into the salesman's eyes and he says "Perhaps Bob can answer that.." - Bob's the sales engineer.
Thu 26 Feb | Dan Brown | I started my career as a sales engineer.  I was "promoted" to developer because I showed promise.  I sometimes wish I would've stayed on the sales side!  In my role I was the guy that knew the technical side of the product, which just happened to be a developer's toolkit.  I answered questions the sales guy couldn't answer, helped clients integrate the system, and provided general technical support.
Thu 26 Feb | RP | Are there any 45 years old sales engineers?
Thu 26 Feb | Craig | Yes
Thu 26 Feb | Sassy | SE's usually do the implementation of the product.  In our corp, SE's get all the perks and respect that Sales do, without the backslapping and arrogance.  Our SE' s usually work a territory, like a salesperson would.
Thu 26 Feb | Bored Bystander | About law: the thing is, lawyers *have* to market themselves and promote their practices just as any other type of consultant does. Which is the red-hot poker up the @$$ that most techies fear the most. I've been to techie user group meetings that had a lawyer as the featured speaker. I think a lot of IT and programmer types go into law because they believe that it's an assurance of an income, without considering that they will need to undergo personal transformation to succeed anyway. You have to be well positioned and you still have to sell yourself in ANY field.
Thu 26 Feb | Bored Bystander | Here's what I have observed about career paths leading to sales for engineers and programmers. I know a friend from college who was technical for about 10 years in his career and then made the decision to go the sales engineer route - for IBM. IBM preens their sales people like no other. He did exceptionally well. I'm sure he's outearned me 2:1 or more for 10 years or more. But, lately he's had a run of less than stellar luck. He left a small consultancy last year which went chapter 11 this winter, and he now works at a branch office as the only salesperson for an out of town company. Today, he is regretting being in IT altogether and is looking for a way out. It turns out that he feels that *he* is a commodity of sorts, even though his pedigree is excellent. Now, I thought sales guys *always* walked on water, but I think the actual truth of the matter is this: any specialty skill that doesn't adapt to changing circumstances is toast, and any specialty is at risk of becoming marginalized and commoditized. Also, my friend completely left technology for sales in the early 90s. His business card says 'sales engineer' but he only knows tech in the overview/buzzword sense. So in a real way, 'anyone' in sales could do his job. Someone in auto sales could conceivably do his job. I read somewhere an aphorism that people don't like sales professionals, they prefer to deal with professionals... who happen to sell.
Thu 26 Feb | no longer a janitor | I'm one of those guys that left programming for the law. My main motive was to make more money. As a patent attorney, I should be able to start off making somewhere between 110K and 125K. After six years, my salary should approach 180K, and if I make partner, I should be able to pull down between 200K to 300K. Experience is valued in the law, so generally the more experience you have, the more you are going to make. Partners in law firms generally have more than six years experience and can work into their 70s if they want. The downside is that I will probably have to work more hours per week and writing patents isn't as fun as writing code. The upside is that I should be able to retire in 15 years.
Thu 26 Feb | RP | If I left development for law, it wouldn't be because of the money, it's because I'd have a j.o.b.
Thu 26 Feb | Exception guy | 'The upside is that I should be able to retire in 15 years.' - janitor. But see 'What Should I Do with My Life?' on whether anyone in a position like yours will actually get rich and then quit (you can check out this book at http://www.amazon.com/exec/obidos/tg/detail/-/0375758984/qid=1077827760//ref=pd_ka_1/102-0941057-9063301?v=glance&s=books&n=507846 )
Thu 26 Feb | x | Sales engineer is a subordinate job whose role is to fill in the gaps for the star, the salesman. Sales engineers generally get paid much less than the salesman does. They also do not get the satisfaction of creating things in the way developers do. I find Bored's post about lawyers a bit strange. Most law graduates find jobs in firms or with corporates, to start with at least, so self marketing is no more important for them than for developers. Second, for good developers, legal work is reasonably straightforward and has its interesting moments. Good developers can become superb analysts of legal issues. And, as someone above pointed out, law is a profession where the participants protect their own careers. It's no accident that there's no flood of H1-B's or offshoring in law.
Thu 26 Feb |   traveler | A number of my friends went the IP law route and it isn't pretty. Don't forget to factor in your $100K law school bill and the fact that you have to live in Manhattan when calculating your retirement date.
Thu 26 Feb | no longer a janitor | Have to live in Manhattan? 100K law school debt? Maybe some people have to live in Manhattan after racking up 100K in law school debt, but I'll be living in Houston with about 30K total in debt after I graduate. Some state schools only charge about 8K for a year's worth of tuition. Additionally, if you're lucky enough to get a summer job with an IP (intellectual property) firm, you can make about $2,000 per week (some firms even pay $2500/wk).
Thu 26 Feb | Bored Bystander | I was thinking of sole practitioner lawyers in their own practices when I remarked that law requires some self marketing. I'd be surprised if the work just came to you even in a large practice. Maybe it does, with the right specialization.
Thu 26 Feb | Dan Brown | Selling is required for all law firms, not just small firms and sole proprietorships.  You're not required to bring in businesses when you're a first or second year, but you can't make partner in a firm unless you bring in business.  Law firms generally have an "up or out" rule so you usually can't just hang on and have work come to you - that's what paralegals are for. 
Thu 26 Feb | x | "Selling" is not hard if you're an established staffer at a profile law firm. The work comes to you.
Thu 26 Feb | Philo | Uh, no longer - are you a 1L? You sound like it. If you're going to law school in Texas, I recommend you give up EVERYTHING to make sure you get top 10% grades and law review, esp. if you're doing it for the money. 'If I make partner...' - just be sure you realize that's an if, and a big huge if. I also notice you toss around the idea of working long hours like you don't really understand what you're saying. Yes, there's a reason I'm in sales and not in a law firm. ;-) BTW, sales engineers *do* get to create things - that's their job. Philo
Fri 27 Feb | no longer a janitor | I'm a 2L. Last summer I worked at a prosecution boutique and this summer I'll be working at a more litigation-oriented firm. My grades put me in the top 20%. The best firms still start their first-years out at 125K as far as I know. Personally, I'm hoping to start out somewhere between 110K and 120K. I agree that it's tough to make partner at the big firms, but I think the smaller firms still bring people in with a good shot at partnership. At the big firms, it's definitely churn and burn, though. Did you try to get a job as an intellectual property attorney or did you just say 'to heck with it' and charge into programming?
Fri 27 Feb | Philo | I was already a programmer and would've had to take a pay cut to go work twice the hours at a law firm. I took a pass. Philo
Fri 27 Feb | no longer a janitor | Good for you.  What do you create as a "sales" engineer?  PowerPoint slides?
Fri 27 Feb |   | good luck getting a $125K 1st year job coming out of texas.
Fri 27 Feb | Philo | Heh. Yep on powerpoints, but I also build proofs of concept and demos. The fun part is that I always get to work in the current (and sometimes pre-release) technologies. It's fun and I'm having a blast. Philo
Tom Peters: Sixteen Hard Truths | Thu 26 Feb | Burninator
With the recent discussion over on Ask Joel about Tom Peters the so-called Mangement Guru, I figured people might be interested in seeing what hes saying these days: http://www.tompeters.com/toms_world/observations.asp Im sure everyone recognizes more than a few rather shop-worn truths on his list that weve been familiar with for quite some time now. The rest are bald assertions which one is supposed to meekly accept as being The Truth (a big ask from a man who faked the data in the book he is famous for, In Search of Excellence).
Thu 26 Feb | Mike Swieton | What an asshole. He has the nerve to say that broadband is as important as terrorism. I'm sorry, no matter how inflated and sensationalized terrorism and the government's reactions may be, the very very real deaths of people everywhere is vastly more important than internet access. Alice: I'm dying of bubonic plague! Bob: Quit your bitching, at least you have broadband! Alice: Uhh... I'm dying of plague! Bob: Wtf? Do you have any idea how long it takes me to download my daily comics?! Alice: ... plague! Yeah, Peters should be tarred, feathered, drawn and quartered. Not necessarily in that order. Afterwards you can keel-haul the parts.
Thu 26 Feb | the artist formerly known as prince | I wonder if the "unearned advantage in living standards" applies to management consultants like peters?
Thu 26 Feb | braid_ged | 'In Search of Excellence' is a brilliant book. The main message of which is simple : 'Empower people, make your employees take ownership of the products and they will exceed your expectations' 'Put your faith in people not processes' And that matches my experience exactly. Organisations producing quality work (like my current employer (woohoo)) make the employees feel free to innovate and invest in their work and really take 'ownership' Bad organisations have procedures and regulations and a power structure that make it clear that the employees cant be trusted, so the employees avoid any personal involvement on their work. The stats and exact details and even how the companies highlighted faired mean very little to me. I think the book inspirationally shows how great good teams can be. As for Tom Peters, I was very disapointed with another book he was involved with that I read and the couple of others i flicked through didnt interest me at all. Too much jargon and pompous pretention. Anyway....
Thu 26 Feb | no name | Yeah, he's an arrogant arsehole. Look at me, I'm the greatest, look at me, I'm the greatest. Gimme, gimme, and I'll make you feel like your virtuous as you screw everyone. With any luck someone will talk him into a management seminar at Baghdad U just when the resistance gets surface to air missiles.
Thu 26 Feb | Stephen Jones | ----'He has the nerve to say that broadband is as important as terrorism'----- Yea, ridiculous nonsense. Could you imagine Bush winning an election because of the success of his war on POTS?
Thu 26 Feb | no name | Bush could do with smoking some more POTS, maybe then he'd mellow out a bit.
Thu 26 Feb | x | 16 Hard Truths: 12. Primary and secondary education must be reformed, ... 18. Workers have the ultimate stake. .... I guess the reformation of primary and secondary education should include teaching pupils how to count, Mr. Peters?
Thu 26 Feb | Gwyn | >> ----'He has the nerve to say that broadband is as important as terrorism'----- >> Yea, ridiculous nonsense. Could you imagine Bush winning an election because of the success of his war on POTS? Surely it depends what he means. The responses I've seen have all been emotional. But is he meaning economically? I don't know the guy or his works so perhaps I'm approaching from an unbiased standpoint?
Thu 26 Feb | anon | 'What an asshole. He has the nerve to say that broadband is as important as terrorism. I'm sorry, no matter how inflated and sensationalized terrorism and the government's reactions may be, the very very real deaths of people everywhere is vastly more important than internet access.' Who's the asshole? The reality is that terrorism really affects very few of us. Broadband will/does affect all of us. Broadband, with it's capacity to carry information, helps shine a light into the dark corners of the world were the terrorist cockroaches cluster. The free flow of information makes it difficult for despots to maintain their position (why do you think China tries to control access?). Do you think offshoring would be as big an issue without the internet and high speed information transfer? You don't think all of this is affecting peoples lives?
Thu 26 Feb | no name | Hurry off to school, anon.  You'll miss the bus.
Thu 26 Feb | no name | Hey, at least it appears as if he's been to school, moron.
Thu 26 Feb | Michael Kale | Broadband, at least to me, does not equate to 'free flow of information to all people everywhere all the time.' What good is broadband if the government is still restricting access to certain content? What good is broadband if you can't afford to buy a computer or pay the power bill for it? What good is broadband if you have the bubonic plague and are about to die? What good is broadband if you constantly live in fear of X or Y or Z? Free flow of information can be a very powerful world-changing force. But broadband? OK, now I can download my mp3's as fast as they play instead of having to queue them up overnight. Just a thought ...
Thu 26 Feb | Name withheld out of cowardice | I didn't read the article because I never learned to read but one person's comment that terrorism affects very few people is difficult to support. Example, the new security measures required to protect our ports impose a cost on shipping and therefore tend to raise the cost of all goods shipped from overseas. BTW, don't worry about plague. Here in the first world we have drugs to cure it.
Thu 26 Feb | Stephen Jones | But it's not terrorism that affects loads of people. It's governments cack-handed response to it. My office mate was off-work yesterday monring and I took his class. He had to go to the American Consolate to hand in his papers. The extra delay caused by security (which protects the people working in the Consolate as opposed to the average American citizen living in the country) had him fuming. The irony is that as a result of the crackdown Americans, both citizens and consolar staff, now have to cross busy dual carriageways on foot and are thus much more likely to be run over by hit-and-run drivers, who kill many more than terrorism in this country. Even more farcical is the attitude of the RCMP in Canada, which will no longer issue a police clearance without fingerprinting all applicants and making them wait at least five months - which is no fun if you need the police clearance for a job. The reason they cite is 'an increase in global concerns about security' as opposed to the real reason, which is that they have unilaterally decided to make a stupid decision. Incidentally Third World Countries can deal with bubonic plague as well. Tetracycline is the drug of choice, and it's widely available and dirt cheap. That fact of course didn't stop all the Gulf governments from stranding tens of thousands of Indian workers on vacation in their home country when there were reports of the odd case in Bihar a few years back. But unlike those Indians, at least my future colleague in Canada has Broadband to keep him occupied during his government enforced wait :)
Thu 26 Feb | Name withheld out of cowardice | But that is part of the point, though I don't know what 'cack-handed' means. Terrorism is designed to induce fear and force the government to take step that have economic consequences. To do otherwise is politically impossible. Your car example is classic. Think how many ridiculous things the government spends disproportionate time and effort on because the voters perceive an unacceptible risk when car accidents are a risk we willingly take every day. We cannot say 'just ignore them and they will go away'. The voters will elect new politicians. There are also more pressing dangers like the possibility that terrorist will detonate a nuke somewhere in NYC. People need to feel the government is doing something, even if it has no chance of preventing a major attack like that. If it is easy to get through the airport, people will say 'man, if we are this lax on airport security, think how lax we must be on backpack nukes in NYC!'
Thu 26 Feb | NathanJ | Measuring Terrorism vs Broadband importance based on deathToll is not very good. There are many other things (such as alcohol abuse, cancer, heart disease, etc...) that negatively impact even more of our lives. I think broadband internet access positively affects many people's lives.
Thu 26 Feb | Mike | Nothing is inherently good or bad, we make it so.
Thu 26 Feb | Burninator | Come on guys - I was hoping for a reasoned debate about the things that Tom Peters says will affect our profession. He just tossed in the terrorist/broadband thing as a troll - which was possibly a savvy marketing move (that's a topic for another day: Trolling - is it an effective marketing tactic?)
Thu 26 Feb | Semi-Anonymous Coward | I'm sorry, but I just can't take Tom Peters seriously any more. The first thing that came to mind while reading "Sixteen Hard Truths" was, "How much of this did he make up"? (and for those who don't know, it turns out that much of the data in "In Search Of Excellence" was faked)
Thu 26 Feb | no name | Why would you want to debate what Tom Peters says? He doesn't display any insight, and certainly no knowledge of our sector. No. I think the management course at Bagdhad U is the go.
Thu 26 Feb | Sum Dum Gai | How about the hard truth that 2.5 billion Indians and Chinese can not take up Western lifestyles without seriously fucking the environment (way moreso than it already is)? Or is that one hard truth that's just been put in the too hard basket?
Thu 26 Feb | Mike | To paraphrase Tom. Economics effects us.
Thu 26 Feb | no name | To paraphrase Tom: 'Economics effects us. ' That would be right. The correct word is: 'affects.' Doesn't know what he's talking about. SDG raises a good point. How many forests will be cut down, oceans polluted and cancers caused when 2.5 billion people want motor cars, petrol and lead paint? How many Bhopals will kill 6,000 people at a time from leaks?
Thu 26 Feb | NathanJ | Didn't someone write a book about the problems we would have when the world population reached 6 billion people? I think it was Population Bomb or something like that. Well, we made it to 6 billion and the world is still going. The reason for humanity's success is our adaptibility. We will come up with more ways to support larger numbers of consumption based lifestyles. Today's cars are way more efficient than the gas guzzling monstrosities of the 60 and 70's. Cars of the future will be even more efficient. The US government actually pays farmers to NOT produce food. In short, we are more efficient that we were when the population was smaller. And more people means more brains to make us even better.
Fri 27 Feb | Alex.ro | >> we made it to 6 billion and the world is still going. Maybe because 5 billion cannot afford McDonald's yet. Isn't it spelled 'Consulate'?
Fri 27 Feb | Stephen Jones | Yes, Alex, it is spelled Consulate - mea culpa. ---'How about the hard truth that 2.5 billion Indians and Chinese can not take up Western lifestyles without seriously fucking the environment'------- The sad truth is that 250 million US citizens can't take up Western lifestyles without fucking up the environment (which as they are taking 25% of the world's resources at present is happening apace). And 4 billion third worlders can't take up subsistence lifestyles without fucking up the environment - deforestation is basically a Third World Problem (basically because the First World got rid of the forests when it was still in Third World mode).
Fri 27 Feb | no name | NathanJ, it is stupid to say we're adapting to increasing populations. Rivers, beaches and wildlife are in much worse shape than they were 50 years ago. Cleaner cars simply slows down the damage. It doesn't stop it. And I don't want roads everywhere. Subsidies to farmers are to agribusiness, and do not mean we're producing more food. Hundreds of millions of people are starving. In fact, those subsidies cause them to starve, because they artificially inflate the price of food.
Fri 27 Feb | NathanJ | Anonymous, Are you stupid? We ARE adapting and developing new technologies to produce more with less. Government subsidies go to mom & pop farmers as well as agribusiness. Just because people are starving doesn't mean we don't produce enough food. A lack of proper infrastructure (such as ROADS) causes many problems for 3rd world countries.
Fri 27 Feb | Stephen Jones | Agricultural subsidies cause hardship, and even malnutrition in the Third World because they deflate agricultural prices, not inflate them. The result is that the local farmer is undercut by subisidized foodstuffs from the States and the EU and ends up selling his land to pay off debts and goes to the city to be a slum dweller. The technology to produce more with less is in place. However there seems to be little political will to implement it. And of course efficient energy use requires capital to start with. The Brazilian working class family is lucky to have a twenty year old fridge; it won't be that Greenstar compliant. And the old buses that drink diesel and spew out black fumes and that have been replaced in Western Europe with all new emission control compliant ones, are polluting the atmostphere in India, Nepal, Sri Lanka and the Philipines where there isn't the money to buy anything else. And for sheer wastefulness look at the post about whether you should wear a suit to an interview in Florida. Apparently they run the A/C so high that people are able to wear suits and ties in the offices. Jeez.
Fri 27 Feb | no name | Stephen, thanks for that extra information, which is all part of a very serious problem. I was under the impression that artificial price maintenance kept the price of many foodstuffs out of reach of populations in developing nations. Areas where people are starving will still export to Western markets where they can get higher prices.
Fri 27 Feb | NathanJ | I think there is a lack of understanding regarding government subsidies here. Government subsidies are used to support prices. The government does not directly subsidize foods to undercut third-world farmers. The US made substantial investments into agricultural science making US farmers very competitive in terms of production. This causes prices to fall. Subsistence farmers are not very efficient in terms of land use. Third world farmers are often as bad or worse for the environment than evil agribusiness.
Visual C++ build process | Wed 25 Feb | Developer
We have a system which takes 5 hours to build in VC++, with no binaries (doing a clean build). Link time is also a few minutes. Is there anyway to roughly estimate the number of files present in the code base based on build times, or rather is build time more dependent on coding dependancies upon header files?
Thu 26 Feb | mikester | You can figure this out pretty easily (kinda). generate a list of all source files (ie all the .obj files), the size of the source (.cpp) in bytes. and then estimate the time taken to compile (if VC++ isnt printing out how long, Borland compilers tell you how long it took to compile the module) then using excel (or whatever) figure out the bytes of source/second. if this ratio is about the same for all files. then you know its based on the sheer number of files that makes your build take so long. if the variance of this ratios is high its bound to the # of header files processed by the CPP. a simple histogram will probably tell you what you need to know. a plus on the histogram is that if its dependency bound, this will tell you what files will give the biggest payoff in fixing dependencies and removing spurious includes. good luck if VC++ isnt giving the compilation time for each module, you can estimate it crudely by noting the start time of the build and ordering the .objs based on their update time. the compilation time (is roughly) the time between the last files update time and the current files update time.
Thu 26 Feb | David Freeman | Genuinely curious. 5 hours for a build? What size project are you working on? The build PC? I have been working in Delphi for years and anything more than 2 minutes is a huge project. Please don't flame me for this. I am really intrigued. David
Thu 26 Feb | no name | Isn't there a way of making VC++ show the time taken to compile? Something is tickling the back of my brain, but of course it might just be a bit of fluff that has moved there from my belly button.
Thu 26 Feb | John C | Visual C++.NET 2003 has an option that fires out the build time in the output window.
Thu 26 Feb | Adrian Gilby | Even for a full rebuild, 5 hours seems an incredibly long time -- what sort of project is it? If you're on a LAN with a reasonable number of machines, take a look at Incredibuild. It's cut our build times down significantly, and the company that makes it have been very helpful about resolving bugs. The best thing about it is that you don't need to have Visual Studio installed on the remote machines. http://www.xoreax.com/main.htm
Thu 26 Feb | r1ch | I don't think that you can estimate the number of files strictly from the build time - it's affected way to much by the code in the files, for example you can really tell the difference between projects that make heav use of templates and those that don't. If you're looking to speed up your builds we found a distributed build system for VC++ 6.0 that really helps - our build time went from just under an hour to about 3-4 minutes. I won't mention any product names because there's a few of them out there and a lot of people on this board already seem to think that I work for one of them. (I don't).
Thu 26 Feb | sgf | 'Isn't there a way of making VC++ show the time taken to compile?' Add a /Y3 on the command line to start it up.
Thu 26 Feb | Ron | David Freeman, Our main product (engineering/military analysis app, in VC++) takes 6 hours to compile for a clean and full rebuild, which everybody does nightly (1-2GHZ P4's). It just has hundreds of modules that need to be compiled, each with maybe 50 files.
Thu 26 Feb | Chris Tavares | Compile time in VC++ varies GREATLY depending on the code in question. I had one program that took several minutes to build, while another project with twice as many files and lots more code in general compiled in less than a minute. The difference? The first program used a lot of templates. The second one didn't.
Thu 26 Feb | WildTiger | And correct use of precompiled headers. Check if you use them and the headers included are actually static. And amount of memory available. Try to add some more memory to the machine and compare build time. Having all header files in file cache may speed up your build.
Thu 26 Feb | Christopher Wells | > The difference? The first program used a lot of templates. The second one didn't. I think it helps if your template header files are included in the precompiled header file.
Thu 26 Feb | Chris Tavares | That doesn't help when the templates in question are under active development, it just makes the compiler recompile EVERYTHING more often.
Thu 26 Feb | mikester | Build a dependency graph and get rid of any unnecessary includes. I worked with a guy about 10 years ago that included stdio.h needed out of mental security in each module he wrote. once he was canned and we cleaned up the source our build was much faster. processing include files often accounts for 50-70% of the compilation time of a module. optimize your include path. ie if you include mostly from your own headers put that first so that you dont stump through the compiler lib headers needlessly. If you can dedicate a partition (even 1-2gb) to your .obj files that you clean out each time, you wont have any fragmentation slowing you down when it comes to linking or writing the obj files in the first place.
Fri 27 Feb | Mr Jack | Buy 'Large Scale C++ Software Design' by John Lakos. Apply the principles. Then buy Incredibuild (as recommended above). Then upgrade your PCs.
Fri 27 Feb | Robert 'Groby' Blum | With 5 hours build time, I recommend reading 'Large Scale Software Design' by Lakos - chances are, you'll find one or two eye openers. What I'd really like to know is why you want to use build time to find out the number of files. There are quite a few other, easier options. If it's all under one directory, the most simple solution is 'dir *.cpp /s'. Repeat for .c files, add numbers. In case that doesn't work, look at the .vcproj and count the instances for '.c'' and '.cpp'' (I really wish there was a or tag, Joel!) You have multiple projects in there? Fine - do a clean rebuild and take the build log. At least VS.NET creates one - that lists all the files that have been touched. Hope this helps
Blue background + Anonymous font = heaven | Wed 25 Feb | Alex.ro
Anonymous is a very nice monospaced font. Coupled with a white-on blue color scheme in Visual Studio, its real eye cherry. Here is a screenshot (ignore the bulls**t code itself): http://users.pcnet.ro/sp/blue.GIF Anonymous is a free download here: http://www.ms-studio.com/FontSales/anonymous.html Dont forget to set XPs character smoothing to Standard. ClearType messes it up. I kind of like the white text on blue background idea (probably still miss the days of DOS, Norton Commander and Borland IDEs :)
Wed 25 Feb | Mike Swieton | ack the memory leak! *whimper*
Wed 25 Feb | JWA | Ouch, my eyes. I'm from a newer generation, so that light on dark stuff hurts my eyes. I MUCH prefer black on white, and the standard font in VS.NET is fine with me. However, as for a monospace font, that one looks quite nice. --Josh
Thu 26 Feb | sgf | I'm an oldster. I remember those days. Ouch. I prefer black on white
Thu 26 Feb | Mr Jack | Fixed spaced fonts are so last century! Join the variable spaced font revolution.
Thu 26 Feb | anon | Does anybody *really* use a variably spaced font to program?
Thu 26 Feb | veal | Proportional font for programming? Sure. Why not? By the way... just toning down a white background a bit with some very faint color seems to go a long way in reducing eye strain. Softening the black a bit seems to help too, although to my eyes not so much.
Thu 26 Feb | Mr Jack | 'Does anybody *really* use a variably spaced font to program?' Yes. I do. Bjarne Stroustrup does. Seriously, is there _anything_ you actually need fixed space for? Anything at all? The only slight drawback is aligning same-line comments, but even that is fine if your IDE properly supports tabs and variable spaced fonts (which bloody VC++ doesn't).
Thu 26 Feb | sgf | If God wanted programs written in variable spaced fonts, he would never have created FORTRAN and 80 column cards.  Fixed space fonts forever!!!  :)
Thu 26 Feb | Michael Kale | I code in a proportional width font too.  It always makes other folks blink a couple times when they first look at some code on my screen...
Thu 26 Feb | T.J. | Mmm, ProFont...
Thu 26 Feb | Justin Johnson | I go back and forth between fixed and variable spaced fonts, but I have to say: Anonymous is great.  I've been using if for the last few days, and it rocks.
Thu 26 Feb | Should be working | Nice looking font. And I remember the Turbo C++ IDE as well, so that screen shot sure brought back memories. (Wipes away tear.) I have long preferred a dark background for coding. I have a midnight blue background, with code in white, method names light yellow, keywords cyan, purple strings, and green clovers -- I mean green comments. Gosh, that sounds like a riot of color, and I suppose it is, but it's quite readable for me.
Thu 26 Feb | Unsygn | > ProFont I second that!
Thu 26 Feb | Kyralessa | I always program in proportional-spaced fonts. I only care if the beginnings of the lines line up; I don't care whether the ends do. (Obviously I don't do fancy comment rectangle boxes and stuff though.)
Fri 27 Feb | Panna | ProFont is nice but slightly nicer is Sheldon. And by the way the blue background is horrible. In vim I always user Zellner. Less colours with taste :-)
How many people have heard of IIT in the states? | Wed 25 Feb | Developer
How many people on his forum have heard about  IIT(Indian Institute of Technology), and how would you rate it?
Wed 25 Feb | x | Anyone whose has dealings with Indian engineers knows it's where many of the top Indian engineers come from, like Qinghua in China or other 'best universities' around the world. As an institution - meaning a reputation beyond its graduates in terms of research, etc - I don't know much about it on that front.
Wed 25 Feb | Now a U.S. citizen | I'd be willing to bet that most people in the US have never heard of it.
Wed 25 Feb | Mike Swieton | 'most people in the us' is not a barometer for anything. 'Most people' are idiots. Anyone ever seen Jay Leno's Jaywalking segment? *That's* most people. Now I'm depressed. :(
Wed 25 Feb | Pavel Levin | Which one of IITs. It seems that there is one in every major Indian city.
Thu 26 Feb | x | How many people have heard of Bulgaria University and how would you rate it?
Thu 26 Feb | Chris | I've heard of it. Their stock price really took a hit yesterday: http://finance.yahoo.com/q/bc?s=ESI&t=3m&l=on&z=m&q=l&c=
Thu 26 Feb | Oren Miller | Being from Chicago, whenever I see IIT I always think of this: http://www.iit.edu/ It's a well known school, and at least around here it could be confusing if you don't specify which IIT you went to.
Thu 26 Feb | Stephen Jones | Most dilbert fans will know of it: http://news.bbc.co.uk/2/hi/south_asia/3231561.stm
Thu 26 Feb | Sathyaish Chakravarthy | The Indian Institute of Technology, IIT, is the most reputed engineering institution in India. Engineers out of IIT do not look for jobs; jobs look for them. The institution has chapters in four major Indian cities. That said, I had an ex-colleague from IIT in my organization. An average programmer, a good trouble maker he was, who worked when he wanted to, and left at his own time. He made his own rules, chewed on tobbacco like a ruminant all the time, and was known for the frequent bio breaks he took. Gas problems, I guess. So much that he made lots of noise, and we've moved from indigestion to acoustics this time, about the great deal of things he knew about the craft of programming and actually got many of the credulous people in top ranks believe he was one of the smarter people amoung us, the lesser enlightened, semi-literate, wanna-be programmers. You'd have guessed he was paid through the nose. One day, they chucked him out, the thinko eclectic melting pot of novel technologies, for his outrageous indiscipline. Today, he's in Russia, probably running a business he started from his eight months' savings.
Thu 26 Feb | Bored Bystander | Sathyaish, Sounds like IIT egos == MIT in the United States. Hilarious story. Years ago I had the misfortune of working with an arrogant dipsh*t from MIT who basically thought that he farted gold particles. EVERYONE in the department disliked him unanimously.
Thu 26 Feb | Sathyaish Chakravarthy | ...who basically thought that he farted gold particles. Hee...he...he...ROFL...hee....
Thu 26 Feb | Cletus | Nope, never heard of it until now. Let me turn it around now. How many people outside of the US have heard of IIT (Illinois Institute of Technology)?
Thu 26 Feb | Cody Powell | I've heard a lot of good things about IIT (India, not Illinois), and I know its graduates are looked upon very favorably by some of the big software companies.  I've also heard that it's maybe the hardest university in the world to get into.  I have no idea if that is correct or not, but I was told that it's a top 1% of top 1% kind of place, with admission determined solely by how well you did on a nation-wide standardized test.  The people I've met who have graduated from there have been very impressive.
Thu 26 Feb | Karl Perry | Interesting. I went to www.iit.edu (Illinois Institute of Technology) just to see what it was, and staring out at me on the home page was this beautiful young Indian woman's face. Hmmm...
Thu 26 Feb | no name | > I've also heard that it's maybe the hardest university in the world to get into. I have no idea if that is correct or not, but I was told that it's a top 1% of top 1% kind of place, with admission determined solely by how well you did on a nation-wide standardized test. This, and the Dilbert mentions, show just how effective expensive PR can be. It's misleading for the IIT's to claim their selectivity is the same as that of Western universities. India has hardly any universities for its population, and its education system is not as good. So naturally they will have lots of applicants. The disturbing thing is this: if the Indian firms manipulate reality on education, what else do they manipulate reality on?
Fri 27 Feb | Immature programmer | > It's misleading for the IIT's to claim their selectivity is the > same as that of Western universities. India has hardly > any universities for its population Well, how misleading is it exaclty? IIT's entrance exam is absurdly difficult by all accounts I've heard. MIT graduates have reported having a tough time with it. So is it really misleading to suggest IIT is kinda selective??
Fri 27 Feb | no name | You really believe that MIT graduates have trouble with the entrance exam of a university in a country where 500 million can't read?
Fri 27 Feb | Stephen Jones | Dear Blank, Presumably you leave your handle blank so as not to discriminate against that 500 million. Of course if you put your question the other way round ---'You really don't believe that MIT graduates have trouble with the entrance exam of a university in a country where 500 million can read?'--- it would be just as meaningless. But then, the fact you can read doesn't mean you can think logically. Perhaps the other poster could give us examples of the PR he talks of. The IIT's were founded by Nehru in the sixties, or earlier. They were originally intended to provide engineers for Indian industries. The reason their reputation has spread has been because of the large number of their graduates that emigrated to the States in the nineties. The experts at PR are the Brits, and to a lesser extent the Americans. The result is that everybody has heard of Oxford, Cambridge, Harvard, Yale or the MIT, but equally excellent and elitist institutions in other countries, such as the 'Grandes Écoles' in France for example, or until recently the IIT in India, have not seen their repuatation pass beyond their borders.
Our experience distributing our first .NET app | Wed 25 Feb | JWA
Hi All, With the recent discussion of the runtime, I thought that our experience may be of interest. In September we launched our first .NET app. This app is used to create a specific type of document for a niche market. The new version was a thorough rewrite of the earlier VB app. We primarily used VB.NET, with some C#. We used four third-party components in the final release: ActiveReports.NET, DotNetBar, RapidSpell.NET Desktop and DynaZip NX. They all have worked flawlessly and are highly reccomended. As to the distrubution, which is everyones main question. We used Wise for Visual Studio.NET to create the distribution packages. We found this program to have some conflicts with a our components and thus we were unable to include an installation project right in with our VS Solution. We have six separate installations, all of which we keep as separate projects in a single VS solution. Wise is a bit unstable at times, but generally compiles correctly. In the future well likely use Inno, as were not doing anything fancy with the installation and the Wise issues were just not worth the time. Weve now had somewhere around 1,000 installs and so far we have had zero support calls related to the .NET framework. Its installed by a merge module in the Wise setup, and so far hasnt been a problem for anyone. We do 98% of our distribution on CD, so the runtime size is not an issue. Those whove downloaded havent complained either, but likely most if not all have broadband. To sum it up, the runtime has been a non-issue for us. Things we like about .NET and VS.NET: - Third-party component availability - ADO.NET is just awesome - ASP.NET sites and Web Services rock - The IDE is the best weve used (Although Xcode & Inerface builder is pretty nice too. If Xcode had code folding and better intellisense theyd be equal in my book.) Things we HATED about using .NET: - Localization (es, fr, & pt) ended up being over 60% of our development effort due to glaring problems with its support and implementation in both the framework and VS. - Direct manipulation of the DEVMODE for printing to a custom printer we need to support on sucked on WinNT/2000 and sucked in a different way on Win98/ME, but XP was fine. Thats a breif report, but maybe it wil help some of those out there planning a platform selection. IF you have any specific questions, feel free to ask. --Josh
Wed 25 Feb | Gwyn | How are you planning to manage deployment of patches and future releases?
Wed 25 Feb | JWA | We've already released a few hotfixes and are readying a x.1 release right now. All we have had to do is to update the primary executable and the associates resource files so far. For the x.1 release we've added a feature that requires a new dll, so that's being deployed too. We're using local dll's, so nothing needs to be registered. Our update utility is written in C#, since they already have the framework, with all files compiled in as resources. --Josh
Thu 26 Feb | asp_net_montreal | I will need to develop a web app soon that supports both English and French. Do you have any suggestions for localization? Thanks!
Thu 26 Feb | JWA | Actually localizing the web app component of our project was much easier than the WinForms app. One gotcha that you need to know about is that if you add any custom entries into the resource file, like to pull messagebox text from, Visual Studio will overwrite them if you ever make any further changes to the UI. This included moving controls, etc. You'll have to put custom strings somewhere else. --Josh
Fri 27 Feb | Li-fan Chen | Dood if you can do a powerpoint after a few releases on the basic infrastructure that made it all happen. All of us would be willing to shell out a few bucks for a copy.
Laughable Web Services | Wed 25 Feb | Benji Smith
Im currently writing up the technical specifications for some simulation software that needs access to real-time stock-market pricing information (20 minute delayed wont cut it), from all of the major US markets (NYSE, NASDAQ, and AMEX). I understand that such a service may be expensive. And Im willing to pay for it. (I should mention that Im not just writing the specs. Ill also be writing the code, and managing all aspects of the project. If it becomes successful, I may hire someone to help out later. But for now, its just me.) Anyhow, I start looking around for a datasource. Im pretty familiar with the Apache SOAP toolkit, so it makes sense to see if I can use SOAP web services as a real-time datasource. There are a handful of websites that list publicly available web services (including free & fee services). Checking out these lists, I was really disturbed by the plethora of useless web services and the dearth of genuine, useful services. Check these descriptions out: * Returns a random word in English and first corresponding image from Google image search. * Morse Code Translator WebService * Returns a random quote from George W. Bush * Displays legal and illegal Icelandic names, first, second and middle names. * Is that famous person dead or alive? * Generate globally unique ID with timestamp tracking * This Web service takes a string of numbers (separated by a space) as input and allows the user to perform various statistical functions using this string of numbers. These web services are so laughable, it just kills me. The category of web services that I think is the silliest are the ones like the GUID generator and the statistics package. Why would anyone who knew how to use the SOAP framework bother with a web service for statistics? Why not just install a statistics library? (And somebody should warn Ađalbjörn Hámundur. He may not know it yet, but he might have an illegal Icelandic name.) Anyhow, Im not satisfied with the results Ive found. The supply of real-time-financial-market-data is very very thin. There are about six dozen different web services that can return 20-minute delayed data (they just scrape the data from http://finance.yahoo.com and return it in a SOAP message; its pathetic), but I have not yet found any services that provide comprehensive real-time data, direct from the market floor. The company I work for uses SOAP messaging to communicate between the client/server in our own software, but none of our software actually consumes external web services. Have any of you actually written software that consumes an external service? And if so, can you tell me: is Liza Minelli dead or alive?
Wed 25 Feb | Ron | You haven't found any real-time stock quote feeds because the SEC doesn't allow it.
Wed 25 Feb | Steve Barbour | Ron, there are several web sites trying to sell such a service that disagree with you. They might be lying, I don't know. A quick Google Search turned up this one along with a few others. http://www.dtniq.com/template.cfm?navgroup=aboutlist&urlcode=110&view=1
Wed 25 Feb | Chris Tavares | Most of those "services" are probably just people playing around with web services for the first time, or experimenting with a toolkit, and they just left them live. They're demos, not intended to be actually useful for anything.
Wed 25 Feb | Sassy | You might want to try Service Objects: http://www.serviceobjects.com/products/dots_fastquote.asp I used their tax service and it was a real timesaver.
Wed 25 Feb | eclectic_echidna | > All Equities and Futures data is delayed according to exchange rules. NYSE and AMEX at least 20 minutes. Nasdaq at least 15 minutes. CME and CBOT at least 10 minutes. NYBOT, NYMEX and COMEX at least 30 minutes. Is this as realtime as it gets? -- ee
Wed 25 Feb | mb | most definately not. many brokers offer real-time data, though probably only for interactive users. you could subscribe to a service like this: http://www.tradestation.com/fees/subscription_op.shtm they may have a web service.
Wed 25 Feb | Joel Spolsky | You're looking in the wrong place... The '15 minute delayed' quotes, which are delayed 20 minutes, are generally free. Live quotes are available from many sources, but you pay through the teeth. Try S&P Comstock (http://www.comstock-interactivedata.com/index.shtml) or Reuters. Or look in the back of this magazine: http://www.wallstreetandtech.com/ The data comes in way too fast an furious for SOAP. Anyway, the data is push, not pull, so SOAP doesn't really cut it. Most of the vendors on Windows give you a DDE server. Since it uses Windows messages for IPC at the lowest level, it's screamingly fast, which it needs to be to keep up with today's ticker.
Wed 25 Feb | Mike | As Joel said, check with the finacial houses theses things exist, but are spendy.
Wed 25 Feb | Mike | ' it's screamingly fast, which it needs to be to keep up with today's ticker.' True. Also interesting was the huge amount of bandwidth gobbled by changing to 1/100 of a dollar movements.
Wed 25 Feb | Ori Berger | Consider Comsfock, Reuters or Bloomberg; They all provide streaming data without delays straight from the trading floor. It will cost you, be prepared. DDE is fast only when compared to Web Services; It's dog slow compared to the native interfaces provided by those services (Reuters' SSL (no relation to secure socket layer), and Bloomberg's COM objects and low level API) - DDE does buy you relative standardisation, though. If you're looking for a database/processing platform that already interfaces with these services and can also do with more, you might consider contacting Kx systems (who'll probably refer you to First Derivatives - I'm not sure who talks to customers), or TimesTen. Be prepared to spend a lot of cash. [This is not a recommendation, I haven't used either - but both can probably offer you most of what you're looking for, and -- who knows -- the price may be right for you]
Wed 25 Feb | Benji Smith | Unfortunately, I'm not looking for every bid/ask that funnels through the market. I'd just like a summary for each minute in the trading day, including the open/high/low/close/volume for each minute. And I don't need it for every security traded on every market. I'm building a paper-trading simulation service, so I only need data for securities which my customers will have an open order. So, if I had 500 customers, and each of them had two orders outstanding, there would be 1000 orders. And, since many of the users would probably be placing orders on the same securities, I would probably only need quotes on 400 securities. I would want summary data for each minute, but I don't need to _retreive_ it every minute. I would be happy to fetch the data every 3 minutes. I already have a co-loaded server running with an ample supply of bandwidth to PULL these types of requests. But there's no way I could handle a pipeline of data being PUSHED at me directly from the market floor. I really need someone in the middle to act as an arbiter of the data, sending me only what I need, based on the dynamic requests of my clients. Still looking.........
Wed 25 Feb | magoo | Are you sure the expense of real-time data is worth it for a paper-trading simulation? There are professional and non-professional fees you must pay to each exchange (AMEX, NYSE, NASDAQ) for real-time quotes. Since you are running a business, you will need to pay the professional fees, which total about $180/month. This does not include the fees charged by the service provider. If you still want real-time data, DTN is probably the cheapest. http://www.iqfeed.net/ The more expensive data services generally have cleaner data. You get what you pay for (usually).
Thu 26 Feb | Joel Spolsky | Ori, I'm interested in your claim that DDE is slower than 'native' COM -- The COM calls are likely to cross a process boundary, which means they will need to be synchronized, which uses Windows messages at the lowest level for the interapp synchronization. The bottom line is that you have to wait until you get back to the message loop to hear about the trade, and DDE is just Windows messages. Of course, you could use a free-threaded COM object and accept calls at any time. But the only good way to write a free-threaded server is to receive the call and then throw yourself a message so that you can process the call at some intelligent time in the future. Now we're back to Windows messages again. There seems to be a mistaken belief that interapp communication using DDE is 'slow' while COM is 'fast' but the bottom line is that in almost every reasonable Windows scenario, you have no choice but to do some interprocess synchronization, which is best done with Windows messages, which is all DDE is in the first place.
Thu 26 Feb | Joel Spolsky | I think people think that DDE is slow because they watched it used with live data in Excel spreadsheets and they somehow imagined that the Excel recalc slowness is coming from the DDE. While they think that COM is fast because at the source code level, it LOOKS like a function call. What could be faster than a function call? I also should add that I haven't benchmarked this since the mid 1990s, and for all I know the vendors' DDE implementations are awful while their COM implementations are better and so even though DDE should be faster, in practice, you can't tell until you benchmark. Benji, you need real market data from a real market data vendor. There are dozens of market data vendors and they're very competitive and they'll give you exactly what you want in exactly the format you want. With lox and cream cheese, no extra charge. But you need to talk to the vendors, not us.
Thu 26 Feb | Ori Berger | Bloomberg's COM API is, if I recall correctly, a single threaded, in process COM object that interfaces to their native C library, able to have zero call overhead. Don't remember how it calls back - I don't think it uses connection points, but I'll check. Bloomberg's DDE server uses the same native C library, and adapts it to communicate through DDE. I have a program that does essentially the same thing, and is capable of using either interface at the flick of a command line switch, and using DDE the computer's overall CPU usage (DDE server + DDE client) is ~10%. Using the native C api or the COM api, it is not easily measurable (something like 0.05% or so - I don't have a reliable tool to measure this). It's probably DDE to blame, rather than Bloomberg or my code - profiling my code indicates that most of the time is spent in DDE; Perhaps I can tweak that a little (e.g., not use DDE string compare, and instead copy the string out and use hashing), but using 'idiomatic' DDE, it is, comparatively, very slow. It seems to me that many DDE (or at least DDEML) calls are synchronous. This can explain a lot if it's true. (Is it?)
Thu 26 Feb | Simon Lucy | DDE is by far the lightest and fastest way of moving data from one application to another, how fast either end processes that data is something else. I have DDE servers that provide business type objects from an accounting system; most often they're used for bulk processing of data, such as repricing the entire stock system or producing debtor's letters in a high volume sales organisation.
Thu 26 Feb | Justin | >Unfortunately, I'm not looking for every bid/ask that >funnels through the market. I'd >just like a summary for >each minute in the trading day, including the >open/high/low/close/volume for each minute. >And I don't need it for every security traded on every market. I did this in 1987. It was for a box that the company leased to dealing rooms in half a dozen cities (matching the markets). Back then, it was Z80 and RS232 serial and parallel (Reuters). The system had a matrix that mapped customers to services and created a feed for each. Another box took the feeds and aggregated them to provide the summaries. This was for Futures, Options and Equities from live feeds from Reuters Dealing & Banking, Telerate et al.
Thu 26 Feb | Rob VH | How many securities or contracts do you want to monitor? If it's only a few there are numerous, what I'd call 'second tier' data providers that are much cheaper than Reuters or Bloomberg. eSignal is the first that comes to mind. They can typically provide realtime quotes on <500 instruments. But in my experience, if you want to keep up with several thousand, you're just going to have to pay Mike Bloomberg a couple thousand a month. (Just picking on Mayor Mike...Reuters is good too.) I have an app that grabs the last price for >3000 securities from the Bloomberg API. It usually takes about 60 seconds to get them all. And Liza Minelli is very much alive. She was just in the news for beating up her ex-husband or something like that...
Thu 26 Feb | Thinking Hard. | Benji - 'Anyhow, I'm not satisfied with the results I've found. The supply of real-time-financial-market-data is very very thin. ' You're not looking hard enough. There are a numerous of real-time data sources out there. http://www.quotetracker.com/qsources.shtml As you'll find out, most of the data providers/brokerages provide connectivity not by means of webservices, but mostly through their proprietary API's. To generalize your programming effort, I would take a look at using QuoteTracker ( http://www.quotetracker.com ) and it's HTTP interface. QuoteTracker has the capability to connect to a ton of providers and brokerages, and all of the quote data is exposed through their HTTP server. http://www.quotetracker.com/qtserver.htm You can add/remove symbols for tracking, request sales data, etc. all via a series of HTTP requests. So no matter what data source you utilize within QT, you will always be able to access the data in the same manner. If you decide to switch providers, there won't be any redevelopment needed on your end. But before you start developing your papertrading service, take your programming hat off and put your business hat on. The SEC strictly prohibits the redistribution of real-time quotes. When you sign up for any data service provider or brokerage, you will have to agree to this. This isn't something specific to the vendor, these are agreements handed down by the SEC, NASDAQ, and NYSE. You will sign them not matter what vendor you go with. Real-time distributatble quotes are NOT cheap. You will likely pay a flat montly rate along with a request fee per quote. There is a reason why you don't see any services that provide real-time stock data to the public; it's too costly.
Thu 26 Feb | Gauti (legal Icelandic name, believe it or not) | Hehe,... as an Icelander I'm proud that one of our services made your list :-D
Thu 26 Feb | pb | http://www.xignite.com/
Thu 26 Feb | Benji Smith | Joel said: 'Benji, you need real market data from a real market data vendor. There are dozens of market data vendors and they're very competitive and they'll give you exactly what you want in exactly the format you want. With lox and cream cheese, no extra charge. But you need to talk to the vendors, not us.' Actually, the whole point of this message wasn't originally to ask for help finding web services. I know about many of the providers of financial data (like reuters, comstock). I had already sent information requests to them, but I thought I'd look around in the web-services world to see if I could find anything there. The central point of my post was just to point out how many weird useless web services are floating around out there.
Fri 27 Feb | Richard P | The truly ironic thing is that the vast majority of the mildly useful web services are just wrappers around a dumb screen-scraping perl/VBScript script. All the fragility of screen-scraping that Web Services were meant to avoid compounded with all the overhead of SOAP.
Fri 27 Feb | Stephen Jones | ---'The central point of my post was just to point out how many weird useless web services are floating around out there. '---- 'Weird' and 'useless' are not synonyms. What you should be saying is ---'The central point of my post was just to point out how many web services are floating around out there, that I don't know enough to understand the purpose of.'-----
Fri 27 Feb | Stephane DUbois | Someone added a link to our web site (www.xignite.com). While we do provide the usual laughable-soap-wrapped-around-scrapper free quote service (www.xignite.com/xquotes.amsx), we also provide a realtime web service based on a direct link to Island (www.xignite.com/xrealtime.asmx). Good luck with your search
Fri 27 Feb | Benji Smith | Stephanie said: 'we also provide a realtime web service based on a direct link to Island (www.xignite.com/xrealtime.asmx).' Thanks Stephane. I found your service a few days ago. It was one of the first things I found in my search, and it's near the top of my list.
Fri 27 Feb | Bella | www.freerealtime.com
Programming is not lively | Wed 25 Feb | Michael Bruckmeier
Okay, I recognized the follwing: When I code, I dont feel a thing. I am only in my head, working on and on. Thats alike a machine would do it, but thats okay, I guess, because you can concentrate best. And when there are high pressure times where the schedule exhausts and loads of bugs, you only receive bad feedback from the boss, co-workers or customers and in consequnece you feel bad, even though you work like a horse. Okay, to fix the point: you feel bad or nothing the whole time. Aint that a sort of depression? I would say definitely say: it is. So, we all went through hard times and the sweet isnt that sweet without the sour. We know. But is that the way one want to life ? For me life is change and movement. The above descriped depression happens too often in software business, i guess most of you have experienced something simmilar. And that is not the way I want to life. Dont get me wrong, I still love to work with computers and to develop software. That has mattered me all my life will do so hopefully till the end of my days. But when you look at all those books that are around dealing with how you do software and related, has someone seen a concept that makes programming more lively? I am going to do research on that, perhaps a book, Ill see. But please tell me your point of view on that issue.
Wed 25 Feb | no name | Most important: do not work for, or with, fools (as much as possible). There are a lot of subjective ways to determine whether or not somebody is a fool, but I think that the simplest and most effective test for me is whether or not the person can talk about the fundamentals of your problem with you. These people will have empathy for you because they'll understand your trouble (unless you're in over your head, in which case they'll ream you). The other kind will just give you a blank (or condescending) stare and repeat, 'no excuses, I just want it to work,' for every problem that you encounter.
Wed 25 Feb | Andrew Hurst | '...you feel bad or nothing the whole time...' I notice that I program that way only when I'm doing something routine, that I've done a ton before. Like when I noticed I was coding up Yet Another Damn Perl CGI almost as fast as I could type because I've written so many similar programs before. When I'm doing something new, or I'm working on a project with lots of unit tests that give me some feedback, I'm generally in a good mood. Which is why I try to swing as many new styles of projects as possible.
Wed 25 Feb | Albert Einstein | "Great spirits have always encountered violent opposition from mediocre minds."
Wed 25 Feb | The Real PC | Maybe it's the same problem with any job, when it gets repetitive. But what job doesn't involve some repetition? Being an actor, for example, seems like a lively sort of job, but you actually have to say the same lines over and over. It must get very boring sometimes. Or how about being a rock star and having to play the same songs a million times. Maybe being a cop would be lively -- it looks that way on TV shows. But in reality most of the time you drive around and wait for something to happen. How about teaching? Same problem -- you teach similar things year after year. Things you already know. How boring. Developing software has the advantage that you never have to do exactly the same thing more than once. Maybe the real reason you find it depressing is that you are extroverted and would rather work with people. Another possible reason is that there is little or no encouragement or appreciation in this field. Users expect computers to be smarter than humans and to easily read their minds.
Wed 25 Feb | VPC | How come you don't feel good when you accomplish something new? Then even better thing is when you manage to create in few hours something that looked like it would take all day long? But nothing beats the customer reaction! Well, not when they complain about something (or lose data)! Rather a story in a league of young Espinoza (or something like that), when he showed VisiCalc on Apple II to accountant and the man started shaking: 'What you did here in few seconds takes several days the way I do it!' Is this true or not is not relevant so much, as when I see big smiles on faces of my customers. It sure isn't something that happens all the time, but when it happens... That's why I like to have one day in the Zone, and day after spent just chatting with my customers.
Thu 26 Feb | T-90 | Whatever happened to the sense of achievement at having created something new. Something that wasn't existing earlier and you created from scratch. Isn't that a goody good feeling? ... Happiness even. As the saying goes 'Beauty is also to be found in a day's work.' And, another point, I think the fact that (work != life) should also be acknowledged. So, > Okay, to fix the point: you feel bad or nothing the whole time. < should be rephrased to: > Okay, to fix the point: you feel bad or nothing the whole time you're working. < (Maybe you meant it that way only?) PS: Do get back with the results of your research.
Fri 27 Feb | Mark Tetrode | What matters for me is not so much the programming per se, I do other stuff besides that - highlevel functional analysis, project management, database design, etc. What matters is the 'fun' of a project. I have had projects with much 'fun' in it. Sure, sometimes it was difficult, and I didn't like it, but overall, it was a fun environment, fun people, fun things, I learned a thing or two, and clients and their employees were happy afterwards. Other projects, I must admist, were not so fun. People would not cooperate, it was repetitive, client never happy, etc. I guess when I was doing the same code in both projects, I would definitively *NOT* feel lively in the latter, but surely in the first one. My 0.02 €
Idiotic design decisions | Wed 25 Feb | snotnose
Sometimes I wonder what marketers/engineers are thinking. I just got a USB thumb drive. Its got a lanyard hook for attaching it to my keyring. Very nice. Except the bloody hook is attached to the plastic cap protecting the USB pin. Now, if Im gonna lost half this thing, I think Id much rather lose the cheap plastic cap than the actual USB FLASH part. Why not put the lanyard on the expensive end? My bet is this was a marketing decision along the lines of pshaw. They lose the cap, they dont care. They lose the FLASH, they buy another. grrr. Last year I bought a clock radio. Damn thing was a nitelite. I couldnt sleep, it was so bright. Could almost read by it. In less than a week the puppy was in the goodwill bin up the street. For $15 it just wasnt worth the 40 minute round trip drive to return it. Office XP. If one of your contacts has both a fax number and an email address, then when you send mail to that person it pops up the window multiple entries match this person, pick one. Um, WTF? I have yet to figure out how to tell it I just want to email the person 20 feet away from me, not send them a fax. XP has other marketing driven misfeatures as well, dont even get me started. IMHO, a classic case of some good updates hobbled by marketings hey! lookie what we can do! A few years ago I bought a CD player that starts playing a CD whenever power was applied. Player is plugged into my receiver. 90% of the time, when I turn the receiver on Im watching either a DVD or TV, not listening to CDs. But I get to watch the distracting lights as it changes tracks and CDs, not to mention wear and tear on the 1 part of this that is liable to break: the mechanics. Last year I got a DVD player that wont tell me how much time is remaining in the movie. It tells me how far into it I am, but wont tell me how much longer I have to go. Makes it hard to decide if you want to stay up an extra 10 minutes to finish the movie, or go to bed and see the last hour tomorrow night. I like my window focus to follow the mouse, and used third party desktops to add this feature in windows (xdesk rox!). Windows XP now has a focus follows mouse setting. Except they farked it up. The active window is always on top. Brain dead. Really frustrating when you have a little box with an ok button over a larger window, like Visual Studio. Go to task bar, bring up dialog box. Move mouse to dialog box, en-route it covers part of VS. VS jumps to front. Wash hands, repeat. Hugely annoying, and makes the feature useless. Even worse, now that XP has this feature, the 3rd party tools no longer support it. I know, I looked. I really like the combo of focus follows mouse, and active window is not on top unless I want it there. Sigh. . Thanks for listening.
Wed 25 Feb | Michael Kohne | With respect to focus-follows-mouse - This has been present in NT since at least NT 4.0 (which is what I have on my desktop right now). It may well have been present in 3.51, for all I know. And sadly, the 'window comming forward when it gets focus' is NOT Windows fault. It's the apps. (I believe there is also a way to get windows to autoraise, but that's an option, not a forceed thing). As a random sampling (Note, I have 'autoraise' turned off in Tweak UI): Visual Studio 6.x will come to front when it gets focus. (If I'm not mistaken there is actually a reason they did this. I believe it had something to do with the app behaviour when you hit a breakpoint in the debugger) Lotus Notes will raise itself (Damnned annoying, I MUST tell you.) Putty will not. Mozilla Firebird will not. Internet Explorer will not. In other words: Get TweakUI installed and turn off autoraise. Then see which apps you have that screw up before you give up on the feature altogether.
Wed 25 Feb | anon | I have a DVD player who's remote control only has next chapter, or previous chapter - no Fast-Forward or Reverse! There's also a feature that allows the viewer to adjust the picture up/down, but not left/right! Now, since it's a DVD player, most movies are picturebox, so there's absolutely no reason to be able to reposition the picture up and down because there's only black strips at the top and bottom anyway! If your company is too cheap to provide two degrees of freedom, why not make the one provided useful?!? 888
Wed 25 Feb | The real Entrepreneur | The Design of Everyday Things covers this sort of thing very well. It's very very interesting. The reality is that it's damn hard to design, create, manufacture, market, sell and support a product. Very few companies do ALL of these well. The advantage of doing them all well is that customers will pay a pretty penny for it: e.g., Apple Macintosh, BMW, etc.
Wed 25 Feb | Aussie Chick | Classic rant. Waited until it all built up then let it out. I have nothing more to add other then to say that made for an excellent read, thanks.
Wed 25 Feb | Aussie Chick | Oh and I agree with you on the 'idiotic design decisions' frustration, I am always shaking my head at the designs people come up with, I wonder "did someone pay for that advice?"...
Wed 25 Feb | anon | Doesn't matter much anymore because XP never hangs for me, but I have an old computer that I used to use with Windows 98. Trouble was, it wouldn't let me power down unless windows closed successfully. Since there was no reset button, I was forced to pull out the plug every time Windows 98 froze. D'oh! BTW, Aussie Chick. You rock! I never disagree with anything you say. You're the only regular on this sight who agrees with me on everything! You're obviously highly intelligent!!!
Wed 25 Feb | Ken | Ok I've got one- Plastic wrap- just bought a new box. It has a new feature which replaces the saw-like metal strip. It's a little piece of plastic that you slide along the edge of the box which in turn cuts a piece of plastic wrap you have stretched over it. And, in fact, it works great- if you have three hands! Otherwise, you have to put the box down before cutting, otherwise the piece of plastic wrap will fall to the floor. Then, since you're not holding the plastic, it gets all crinkly. This just amazed me! Did anyone actually use the thing before they put it on the market?
Wed 25 Feb | Gerald | personally, I think the lanyard is on the right end: a. Try to plug the stick into the back of your computer while a mass of keys is dangling from it b. Have stick in computer doing something but need keys to access something else (server room, etc), oops It makes perfect sense to me that the lanyard is attached to the cover, not the stick itself. I'll take the improved useability over the somewhat increased potential of losing it.
Wed 25 Feb | Katie Lucas | My DVD player's remote control has fast-forward buttons marked on it. But they only work as fast-forward/rewind when it's playing CDs. When it's playing DVDs, they act as chapter changers. There are also some arrow buttons, but they don't do fast forward either. They act as chapter changers. There are some other buttons with arrows on them, and they do act as fast forward/rewind buttons. Amusingly, at that point the 'play' button stops being a 'play' button and becomes a 'start this chapter again' button. 'Sony. Let's Make it Better!!!'
Wed 25 Feb | snotnose | Hmmm, you probably have a point there. Be a pain to dork with the keys with the dongle plugged into the laptop. But, but, but... All my other points were valid! :) And if you missed the quickie note in the original post, check out xdesk. They have a free trial period. Multiple desktops is great. Mouseknocking, once you get used to doing it, rocks. I've used it for years now and love it. Makes Windows almost as easy to program on as Linux (or SunOS 15 years ago).
Wed 25 Feb | S. Tanna | Playstation 2. The little slots in the front for inserting memory cards, control pads and what not. The slots are black. With black cover flaps. That match exactly the surrounding case. With black interiors. With black things to plug into the slot. Now most people probably place their PS2 under the TV, i.e. near floor level. And most people probably do not shine a bright light directly onto their TV screen area. P.S. Why don't PCs put a USB slot or two on the front of the tower. It would be handy for plugging and unplugging memory sticks, etc.
Wed 25 Feb | Chris Tavares | Actually, just about every PC sold for the lat two years DO put USB connectors on the front. I have two PC's at home. One's got two USB's and a serial port on the front, the other's got two USB's and a firewire port on the front.
Wed 25 Feb | S. Tanna | We must be buying PCs from the wrong places. None of the ones we got, even recently, has this.
Wed 25 Feb | pdq | I have a USB drive with the keychain attachement on the end that you would like. Doesn't do much good as it's cheap plastic and broke in a week.
Wed 25 Feb | Gwyn | >> Lotus Notes will raise itself (Damnned annoying, I MUST tell you.) Lotus Notes was purely put on this earth by Satan as a mechanism of annoyance. And boy does it work.
Wed 25 Feb | Alex.ro | My TV remote has no 'next/previous channel' buttons. Channel surfing is an intellectual effort. 1...9 are straightforward. Then I have to press the button marked '10+' and the button '1'. Then '10+' and '2'. ALL buttons (volume, mute, power) are arranged in a perfect grid, and all are same size. Impossible to find by touch.
Wed 25 Feb | yeah yeah | Also Outlook rules editing.... Cannot use the mouse to copy an email address to a rule - when you right click to popup menu to paste, it comes some 'helpful' help info instead. You have to use CTRL-V. Really annoying...
Wed 25 Feb | - | 'Why don't PCs put a USB slot or two on the front of the tower.' Macs don't have a usb slot on the front of the tower. But they do have two USB slots on the keyboard and two USB slots on the monitor.
Wed 25 Feb | Jack of All | I have a clock radio that's about as bright as a 100w bulb.It's one of the few alarm clocks I've found that can wake me - and the neighbourhood - so I place it face down at night to kill the light. Jeep Wranglers ( at least the 2001 models ) have the steering column locking arm made to move vertically - locking in the up position. When driving on a corrogated dirt road at any speed you either hold the arm up with one hand or be prepared to catch the steering wheel as it drops out of position and onto your knees. Jack.
Wed 25 Feb | mb | saw some recent Dell towers. they have USB slots on the front. behind the bezel. i suppose you could cut a hole in the bezel, or get a different one.
Thu 26 Feb | JWA | I have that new plastic wrap box, and I like it a lot. The cutter even works if you want to cut the first strip into smaller pieces, you lay it over the cutter and cut some more. Of course, I always put it on the counter, that's how it works. I guess that this is opposite to the old kind that you had to hold to rip it. I never thought about it, it just made sense. --Josh
Thu 26 Feb | snotnose | It's nice to hit a nerve now and then :) I built my PC from parts in Sep 2000, it's got 2 usb ports on the front panel. Big reason I been wanting a USB FLASH, I'm set up to steal ^H^H^H^Hsearch for songs on the desktop, and wanted an easy way to get them to my working machine (laptop, less than 6 months old). And AussieChick, I got the USB FLASH over the weekend. I been making a list since monday of things I've bought recently that pissed me off. Wish I could say I let it build up, but I really let the pressure off and was still pissed enough to post. Too bad it turns out the lanyard on this damn thing is actually on the right end :(
Thu 26 Feb | David Jones | My father's Sony DVD/VCR combo: the remote has a numeric keypad. OK, no surprise there. Now try to program the VCR side to tape a show. Set the channel. Tap in the channel number. Doesn't work! That's right! You need to press the channel up/down buttons to set the channel on the programming menu! When the last show was taped on channel 2, and the current show is on channel 62, this is a royal pain. It's a Sony!
Thu 26 Feb | Name withheld out of cowardice | My DVD player is always starts up a DVD with English subtitiles. The majority of movies I watch are in English so the subtitles are unecessary. I have to switch them off by means of the remote but this button doesn't work until the movie starts playing, i.e. it cannot be used during the opening menu. I cannot find a way to change it anywhere in the very extensive configuration menu and the user manual is know help. I think what we are seeing in this and at least one other thread is that DVD players have tremendous potential but tend to suck in one way or another.
Thu 26 Feb | Nate Silva | Snotnose, I lost a USB flash drive myself because of the lanyard being on the cap. I couldn't find a replacement, with the lanyard on the 'correct' end, so I bought the one with the tightest snap-on cap *that I could try* (most of them were in no-touch packaging).
Fri 27 Feb | Stephen Jones | I have an LG USB pen dirive, so you would expect a company that size would have somebody looking into usability. Well,yes and no. They have a little hole at the bottom of the lanyard you can pass the supplied thread through which you then clip shut and hang around your neck. OK for a real geek, but seems overkill to me. What they don't have is a clip on the cap, so I can't clip the pen drive in my shirt pocket, as I can do with any ten cent biro. And the cap will not clip to the end of the drive like the cap of my ten cent biro does. Jeez, they have the metaphor ready made for them and they still can't get it right.
Spam filtering on servers | Wed 25 Feb | David
Let me rant for a minute. I hate spam filtering on email servers. It may be that it can be properly, but Ive yet to see it. At our company, our IT first tried this about 6 months ago, but were forced to changed their plans when they heard enough complaints about missing emails. They instead just prepended SPAM: on subjects of suspicious emails. Fortunately, I have a Bayesian filter on my box, so I could basically ignore those labels (they were very inaccurate). Just last week, they switched the server to a Bayesian filter. The problem though is that since its at the server, they have no way of really knowing if theyre improperly marking emails. The way it identifies Ham is by outgoing email. Well, thats a very flawed concept, as lots of email, like newsletters is uni-directional. Also recently, my wifes law firm started down the same path with the server automatically junking email it didnt like. My wife had to work from home for a while because we had child care problems. We found out after many days that no one at work had gotten any of her emails explaining the situation, so they had no idea where she was. Needless to say, she was furious. In a less tolerant company, she could easily have been fired. What other emails did their (incompetent) IT person chuck? How can these people possibly think that is a good idea? Talk about your cost of spam! Whew. I feel better. But dont get me started on automated stripping of HTML from emails...
Wed 25 Feb | pdq | My similar rant. Removing attachments blindly on the server. Our IT department strips out ZIP files as attachments on incoming, outgoing, and internal email. Given that we are a software company and often have to send programs to customers and accept data from customers, this is a PITA. I've taken to renaming the zip files from foo.zip to foo_dotzip. And then explain to the customer why they have to jump through that extra hoop. It's even worse when someone sends a zip file. Mostly I have to give instructions on how to put it on our FTP site. argh.
Wed 25 Feb | David | Yep, that bugs me too.  I'll send an email with an attached DLL to someone two cubes down and it'll never make it.  You'd think they could discern internal emails and be a bit more lenient.
Wed 25 Feb | Prefers Server Side Filtering | Silly rant, you've obviously never spent time as a Sys Admin. Depolying individual spam filters to X desktops and then training users on it's operation is not very wise. A central solution lets IT people concentrate on other tasks than diagnosing extra problems from installing software to each and every desktop. Also your anger is misplaced, it's not like the IT department created the SPAMing problem. They are just trying to do thier best to prevent Grow Your Penis emails from wasting your time (while wasting theirs).
Wed 25 Feb | Ron Porter | As a 'spam admin' where server-side spam detection is done, I have to say that I agree with most of the complaints. There are some things that we don't feel we have much choice but to strip (although we leave zips alone). We get some users complaining about the fact that some legit mail gets caught in the filter, but the reality is that the owners of the company got sick of dealing with the spam themselves and forced us to put in server-side filtering. Now I spend 1-2 hours a day going through the trapped mail and forwarding the legit stuff. There is no way to keep everybody happy, so I just try to close my ears to complaints. The biggest beef I have is the quality of the software we're using (not under my control). The Black/White lists that I create should be processed *before* any other filtering takes place. If that one little change could be made I would be able to cut my 'spam admin' time in half. If I was in charge, everybody would be running SpamBayes in their Outlook and anybody who couldn't figure out 'delete as spam' or 'recover from spam' would be looking for a new job.
Wed 25 Feb | David | OK, Mr Sys Admin, what's the cost of a false positive? What if it costs you a client because you never responded to their frantic email? What if it costs you an employee (see my paragraph above about my wife)? What about a potential sale? I understand fully the impact of a mailbox full of a spam. It's a complete pain. I also understand that the salesforce whines incessently, because they're on the road and don't want to download the spam, before their client-side filtering can do its work. That said, is blindly deleting email the answer? No. It's not. If there were a 'good' solution on the server, I'd be cool. I'd have to know that it was a properly trained Bayesian filter with very lenient settings. Only throw away stuff that's 99% spam. That would catch the vast majority of what I get. As for how to properly train at the server level, I'm not sure how to do that. Maybe let certain employees run client-side filtering and then combine their values. The server would need semi-frequent updates to keep it working. Seems doable to me. Anyone know of such a beast?
Wed 25 Feb | RocketJeff | The company I work for has been testing, and is very close to, rolling out postini to all of our email users. postini is a service that receives your email, filters it, and sends the rest to your SMTP server. The nice thing is that users can log into their website and find out what was filtered and have the false-positives delivered to their inbasket - users don't have to worry about losing valid email. I was originally wary of it, but it does seem to be a good solution. It does look like the service is a bit costly, but considering how mush time the IS department was wasting on Spam it might be worth it. Standard Notice: I don't work for, get paid by, or know anyone at postini - my company is just using their service.
Wed 25 Feb | RocketJeff | oops, forgot the url (for the 1% of you who couldn't figure it out). http://www.postini.com/
Wed 25 Feb | Admin | The cost of a false positive for us is potentially in the hundreds of thousands of dollars if not higher, but we couldn't deal with all the spam. So we slowly ramped in Spam Assassin on the server - we started with a score of 10.0 and manually reviewed every email that was flagged as spam. Slowly we developed a white list (all user contacts from address books and anything improperly flagged as spam). Over time we ramped Spam Assassin to a score of 6.0, which is a pretty strict setting. We manually review anything between 8.0 and 6.0 and continue to add to our whitelist. Additionally we run a bayesian filter on every client so they can further cull their email. The biggest thing for us was manually reviewing all email within a certain threshold and creating a massive whitelist which circumvents the spam filtering on the server.
Wed 25 Feb | Mike | 'What if it costs you a client because you never responded to their frantic email? ' If it's such a f'ing emergency pick up the phone. Email is not all that reliable even without spam filtering. I run NAV Gateway at our company. I love it. Spam filtering is best done at the server level. If you precious developers think otherwise, then take some of your free time walking from desktop to desktop and set up some filtering for the client if it's that important to you. Sysadmins fix mistakes. Developers ship them.
Wed 25 Feb | pdq | Mike, you make me furious. Sysadmins are a cost. They get in the way. They can be a necessary evil but add no intrinsic benfit. Developers, testers, tech support, sales, etc are out there bringing revenue. All sysadmins do it tell you why you can't do what you need to do to serve the customer.
Wed 25 Feb | Bored Bystander | Ha hah, Baysian spam filters. I emailed a president of a local networking services company, using the email address that was printed on his business card. I never got a response, and I did want to buy something he was offering, so I finally called him on the phone. It turned out that the Baysian filter that his company uses on their incoming email rejected my manually-written, non generic subject lined message as 'probable SPAM'. He had to whitelist me. So, here's someone basically in a sales position, very proud of their company's networking expertise, and you can't email the sales guy at his business card's printed email address. Go figger. False positives can cost a sales person actual opportunities.
Wed 25 Feb | Clay Dowling | pdq, I'm a developer, and I'd just like to say 'Sit down and shut up.' If you think you'd be able to develop for more than a couple of months without a syadmin staff, you're deluded. They might not contribute directly to the revenue stream, but without them you'll be contributing a lot less each month, because you'll be doing your own admin. Pretty quickly everything will go to hell in a handbasket with incompatible development environments on machines because of insistent system administration. I've worked in shops with an admin staff, and everything tended to run pretty smoothly. I've worked in shops without them, and people tended to loose several days a month to admin issues. Working as a one man operation now, I can assure you that a sysadmin is worth their salt. I've lost contracts simple because I couldn't get my system whipped into shape in time to meet deadlines.
Wed 25 Feb | Mike | 'All sysadmins do it tell you why you can't do what you need to do to serve the customer.' You mean like 'no, you can't send an email with a 60mb attachment' To be honest. Sales people drive the whole thing. Developers are a supporting role to them, and sysadmins to them. Also a plus of being a sysadmin, our jobs aren't going to India in such droves.
Wed 25 Feb | Philip Dickerson | It seems to me that attempting to block spam at the server (instead of filtering it at the client for example), plus blacklisting domains, causes more problems with email than it solves. I have never sent spam, but I have had my email blocked (blacklisted) for a period of time because someone else at the same hosting service was sending spam, I have had mail undelivered (with no notification) because of spam filtering or blacklisting at the company to whom I was attempting to send email, and I know the owner of a small business who blocks all mail from free email accounts such as Hotmail (and thus potentially misses sales opportunities). There have also been times when the server-based spam filtering software at my ISP or webhost has had problems and just dropped or discarded all emails either being sent or received for a few days at a time. Usually there is no recourse for any of these problems and no practical way to get off blacklists (especially private corporate blacklists). If your email address is spoofed as the (false) 'from' email address for spam or virus emails, then it only gets worse for you. For another opinion on this issue, see Dvorak's latest article at PC Magazine http://www.pcmag.com/article2/0,4149,1537408,00.asp where he complains that his personal email is now blacklisted by the entire att.net domain and he has been unable to find anyone at AT&T to correct it. He 'did a Google search on this problem and found numerous complainers who had this happen. All of them said that they could find no mechanism to correct this ridiculous situation.' (Yes, I know he is deliberately controversial, but he still highlights an important issue.)
Wed 25 Feb | Philip Dickerson | Coincidentally, Microsoft has just announced a proposal to reduce spam (Sender Authentication, or 'Caller-ID' for email): http://www.microsoft.com/presspass/press/2004/feb04/02-24RSAAntiSpamTechVisionPR.asp http://www.microsoft.com/mscorp/twc/privacy/spam_callerid.mspx 'To be more effective in the fight against junk e-mail, filters need additional information that is not available in e-mail messages today. Microsoft believes some relatively simple but systemwide changes to the e-mail infrastructure are needed to provide greater certainty about the origin of an e-mail message [...]' 'It is based on three proposals to better enable effective filtering: - Establish a verifiable identity in e-mail through a caller-ID approach - Enable high-volume e-mail senders to demonstrate their compliance with reasonable e-mail policies - Create viable alternatives for smaller-scale e-mail senders to distinguish themselves from spammers' Microsoft's proposal has some additional mechanisms for verifying the source of email compared to 'Sender Policy Framework' (SPF - http://spf.pobox.com/ ) which is also a proposed mechanism to reduce spam emails sent from spoofed addresses. The CTO at Sendmail appears to be ready to support this Microsoft proposal in the Sendmail product: https://www.sendmail.com/smi/news/pressrelease.jsp?eventOID=80352&localId=USA
Thu 26 Feb | Mediocre ASP Monkey | >> I know the owner of a small business who blocks all mail from free email accounts such as Hotmail (and thus potentially misses sales opportunities). << 10% of our clients use hotmail alone. I would point-blank refuse a request to block hotmail from our PHBs.
Thu 26 Feb | a cynic writes... | The impression I get is that the policy tends to come from the PHB level based on the contents of their in-box on any given day. Which obviously doesn't lead to a coherent solution for anyone. I would prefer to implement some sort of filtering at the server for two reasons - the first being trying to get everyone working on a local filter strikes me as being like trying to nail jelly to the ceiling, the second being that otherwise how to you cover general mailboxes? As always the devil's in the details.
Thu 26 Feb | David | Mike, your attitude is repulsive. pdq, yours is almost as bad. Both of you seem to be stereotypes of the bad side of your jobs. Bad sysadmins tend to make tyrannical decisions that guarantee their control of the network and reduce any chance that they'll have extra work. I mean, the idea that you'd willingly chuck emails that might be extremely critical to the company just so your won't have to deal with Spam volume indicates that you have no idea why you are employed at all. And to make the offhanded suggestion that all critical issues are handled with phone calls shows a profound ignorance of the real world. Email has become a Very critical form of both business and personal communication. People do and will continue to send critical messages this way. Phone calls don't generally leave paper trails, so lots of people PREFER to send critical messages via email. Again, my main point was that bad filtering at the server level is throwing the baby out with the bathwater. Good and careful filtering at the server level, with practically NO chance for false positives, even at the expense of letting some spam through, is good. Unfortunately, it seems that few companies have such a system in place.
Thu 26 Feb | Stephen Jones | What's PHB?
Thu 26 Feb | RocketJeff | 'What's PHB? ' Pointy Haired Boss - a.k.a. the boss in the Dilbert cartoon. PHB is now (almost) universal shorthand for a bad manager or bad management in general.
Thu 26 Feb | Mike | 'Phone calls don't generally leave paper trails, so lots of people PREFER to send critical messages via email.' Email doesn't always either. Ask Microsoft. One company I worked at previously purposely did not back up email. They were afraid of data migration. You know, data becoming evidence. 47% of the mail coming into my domain is spam and or viruses, what do you suggest I do. We do audit for false positives and haven't had any problems. Believe me, the users would rather have 20 less spams a day at the risk of losing an email. To act like one dropped email is the end of the f'ing world is just stupid. Like I said pick up the phone, on a good day, you can't guarantee your mail was read by the recipient without them replying or you calling them. Having policies and procedurs in place to reduce work and foster reliablity just make sense. Developers do this too, not just sysadmins.
Fri 27 Feb | Stephen Jones | ----'To act like one dropped email is the end of the f'ing world is just stupid. '----- Might not be the end of the world but it can be the end of your company if the junked email happened to be a potential customer sending round for quotes. Normally the dropped email is simply the end of one contract, or another three months trying to hire the right candidate because you junked the resumefrom the only candidate that fitted the qualifications. ----'Like I said pick up the phone, on a good day, you can't guarantee your mail was read by the recipient without them replying or you calling them.'---- You don't have any idea, do you? It's quite possible that you and the person you are sending your emai to are never actually in the office at the same time. More importantly, your suggestion does nothing to stop the problems your company will have if your system junks email it should be receiving. Or are you suggesting your company should put up disclaimers on the web site and all emails it sends saying ''to reduce work and foster reliablity just make sense', and as a result we can't guarantee anybody in our company will ever read the emails you send unless you take the time and expense of phoning the contact person you may not even know the name of to check.'
Fri 27 Feb | David | What Stephen said. There is no excuse ever for a company deleting a valid email once it gets inside their walls. None. Mike mentioned that 47% of the emails that come in are spam or virii. That's actually probably lower than my company, or at least much lower than my personal percentage. That said, it's probably safe to can all the emails with virii. After that, you only have to deal with the spam. If you can't then manage to trim that at the server while guaranteeing no lost emails, then you need to put filters on the clients. In all likelihood, there are only a few client email addresses that get most of the spam anyway.
Database utility idea/request | Wed 25 Feb | Inigo
You know what would be a really useful database utility? A proxy JDBC driver, that records all the SQL statements that go through it, and will tell you what databases and database versions theyll work on. So, you just plug this JDBC driver into your existing application, run through the app (hopefully with your already written automated tests) and it will give you a complete report on what databases it will work on, and what Oracle/DB2/MSSQL/whatever specific SQL youve used Does anything like this exist? The only vaguely similar thing I know of is the SQL validator at http://developer.mimer.se/validator/index.htm Since the hard part would be working out whats supported in what databases, once youve done it for Java JDBC it should be fairly easy to do for .NET or anything else.
Fri 27 Feb | Mikayla | Hey, the universal SQL parser is on my list too! Right after this great idea I had for a self-correcting regular expression parser, like if you type a misspelled word in MSWord it'll suggest stuff out of its database! Oh, and a programming language for nonprogrammers who didn't graduate high school, something that's simple and easy to read, maybe even just drag-and-drop, but at least as powerful as VB! Funny thing is, I've had requests for each of those (or more complex things which reduce to those) multiple times in the past. Not only did I get to downgrade my technical skill estimate for the person requesting, but all the fellow programmers who said 'Wow, great idea!' and immediately started trying to design one. I'm not saying these things can't be done of course -- all three would be interesting, as academic exercises -- I'm just saying that in 99.999% of cases they aren't worth it.
Best argument against OS I've seen. | Wed 25 Feb | RP
In this interview ( http://www.crn.com/48159.html ) Martin Taylor says it all about the open-source myth of the many eyeballs: Just because you have more people looking at the code does not guarantee a level of quality, because those people might not be the most-qualified people to do code review. Lets face it. How many people who use Linux actually read the source code? Of those who read it, how many actually are *very good* programmers, let alone *masters*?
Wed 25 Feb | no name | Let's face it. How many people who use Windows actually read the source code? Of those who read it, how many actually are *very good* programmers, let alone *masters*?
Wed 25 Feb | Steve Jones (UK) | 'How many people who use Windows actually read the source code?' More than Microsoft might like, according to recent news :^)
Wed 25 Feb | Jeroen | This argument goes both ways. Does a closed source software vendor make any guarantees about the level of expertise of its employees? As a software buyer I'm interested in functionality, support and price. OSS can score pretty well in all of these categories. I'm not saying that OSS as a development model guerantees high-quality software, but it CAN produce amazing stuff.
Wed 25 Feb | Just me (Sir to you) | So we all seem to agree that the fact that the source is "open" is completely irrelevant to the end user?
Wed 25 Feb | RP | In practical terms and for the majority of users, yes it is.
Wed 25 Feb | Aaron Lawrence | We can maybe agree that with regard to the security/quality of code, open source is irrelevant to a user. But, what about *support*, especially when a team/vendor dissappears? A few closed-source companies are really responsive to users... but most bury themselves behind layers of bureacracy, and even if they *do* listen they don't make any sign of it. Open source is generally a lot more responsive, assuming enough competent developers. The biggest argument against OS to me is, how the heck do I support myself financially if I do it? I don't buy the 'sell yourself as a consultant' thing, that sounds like crap.
Wed 25 Feb | Simon Lucy | Depends who you're selling it to. If you're selling it to someone that is willing to install and build it themselves, maintain it themselves and so on, then you can't charge very much. Probably nothing at all (though see Red Hat et al). If, on the other hand, they want it installed, configured and maintained and they want it supported afterwards then yes you can charge what the market can stand. As for the many eyes 'myth'. It isn't the only reason for Open Source (much as the FSF would like to think it is), and for some products it does work very well. Open Source exists as a simpler and generally kinder licencing model than the 'free' licence of GPL.
Wed 25 Feb | Just me (Sir to you) | 'Open source is generally a lot more responsive, assuming enough competent developers.' Wouldn't it be fare to say that it is really all over the place, from brilliant to awfull? Hey, isn't that just how the other half lives as well?
Wed 25 Feb | a cynic writes... | As I've said before, the philosophical background of Open Source is an academic one and this aspect has its origins in peer review. I suspect telling a group of scientists that peer review was worthless since you can't guarentee the quality of your peers might draw some interesting replies - a stony silence might be the best you could hope for. The key factor is that open source doesn't guarentee an efficient peer review process - it just makes it possible. As to the advantages to the end user well I can think of two. The first is that I trust code that has the *possibility* of code review more than that which doesn't. Which means either a well known company or FOSS. The second is what happens if a company goes bust - with FOSS at least the project can continue. Finally, a few months ago I asked a question on a similar thread which no one answered - so I'll ask again. The single biggest software expenditure I'm responsible for is the maintenance of a membership database. What would be the difference, if any, if the suppliers had used open source tools and made it open source.
Wed 25 Feb | Just me (Sir to you) | 'The single biggest software expenditure I'm responsible for is the maintenance of a membership database. What would be the difference, if any, if the suppliers had used open source tools and made it open source. ' The answer seems obvious: If you had the source to your DBMS, what would you do with it?
Wed 25 Feb | a cynic writes... | Not have to pay for code escrow in the event that the supplier goes bust.
Wed 25 Feb | T-90 | Really good troll I must say!
Wed 25 Feb | a cynic writes... | To expand slightly - we didn't take the code escrow option but a number of other organisations did. If we did have the source available and there was no difference well - then there's no difference so what's the problem. Personally I'm not religious about software licensing - I can see advantages and disadvantages to FOSS and providing you go in eyes wide open it *can* (please note conditional) be the basis of a business.
Wed 25 Feb | _ | Bad Programmer's Existenz Angst at work :O
Wed 25 Feb | a cynic writes... | mmm...I've just gone and had a look at the interview that the original post points to. The first sentence reads: 'As general manager for platform strategies at Microsoft, Martin Taylor leads the software company's charge to contain and eventually eliminate open-source technology.' Light dawns.
Wed 25 Feb | Bruce Johnson | Being something of an OS newbie maybe someone can clear this up for me... Most Open Source projects (Open Source Licenses?) I've seen seem to imply 2 things; a) the source is available for anyone to look at b) you can distribute binaries made from the source, and/or the source itself. I'm a commercial developer. Frankly the first option looks nice. The customer can have the source - I don't mind. What I mind is them taking that source and distributing it further. Even distributing it in their own organisation. In other words I still need control over who runs the program based on my source. While I'm all for 'giving it away' unfortunately I need to earn a living as well. So - is there a middle-ground license that allows my customers to get 'open source' code, but not 'freely usable / distributable' code...? Bruce
Wed 25 Feb | Dan Brown | 'So we all seem to agree that the fact that the source is 'open' is completely irrelevant to the end user? ' Depends on who the end user is. As a developer (Just because I'm a developer doesn't make me any less of an end user) I like to have the source to any libraries or components I might use. In fact, if it doesn't come with the source or I can't arrange to buy it, I won't use it. Been burned by binaries one too many times.
Wed 25 Feb | Simon Lucy | Yes. You give the customer a licence to the source code which is perpetual but you restrict them from producing derivatives of it, or selling any part of it or valuing it as an asset. E.g. 8.2.The Client is hereby granted a non-exclusive and non-transferable licence to use and to reproduce but not to distribute or sub-licence, the software for its own business purposes, subject to any limits of simultaneous usage or numbers of copies defined by the Software Licence or the operation of the Software..
Wed 25 Feb | Bruce Johnson | Thanks Simon... Would that classify the project as 'Open Source'? Or does 'Open Source' by definition imply 'free' ? Bruce
Wed 25 Feb | a cynic writes... | If memory serves, I think the 'Q' licence only lets people redistibute changes as patches. The FSF ( http://www.gnu.org/licenses/license-list.html ) have a list of licences with the conditions. There's quite a bit of rhetoric involved as they push their own GPL. The OSI have a list of licences which qualify as Open Source ( http://www.opensource.org/licenses/ ). Alternatively if you know what you'd like to allow and prohibit you can write your own.
Wed 25 Feb | Simon Lucy | That would be a proprietary licence. An Open Source licence generally lets you use the source as you wish, create derivatives, give them away and so on, the only proviso is that they have to maintain the Licence itself. There are a class of licences that let you combine closed source and open source, for instance the MPL family of licences as used on Mozilla. Then you can distribute the basic source of the product and put controls on some part of it, or not give them the source to that at all.
Wed 25 Feb | Eric Debois | The OPs argument is not an argument against OS, it is a counter argument to a common argument for OS. Big difference.
Wed 25 Feb | a cynic writes... | Agreed -  please note however OP's error.
Wed 25 Feb | Junkster | This isn't an argument against open source, as much as it is a damper on the zealotry of people like Eric S. Raymond.  Open source is very good in many ways, but those ways aren't always what the crazies think they are.  Or more that many OS advocates incorrectly prioritize the advantages.  I really should say "advocates" instead of "crazies" :)
Wed 25 Feb | Li-fan Chen | RP, that logic from which spring the argument you've quoted is pretty sound. However, the law of Your-Mileage-May-Vary always applies. There are plenty of orphaned source out there (that used to be commercial closed-source, used by many commercial users) that are now open sourced. They are orphaned in the sense that the company who's doing the open source didn't contribute to building a community of interested programmers who will chip in fixes, evaluate one another's work and work together towards common upgrade milestones. When you end up with an orphaned software, the source code is out there, but no one is looking at it. There's also software so large and boring, hardly anyone would be interested in reading the code, unless the community was so large that someone is bound to be so interested that he or them might make a good contributor or code fixer. It really depends on the situation. If an open source project was implemented using a fairly high level programming language (say Zope) or the percentage of C/C++/assembly is kept to a minimum (OS2 is all assembly, Linux kernel is mostly pretty readible c), or the amount of bad coding is kept to a minimum, careless bugs can still be accessible and found by contributing editors. So as an argument against OSS, it won't deter interested parties (who are willing to put in the effort) from open sourcing their software.
Wed 25 Feb | x | Scientists are paid to discover things, not create things. That's the first reason peer review in academia does not extend to software development. Second, code in software companies does get peer reviewed. It gets peer reviewed by professional developers who spend a lot of time understanding a particular code base. > The single biggest software expenditure I'm responsible for is the maintenance of a membership database. What would be the difference, if any, if the suppliers had used open source tools and made it open source. The difference would be that the developers who created the DB would not get paid, while your business presumably continues to make a profit. Exactly why is it wrong for software developers to get paid?
Wed 25 Feb | RP | Li-fan Chen: Isn't Zope a CMS built in Python?
Wed 25 Feb | a cynic writes... | Since the developers currently get paid from the annual maintenance money, they would presumably continue be paid in the same way. Unless of course there is some hitherto unnoticed requirement in the Open Source Definition? The point I was trying to make (he says, beating his head lightly into his desk) is that the business model of getting most of your money from a long term maintenance contract is already in place. Therefore whether the code is closed, open, free, unfree, half-free or locked up in the safe except on alternate Wednesdays doesn't make the blindest bit of difference. If I was talking about a shrinkwrap program then the position would be different. But I'm not - so it isn't. On a calmer note, I agree that any decent company will have it's own internal code review. The problem then being establishing a reputation as a decent company.
Wed 25 Feb | x | It's not correct that the 'business model of getting most of your money from a long term maintenance contract is already in place.' For people who develop software, that's just not true. In particular, developers of very good software, where it's easy to use and requires no annual maintenance, would receive no income. This is where Raymond and his minions reveal their true motivations. > Therefore whether the code is closed, open, free, unfree, half-free or locked up in the safe except on alternate Wednesdays doesn't make the blindest bit of difference. It makes a lot of difference. It really does.
Wed 25 Feb | RP | What you've just said explains clearly that 'leak' of Windows source code. Look at the logic: Microsoft knows it will eventually open-source windows. It's facing a barrage of incoming fire because of alleged vulnerabilities on it's code. What's the remedy? Hurry up what's innevitable, show a bit of your own code, because you just know it's that good to withstand peer review in the wild, and then cry foul, to cover up the tracks. Damn, these things make so much sense once you start thinking about them....
Wed 25 Feb | Mike | Two things: 1. The guy in the interview works for Microsoft so the interview = marketing. 2. The best reason to support open source software is that it gives Microsoft a sh!t fit. Microsoft lowers prices and try to make a better product. For me FOSS isn't about some do gooder free the code from da man approach, it means I get lower prices on some things. I'm not even going to read the article. Next time send me a glossy brochure, Microsoft.
Wed 25 Feb | Dennis Atkins | I too wondered about the many eyes argument. On one of the open source projects I have contributed quite a bit to, I put a comment in the source along the lines of 'A $25 reward with be given to the first person to email me at the following address...' There are over 100 developers on the active project and over 10,000 active users. The reward has stood unclaimed for 3 years now.
Wed 25 Feb | Almost Anonymous | 'The reward has stood unclaimed for 3 years now.' Like, if I saw that comment, I'd actually email you. I suppose being on the Internet these days makes everyone a bit cynical. Anyway, the 'many eyes' argument misses this point. I run Linux but I've never looked at the source code. I'm not a kernel developer. However, IBM has kernel developers - Red Hat has kernel developers - SUSE has kernel developers - Debian has kernel developers - SYSGO (embedded Linux) has kernel developers - The National Security Agency has kernel developers - The Chinese government has kernel developers - Open Source Development Labs has kernel developers... I could keep listing companies and organizations all day. These are organizations that pay people to work on the Linux kernel. Is that a lot of eyes looking at (and working on) one codebase? -- hell yeah.
Wed 25 Feb | a cynic writes... | x I was referring to a very specific case. Look through the archive at Joel's piece 'five worlds'. The two nearest to what I'm talking about are 'consultingware' and 'internal'. i.e. a specialised application with a very limited market. A lot of the current features grew out of custom extentions for various organisations. I agree that shrinkwrap is a whole different ballgame. Now let's say I had access to the code. Is it likely that I'll try to rewrite it myself and kiss my career? Or our organisation suddenly change from a professional institute to a rival firm and breach its royal charter? Or is it more likely the CD would sit in the back of the filing cabinet and I wouldn't worry about our suppliers going bust?
Wed 25 Feb | a cynic writes... | correction That should read '...rewrite it myself and kiss my career goodbye.' Sod it I'm going home.
Wed 25 Feb | Ricardo Antunes da Costa | Ok. Linux is always brought up as an example of OSS that has a lot of developers, and indeed that's true. But Linux is one of the few good OSS in this situation. Most of OSS have a small development team doind 99% of the work, with an eventual contribution of somebody outside of the core group. Note, I'm not saying that these aren't good software, but that 'releasing the source-code to improve your software with the contribution of thousands of developers from all over the world' is, in most cases, a myth.
Wed 25 Feb | Almost Anonymous | '...in most cases, a myth.' I totally agree on that one. Although I've seen a number of small projects (take the programming language Io for example) that has a small following of developers. There is always a chance that your small project will gain some developers. It really depends on the project -- some projects are more likely than others.
Wed 25 Feb | Li-fan Chen | RP, I think the sentence could be worded better, but yes Zope is a CMS system, Python is the language in question.. The sentence was regarding Zope.
Wed 25 Feb | Should be working | Most open-source software is crap, and so is most closed-source software. The 'many eyes' argument is not the real problem with open source software. The biggest problem companies have with OS is lack of support. Apart from the dozen or so top OS products, there is virtually no official (contractual) support for OS software. (At least to my knowledge.) To those who say 'but you don't need support, you've got the source,' I say you don't get it. For every bug and feature you want fixed/implemented, you can (1) ask the project developers to do it and hope they get to it in an acceptable timeframe; or (2) pay someone to do it (current staff or outsourced). Either of these options can easily exceed the price of a support contract. There are, of course, exceptions. It's nice to have that flexibility -- the option of being able to fix/build it yourself vs. have someone else do it (paid or not, under contract or not). And of course I'm speaking from a business perspective.
Wed 25 Feb | x | Yes, IBM, Red Hat, SUSE and Open Source Development Labs pay developers to examine the source code or, more correctly, to do development. But that is different from the original claim of the open source movement; that developers would just magically contribute for the Good of the Community (while others pocket the profits.) The paid positions by those companies actually demonstrate why open source as a philosophy is crap. Developers need to be paid. It then becomes a question as to whether they get paid for their own work, or get paid by pimps earning revenue from other activities.
Wed 25 Feb | x | Cynic, I don't know where you've spent your life. Yes, there are plenty of firms that, if they had access to the source code, would flick the original developer and his 'support contract,' not to mention developing a competing product. It happens all the time.
Thu 26 Feb | a cynic writes... | In the charity, non-profit & small business sector. Which is a larger market than most people realise. I wouldn't trust a large or even medium size firm to play the game - but at the end of the food chain I work in there are neither the technical skills nor the business acumen to become a competitor. To give an example of one previous workplace, I can't quite imagine a charity which promotes fostering in the third world suddenly becoming a database company - perhaps you can. In the end, I pay our money for the ability to ring up a developer when there's a problem and get it sorted out. And I do have pretty direct access to the developers. I doubt that it would be cheaper to cheat and buy in a developer who'd have to learn the code first as opposed to talking directly to the guy who wrote it. In the end I'm not advocating our suppliers Open Source - I really don't care. However, I do think in small vertical markets the very real business disadvantages of OS are minimised - and they pretty much disappear altogether when writing applications for internal use.
Thu 26 Feb | x | Cynic, you're a decent guy and you probably mostly work with honest people. Sadly, the rest of the world is not like that at all.
Thu 26 Feb | X's inner voice | >>Cynic, you're a decent guy and you probably mostly work with honest people. Sadly, the rest of the world is not like that at all. i.e. 'it's nice you're an honest guy. Since I'm not, I'd rip you off in a heartbeat - so would everybody else since everyone is as honest as I am'
Thu 26 Feb | a cynic writes... | I think that last one (from 'X's inner voice') was uncalled for. I don't believe x is dishonest, he just doesn't trust other people with code. We disagree - it's allowed.
Thu 26 Feb | Me | Where is the issue. Let's see ... I can buy package A and get the source code (and can change) or I can buy package B and not. Who would choose B? You could say it depends. If an egregious bug or user interface issue arises how would you rather respond to an internal client: 1) we have sent the request to company B and we are waiting for their response; or 2) we are fixing now and expect a release in X time. I would rather choose 2. My talent, experience, knowledge are now necessary. Choice 1 might require me to be able to wait and use a phone. What kind of person would choose 1?
Fri 27 Feb | Stephen Jones | I've just finished setting up four computer labs at work with a total of 184 machines. The teachers machine in each room is attached to the college network on a second NIC, whilst the other 45 machines are simply networked peer-to-peer in a workgroup including the teacher machine. The teacher machine was only attached to the college network for about half-an hour to transfer files from another teachers machine. Every machine is now affected with MS Blast.exe Somewhat miffed, I went to our sysadmin, and asked him why the hell he hadn't managed to clean the domain of MSBlast a year after it had come out. The explanation was apologetic but chilling. There is not a single machine on the network with MS Blast. It's affecting the switches. Marconi no longer supports the switches and is not issuing any software upgrades. Now if the source code was available somebody might have been able to issue a patch.
Fri 27 Feb | x | >> 'it's nice you're an honest guy. Since I'm not, I'd rip you off in a heartbeat - so would everybody else since everyone is as honest as I am' Thus you highlight the dichotomy of open source advocacy. My arguments have been concerned with defending creators against other people stealing their work. Me, you seem to be arguing that a customer would choose the cheaper option. The answer is that of course they would prefer the cheaper option. Customers always do. Sellers have other interests.
Is this interview question offensive? | Tue 24 Feb | Discover... LIMPI...
Is this interview question offensive? - Do you have any reservations about my ability to do the job? I ask this question to clear up any doubts the interviewer may have about my abilities, but I certainly dont want to offend anyone with it. Would you, as an interviewer, take offense to this question or would you use it as an opportunity to clear up any misunderstandings?
Wed 25 Feb | Bored Bystander | I don't think it will 'offend' most interviewers but the results are not going to be terribly informative. In my experience, most interviewers hold their cards very close to their chest, and with this question you're also depending on their ability to be candid and communicate clearly in a situation that is somewhat adversarial. Also, if the interviewer thinks that you're their man/woman, you will pretty much know it, whereas if they are unsure, then they will need time to think it through, and the answer you will get will be premature. What is the purpose of this question? To find out how you did early? To extract a commitment? I would say - formulate a better question, such as asking the interviewing organization at the end of the interview process when you can expect to hear a definite answer. Get a commitment on a decision process, don't try to force the process itself.
Wed 25 Feb | Steve Jones (UK) | I've seen this recommended a lot, but as someone who's done hundreds of interviews, when hiring dozens of candidates, I think it would seem too aggressive. What interviewers really want is someone they thnk they can get on with and who will 'fit in' well with the team. (Obviously, they need technical stuff too, but that's not always the issue, as generally there are a number of suitable candidates, on paper.) It does sometimes happen that you interview someone and they're just so good a fit that you offer them the job at the interview, but this is very rare. In other cases, you must keep your options open. With this in mind, at best you're going to get a meaningless 'well, we'll certainly keep you in mind' comment. On a more serious note, I have heard of cases recently where a candidate has sued an employer for not giving them the job. This was not due to anything like the fact that the candidate was discriminated against (i.e. for race, sex, disability, etc), but was simply that someone else was chosen. This is in the UK, but I presume it would also happen in the USA. In this kind of environment, asking such questions could be even more inappropriate.
Wed 25 Feb | Eric Lippert | I would not be offended. I also would not answer the question. It's a ridiculous question to ask someone in an interview. It's ridiculous becase OF COURSE the answer would be 'yes'. I haven't recommended anyone yet whom I didn't have _some_ reservations about, because _I'm_ not a perfect interviewer. I have reservations because even if I think you rock, I might be making a mistake. After all, that's why we have multiple people do interviews! When I'm done interviewing someone, you'd better believe that I'm immediately on the phone with the next few people on the interview loop describing my reservations and identifying holes in the interview so that they can dig into them and dtermine whether they're deal breakers or not.
Wed 25 Feb | Simon Lucy | To be honest, that kind of question comes down to 'do you like me?'. Which given all other factors being equal is what its going to come down to, but when did you ever warm to or respect someone that needed reassurance that they were liked and acceptable? What is allowable is some kind of question about how committed the employer is to the job. From the interviewer's point of view it becomes 'how committed are you to me?'. That can be useful (its useful in selling situations and is a way of closing a sale), but with the wrong interviewer and the wrong environment it can become a turn off. So its horses for courses.
Wed 25 Feb | Gareth McCaughan | I assume that the point of the question isn't really to get that 1-bit 'yes' or 'no' (well, actually it's more like a 0.0015-bit 'yes' or a 10-bit 'no', since 99.9% of the time the answer is 'yes'), but to elicit some information about *why* the answer is 'yes'. Perhaps with the idea that then you try to convince the interviewer that the specific reservations they have are unnecessary. So the fact that the answer is almost universally 'yes' isn't a reason to avoid the question. I still agree with the people who say it's not likely to be a very helpful question. I certainly wouldn't be much inclined to answer with an analysis of all the ways in which I found the candidate unconvincing, and if the candidate tried to 'push' me into giving details I would find that very disagreeable. When you're being interviewed, you don't want to make your interviewer feel uncomfortable. But no, it's not *offensive*.
Wed 25 Feb | Aaron Lawrence | As an occasional interviewer, it seems more sensible to ask "why not" if you don't get the job. That way you don't interfere with the flow of the interview, are unlikely to offend, might get more honest/considered answers. Of course, often you would not get any response still, but you just have to accept that.
Wed 25 Feb | www.marktaw.com | Perhaps a better question might be. 'I'd like to take this opportunity to clear up any reservations you have about my ability to do this job. Is there anything you would like me to clarify or expand upon?' Even if the answer is no, the interviewer may walk away with a sense that he's been able to conduct a complete interview with no unsanswered questions.
Wed 25 Feb | no name | No, it's not offensive. Asking questions like that is a standard part of business transactions intended to catch any unexpressed reservations, and to then deal with them if possible. Eg 'You're a bit light on linear math.' Then you explain what linear math you've done etc ...
Wed 25 Feb | tapiwa | I am one of the proponents of this type of question at the end of an interview. I have interviewed candidates before, and don't find it offensive at all. I think a half intelligent interviewee can tell how well an interview is going by the time they get to the 'Do you have any questions for us' stage. I tend to save this question for last. Like someone said, it does give you an opportunity to rehash, and sell strengths that you might not have emphasized on the CV or during the interview. The classic is 'we like you but were looking for someone with a bit more experience in ....'. This is the bit where you can pull out projects that did not make it onto the CV but do have a direct bearing on the subject.
Wed 25 Feb | Ron | Sorry, it comes off as a little desperate-sounding to me, more like 'gimme another chance to tell you what you apparently want to hear.' If the job requires linear math, and you've demonstrated during the interview you're weak in linear math, what good is saying 'you're weak in linear math' then having you explain some more? Why not explain it all the first time? And 'ability to do the job' is not what most interviewers are looking for... a lot of people out there are able to do the job. It's 'will you excel at this job', 'will you fit in the company environment', etc. Those aren't things you can explain away at the end of an interview, so you should demonstrate it DURING the interview.
Wed 25 Feb | tapiwa | Ron, It is amazing how many things are implicit in conversation. Not sure where you are, but say you are American, try watching hard core British comedies. Most of the jokes will be lost on you because they are context driven. Ditto the other way. Interviews are the same thing. Some companies will list requirements as XYZ, assuming that everyone knows that XYZ comes with ABC, because that is the way they know it. The problem is that sometimes it does not, and while they have not mentioned ABC, if they do not see it on your CV they might knock you down for it. You might have thought ABC too trivial/old/whatever to stick on the CV, so unless you get them to raise it, you could be marked down. A good salesman always asks the customer if there is something else he wants to know about the product, or indeed what are the gotchas that all things being equal, might prevent a sale/purchase.
Wed 25 Feb | David | As an interviewer, I would be offended, but I would be very uncomfortable answering that. Honesty is great and all, but I don't know the interviewee well enough to objectively criticize them to their face at that point. I'm betting the vast majority of people would feel the same way. So, I'd say no, never intentionally put the interviewer in a position to feel uncomfortable with you.
Fri 27 Feb | SteveM | Strangely enough I got asked exactly this question today. To tell the truth, it basically made me feel like a rabbit staring down the headlights! I mean, what can you say under those circumstances? You can't really say anything too negative off the cuff without the chance to think about it a bit more and you can't say nothing at all (I mean, how pathetic is that?). Luckily he rescued me by suggesting something a bit negative but not too bad from his CV and I jumped on that... so allow me to cast my vote against using this question. As someone else said, all you'll do is make the interviewer uncomfortable which will have at best no effect. And no, I didn't ask him if he was a JoS reader... ;-)
Working for Game Companies | Tue 24 Feb | Wannabe_Game_Developer
Hi, I was wondering if any of you have experience working in a game company, and are willing to share it? For example, do any of you know what its like to work at Sierra, Electronic Arts, etc? There is a pretty good chance Ill be working at a major game studio soon, and was wondering what it is like. (For example: How do they tend to rank on the Joel Test?) Ive only done engineering R&D type programming before (simulations of physical systems, performance analysis, etc). What skills should I pick up before I make the move? I know thats a broad question but any help or ideas would be appreciated.
Tue 24 Feb | flamebait sr. | Generally, they are alleged to have wretched development methodologies.
Tue 24 Feb | Exception guy | 'Generally, they are alleged to have wretched development methodologies.' That has been the experience of a good friend of mine who has worked at several in the last few years.
Tue 24 Feb | Wannabe_Game_Developer | Anybody have specific horror stories to tell, in that case?
Tue 24 Feb | r1ch | I have a friend who is a development manager at one of the largest games companies that reckons he's doing well if he leaves the office before 2am in the months before the release.
Tue 24 Feb | Sassy | Here's the question you need to answer: 'Do you really, really love video games?'
Tue 24 Feb | MikeMcNertney | Actually 'Do you really love video games' may be a good question to ask, but not how you think it is. From what I've heard, if you really love playing video games you might be better off not working for a game company. Lots of them work you to the bone and don't really pay comparable wages for the work As for quality of code, one thing to note is that most games are one-offs. After release the code is kept around for bug fixes but not really used for future products. As you can imagine this probably leads to the code being not so great, as maintenance is not an issue. Of course this isn't always the case. Some dev houses are better about using old code than others, and some games can build on previous games more than others. Some dev houses will treat their employees much better than others. As always, its all about generalizations. You'd really have to investigate the specific companies you might be working for
Tue 24 Feb | K | At least the mathematics of coordinate-space and projection transforms doesn't change.
Tue 24 Feb | Sassy | "Do you really love games to the point where you will put up with nightmarish schedules, low pay, and backbreaking labor to produce them?"
Tue 24 Feb | Burninator | A friend of mine who worked for EA said that they tend to do stints of a few months or so, when they are in 'ship mode' and are basically working as many hours as humanly possible. However, I was also told that they then take a number of weeks off. Their top programmers make good money for this lifestyle. That said, it's probbaly highly dependent on the specific project that you are working on.
Tue 24 Feb | MacSqueeb | Quoth Sassy, 'Do you really love games to the point where you will put up with nightmarish schedules, low pay, and backbreaking labor to produce them?' Holy crap!?!?! All this time I thought I was building a business application.
Tue 24 Feb | Wannabe_Game_Developer | Low pay? Not sure about that, at least in my corner of the world. One of my colleages just moved to a game development studio and is now making 50% more than he used to make. I supposed it's all relative.
Tue 24 Feb | Sassy | I've also heard that EA is a lot better than many others....
Tue 24 Feb | Immature programmer | One thing to think about is whether the studio uses a proprietary engine or uses a commercial game engine and/or middlewares. I used to work at a place that used a commercial engine and a physics middle package. NIGHTMARE!!! I now work at a place that does most-stuff in-house. Reuseability is, of-course, a huge issue because creating a new engine for every game isn't feasible. There's a dev culture, coding standards & practices, some documentation, and less of a 'code cowboy' mentality. I'm not saying that usage of 3rd party commercial game-engines/middlewares is generally a sign of a bad studio (most do). Just relating personal experience ...
Tue 24 Feb | Wannabe_Game_Developer | Immature programmer, Where do you work? It sounds great, and I would definitely want to work somewhere like that. (If you don't mind me asking, that is... we are anonymous, anyhow.)
Tue 24 Feb | Cubist | I worked at three studios over a total of six years. It's definitely a great experience if you're in your early-mid 20's, because the lifestyle tends to be an extension of college life. But once you're married and/or have other things going on, you get burned out quickly (which is why I eventually left). The other main problem is because everyone's generally young and inexperienced, there's all the development pitfalls like everyone wants to rewrite, estimates tend to be way off, and passions and tempers frequently flare. So it can be a high-stress environment. Also salaries tend to be low ($40-50K entry level, which is poverty in the San Fran area, up to maybe $80K with industry experience), and because most studios are barely solvent, it's typical to get laid off every couple years (or just jump ship). The good of course is the type of work you might be doing, and the easy nature of most studios' cultures (which could also be bad depending on your priorities) -- come in around 10-11, take a 2 hour lunch, 1 or 2 hour Counterstrike break, one hour dinner, and go home at 11 or midnight. But also realize a LOT of games nowadays are quick sequels and add-ons (so you'll be working with somebody else's spaghetti code); a LOT are based on licenses you probably have no interest in ('Ken & Barbies' Makeover'); and a lot are just crappy licenses you know nobody will want to play. It's rare you get to work on something original that YOU really want, so most programmers are just waiting for the chance to break off into their own studio and do their dream Game of All Games. But still it was a fun experience, I'd do it again...
Tue 24 Feb | Bumped and mapped | Games companies score badly on the Joel test. In many of them, but not all, development is run by people called producers or game designers, or by the art director. Generally these are by definition people without development backgrounds, and the results are the same as those in business environments. The developer is expected to be interuptable at any time. The significance of changes, or of devoting time to design, is not understood or respected. As a result, architectures are often poor and there is a lot of spaghetti code. Even worse, the hacker that causes the worst disasters is probably the 'coolest dude' and thus the most favoured by management and the producers. A small minority of games companies are run by software developers, and those are superb environments.
Tue 24 Feb | Immature programmer | > In many of them, but not all, development is > run by people called producers or game > designers, or by the art director. > A small minority of games companies are run > by software developers, and those are superb > environments. I wouldn't say a small minority. But yeah, my first experience in the game industry was much like what you said. Y'know artists complain about studios run by engineers. CAN'T WE ALL JUST GET ALONG?!
Tue 24 Feb | blackmesa | I'm not a professional, but I've read several books and articles on the game industry. There really is no consensus as far as a development process goes; when compared to other software industries, most game studios haven't caught up on software engineering practices. Check these out: http://www.convexhull.com/sweng/GDC2002.html http://www.convexhull.com/sweng/GDC2003.html Those are summaries of sessions on software engineering held at the GDC (game developers conference) in 2002 and 2003. You can also read the postmortems on Gamasutra.com; you have to sign up to read the articles, but they are free and well worth the trouble. Another good resource is the igda web page, especially the web links on industry realities in their 'breaking in' site: http://www.igda.org/breakingin/resource_links.htm It is also true that software developers are paid 20% to 50% less than they would in other software sectors ate the same level of experience; they also work far more hours, which is why the turnover rate is very high in the game industry. This isn't to say that one cannot make money making games, just that you shouldn't expect to. My two cents; sorry if I'm telling you stuff that you already know. :-)
Tue 24 Feb | flamebait sr. | I've met a lot of frustrated artist-coder types. Apparently people get the opinion that games programming and computer special effects are the mecca for people who are both artistic and technical. Which leads to endless problems because you start out most of those places as a grunt, where your suggestions aren't necessarily valued because you are doing somebody else's ideas, you work insane hours, etc. Which ends up with you either artistically repressed, or spending lots of your non-existent free time making your art and getting even less sleep.
Tue 24 Feb | Bob | I work at EA and I would say this thread is largely accurate. People have heard correctly, scores on the Joel test would be rather low. Pay is medium (but the stock helps), and hours are long, crunch time is long, code is hacked-up beyond belief at times. Work environment is pretty unprofessional even for a software house... not really a bad thing, but sometimes you get tired of old computers just sitting in the hallway for months at a time and stuff like that, your computer crashing all the time because of overworked IT.
Tue 24 Feb | no name | No, what happens is that the artist genius or the producer sees an effect in a new game, comes over when he gets in and says we have to have that effect. You tell him it would mean reworking the entire code-base and might introduce bugs. Plus taking two weeks. He grins and says he will buy you a coffee. A swell guy. Two hours later the art director starts yelling because you haven't finished something he needs. He calls you incompetent because he himself has used several advanced authoring environments such as Flash and can do these types of things in 10 minutes. You ask if you can work at home to get things done. The producer says you have to stay in the group so you're accessible. Eventually you post to JOS.
Tue 24 Feb | Mediocre ASP Monkey | I've been interested to note a couple of the top Neverwinter Nights module authors are Web/DB monkeys by day (not unlike myself) - they've had offers from the games industry, and turned them down. I suspect we can file them under 'smart guys' ;)
Wed 25 Feb | Mr Jack | Three words for you: DON'T DO IT!
Wed 25 Feb | blackmesa | Why, MrJack? I do not mean to start a debate, I'm actually curious as to where your statement comes from. I'm an aspirant game developer myself.
Wed 25 Feb | Katie Lucas | I interviewed at a couple of companies. Frankly I find it scary. There was one (names omitted to protect the guilty) -- I was given a tour round the place, looking at their current projects and I was talking to the lead developer of one thing and said 'so you're running all the stuff in the background with a finite state automaton?' There's this pause in the conversation. Lead developer of the thing turned out not even to have heard the phrase. Very, very scary. And they have ideas about code quality that frankly are only bettered by the banking industry. (Ahahahaha. Former employer has been making a pounding loss due to software errors. Still, on the bright side, having run up against the guy responsible, I know that although the code didn't work, it did have all the brackets indented properly...) And the comments about the studios being run by the wrong people is sort of right. Here in the UK they all seem to be run by people who made their money in the 8-bit era, and they now don't do coding. They just can't see why a game takes longer than a weekend to write...
Wed 25 Feb | Rob VH | 'He calls you incompetent because he himself has used several advanced authoring environments such as Flash and can do these types of things in 10 minutes.' HA! That is perfect. I just had my first experience working freelance for an artistic-type this year. He wanted a stock trading mockup that would do specific things for scenes in his movie. That experience is filed under #352 in 'Things I Will Never Do Again. Ev. Er.'... I think I learned a 'Great Truth' though -- movie people are assholes.
Wed 25 Feb | Mark Hoffman | 'Low pay? Not sure about that, at least in my corner of the world. One of my colleages just moved to a game development studio and is now making 50% more than he used to make.' I would say that is highly unusual. Either that, or your colleague was making a pretty miserable salary to start with. My friends in the industry make between 2/3 and half of what they could make if they worked in a corporate shop. They also work a great deal more of hours. They also have to be quite skilled with C++, physics and math. I have lunch with one of them regularly and I get to hear about the poor development practices; although I suspect his employer may be better than most. At any rate, from what I can see, being a game developer is for a very special type of person. A very talented person for sure, but also for someone who lives and breathes creating video games for a living and is willing to accept short schedules, low pay and long hours just to see their creation in the hands of millions of people.
Wed 25 Feb | Junkster | There are essentially NO development methodologies at game developers. This is because there's are huge issues like 'Is this actually fun?' or 'Does this paper design make sense as a game?' So game projects are constantly turning on a dime. What's really needed is some form of agile development, but most game developers are decidedly old school, often still very afraid of ten year old technologies.
Wed 25 Feb | Wannabe_Game_Developer | Hi everybody, Thanks for your comments. Please, if you have any more concrete experiences at real companies to tell, I'd love to hear it.
Wed 25 Feb | Katie Lucas | Go to www.gamasutra.com where there's a postmortem of a project to write an Indiana Jones licence. The team struggles valiantly against their schedule with too few staff for ages. When the staff finally arrive, they're fresh from a 2 year crunch to get the Buffy licence out of the door. After so long doing 7 day weeks they're too tired to really put in lot of effort... Management tells them they just have to 'make up the difference'... Still want to go work for games companies?
Wed 25 Feb | Groby | OK, let me adress a couple of comments in this. First off, I do work for a games company, and I like it. Having said that, yes, the environment is sometimes a bit backwards. I like tough challenges, so I'm trying to pull it forward a bit. Frustrating at times, but very rewarding, too... It's a tough job, but it gives you a chance to really flex your mental muscles. I did quite a few other things before this, and nothing comes close, with the exception of embedded work. ----- 'I used to work at a place that used a commercial engine and a physics middle package. NIGHTMARE!!!' Funny. We do that here, too, and it saved a lot of headaches. Was working around 3rd-party bugs a pleasant experience? Nope. But it sure beats having to reinvent the wheel yet again, and repeating all the mistakes made hundreds of times in other projects. ---- 'What's really needed is some form of agile development, but most game developers are decidedly old school, often still very afraid of ten year old technologies.' Never heard a truer word. On the other hand, there's a lot of experience backing that up. Once you've seen a couple of gung-ho, everything new projects explode because the new stuff has problems too, you tend to be cautious. The trick is finding the right mix. As for the agile development - that's crucial. If your build takes hours, you can't tune a game. ----- 'Management tells them they just have to 'make up the difference'... Still want to go work for games companies?' Yes - just grow yourself a spine, and say 'no' to unreasonable demands. Working unreasonable deadlines is usually by choice, because everybody feared speaking up. Try saying what's on your mind from time to time...
Wed 25 Feb | Sassy | Mandatory 12 hour days should be criminal - great for all the kids, but my wife would kill me.
Wed 25 Feb | no name | Projects based on a licenced character or movie are generally projects to avoid. This is because they're started and run by people without the capability to create their own technology or ideas, and are essentially pure cost plays. That is, they start with a fixed budget and then must get everything done for the lowest, usually very low, cost.
Wed 25 Feb | Cubist | Not true, projects are usually funded by publishers who only green light what they think are going to make the most money for the least amount of risk. Handing a wad of cash to a bunch of 24 year olds to come up with something new and cool is hugely risky, and they're always monitoring for proof of progress to justify letting it continue... I'd avoid those if it's job security you're after. BTW one of the big industry lessons I learned was to spread out the introduction of new bitmaps evenly through the project, instead of putting them all in at once. You can make all kinds of progress on elegant subsystems, networking, physics, AI, etc, and the execs and even your team will just stare blankly. But have an artist throw together a few new menu bitmaps, and everyone will oooh and aaah at how much new progress you've made.
Thu 26 Feb | Mr Jack | Reasons: The games industry is deeply, deeply fucked at the moment. As a sector games has a huge turnover - bigger than films - at the same time games development as a sector is loosing money. All the power is held by publishers (who are also loosing money) who have not the first clue about games and bring in their 'gameplay gurus' to 'help' and say things like 'it should be more like Tony Hawks' - which when questioned it turns out they've never played but think is cool. Add to that an expectation that you'll work into the wee small hours, and through your weekends, and be happy that they give you pizza. Management that *might* have been good at managing two people in a barn but hasn't the first clue about how to deal with a twenty five man project with a one to two million pound budget attempting to produce a game across eighteen months. Programmers who say stuff like 'I'm so glad we don't have to use that stuff we learnt at uni!' and generally don't have ANY grasp of how to put together a large project on a tight schedule. Games programmers are not the best in the world as much as they might like to think so - a significant portion are second rate bedroom hackers. And then you get artists - who have an absurd rate of talentless prima-donnas to contend with (although it should be said that an equal portion are hard working, immensly talented and deeply abused). And designers - most of whom are good at the jobs, or would be if the management stopped treating them like shit. Games development is soul destroying, burn-out city and a terrible place to learn anything except deep seated bitterness. I left games about a year ago - best career move I ever made.
Thu 26 Feb | Rob VH | UK game developers: I met an investment banker about a month ago who was working on a 'roll up' of games development companies in the UK. Have you heard anything about this, and do you think it would improve things?
Thu 26 Feb | Groby | Rob VH: It would certainly improve the financial situation of the ones left standing. It will not do much for the overall artistic quality of games. Many game developers are deeply offended by that. Me, personally? I'd rather do a blockbuster than an 'artistic' project that sells 25K copies. It's a personal choice, and one that the game industry needs to learn, fast. Either you make money, or you make art. So yes, a 'roll up' (if it is what I think it is - consolidation) is certainly going to help.
Fri 27 Feb | no name | Cubist, precisely. Licence offshoots originate with "businessmen," who then hire the cheapest people they can find, so they can pocket a profit.
Fri 27 Feb | Robert 'Groby' Blum | Amazingly enough, turning a profit is a rather good idea when you want to keep paying salaries....
malloc()ing powers of 2? | Mon 23 Feb | Willis.
Is this a good idea or not? I just read Joels back to basics article and in it he recommends allocating memory with malloc() and realloc() using powers of 2. It seems to make sense: limits the total number of calls to realloc() by always allocate more than enough memory; worst case scenario is allocating twice as much as you need; limits fragmentation. But in the comments to the article, many posters advised against the practice, but not with much elaboration. Could anyone comment on this further?
Mon 23 Feb | Brian | There was an interesting thread a few months back on comp.lang.c++.moderator where one of the STL implementors (Plaugher?) was talking about how in their newest release, they changed the std::vector growth strategy. It had been using 2**n growth (as most implmentations do), but they reduced it to 1.5**n. The reasoning was that having a lower base allows memory to be reused in subsequent allocations. That is, 2**n growth prevents malloc from reusing memory that is freed on previous resizes. I don't think I'm explaining it very well. Look up the thread if you're interested.
Mon 23 Feb | r1ch | I don't think there's a generic answer - testing and profiling on a case by case basis is probably the only way to know for sure. Allocating more memory may kill performance by causing more page faults for example. If you're working in multi-proc environments I highly recommend the use of Hoard however. See http://www.cs.umass.edu/~emery/hoard/ for details
Mon 23 Feb | runtime | As I think Joel's article about malloc() said, if you are trying to optimize your calls to malloc(), then you will probably confuse it. malloc() was implemented to optimize for certain use patterns. If your program does not use those typical use patterns, then malloc() run more slowly than it normally would. Plus this is pre-mature optimization. Why litter all of your code with calls to malloc() with size rounding? Though, I guess you could just write a malloc() wrapper that did the power of 2 rounding and then called malloc() for you. The moral of this story: measure FIRST, then optimize hot spots.
Mon 23 Feb | Christopher Wells | If you look at the source for the MSVC run-time library, you may see that it's already rounding up the size of your malloc requests to the nearest power of 2: i.e. there's no need to do this rounding in your application-level code; instead you should trust the compiler run-time library that you're using.
Mon 23 Feb | Insert half smiley here. | Not quite. It's rounding them to a granularity that is itself a power of two. I assume this is because the allocator will allocate chunks in some multiples of a power of two anyway, to ensure its own structures in the heap are aligned. It also makes the alignment a bit quicker, because you can avoide a divide and modulus, but I hardly think that will be a bottleneck.
Mon 23 Feb | Simon Lucy | From memory, ugh inadvertent pun, on i86 sbrk() which partitions memory when malloc() runs out of memory that it last sbrk()'d it does so on paragraph boundaries (the least 4 bits are zero). Malloc() has an admin overhead of allocating the chunk of memory and that itself should be on an even boundary so that you don't get into the hi-low fetch swapping problem. This argues for always asking for mod 16 sized allocations, however then you might get into the packed struct/unpacked struct issues with wastage, not to mention side effects like having unused memory that can be the target of security exploits. In the past whenever I've had to handle odd sized allocations for packed structures (frequently drivers and parameter blocks need this), I've ended up writing my own allocator to return byte aligned allocations.
Tue 24 Feb | Just me (Sir to you) | I always thought the powers of 2 thing was to minimize memory fragmentation.
Tue 24 Feb | Gareth McCaughan | Trying to second-guess your malloc implementation by feeding it sizes you think it will like is *insane*, even if Joel suggests doing it. 0. The first law of optimization: Don't do it. 1. Different implementations of malloc will work well with different sizes of request. You think you're being oh-so-clever by always feeding malloc a power of 2? So what happens if your program is run on a platform whose implementation of malloc that allocates stuff in power-of-2 sizes *and stores some housekeeping data inside the block*, eh? 2. You may think you know what *the* implementation does. (This generally means 'the one in the C library of the version of Microsoft Windows I'm using today'.) There is no reason whatever why this shouldn't change in a later version of Windows, and then you lose. 3. On the (frankly, rather rare) occasions when this sort of micro-optimization might be helpful, you can generally win much bigger by taking more advantage of the allocation patterns of your own application. Which you can actually control, unlike the internal workings of the platform's implementation of malloc. Allocating lots of blocks of size 12? Make a special-purpose thing for allocating blocks of size 12. You can save a lot of overhead this way. (You'd use the platform's malloc as a back end, allocate large enough blocks with that to make the overheads negligible, and use your own scheme for suballocation.) 4. If rounding up actually does anything, then one thing it does will be to make your program use more memory (so more page faults) and to make memory addresses of corresponding parts of two structures likely to have more identical low bits (so more cache line conflicts). This is not going to help performance. 5. Even if (1) you need your memory allocation to happen quickly and (2) you know that you'll only ever be running on one platform and (3) for some reason it's impossible or unpleasant to write a custom allocator and (4) you know that rounding up either won't use more space or won't use enough more to hurt ... just what do you think you're gaining by rounding up? It takes, like, maybe 5 cycles of branch-free code for the platform's allocator to do that. If optimizing that away is necessary for your application, then get the hell away from malloc and write your own memory management routines. In assembler. If you don't need that, then you don't need to save a few random cycles by rounding up your requests either. Oh, and ... a wrapper that rounds up to a power of 2? Congratulations! You have just pessimized your program's use of both time *and* space! Disclaimer: I've forgotten exactly what it was that Joel was originally allocating. Maybe it wasn't really something as stupid as rounding up all your malloc requests. For instance, if you have a resizable structure (an adjustable array, say) then you probably want to never grow or shrink it by less than a certain factor, so that you get constant amortized time for your operations. (If you grow a vector by a constant factor every time it needs to grow, then the time it takes to grow it to size N is proportional to N. If, e.g., you grow it by 1 item every time it needs to grow, then you can end up taking time of order N^2.) But this has nothing to do with 'rounding' the sizes of your allocations, except for the coincidence that the latter is one way to do the former. I prefer to overallocate by a factor smaller than 2, anyway.
Tue 24 Feb | Gareth McCaughan | Er, "... what it was that Joel was originally *advocating*", not *allocating*. Ahem. :-)
Tue 24 Feb | Bathmophobic skier | Order your data within the C struct so that its packed tight as best you can: all the doubles first, then on down until all the single bytes are together at the end. Alloc just enough for that and let the compiler/runtime figure out the best way to give it to you. JMHO.
Tue 24 Feb | Junkster | If you're new-ing or malloc-ing individual structures or small classes, then you've already lost.  You really don't want to be doing that.
Fri 27 Feb | Jon Hanna | With a half-decent library implementation even the optimisations that improve the allocations of small objects should be unnecessary. Like creating your own version of a library class, optimisations of this sort with new and malloc are interesting to experiment with - but don't actually use them.
Replacement for Dell Laptop | Mon 23 Feb | Justin
I need a replacement laptop. The Dell Latitude C810 that I have been using for the last 9 months is about to be repossessed – it was kindly lent to me by a client who now needs it back. I’m quite happy with Dell and will probably buy another…..but what? I am a developer; I need a powerful machine as I use .Net, MS Visual Studio 6, SQL Server, Photoshop and often VMWare. I use 1280x1024 screen size, 512kb ram. As a general rule it’ll be fine if it runs Quake/Unreal acceptably well :) I’m not interested debates about Desktop vs Laptop, CDRW vs DVD, weight vs power, Dell vs other brands etc. I’m quite capable of using Google or Dell’s comparison charts for that kind of stuff. Having said that, if anyone does know of a website with a comparison of models for use by a developer, that would be handy. Do share. What I’m looking for here is comment/opinion from people who already own an Inspiron/Latitude/Precision. Was it the right choice? What would you change about it if you were buying again, having used it for n months/years? Has anyone else bought a direct replacement for a C810 or similar?
Mon 23 Feb | Evgeny Gesin /Javadesk.com/ | I would think about Inspiron for the power laptop...
Mon 23 Feb | Justin Johnson | I have a Latitude D600 that I love.  I would think twice about going for the biggest, heaviest model out there.  I run the same things you list and I have no problem on this machine with 1.6MHz Pentium M and 1GB of RAM.  The screen is 1400x1050, which looks amazing with ClearType turned on.  And the weight is laptop-normal, not the brick that the 800 series are.  I actually traded away a 2GHz Inspiron for this, and I'm much, much happier.
Mon 23 Feb | MattOffSoftware | I run my entire company from an Inspiron 8600. 1.5Gb ram, P1700m, and HUGE 17' widescreen (1600* something or other). I run VS.Net, PhotoShop, Sql Server, and (hears the proof as far as Im concerned), 3ds Max Studio 6. All without any interuptions beyond Outlook crashing as per usual.
Mon 23 Feb | John Rose | '512kb ram' ------------------ Dude, treat yourself to an upgrade! You deserve at least 512MB, but kudos for getting everything to run in 512kb. :P
Mon 23 Feb | KS | Get a Gateway 200 series.  I have worked with them.  They are great
Mon 23 Feb | Ben Combee | I'd urge you to get a Latitude over an Inspiron for two reasons: 1) The Latitude warranty service is pretty good; I had to get on-site service a couple of times for my old CxJ, and it was always fairly quick and professional. 2) The Latitude line uses a docking station that tends to be stable over several generations. I love using my current C640 in a docked config, with it driving a second monitor, and I was able to use my dock for three generations of laptops. The D-series dock should be stable for a while too.
Mon 23 Feb | Gwyn | Bizarre timing. I just put my Inspiron 7500 up for sale.. mainly cos it's got a 400MHz processor which isn't fast enough for some development tasks (runs most stuff ok). I too want another Dell (this is one of 3 Dells I have) and am having the same problem. I'm trying to work out what I would like and not. The 1400*1050 that the 7500 has is great for development but sometimes it would be nice to have a lower resolution (just for ease of prolonged use). I would really like 1280*1024 but that's not an option (just shrinks the screen). 1024*768 doesn't quite cut it and because the natural res is 1400*1050 it doesn't render so well. I would quite like another 1400*1050 (in the absence of 1280*1024) but I'm wondering if I could actually get by with a 1024*768. The 7500 weighs 4.5Kg. Compared to the 2600 I've got, it's HEAVY. Uncomfortable for a prolonged period on the lap. The 2600 weighs 3.5Kg or thereabouts and whilst only about 25% lighter is much more comfortable. I wonder how much more pleasant a 2.4Kg ultra slim model would be? If at all. I have no experience of the M series processors. 1.4GHz seems a standard option. But how good is this compared to a standard Pentium or Celeron?
Mon 23 Feb | Steve | I just purchased a Inspiron 8600 with 1.4 Centrino, 512MB, 40gb & GeForce Go something or rather. The screen is a 15.4' WSXGA+ (1680 x 1050). I purchased for $1599, no shipping or tax and then got a $300 rebate. Amount charged to my card was $1299. I use Visual Studio .Net & Office 2003 primarily, but I also have installed Quake 3. Battery time is between 4 and a half hours to 5 hours when using the laptop normally. Quake 3 plays great! To get it to work with the widescreen you have to edit an ini file to get a custom resolution. Visual Studio.Net looks great and runs well. Having the widescreen is awesome as it gives you more space to write code in. I suspect that the 4200 RPM 40GB drive is responsible for a little slowdown when I load large projects as it loads a little faster on my desktop which is quite buff. Office 2003 also runs well and again it is nice to have that extra space. When I first got the laptop I thought the resolution was TOO high because text was mildly difficult to read. However, my eyes got used to it and now its great. Still, whenever anyone sees my laptop they make a comment about how small the text is. The laptop is SILENT. No moving parts aside from the HD. If you play Q3 long enough a fan will come on, but other than that all you can hear if you really pay attention is the HD. My friend is looking for a laptop and wont consider a centrino as he believes they are too exensive. I got a good deal so it didnt bother me and further more I havent had any speed issues with the centrino so I am happy. Although in retrospect, I should have gotten the most buff centrino I could so the laptop lasts that much longer. =) Right now Dell has my same Inspiron with a buffer centrino and a Radeon 9600. I recommend it if you can afford it or if there is a rebate offer.
Mon 23 Feb | Karl Perry | I've both an Inspiron 8200 and an 8600. Both have the SXGA+ (1400x1050 and 1600x1050) display. They are both great machines. The 8600 is a 1.4GHz Pentium M, and it's lighter than the 8200. I'd encourage that.
Mon 23 Feb | Bill Carlson | I'd second that a 15" Dell screen at 1400x1050 w/ClearType is a thing of beauty...
Mon 23 Feb | dp | I've got a ThinkPad T40, 1.6Centrino, 1GB memory, 40GB 5400RMP, ATI FireGL 64MB and beautiful 14.1", 1400x1050 screen. I use it exclusively for development (VC++ 2003, Oracle 9i, etc). It rocks. Much better than the Dell I've got at work. 
Mon 23 Feb | Christopher Hester | What is Clear Type, I have a D810, and use 1920X1200. I only use it because it seems to be the clearest of all the resolutions. I would like to have everything a tad larger. Help a guy out....
Mon 23 Feb | Li-fan Chen | Justin, our shop (like many) use Dell exclusively for the last few years. It's served well, although service and response time isn't exactly steller. You should go for one of the heavier machines and save on cost. The ultralights are underwelming. Use a well stocked Clie/Zaurus pda with connection to a cell phone to cover mobility, I haven't met a single person who enjoys pulling a 12 pound laptop out of their back pack on a subway to look up phone numbers.
Tue 24 Feb | Rich | I use a an Inspiron 5150 and a Latitude c640 regularly.  The 5150 has a better screen (some of this may be ClearType; the C640 doesn't have it).  I enjoy using the Latitude series better, though.  Get the best screen and RAM you can afford; that'd be my priorities.  As someone else mentioned, the Latitude series has accessories that are available for quite some time after the rollout, and interchangeable accessories to boot.
Tue 24 Feb | Just me (Sir to you) | I'm on my first Dell notebook (Lattitude C600) and I am not impressed: - Noisy HD - Mediocre screen - Difficult I/O port placement - noisy cooling fan - 'audible' screen or video chips this last one is strange: when you scroll, you can actually hear a faint high piched 'scream'. My Dell is not the only one that has this problem. I know others, even with different problems, that complain of this same thing. I'm not inclined to go with Dell for my next purchase
Tue 24 Feb | Seemore | For those of you complaining about noisy Dell laptops get this small utility: http://www.diefer.de/i8kfan/ It works also on Lattidudes I have noticed considerable reduction of the fan noices due to the intelligent fan control handling Dell BIOS just handles fans in an inefficient manner to say the least
Tue 24 Feb | Justin Johnson | Just Me, the D series fixed those problems pretty well.  I know what you're talking about, since we have a bunch of Cs that we foist on the salesmen; the Ds don't have the same.
Tue 24 Feb | Ian Lowe | Dell has recently started to offer a new Inspiron XPS. It boasts a full Pentium 4 processor and 7200 RPM hard drive. If performance trumps mobility for you, it may be what you're looking for. I currently run a 2-year-old Inspiron 8200, 1.4 Pentium M, 512 MB RAM and a 40 GB, 4200 RPM HDD. I use it for development as well and have had no complaints. The one problem I've noticed is that the screen seems to rub against the keyboard when the cover is closed, eventually leaving faint rub marks on the screen. I understand that this might be covered under their CompleteCare warranty, but I have yet to call on it.
Tue 24 Feb | veal | Christopher, ClearType is Microsoft's trade name for sub-pixel font rendering, which takes advantage of the fact that LCD panels stack the red, green, and blue elements uniformly side-by-side, each making up about a third of each pixel, such that a 1024x768 panel is actually 3072 discrete elements wide. By tweaking the color of surrounding pixels, you can borrow a chunk of a pixel to make the text appear less ragged. Apple II's did this almost 30 years ago, and somebody at Microsoft 'discovered' it in about the Win98 timeframe to apply it to LCDs. This link describes it really well: http://grc.com/cleartype.htm
Fri 27 Feb | wilson musoke | Get a Dell Inspiron 8200, It's great! I have been running Visual studio.net for a couple of months now and I enjoy it.
MSXML 'Unspecified Error' Madness | Thu 26 Feb | Drederick Tatum
Arrgh!! Just trying to grab a file from a web server using basic HTTP authentication. Response.Buffer = True Dim objXMLHTTP, xml Set xml = Server.CreateObject(MSXML2.ServerXMLHTTP) getStr = http://download.myserver.com/downloads/somefile.gif xml.Open GET, getStr, False,username,password Response.AddHeader Content-Disposition,attachment;filename=somefile.gif Response.AddHeader Content-Length, 100 Response.ContentType = application/octet-stream Response.BinaryWrite xml.responseBody Response.Write xml.responseText Set xml = Nothing This fails every time with a useless: msxml3.dll 80004005 Unspecified error The error number refers to: Response.BinaryWrite xml.responseBody But all that Ive read on the issue seems to indicate the problem is the open method. There is no proxy, and proxyconfg.exe wont even run. I have googled, I have service packed, I have nearly plucked out my eyeballs! Help!!
Thu 26 Feb | Philip Dickerson | At a very quick glance... Remove the 'Response.Write xml.responseText' You shouldn't be doing both a BinaryWrite and a Write. You should probably also drop the Response.AddHeader ... Response.ContentType ... lines (or change the content type to 'image/gif'). And you may need a xml.Send before the Response.BinaryWrite line (I'm not sure about this one).
Thu 26 Feb | Drederick Tatum | Same Error. Interesting to note that calling the send method causes IIS to hang.
Thu 26 Feb | dir at badblue dot com | if ($f = fopen('http://download.myserver.com/downloads/somefile.gif')) { while (!feof($f)) $sPage .= fgets($f, 32000); fclose($f); } oh wait... that's PHP. Sorry, been reading the PHP vs. ASP.NET rant on Orkut for too long...
Thu 26 Feb | Drederick Tatum | This is truly ridiculous. I have followed the Ms KB to the letter, I think I even managed to find a typo. Microsoft's proxycfg tool will not run, and the instructions in the KB article make no sense and appear to be completely wrong. http://support.microsoft.com/default.aspx?scid=kb;en-us;829735
Thu 26 Feb | Gwyn | 'Unspecified Error'. Christ this annoys me. There must ALWAYS be more information available than this. What failed? Where? What information do you have about the failure? In my .NET experience I can catch every exception by a try..catch at the top level.. Now I have two choices.. I can output 'Some strange shit happened' or I can output 'Some strange shit happened, details: ' & ex.ToString Whatever code you write either gets back information from whatever it called or knows what it was trying to do and why it failed. If the best you can do is 'unspecified error' then you're a fuckwit (sorry Micrsoft and a zillion others but it's true). The only mitigation is if the component you call doesn't provide adequate feedback but in the instance you're quoting? sounds like Microsoft calling Microsoft to me so no excuse.
Thu 26 Feb | mb | Um... a GET request can't have a body, so MSXML is erroring out when you try to add one. Mind you, it's not a very helpful error, there may be some other place you can look for more details (e.g. xml.errorsomething) that I don't know of. If you want to PUT a file, use the PUT verb.
Thu 26 Feb | Drederick Tatum | No, I'm getting a binary file and dumping it to the browser. I finally got it to work. The issue was incompatible versions of the MSXML library. v4 would not, but v3 would - using code samples straight from the SDK. Also, can someone please explain why in the name of all that is holy an XM L library installation requires a reboot? IT PARSES TEXT FILES!!! Isn't this what they call DLL hell?
Aaaah...The feeling of "working" two hours... | Thu 26 Feb | Crimson
...and realizing all youve done is read JoS, Slashdot, and email. *sigh* Oh well well, there are another 6 hours to make up for the early morning doldrums.
Thu 26 Feb | pds | Take your lunch a little early, then you can come back refreshed...and ready to do a little more browsing.
Thu 26 Feb | Elephant | Don't forget to allocate enough time at the end of the day to catch up on all the topic threads that you haven't read in the period of time you're doing work.
Thu 26 Feb | Elephant | Sadly though, I wish for a high stress environment coding and designing and bug fixing under the gun to get a commercial product out the door.  This consulting ware stuff is killing me, so slow I can feel myself getting fatter and lazier as the day progresses.
Thu 26 Feb | Crimson's Boss | Crimson, this is your boss... you're fired.
Thu 26 Feb | Red-faced | Boss, I've still got the web logs of your porn surfing. Let's talk about that pay rise.
Thu 26 Feb | Crimson | I deserve it boss.  I've done absolutely nothing productive today...
Thu 26 Feb | Crimson's Boss | Crimson, let's talk things over lunch.
Burnout:  Falling Towards Success | Thu 26 Feb | VP
I talked to Nick Corcodilos, and happily he just forgot to add this article to his website. Hes in the middle of a project, so itll be a while before it shows up. But it just occured to me to check the Way Back Machine and I found a copy of his article there. So for you folks on the fast track to burnout: http://web.archive.org/web/20011121002647/http://www.eetimes.com/story/ask_the_headhunter/OEG20000530S0028
Thu 26 Feb | Bored Bystander | Articles like this point up just what a completely sh*tty field engineering and technology have become. The most competent are stigmatized and used as the Judas Goat. The 'reward' for taking on more than you can chew is: success (at the expense of family, health, and/or peace of mind); abject humiliation; or failure leading to dismissal. Or maybe it's nothing new. I worked at a DOD contractor years ago and I heard a story about some guy who worked on a high-profile gummint proposal who blew his brains out in the parking lot one night. The fear of failure can literally kill you. So ok, my 'recipe' or recommendation for truly 'falling toward success' is: get the f*** out of technical work that is treated like a commodity. Do something high profile that is recognizable by business leaders, owners, or managers. Mainly - get off the treadmill, because some hot shot will walk over your broken corpse when you stumble. IE: find ways to leverage your brains rather than work in situations where you're used, milked and tossed out.
Thu 26 Feb | The real Entrepreneur | Technical folks would be well served by learning to interact better with non technical folks. For example, engineers (of which I am one) tend to explaind the guts of the solution. They assume non engineers want to hear that detail. They don't. They want to just hear that it works. Put another way: engineers aren't taught a 'bedside manner'. Doctors are taught to have this air of confidence. They ACT like they should be respected, so they are.
Thu 26 Feb | no name | 1. Many technical folks interact superbly with 'non technical folks.' 2. Communications break-downs are not always because the 'technical folks' are wrong. When people can't understand legalese, this is interpreted as being because lawyers are smart. Why is there a different interpretation for technical material? 3. The big problem is that business is able to hire cheap people who do what they're told. There are many problems in IT projects, and those with good communications ask questions and expose incompetence.
"Serious" LOC | Thu 26 Feb | Alec Yetitu
I am planning a huge migration project; and my boss ask me to include a LOC estimation, Just to see if we are missing something... Before we start: I dont believe in LOC method. But dont want him telling me latter I told you that you were underestimating...; so I will make him happy and make his dream come true. This project history is: This is an EFT Banking package, bought 10 years ago, originaly is 300K LOC, and it has been heavily modified (200K LOC of increment). Its a C application. Our target is a different package (at architecture only, since a balance inquiry is always more or less the same); on a different platform and also we will use C. And well to re-apply many of the modifications in order to keep the same functionality from the end user point of view. So: Similar packages, similar programming language, similar functionality, quite skilled team with many years of experience. Since we are planning to start with a very serious documentation, design and programming specification stages before we launch the code editor... My estimation of LOC per day per programmer is between 100 and 150 (try to figure that the programmer, will only have to write the lines). After that, comes a testing almost as big as coding. Reading here some related topics, Ive seen some statements saying that industry standard is close to 20 LOC per day... Im really far away from that... So: 1- Am I crazy and my boss was right? 2- Those LOC standards, includes all project (e.g, analysis, design, testing)? 3- Both? Thanks a lot!
Thu 26 Feb | Simon Lucy | To make any sense of LOC (and even then I doubt there's much sense in it at all), then you have to have some fudge factor as to what 1 LOC means. If its in C++ its likely to be more expensive in resources to produce than a LOC in VB even if it appears to achieve the same thing, assigning a value to a variable. If its an API call then the cost is going to be higher because you have to find out what the API call is, learn the API and so on, and possibly cost less because using the API call effectively replaces n LOC of your own. If the net effect is less then you call it .5 LOC or something similar. If the language you're migrating to is quite different to the source language then your LOC may well be more than twice the cost it may not even be possible to have a 1 for 1 translation that makes any sense. If its a migration where you can get the code running on the minimum amount of changes then I'd concentrate on the interfaces rather than the actual code. Use shims on the interfaces to convert from old to new and then replace the old as needed, or not as the case may be.
Thu 26 Feb | Christopher Wells | In my most recent contract I wrote 3700 LOC of C++ (measured by counting ';' in *.h and *.cpp files) in 4 calendar months. This was all new code (no copy-and-paste), included the time to write a requirements document, a detailed design document and test plan, settle in to working with new people (a new employer), use Linux for the first time instead of Windows, and to do developer testing. I think that's 3700 LOC / 62 days = 60 LOC / day. Of these 4 months, approximately 1.5 months were spent doing coding and developer testing, and 2.5 months doing requirements and design, so if you include only the coding days then the LOC / day would have been closer to your 150 LOC / day estimate. I'm not mentioning a 5th month, which I spent with the integration and QA teams after 'code complete'. In the last years of my previous job my average might have been below 60 LOC / day (i.e. closer to your 20 LOC / day average) because there I had a more significant overhead (managing, talking to customers, debugging a running system, training, big company 'process' overhead, and so on).
Thu 26 Feb | Steve S | Alec, If I were doing the estimate, I'd try to find out how many developer years went into the 200K LOC of changes. Then I'd assume that I have to make the same changes again and figure out LOC per developer-day for my organization. Its a rough estimate. Some things will be faster now -- you probably have a better understanding of the problem domain now. But some things will take longer -- you have less experience with the new architecture. Good luck
Thu 26 Feb | Chris Kessel | Industry standard at one point was 10 LOC per day. You don't actually write 10 LOC/day. You write about 50-60 LOC/day for the 2-3 months of heavy-duty work, then you write very little in the ramp-down, testing, ramp-up, research phases of the next project. The average comes out to 10/LOC. Smaller projects will average more as there's less involved with coordinating the groups, reviewing marketing materials, coordinating training with sales, etc, etc.
Thu 26 Feb | Christopher Wells | > Thanks for your experience! This kind of data was really what I was looking for! You're welcome. Actually, if you have a 'team with many years of experience', it sounds to me like you could calculate this data yourselves based your own past performance. One thing I don't quite 'get' about LOC is that, when I was making the detailed schedule estimate, I was saying 'one day to code this piece of functionality ... two days to code that piece ...'; but I was doing that without quite saying 'this piece of functionality will take 150 LOC, and I do 150 LOC / day, therefore one day for that piece'. Perhaps I was estimating LOC without knowing it ... I suppose have a mental vision of how many 'pages' of code it will take to implement some functionality, rather than how many 'lines'. A further point to note is that it's quite possibly worthwhile to get each developer to make their own estimates.
Thu 26 Feb | Christopher Wells | > I think that's 3700 LOC / 62 days = 60 LOC / day. Sorry: 4 months = 83 days, not 62 days. So, for me for that project, it was 45 LOC / day (not 60 LOC / day) including the pre-coding days; or 120 LOC / day if averaged only over the 1.5 months of not-much-except-coding days. Also, if you read about 'function points', they apply multiplication factors based on various things such as the type of software (e.g. a real-time protocol converter with an internal event-causes-state-transition machine is more complicated than a class for reading strings out of a 100 edit boxes on a screen).
Thu 26 Feb | Chris Kessel | BTW, LOC is a perfectly fine way to estimate, if: A) You measure it consistently across projects. B) You are writing similar types of projects. When those aren't true (particularly B), that's where function points come in. Function points are supposed to help measure differences in projects (complexity, size, market, whatnot). Function points aren't easy though, usuall