last updated:03 Oct 2003 11:24 UK time
Joel On Software Discussion Forum
JOS Statistics - Recent Comments
(Comments added for week ending Sun 28 Sep 2003) | View Other Weeks
be careful about what you post on the net | Sun 28 Sep | Celmai Taredin Parcare
A long, long time ago I was a member of a public discussions network called FidoNet. It was exactly like Usenet - only that the nodes (the servers) of the network called each other using modems and exchanged the messages. So, the communication was almost exclusively by phone. Well, this network was really cool - like in this forum, you could talk with a lot of interesting people there. There was one discussion area (or group) about jokes, where people posted jokes. So, I posted some jokes myself. Some of them were dirty jokes, but not very dirty. Well, lots of years later, I have searched for my name on Google, and I found out that a lot of people saved the FidoNet joke posts to files, and put the files on the web! There were files with hundreads of jokes put on the web. Those files were saved from the FidoNet jokes group, and also contained the names of the authors, etc. So anybody who searched for my name, could find my name near some jokes, and some of them were dirty ones. I have worked hard to contact every webmaster who put up such files and asked them to remove my name. It was very tough. I did this every month for an year, until I have cleared my name. Now, at that time, there was no archive.org, and no Google (Altavista were the kings of search), so I guess there is no trace, now. Be very careful about what you post on the net under your real name. It may come back to haunt you later!
Sun 28 Sep | Simon Lucy | Ummm, so it was ok to post this stuff amongst a small tribe of anorak wearing, pipe smoking, jesus sandal wearing short folk with either curly bushy hair or receding hairlines; but not the general populace who'd likely never heard of you?
Sun 28 Sep | Celmai Taredin Parcare | Yes, it was ok. They were techies, and were obviously not my employers! Also, at the time I posted the jokes, I was younger and didn't care so much about having a job, etc. Now I care.
Sun 28 Sep | Sum Dum Gai | I think it's a sad reflection on the society we live in when you have to worry that sharing a joke amoungst friends could get you fired (or not get hired).
Sun 28 Sep | Philo | Go read this thread: http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=73857&ixReplies=38 where some people google on job *applicants* - that's right, you could be losing jobs before you're even called because some people think it's appropriate to judge you by what they read about you (or others with the same name) on the internet. Philo
Sun 28 Sep | StickyWicket | If you think that storing dirty jokes is a sad reflection, what about the fact that every piece of data about you is now stored on corporate databases and indexed via your social security number. Right now, every major transaction I've made, my credit history, my medical history, my grocery shopping habits, my movie renting habits, the cable channels I've ordered (and Pay-per-View shows I've watched), my marital history, my driving record, and my tax returns are all available for a moderately enterprising person to scour. It's a brave new world we live in and I haven't even started mentioning the really paranoid stuff yet.
Sun 28 Sep | bread crumbs | I always google a job applicant. And I never would care that they wrote some dirty jokes on the internet. Hell, if they were a programmer, I'd expect it. Anyhow, googling an applicant is usually very interesting. You often find an interesting history of articles, code snippets, advice... Any programmer worth hiring will leave a trail.
Sun 28 Sep | Robert Moir | Well 'Bread Crumbs', what do you do if they give themselves cute names like 'Bread Crumbs' when posting online? Or if you want to trace the writings of 'John Smith' or someone else with a popular enough name? Does 'John Smith' get a chance to explain that the reason he has no history online is because he posts under the name 'Frodo'? Does he get the chance to explain that the 'John Smith' whose distasteful jokes you've read in alt.tasteless isn't him?
Sun 28 Sep | Celia Redmore | I googled my name recently. The oldest reference was dated January 1997. That's pretty scary. I suppose I should be glad that I spent my teenage years pre-internet.
Sun 28 Sep | Chris Ormerod | Google my name and I am quite proud of what comes up. Although I wouldn't have the faintest idea of what 'Group Theory and its application to Knot Theory.' is. Now tell me, how accurate can googling names be when I am pretty sure that my name isn't too common and I can find another one in Sydney with the same name?
Sun 28 Sep | www.marktaw.com | http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=74076 Since this is the current thread, I thought I'd post this link here...
Sun 28 Sep | M | This sounds like the urban legend that when going into an interview, the interviewee gets cut off and starts honking and flips the other guy the bird. Well, as it turns out, this is who he is interviewing with. The moral is to 'be careful about who you yell at on the road.' I guess the real message is: 'be careful what you do' and I would bet we are all for that. In my opinion, the Internet has increased the ability to be anonymous (hence 'm' and not my real name).
Sun 28 Sep | tim | Even Bill Gates has his early posts stored for posperity in Google Groups. If he is big enough to ignore this stuff you should too. Thanks.
Portals vs Aggregators | Sun 28 Sep | Prakash S
I was thinking about this problem, how can one justify the time and investment on Portal technologies like PlumTree/ MS SharePoint when a simple RSS/ Atom based solution will do the same? Thoughts....
Sun 28 Sep | G | Personally I never recommend a free solution when there is a commercial one that is better, or at least just a little better. Why? Because I want the people I work for to know that software costs money, and has value. If I give them free solutions, in time, they will start thinking that software has no value, or should be free. I write software for a living, and I don't want my clients to think that the software I write is less valuable. Finding a commercial solution that is better than a free one is usually very easy. Also, in case something happens, you are somewhat covered by the fact that you picked a good solution from a good vendor, and not some amateurish software.
Sun 28 Sep | Rick | You are right - it's not good to lower our perceived value to our employers. A solution, if you want to use free software, is to find a commercial vendor that sells that software and support for a fee. This way, the CYA factor is also taken care of. However, using commercial software is much better - that way, the money goes to the developers of the software, and not to some firm that just repackages software, like RedHat or others.
Sun 28 Sep | Simon Lucy | Oy veh. RSS agregation can't be commercial software? Read what he wrote, not what you think he wrote. In any event, continuing to promote solutions which cost oodles more money and which don't necessarily get the job done instead of exploiting common technologies (such as RSS), isn't going to do much for your career prospects in the long run.
Sun 28 Sep | G | If the free software is much better than the commercial software, I recommend it. But if the commercial software is better than the free software, I recommend the commercial software regardless of the cost. I my OSS hippy colleagues propose to recommend free software, I seek out and test commercial alternatives, and many times I convince them that the commercial alternatives are better. I also try to educate them about OSS vs. commercial software, and why it's better for their career to recommend and use commercial software, instead of promoting OSS for free, and thus commoditizing software.
Sun 28 Sep | M | Prakash - Call up MS and ask for a 180 day evaluation of their software. Tell them you want to be convinced their product is better than the free alternatives and want to try it out. If it is successful, you will buy. They seem to be sensitive to this quagmire these days.
Uncommonly Awesome Offices | Sat 27 Sep | Michael
After I read Joels description of the new Fog Creek offices, I began to wonder how uncommon that kind of environment really is. Does anyone here work in a place that nice? With private offices, two windows that look outside, extra wide desk with covert cord management, etc, etc. And does anyone work somewhere nicer? What are average programmer working conditions? Michael
Sun 28 Sep | valraven | My best 'office' was a big cool noisy lab that i usually had all to myself.
Sun 28 Sep | Thomas David Baker | I have been moved approximately eight times in five years. I have worked in a small training room that was never meant to be an office (though this was great because it was all programmers - a lot of Unreal: Tournament got played), various parts/floors of an open-plan office that was full, an open-plan office that was near-empty, a crap office that was out of my way (didn't go there) and my home (that's where I went instead of the crap office). None of them even remotely compared to this. With two network ports per floor box in most cases and some of them broken we actually have our own switch that we paid for supplying the necessary connectivity. Our offices aren't awful but they are just standard offices for office workers as designed about 10 years ago or more in some cases.
Sun 28 Sep | Fairlight | I currently work in an office which was originally a farm and was converted into large office facilities. It's OK. but by no way not fancy as FC's offices
Sun 28 Sep | TheWeasel | The worst was a cube near the entrance door in a builing undergoing refurbishment. Anytime someone came in to the office (50 people, lots of foot traffic), I'd get a blast of pneumatic drill echoing up the stairwell. My home office - I'd give it 93/100: Amazingly Awesome. I've got two windows. One looks to the mountains, the other to the sea. Two big desks, three PCs, good quality window blinds, uplighting for the evenings. and a decent sound system. We get maybe a dozen cars going past in a day. If I could afford to replace the noisy PCs with quieter ones, get a new coffee machine and some new chairs it would get 99/100.
Sun 28 Sep | M | I used to work in an old training room with my team mates on the top floor of an office building. One side of the room was all windows looking over Lake Union in the Seattle. It was the best situation we ever had. Very quiet, dark (keep those bright lights off) and productive. There were only five of us and we got to configure our desks how we wanted. Naturally we all pointed to the window, which is something they usually don't do! Like all good things in a corporation, it came to an end soon enough. Since then, I have been working from home for the last three years. It has been a blast to be around my family, but like all good things in a corporation...
Sun 28 Sep | mackinac | Michael, it would be interesting to know what your experience has been. The average software developer's working conditions are no where near as nice as the new FC offices appear to be. Shared office space, cubicles, open-plan, bull-pen, or whatever, are the norm. A few companies provide private offices, then mess them up by not paying attention to noise levels. I have worked in a place that was that nice. It didn't have exotic design with angled translucent walls, etc. It was just four sheetrock walls, a door, a couple of windows, and some standard office furniture. And it was reasonably quiet. That is, it had the essentials of a good programming environment. There are a few companies that have a reputation for providing decent workspace for their developers. Microsoft and SAS are among the few large companies that do. Most are small companies. Unfortunately, small companies that are successful often get bought up by large companies.
Sun 28 Sep | d | The dozen, or so, offices I have worked in have been the usual variations on industrial ugly.  However, I have always had a reasonably comfortable chair and the environments have always been reasonably quiet and nicely lit. 
Sun 28 Sep | Gordon J Milne | The best office I ever has was in my last job. It was on the 17th floor of one of the few tall buildings in the Christchurch (New Zealand) CBD. It had large windows with a view toward the Port Hills so the soutch of the city. I had a very large workstation-style desk which felt even larger due to the fact that my monitor was an 18.1in Philips Flat panel (1280x1024). Most of the time I had the office to myslef until my last month there when I shared it with a marketing/sales guy who talked very loudly on the phone. My boss' office was better. He had the corner office on the floor. His desk was the same size but he could see the Port Hills to the south and the mountains (currently snow covered) to the West. But his monitor was a Samsung 240. So he had a large desktop in the real and virtual worlds. Unfortunately, I don't work there anymore due to a downturn in business. It was a great place to work. Good people (if not many of them) and fun projects. Unforunately we weren't making enough of a margin on them so something had to give.
Sun 28 Sep | Andrew Lighten | Dunno about the 'best' office, but my worst was a doozie. Tin shed mounted on the wall in a steelworks. Long wooden bench with plastic stacking chairs. Dirty, horrid place to work. That was also the one place I've ever worked where I was reprimanded for wearing casual clothes. I got tired of going to work in a clean white shirt and coming home in a grey/black shirt.
Somebody, please explain voice-over-IP to me. | Sat 27 Sep | Can you hear me now?
Im not much of a techie, but something has me puzzled. Its very common when surfing the web to notice distinct delays (or worse) when attempting to load a web page. Presumbably, somewhere between you and the web server theres some kind of bottleneck. When you do a traceroute, you can often find out where the latency is the highest. You might think that these types of problems would wreak havoc with voice-over-IP. Even a half-second delay would make it virtually impossible to have a normal conversation. And yet, people even manage to make trans-continental IP calls. So... what gives? How do Internet telephones manage to get around the usual problems of sending packets across the Net? Ive run some Google searches on this, but I couldnt find anything that addresses the issue directly. Thanks.
Sat 27 Sep | StickyWicket | Voice over IP is typically designed to be run over a 'managed' network. What this usually means is the the network (e.g., an enterprise LAN or a cable company's HFC network to your home) is engineered for the appropriate amount of bandwidth to handle X number of calls without jitter (invalid packet sequencing) or delay being an issue. When you run VoIP over the public Internet, you are using some sort of provider that will try to simulate the 'perfect' network as much as they can. They will use RSVP or MPLS to give your packets a higher priority over non-voice calls and will route your calls with minimal hops. Hope this helps. I can tell you more if you ask.
Sun 28 Sep | Andy | I am just speculating here... when you load a web page, you're using HTTP obviously, which is not the protocol that a VOIP system would use.  HTTP runs on top of TCP/IP, which is a reliable protocol on top of UDP, and unreliable protocol, which is faster, but doesn't make as strong guarantees about the data arriving.  Audio data is different than regular data in that e.g. 1% of bytes being 1% off isn't going to matter at all.  So this fact can be exploited to make the latency less than that of loading a web page.  That's the general idea, I'm sure someone else can explain this in more detail.
Sun 28 Sep | Celmai Taredin Parcare | TCP is not implemented over UDP. Both TCP and UDP are implemented over IP. UDP is a sort of 'IP with port numbers' (IP doesn't know about port numbers, TCP and UDP do). An IP datagram, or data packet, contains a field which tells it which high-level protocol has generated the datagram. So, when the IP layer of a computer receives an IP datagram, it passes it to whatever protocol can handle it: TCP, UDP, ICMP, etc. Voice over IP usually uses UDP.
Sun 28 Sep | Thomas David Baker | In fact all streaming voice/video tends to go over UDP or a more specialized protocol above IP because there is no point in resending packets if the action has moved on. There's no point in TCP's overhead slowing you down if you're just going to discard packets that come in late anyway.
Sun 28 Sep | StickyWicket | In managed networks, the physical and data-link (i.e., MAC) layers are well known and their properties can be engineered for reliable data delivery (e.g., on a cable company's fiber/coax network or an enterprise LAN's switched Gig-E). Since IP is not very reliable, it is enhanced through protocols like RSVP and MPLS to ensure there is enough bandwidth and that voice traffic (like video) has the highest priority. VoIP typically uses UDP at the transport layer because it is a lightweight protocol. TCP is too heavy and has unnecessary features like retransmission. Above UDP, the Real-Time Transport Protocol (RTP) is often used (on managed networks) because it facilitates streaming data like voice and video. At the session layer, SIP is often used for call control. There are many implementations of VoIP and each one does what it can to address the inherent problems with IP-based networks. The traditional phone network is circuit switched. That is, each call you make reserves a complete circuit through the entire network and uses this bandwidth whether you're talking or not. Obviously, packet switching is more efficient for data (e.g., web surfing). The advent of VoIP was marketed by saying that VoIP calls are more efficient than old, circuit switched calls. However, in a typical VoIP call, you are still going to encode voice into a 64Kbps stream (like the old way), but then you have to add the MAC header, the IP header, the UDP header, and the RTP header. This means your 64Kbps call is now a 115Kbps call. Then, you have to add the overhead of encryption. Some implementations can compress your call and strip out redundant headers (voice stream packets tend to have the same headers), but this reduction is more than compensated by the fact that you have to reserve bandwidth through the network to maintain quality of service. Thus, we are essentially recreating the circuit switched world on our packet switched networks. Considering that our old phone networks are already paid off, this doesn't seem economically feasible. Nonetheless, nobody thinks legacy voice calls are exciting and IP is the future.
Sun 28 Sep | Stephen Jones | Things like Net2Phone work because you can afford to lose a fair proportion of voice data and still get a clear message; when you are dealing with a load of noisy lines then the quality declines and can reach unintelligibility. The real double whammy is that the places with good telephone lines, and thus clear communication, are the cheapest to call; so a call to the UK, US or Australia costs about 5 cents a minute and is crystal clear, whilst a call from Saudi to a Sri Lanka mobile over Net2Phone costs 81 cents a minute, and the quality is so bad you give up and pay the $1.35 a minute the normal phone line costs.
Sun 28 Sep | Robert Jacobson | I just found out about a new, free, voice-over-IP program called Skype: http://www.skype.com/ I tried it on my local network, and the quality was quite good. (Even just using my notebook's crappy built-in microphone.) Don't know how well it holds up over in real use over a distance, though, when the packets have to bounce through multiple networks.
Sun 28 Sep | UI Designer | It would be interesting to know what the internet phone equivalent of this would be: 'Aoccdrnig to a rscheearch at Cmabrigde Uinervtisy, it deosn't mttaer in waht oredr the ltteers in a wrod are, the olny iprmoetnt tihng is taht the frist and lsat ltteer be at the rghit pclae. The rset can be a total mses and you can sitll raed it wouthit porbelm. Tihs is bcuseae the huamn mnid deos not raed ervey lteter by istlef, but the wrod as a wlohe.'
Sun 28 Sep | Alyosha` | When I call my girlfriend in Colombia, it's about 5c a minute if I call her, 30c a minute if she calls me.  When we talk over the computer (AIM), it's about 3c a minute for her, free for me.  So, it's a good deal.
Wireless Internet Connection in Apartment | Sat 27 Sep | wifi
I had posted in an earlier thread, http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=73608&ixReplies=17, the problem of getting frequently kicked out of my wireless network. I posted the follow-up results below - for readers that have interests in the results or if they have similar problems. I also posted a question at the very end below. My signal strength is 11 Mbps. My OS is Win XP (Pro) Following suggestion posted on the thread, I treid a number of suggestions below and followed a number of permutations, in case some suggestion had a cascading effect. A-Line of Sight (LoS) : I moved the Notebook to LoS of the base station. Problem still occured. B-Turn off Microwave and/or Cordless telephone: I turn them off. Problem stiil occured even if Notebook was withing LoS of base station. C- The Enable IEEE authentication box under the advanced tab is unchecked. The above suggestion C did the trick. The Notebook has been running for two hours and I have not been kicked out. I have experimented with turning on the Cordless phone and moving away from LoS of the base station - still works :) I was wondering by Unchecking the Enble IEEE Authetication box, have I made my wireless network unsecured? Can others access the netowrk or surf from my base station? Thanks again for all your assistance in the previous threads.
Sat 27 Sep | www.marktaw.com | So, can you connect to your modem without authenticating yourself? Didn't you say you could? Wouldn't that mean anyone else could? This might offer a small amount of safety. Can you set up the the router's DHCP so that only a certain IP address can access the network, have it give out completely different IP addresses, and then set up your computer to request that IP address? Then at least only one address works, you always request it, and if someone tries to gain access, you'll know something's up (unless you're not home at the time, but then what worry is that - your computer isn't on the network, as long as they don't download kiddie porn or share mp3's you should be ok).
Sun 28 Sep | Nat Ersoz | I think the authentication reference is with respect to 'IEEE 802.1X network port authenticaton' which is a method for key exchange, not encryption. In a typical home network, your keys are static (you enter them on the client and access point, and they don't change until you change them). Using 'IEEE' the access point will authenticate a user and possibly provide unique keys to each user. Anyhow, the short answer is 'no, you are not compromised'. The caveat, is 'at least not any more than the rest of us using WEP'. The 802.1X auth/key mgmt would be a great method for future access points to create random cycpher keys and distribute them. Cisco has proposed similar methods (LEAP/Radius) for helping to alleviate the WEP vulnerabilities by changing cycpher keys often.
Sun 28 Sep | . | >'C- 'The 'Enable IEEE authentication' box under the advanced tab is unchecked.' It was giving problems when unchecked, or unchecking it solved the problem?
Joel, how do you compensate the "non programmers"? | Sat 27 Sep | Sonny
Just curious Joel. After seeing your office layout, its obvious that the programmers are the prima-donnas at Fog Creek. My q is how do you compensate or manage the non-programmers, therefore they dont feel to be 2nd class citizens?
Sun 28 Sep | Li-fan Chen | > the programmers are the prima-donnas Holy.. did you wake up on the wrong side of the bed buddy?
Sun 28 Sep | sell out | I think it's more likely that he doesn't know what prima donna means. He's trying to say that programmers are considered the most important part of the organization, and they know it. Whether or not he really believes that they are self-righteous and overly demanding, I don't know. Either way, he has a very interesting question. Hopefully Joel knows enough to give non-programmers offices too.
Sun 28 Sep | Celmai Taredin Parcare | Non-programmers should be constantly worked very hard. Hey, it's easy to find them and they don't mind low pay (and if they mind, just replace them). A good sales or marketing man is worth his weight in gold. However, the coffee maker is not, and should be treated as such. :)
Sun 28 Sep | na | coffee maker? it's definitely a C, so No Hire :)
Sun 28 Sep | Celmai Taredin Parcare | The coffee maker seems to be a lowy function, unless we rename it to: Coffee Maker Officer = CMO :) This sounds really impressive on the resume: January 2001- March 2002: CMO for BrainTrust, Inc. Can't find a good name for the chief stamp licker, tough.
Sun 28 Sep | Sam Livingston-Gray | Postage Hydration Analyst?
Sun 28 Sep | d | Postage Hydration Analyst? LMAO. sonny, I'm happy I'm not the only one who noted the explicit definition of all people who are not developers as second class. At least second class people get shelves.
Sun 28 Sep | Robert Moir | I'm sure that Joel will be along shortly to tell us he didn't mean that the way it sounded. In the meantime, who else thinks its a natural function of the way people are Joel is a developer. Joel believes developers are your most important asset. Developers are the first class citizens in FogCreek. Marketing people think they are the important part of a company -- Who do you suppose is the first class citizen in a company founded by a marketing person?
Sun 28 Sep | Mike Swieton | A point: in a software company, the developer is probably the most important people. Sure, a great product is useless without good marketing and sales, but all the marketing in the world can't sell a product that doesn't exist.
Sun 28 Sep | Robert Moir | I don't disagree with you in the slightest, Mike. But I still think that the question of who gets the primo work space is connected to what kind of person is in charge. We talk about development companies run by the clueless here who treat their programmers like dirt often enough.
Sun 28 Sep | Mike Swieton | Actually, I am thinking back to the article, though I'm too lazy to reread it... Does he ever actually say that the marketing/etc guys don't get such similar offices? He doesn't say they do, but... ? 8-}
Sun 28 Sep | somebody | You're too lazy to reread the article but not too lazy to post about it and wait for an answer here? From the article: >> Private Offices. Not only did we get spacious, windowed private offices, but even the common area workstations (for non-developers) are hidden in clever angular alcoves, so everyone gets their own private space without line of sight to anyone else. <<
Sun 28 Sep | z | Joel IS the "marketing guy." He's also the guy managing the buildout of the office space so he's the "director of operations." All his articles are about managing software engineering, so he's also the main project/product manager. What non-programmers are even necessary at his company?
Software Ill never write.. | Sat 27 Sep | Eric Debois
Hey. Im guessing Im not the only one here to have new ideas for software every other day or so. I figured itd be fun if we shared some of those weird, impossible, cool or briliant ideas we have but cant be arsed to do anything about. Ok, here goes... **Fantasy vision debugger** A program that can take the code of a smaller program and use it as a script for an RPG/RTS style visualization. All objects, variables, messages and events become characters, castles, battles in the scenario. Imagine, rouge varibles riding off into the wild, couriers riding back and forth between camps in an infinite loop and unused goblins standing around scratching their bellies. **HTML wordprocessor** Yeah, I know this is pretty well covered by existing products. But I would like a word processor that ONLY saves in HTML. It should have all the normal WP features but all formatting should be done with CSS. The only exception should be directions for printing/page layout which could be included as comments. Also, The app should have the ability to connect directly to a DB server so that it bypasses the normal open/save procedures and stores only in a DB. Why? Documents that can be read anywhere! Documents that can be transparently stored in a DB and indexed for searching. Documents that can be repaired manually if they break...and a system that enforces a policy that would benefit a great deal of corporations. **Meta Navigator** An addition or plugin for Google. Instead of a list of search hits the meta navigator would deliver a visual display with boxes representing the pages and arrows for the links so that you get a web of possible sources. Good hits could be darker in colour or something. Why? Well, In searching for specific information one must often follow links in the pages one finds. Having a map (on a differnt tab or something) would simply be nice and helpful. You could see where youve been and what is yet to be explored and you wouldnt have to use the back-button so much. Ok.. anyone else?
Sat 27 Sep | www.marktaw.com | > **Fantasy vision debugger** I read about someone who somehow mapped Doom to their computers - the monsters were processes. They'd go in and blast the offending process, though sometimes a larger, more important process got in the way... Oops. I'm reasonably sure the article wasn't a joke. What about software to organize random notes? A combination outliner, wiki, blogger, search engine, etc. I know exactly what it looks like and what it does, but I'll never write it.
Sat 27 Sep | realist | Software where I click a button and nice crisp $100 bills start spewing out of the A: drive.
Sat 27 Sep | Amon | I believe you're referring to this: Doom as a tool for system administration http://www.cs.unm.edu/~dlchao/flake/doom/
Sat 27 Sep | www.marktaw.com | YES ! DOOM AS A TOOL FOR SYSTEM ADMINISTRATION. I don't even like Doom but I love this idea...
Sun 28 Sep | na | language/dev environment where you cannot make buggy programs :) buggy, in terms that the problem won't compile if there is any chance that there is an exception, and you do not handle correctly. -------------------- software emulator / code snippet replacer where after analyzing a part of code the system reasons what are the possible outputs, and with that info it can optimize it. silly example, but a for (i=0; i<10000; i++);b=i*2;return b; has only one output, so we can make it 10000 faster :) -------------------- the rest is so secret, that you think I'm crazy and should go to therapst :)
Sun 28 Sep | Chris Hoess | I was under the impression that 'impossible to write buggy software' environment was precluded by the halting problem, but maybe it could work for your more limited case. The software to organize all categories of notes sounds like JWZ's 'Intertwingle' idea, or maybe Mitch Kapor's Chandler.
Why doesn't Java have an immutable Date class? | Sat 27 Sep | T. Norman
Before I go and write my own, anybody know of any reasons why Sun didnt include an immutable Date class?  Are there special pitfalls which caused them to make Date and Calendar mutable?  Links to any articles from Sun itself would be most useful.
Sat 27 Sep | Joe Blandy | I was just reading about this the other day. Sun realizes that it was a mistake to make them mutable, but is not going to fix it. Quote is from: http://developer.java.sun.com/developer/community/chat/JavaLive/2003/jl0729.html > Josh Bloch: I wish I could say that we plan to > rework Date, but we don't. This is clearly one > class that we got wrong; it never should have > been mutable. But it's so widely used that it's > too late to rework it. Sometimes you just have > to live with your mistakes:(
Sat 27 Sep | Alyosha` | I'm curious: how is this a problem?
Sun 28 Sep | T. Norman | Joe, excellent link. Thanks. Aloysha, here is a link describing the usefulness of immutability: http://www-106.ibm.com/developerworks/java/library/j-jtp02183.html
Sun 28 Sep | Anon. Coward | But if you and everyone on your team really agrees the Date class ought to be mutable, can't you get all the benefits of an immutable class by simply ***agreeing nobody will modify any existing instances of the Date class***? Granted, it's not theoretically sound because there might be some renegade team member who forgets the agreement and modifies a Date object without telling anyone--but on the other hand, if he feels the need to do that, then it implies that maybe there is value in having a mutable Date class after all.
Sun 28 Sep | T. Norman | We could agree not to mutate any Date instances, but that would create additional work of policing and reviewing to prevent it from happening. Nobody here and now would do it deliberately, but there are non-obvious ways in which it could happen inadvertently, and 2-3 years from now a different set of programmers could create subtle bugs in the system by (deliberately or ignorantly) introducing mutable Date behavior into a system that was expecting immutability. It's much better to create an immutable class and let the compiler prevent the problems. Someone who needs mutable Dates can still use the original Date class. I just wished Sun would have done it so I wouldn't have to do it, and there would be a standard for it. Although I see why Sun won't make the existing Date immutable, because that would obviously disrupt existing bodies of code, I don't see why they couldn't create a new class that holds a date which is immutable. Sort of like the immutable String and its mutable cousin StringBuffer.
Infopath 2003 and future of Microsoft Access | Sat 27 Sep | JD
Hi All, I just stumbled upon Infopath 2003. Check http://www.microsoft.com/office/preview/infopath/demo/start.htm Designing form part looks pretty intersting to me. But I am not really sure whether I would like all my data to be stored in XML assuming I have LARGE amount of data and I am not using Infopath to submit my data to central Application Server. As I cant see Access in Office 2003, I think Infopath 2003 will take its place. I am not very sure if its very nice to replace a decent RDBMS with some XML driven application. I think Infopath has its place (we can have _richer_ intranet apps built with Infopath) but we need MS Access too. Your views? JD http://jdk.phpkid.org
Sat 27 Sep | JD | Oops, I just found that Access 2003 will be there as well! :) http://www.microsoft.com/office/preview/editions/access.asp JD http://jdk.phpkid.org
Sun 28 Sep | fool for python | The idea with Infopath is to send the xml to a web service which can process or store as needed. Or just leave in a file system for use later by whatever needs it.
Spam killer for personal use? | Sat 27 Sep | Frederic Faure
Hi, I just set up the Spamassassin-based Perl scrip Pop3Proxy last night, and although it works (ENLARGE PENIS VIAGRA in the subject line only set Spamassassins rate to 3 stars, though ;-))... its a pain to set up. Does anyone know of a good spam killer for personal use, and easier to set up? Thank you PS : Extra credit if someone knows why IE-based browsers Crazybrowser and MyIE2 render pages slower than IE...
Sat 27 Sep | www.marktaw.com | What are your criteria for this spam killer? Can it work as a plugin for out look? I read about one that actually connected to every person who used the software, and saw if there was an email everyone was deleting & marking as spam... Unless you check your email every second, this program will delete the email before you even see it. I forget the name of it, but someone around here might know, or google might turn it up.
Sat 27 Sep | Frederic Faure | Pop3Proxy uses SpamAssassin as its spam engine, and lets you download e-mail from multiple POP3 servers (one port = one remote server). It requires setting up Perl, plus a couple of modules, and set up Pop3Proxy. So I was wondering if someone knew of an easier, and preferably free/open-source alternative. Thx
Sat 27 Sep | AlexK | http://keir.net/k9.html
Sat 27 Sep | Simon Lucy | POPFile, Bayesian filtering http://sourceforge.net/docman/display_doc.php?docid=14421&group_id=63137 Or, Mozilla Mail with its inbuild Bayesian filtering. With the former I'm currently running at about 97% efficiency in identifying spam.
Sat 27 Sep | Roy Pardee | I'm digging the SpamBayes addin for outlook: http://sourceforge.net/projects/spambayes/ It took me a while to train it up properly (and messages from my wife still seem to wind up in my ProbablySpam folder) but it's really quite good. It was really nice having this installed when LovSan hit--those messages (and the various bounce messages) all went right into DefinitelySpam. HTH, -Roy
Sat 27 Sep | JWA | I've been using Cloudmark's SpamNet since the beta and it works great for me. --Josh
Sat 27 Sep | Tarun Upadhyay | K9 referred above is the easiest to setup and train. It learns pretty fast on your spam pattern and then work at >99% accuracy. (you of course should still setup whitelist and blacklist rules for all obvious things) My current statistics are: % that matches blacklist rules 31 % that matches whitelist rules 21 overall spam catching accuracy 99.7
Sat 27 Sep | matt | +1 vote for Cloudmark Spamnet. It's very easy to install and catches almost all spam. There is a monthly fee, but it keeps me from getting distracted playing with anti-spam software.
Sat 27 Sep | Tom Vu | >>With the former I'm currently running at about 97% efficiency in identifying spam. How do you know? What does POPFile do that you can quantify a 97% efficiency.
Sun 28 Sep | Brad Wilson | SAproxy is a POP3-proxy with SpamAssassin embedded into it. The setup is dead simple, unlike full SpamAssassin, and doesn't require any access to the SMTP server. It does, however, require you to use POP3 (no Exchange or IMAP support).
Sun 28 Sep | mark | I vote for the SpamBayes outlook add-in too. Works really well. Only ever let one spam through, and that was because it was all in French.
Sun 28 Sep | M | I am a windows person, but I must say I am impressed with my wife's Mac (OSX). Its email program does a bang-up job on knowing which mail is spam.
Unzipping and Zipping files | Sat 27 Sep | Fairlight
Is there a way of zipping and unzipping files without doing it through a command line ? Basically Im looking for a component (OCX, Automation controller) which enables me to ZIP a file without startint a command line session
Sat 27 Sep | Peter Ibbotson | Have look at www.gzip.org , they have links to an OCX (or the zlib folks do)
Sat 27 Sep | Kendall Swan | Check out lszip (Lindersoft product). We have the DLLs installed on 90,000 custom machines. The URL is lszip.com or lindersoft.com
Sat 27 Sep | Philo | nsoftware has a zip component. Haven't used it, tho. Philo
Sat 27 Sep | Alex | I use xceedsoft's zip/unzip component.  Never had any problems.
Sat 27 Sep | JWA | We use DynaZip-NX with no problems ever. MS used DynaZip for the zip support in WinXP, which is a pretty good endorsement. --Josh
Sun 28 Sep | Li-fan Chen | I believe infozip (the free one) has one too. Another thing you can do is let wscript call it for you.
Sun 28 Sep | Li-fan Chen | http://www.codeguru.com/vb/articles/1854.shtml
Sun 28 Sep | Clay Dowling | You should probably check out pkware.com. They originated the zip file format, and they have an API for several common languages.  It's how they make their money, since they give away at least a version of their software.
Sun 28 Sep | Tony E | I think you will find most zip products out there are based on zlib. http://www.gzip.org/zlib/
Developing a product while having a full time job | Sat 27 Sep | Fairlight
Ive got a secure full time job as a software developer. In my spare time I would like to develop video games for the Mac and the PC, in order to self publish them through the internet. My question is the following, has anybody manage to build (developing a full blown commercial product) his company while having a full time job ? Is it possible, without burning out after 9 months ? Please share you experiences (bad or good) Any tips and advices are obviously welcome since it seems a very daunting task.
Sat 27 Sep | no name | Ha ha ha. You're a scream. (I presume by video game you mean modern real time 3D.)
Sat 27 Sep | na | do you have the energy to manage that? you won't have personal life, that's sure. I mean, are you serious, or you will loose your motivation in 2 weeks. maybe reduce your work time to 6-7 hours if possible, or try to work from home. first, try it for 2 weeks, maybe it won't last longer than that.
Sat 27 Sep | www.marktaw.com | You should take a look at your life as a corporation. What are your expenses? Where can you cut back? After a year of living in a $300 room instead of a $3,000 apartment, you can afford to take some time off to dedicate to this pursuit on a more full time basis. Also, video games are expensive and difficult to produce, modern games involve teams of people.... large cross disciplinary ones, voice actors, and more. Can you compete with that? Do you really think you can be the next Max Payne (produced by a low-budget studio, the actors were their friends, the cut-scenes were static drawings with voice overs). Why not start small, make a proof of concept type game and release it as freeware/shareware. Maybe if it catches on you can get some funding, or at least a small income from the shareware version, not to mention some encouragement, or at least feedback based on it's success or failure. Also... Why aren't you hanging out in the game development forums?
Sat 27 Sep | www.marktaw.com | .. Of course if you just want to make small, freeware/shareware games, Video Poker, Lemmings 14 or something, then that shouldn't be too difficult for one person to do alone in their spare time.
Sat 27 Sep | sgf | Spent 5 years trying. Gave up. Can't be done if you have what is commonly referred to as a "life". You know, wife, kids, friends, activities...  Decided they were more important.
Sat 27 Sep | Noname | A secure software development job?  Isn't that an oxymoron?
Sat 27 Sep | Fairlight | I don't intend to compete with product like Max Payne. I'm more looking at smaller but still addictive 2D games, look at Tetris, no fancy 3D engine but great gameplay. There are a lot of people who can't afford to play 30 hours a week on games. I want to write games for these people who just want to have a 30 mins blast during lunch.
Sat 27 Sep | Scot | You really need to look at this site: http://www.dexterity.com/articles/
Sat 27 Sep | Scott | I created a game for a niche hobby (board wargames) and it took five calendar years including one year of basically doing nothing. Then it took the threat of an impending layoff to get me fired up to finish it over several months of 30 hr/wk marathon sessions, and when the layoff finally came I struck out 'full time' marketing it on CD through mail order, conventions and internet (this was circa 1998 before the internet was that big). In six months I made $50K (U.S.) mostly from mail order and the conventions, though had $40K in costs. And I still make a steady $400 a month or so since I switched it over to shareware/registration codes a few years ago, which is nice but not riches. But it did get me into the games industry as a programmer full-time (which I've since left), so I am glad I went through it for the experience if nothing else... I think. Like sgf said though you have to make a choice or otherwise balance personal life and your project, because pure lack of hours is the problem. Even a simple Lemmings is at least 1K programming hours, where will that time come from? I only averaged 5-7 hours a week in the end, usually in spurts of all-weekend sessions rather than steady weekly progress. Also really examine the scope of what you're thinking of, really chart out all the tasks involved, all the inputs, algorithms, screens, features, etc just like you'd do at work and create a realistic estimate no matter how disheartening it is. If you're thinking something as detailed as what you'd buy in the stores, it's going to be 5K programming hours minimum, and based on 5 hours a week in the long run you'll never get it done. So you need to scale back to something that's attainable if your goal is to really finish it and sell it. If you think you're really just interested in it for the fun parts of the programming, realize of course that's only 10-20% and the rest is gruntwork no different than your f/t job, so maybe you'd be happier hacking quick prototypes together and scrapping it a month later and just doing it as a hobby with no expectations or guilt. But if you do want to make a serious product, here are some suggestions: * The first stage when you're super-enthusiastic about everything, try to do as much low-level grunt stuff as you can ( framework, data structures, events, etc) with everything else in the framework in place but stubbed out. Make the graphics and menus super-simple placeholder and simple bitmaps you make yourself. * Next stage is when you lose total interest as you realize you have nothing that works, it's just a bunch of buggy low-level classes and crappy programmer art. This happens maybe a month (?) 3 months (?) a year (?) into it. At this point switch to doing the main menus and GET SOME PROFESSIONAL ARTWORK... there is a huge morale boost when a really cool-looking splash screen or menu background appears when you start your game, and all it takes is a simple background .bmp and some button bitmaps or animations you can have made from artists on the internet for $100 - $500. This kind of morale boost can keep you interested for a long time. * From then on take a top-down approach, start at your initial menu and into the game and keep asking yourself 'what's keeping me from releasing this game?' to determine your next tasks. Only list about 10 things at a time (which will only take about 30 seconds to find, usually...) then stop, bring up the code, slog through them all and check each one off. Even if some didn't get fully fixed, they'll show up the next time you do the iteration so will be caught eventually, and you'll have a lot of pieces of paper with a bunch of items checked off which helps with the sense of accomplishment. * Try to keep regular visual progress even if you work two months on some invisible subsystem then just a day arranging to get some new bitmaps made for the sake of change. Regular visual changes no matter how trivial programmatically really give you the primary sense of progress, even though you know things are a lot different underneath. * Don't try to stick to a regular weekly schedule, which you probably won't keep and then just feel guilty about -- what worked for me was during the week I'd always say THIS weekend I'm going to do nothing but work on the game. Then if it happens, great, if not, I'd just say I'll do it NEXT weekend (which was the case 3 out of 4 times for me). And don't plan on doing anything during the week, but if you do then it's just an extra bonus. * Avoid the huge temptation to constantly reengineer everything unless what you remake can be finished within a few weeks. It's a morale killer to have something working and then suddenly not work at all while you're rebuilding, so you either avoid work on it because you're stepping backwards, or you finally decide to kludge it back together so you can move forward again -- which makes it no better off than when you started. Also check out the thread below, 'Smart, but don't get as much done.' There's a lot of good tips there...
Sat 27 Sep | cheapo | Quite possible, go for it! The last company I worked for, there was one developer who worked on his game part time (with the company's blessing, it did not interfere with his work). He finished it in about 1 year, resells it for $15 as shareware, and sales are STILL going on strong 4 years later (add-on levels, minor revisions, etc..). In fact, when he got laid off 2 years ago, he supported himself with the revenue from the game, and put out 2-3 more titles. Thing about the shareware avenue, if you have a decent idea and the ability to envision good gameplay, you can churn these out once per year and they still keep making you money. Right now he's semi retired, working 20 hr weeks updating his software for fun while travelling. (laptop + gprs phone = freedom!) And it's not like his game was a huge market hit. You would have never heard of him or his game (and personally I wouldn't enjoy playing it, but that's just me =) ).
Sat 27 Sep | Tom Vu | I don't know about building a company while employed but there are people who wrote quality software that became a business. Snort and toad are two examples... www.snort.org www.toadsoft.com
Sat 27 Sep | www.marktaw.com | Fairlight - go for it. What do you have to lose? The worst possible scenario is you have a half written game and the experience an self knowledge that comes from having written half a game and given up. At least you'll have the answer to the question "can I write a game part time?"
Sat 27 Sep | Li-fan Chen | I think if you want to have a side job, it will steal the least amount of energy if it's something along the line of what you do at work. So that you are expanding your domain within reason, otherwise you'll waste quite a bit of time getting on track. If you have the ability to control your use of time very well though, forget what I said, you could probably take on any domain.
Sat 27 Sep | David | I'm doing that very thing right now, except not a game (it seems EVERYONE is trying to make shareware games). I'll tell you, it's both fun and tough. The ONLY way you'll make it is if you have the full support of your family. Of course, if you have no family, that's not an issue. Instead, you'll need the support of your friends, because you won't be able to do as many things with them. I've been working on my product for nearly 2 years now. I've watched very little TV and very few movies in that time. Granted, I have a wife and small child (2 children now, as of last week). So, think long and hard. I've had several people start and then stop working with me on this project because they couldn't sustain their motivation.
Sat 27 Sep | RocketJeff | >>I think if you want to have a side job, it will steal the least amount of energy if it's something along the line of what you do at work. Be careful just how close it is to what you do at your full-time job (and what your employment contract says about it, if anything). There have been several court cases in the US about situations like this, and the courts have usually ruled that if your sideline software is similar to your full-time job's, the company you work for is the owner of the software (even if it is at home, on your own equipment). These cases were with employees without employment agreements. if you have one, you should obviously read it to see what it says.
Sun 28 Sep | Li-fan Chen | Allow me to add a qualifier than, most contracts are non-competes.. so what I mean is don't catch yourself competing in the same business domain (which is usually what a non-compete is trying to protect: your employer's ability to protect its investment in you from direct competition).. but try not to end up doing C++ when you really know Java.. because even small sharewares will really stress your lifestyle.. so why waste all that time trying to learn a new tool while your personal shareware competition is quickly gaining on you.. as some gentlemen have mentioned previously. I don't think it is currently very common for a company who has send you to MSDN training to try to stop you from use the same knowledge in your next job or in your home businesses. But as the last post have pointed out, it is common for your employer to be nervous about knowledge learned in-house. How many of you would sue your employee for patching her home computer from a nasty virus because she used company resource to learn about it (the company admin spend 15 minutes explaining it to her.. the company had to eat the time.. and she IS running a home business on that home computer in question.. and she DID sign a non-compete that specifically said she can't share in-house information) As always, if it's worth all of your spare time at home and your relationship, it's probably worth a visit to a lawyer. Bring along your employee manual and non-compete.
Sun 28 Sep | Noname | Even if you happened to learn the stuff in-house, companies don't have any claim to knowledge that is readily available to the public, like general knowledge about languages, platforms and algorithms that can be learned out of a $40 book or public web sites. Just go ahead and develop whatever you want, but don't let your company know about it.
Sun 28 Sep | Johnny Bravo | I think what Scott said about visuals is quite an important aspect in software development in general. Most workflow models (you know: waterfall etc.) underestimate the morality boost of having something visible out there. Even worse, many formal approaches actually teach you not to do that eye-candy until the very end of the project because it is considered 'fun but not vital', often labeled as 'programmers want to do the eye-candy stuff because they are too lazy to solve the really difficult problems'. But in the end it's just like 'producing' food: the nutrition scientist might know what's healthy, but only the chef can make it taste delicious!
Sun 28 Sep | M | Don't get married. If you are already married, good luck! ;)
Sun 28 Sep | Bill Rayer | I've been working for many years on a high level computer language ( http://www.lingolanguage.com ), both part-time and full time, and I agree 100% with Scott's comments above. In particular: 'Avoid the huge temptation to constantly reengineer everything unless what you remake can be finished within a few weeks.' That is so true I should print his comments and glue them on the wall. The danger is you write a class and get it working, then you realize how it should be written and want to re-design it. DON'T - otherwise this happens: http://ei.cs.vt.edu/~history/Babbage.html . Learn from Babbage, he designed the first computer.
Sun 28 Sep | runtime | cheapo: what is the name or web site of your friend's shareware game? I'm interested to see how he markets his game. thanks.
Do you Google just about everyone you meet? | Fri 26 Sep | Anonymous for this one
My philosophy is that you cant be too careful these days. Whenever I meet anyone of any significance -- whether its clients, potential romantic partners, or new neighbors -- I immediately Google them (or as soon as practicable, anyway). Youd be amazed at the stuff you can find out that way. Im always surprised that the vast majority of my business clients never Googled me (so far as I can tell, anyway). Most of them dont even look at my website, ferchrissake. Naïve fools. Information is power.
Fri 26 Sep | Marc | I do it all the time. One question, how do you feel when you can't find anything at all? I google every technical resume that comes in and it worries me when I can't find anything on them.
Fri 26 Sep | Philo | What do you google on? Name? Email address? What do you expect to find? Philo
Fri 26 Sep | no name | How do you know you're not making decisions based on namesakes?
Fri 26 Sep | Anonymous for this one | I Google on whatever it takes to get the information.  One time I found out that a potential client was involved in a nasty legal battle with his landlord.  I've never actually learned something truly stunning (like my would-be blind date is a paroled ax-murderer or something), but I've often found out stuff that makes me go, "Hmmmm....".
Fri 26 Sep | Marc | Name and email address. As for what I expect, I'm not sure. But it is hard to believe that anyone in this business has managed to never post anything to a news group or put up a page on the web. If you search for me you find the 3rd or 4th link is to a message I posted to the Sane-Devel mailing list back in 1997 (sane is a twain driver for Linux).
Fri 26 Sep | Marc | I do worry about the namesake issue. But at least with me (searching resumes) I have a context for which to look for. I can feel pretty confident that the posting to alt.computers is accurate while skipping the NFL stats for the same name is also a safe bet.
Sat 27 Sep | Brian R. | I have a rather unique name, but just Googled it.  My name is as ubiquitous as dirt.  How can you have much confidence in getting the right guy?
Sat 27 Sep | Underachiever extraordinaire | You know what's _really_ depressing?  When you Google all the fat, drunk, and stupid people you knew in college -- and you find out that they're now successful attorneys, doctors, and business executives.
Sat 27 Sep | Philo | 'I Google on whatever it takes to get the information. One time I found out that a potential client was involved in a nasty legal battle with his landlord.' So? Philo
Sat 27 Sep | na | I use different email addresses / fake name for a while now, just because these issues. I use my full name in normal discussions, etc, while I use a fake one where is chance that in the future I want to hide that.
Sat 27 Sep | Matt Latourette | In short, no.  I rarely ever google anyone.  Really, about the only time I google somebody is when I google for a old friend that I've lost contact with.  What exactly do you hope to accomplish by googling everybody you meet?  Do you really trust some statement on the web that may or may not actually have been written by the person in question and that you probably don't have sufficient context to fully evaluate more than your own impressions of the person in real life interactions?
Sat 27 Sep | www.marktaw.com | 'What exactly do you hope to accomplish by googling everybody you meet?' I suspect it's done largely out of boredom... More mindless surfing the web really.
Sat 27 Sep | mb | Apparently the name for this is 'counter-googling'. Because some places do it at a counter? Don't know, though I read one story where an immigration official did this to someone on arrival. http://www.trendwatching.com/trends/2003/09/COUNTER-GOOGLING.html http://joi.ito.com/archives/2003/08/26/authenticated_my_id_with_google.html I need to get a new domain and start using a pseudonym--if you ask me in person (that includes email), I'll happily tell you my real name. But in a long-term archived format? Um, that worries me.
Sat 27 Sep | www.marktaw.com | New from the people who brought you disposable e-mail addresses: Disposable Identities. Yes that's right, tired of running into pesky ex-boyfriends at the supermarket? Well we can give you a completely new identity.... He won't even recognize you. There are a number of books out here on protecting your privacy. A quick trip over to Amazon will reveal a few... As long as you don't mind Amazon knowing you bought them or browsed for them. I have a few tips on my website as well, and yes that is my real name on the About Me page. That's even my real photo. Google finds me real fast.
Sat 27 Sep | Alyosha` | No. Just the women I think are hot. You know, for stalking them later. I once had an interviewer google me after a particularly grueling interview, where he came across my blog in which I reported on the experience. I got the job.
Sat 27 Sep | no name | > Google all the fat, drunk, and stupid people you knew in college -- and you find out that they're now successful attorneys, doctors, and business executives. I google those people and they don't even show up. They probably get their secretaries to do their email.
Sat 27 Sep | www.marktaw.com | 'I google those people and they don't even show up. They probably get their secretaries to do their email. ' Yeah same here. Though I guess it would make a difference if you were in school with all computer science people. I wasn't.
Sat 27 Sep | Anonymous for this one | Philo: Finding out about a client's legal problems can have implications for predicting the client's future behavior and for estimating his or her ability to pay. It's an important piece of information. Matt wrote, 'Do you really trust some statement on the web that may or may not actually have been written by the person in question...' Ah, but the web also has things written _about_ people, not just _by_ people.
Sat 27 Sep | still anon. | I spent a lot of time getting my real name removed from the google archives.  Now I only post anon.  There's just a few sites/messages that have my name now, most of the google results are by some nudist/swinger freak in NY. 
Sat 27 Sep | Philo | Anonymous, you do realize that every story has three sides, right? In addition, I will venture that personal life!=professional life. I know a guy who has had his power cut off a few times because he simply forgets to pay the bills. But he's a project manager at his job and highly respected. Why? Because he knows that at work he has to overcompensate for his forgetfulness. At home it's just him, so he doesn't really care that much - if the power's cut off, he just goes and pays the bill. I think employees should be judged solely on work performance. Period. Pulling their private lives into it is wholly unfair and unreasonable. Philo
Sat 27 Sep | Unsilent Bob | Pardon my ignorance, but how do you "google" somebody?  I use Google to search for my own name, and it turns up hundreds of hits none of which are me.  No matches on my email address.  Is there a special "people search" within Google that I don't know about?
Sat 27 Sep | no name | I agree with Philo.  Chances are that your name is not unique and you had better be damn sure that what you find on google actually refers to or is by the person you're interested in.  Even so, most states have court records that are easily accessible on the net.  Be careful how you go about judging people.
Sat 27 Sep | r1ch | I've always been protected from this - I've got the same name as a celebrity, so you'd have to dig through a whole load of other junk to find anything about me...
Sat 27 Sep | Anonymous for this one | Philo, my client was involved in lawsuits with the landlord for his (the client's) place of business, not the client's personal residence.
Sat 27 Sep | Matt Latourette | 'Ah, but the web also has things written _about_ people, not just _by_ people.' Yes, you're right about that. The graffiti on the bathroom walls and the office rumors about who's f#@king who are also a matter of people talking/writing about people and generally have about the same amount evidence to back them up. I have a friend that works for a shipping company, which shall remain nameless. According to office gossip, she's been screwing her boss for years. One day, her housemate stopped by the office to visit. Shortly thereafter, the rumor around the office was that she was having a torrid lesbian affair with her housemate. Of course, there's not one whit of truth to it all. She's been in a monogamous relationship with her boyfriend for a long time and they've recently gotten engaged. Whether you're googling people on the web or just listening to the conversation at the water cooler, you're likely going to find gossip, not information.
Sat 27 Sep | Anonymous for this one | Matt, have you Googled many people before? You're likely to come up with newspaper articles and other such (relatively) reliable sources of information, and not just random rumors. To give another example, when I Googled another client, I found an article from some local newspaper that showed he was in a partnership with a real estate developer to do some major renovations/expansion on a local ski area. Again, useful information for me to have -- and information that I never would have found had I not Googled. You never know what will turn up. Of course, you have to use your judgment when evaluating sources.
Sat 27 Sep | www.marktaw.com | ' You're likely to come up with newspaper articles ' Wow. How many of us have had newspaper articles written about us? I was mentioned once in Wired, but I thought that was a pretty extreme example.
Sat 27 Sep | Steve H | true story: When google aquired all the really old usenet stuff I had a great time searching for old friends/co-workers from college. Then I found a post from my old boss in alt.sex.beastiality looking for a 'large dog or small horse'..
Sat 27 Sep | Matt Latourette | I just gave it a try and googled the math department sysadmin from my college days (someone I knew fairly well). What did I find? Mainly mailing list archives, USENET posts, and a few web pages. 1) Apple SCSI drive post 2) A post that had so little context that I couldn't figure out what the topic of conversation was or whether or not it was actually written by the person I knew, despite knowing this person well. 3) A mailing list flame in which he roasts a troll. I only know this was written by him because I know that particular email address belongs to him. Someone who just met him would definitely not know this. 4) A web page for Marines who served in China. Definitely not him. Anybody could figure that out. The age is wrong. 5) The web page for the indie record label that published albums for various bands that he played in. 6) Web page for a CD store that carries one of these albums. 7) Mailing list archive for some software package I've never heard of. 8) rec.music.makers.guitar.acoustic post that simply lists his name along with a lot of other names of people all over the world. 9) A PDF newsletter from DuPont that mentions some foreman with the same name. It's not him. 10) Another military service page. Not him. 11) Court records about some well drillling operation. Not him. 12) A posted question about a laser printer 13) County birth records. Not him. 14) Newsletter for people interested in Cthulhu stuff. Name is mentioned as a volunteer that they've lost contact with. I can't tell whether or not this is him. 15) Broken link to an old PDF from the math department. So where exactly is all the useful information that I was supposed to find? IMO, the signal-to-noise ratio is pretty bad and would be truly abysmal if I did not already know a lot about this person. Note that I specifically picked this person as a best case scenario for finding information because he has an unusual last name and has been on the net continuously for a long time, since before there was such a thing as the web. I guess I'd have to have a lot more time on my hands and a burning desire to find out what so-and-so posted on alt.wesley.crusher.die.die.die four years ago for this to be a useful source of information for me.
Sat 27 Sep | David Jones | Go ahead. Google me. I dare you. :-)
Sat 27 Sep | realist | I just googled myself, all the other 'Realists' are pretty well rounded sort of folk too. Musicians, artists, astrologers...etc
Sat 27 Sep | anon | Davy Jones, I googled you and found your locker.
Sat 27 Sep | Tony Chang | Well, this is what we skeptical of this method are talking about: 'I found a post from my old boss in alt.sex.beastiality looking for a 'large dog or small horse'' May I suggest that those who think this means anything are gullible newbies who just arrived on the net? I would find it *more* interesting to find a boss, high school principal, or politician who *didn't* have 'incriminating' posts in alt.sex.bestiality. Forging email headers is trivial and obvious to do, and an extremely common 'gag'.
Sat 27 Sep | Mike Swieton | Take any information with a grain of salt, but it can be useful. Most likely more useful with tech people, though. They're more likely to have something up. If you google me, you'll see my web page and some messages from my mailing lists. I imagine it would be useful when hiring: does this person have dozens of troll-ish posts to boards and lists? You often can confirm identities here by email addresses (many mailing lists post them in archives, even if in a slightly munged anti-spam format), and the sorts of mail they've sent can give character information. Big grain of salt, of course, but I see no reason not to: if they have any online presence and a non-ubiquitous name, it should not be difficult to see a bit about them. As for googling love interests... I should be so lucky to meet sexy girls with online presences 8-}
Sat 27 Sep | Pepe LePieu | So if someone hates their boss, should they post in his name dozens of times to alt.sex.bestiality with tips on how to receive anal sex from large dogs? Or should it be small poodles?
Sat 27 Sep | www.marktaw.com | If you hate your boss, you should find the next country he's going to, post some anti-their-government propoganda to a website in their country in his name and... Whoops, wrong thread. So it seems that if someone were malicious enough, they could ruin someone's reputation with a few falsified forum and newsgroup posts. I guess this is similar to ruining someone's credit, but easier to do, and presumaly less malicious (though let's face it, ruining someone's credit and preventing them from getting a job are about on par). Perhaps the best defense here is a good offense. Become increadibly active in humanitarian groups, in fact, hire people to post to alt.save.the.whales and rec.peace.and.love and a few of your grandmother's cookie recipies to some cooking sites all day every day. Just look at Joel Spolsky, how much dirt could you bring up on him? It seems he's 'controlled' his Google results to within a certain degree where the percentage of bad possible hits to good ones is highly favorable.
Sat 27 Sep | Tony Chang | Fake sex histories on asb is so old schoool. Try a.s.extropians.
Sun 28 Sep | www.marktaw.com | What is an extropian? I did a dictionary.com search for extropy and this is the definition: log in for this definition of extropy and other entries in Webster's Millennium™ Dictionary of English, available only to Dictionary.com Premium members.
Sun 28 Sep | Philo | If you google on my real name, which is incredibly unique, you'll find that I died in 1996 (I still remember coming to work and finding my obituary on my desk, placed by a friend). That's okay, though - I was published and highly respected. Oops - just did a whowhere search. I appear to also be living in Massachusetts. Philo
Sun 28 Sep | Steve Wheeler | Google on mine, and you find a number of academics, a cookbook author, and a deceased modern artist. You also find a drag racer and an ice-skating magician. I'd hire me, based on that. For what, I'm not certain.
Sun 28 Sep | Bill Rayer | I googled myself and discovered I am a chief of police in Nebraska.
Sun 28 Sep | Tony Chang | We know from thermodynamics that, in the big picture, the amount of entropy/disorder/chaos/noise/unretrievable energy in the universe is continually increasing. This begs the question to explain evolution, which posits that things are eternally getting more structured. The answer is that in a local system, entropy can decrease and extropy/order/structure/intelligence/usable energy increase. For more information: http://extropy.org/ http://www.mit.edu:8001/people/jpbonsen/extropianism.html
Sun 28 Sep | Stephen Jones | I just googled 'Stephen Jones + computers' and 'Stephen Jones + Saudi Arabia', and the llink to all my Joel postings on 'usabiltiy must die' comes up fifth on the first page, so sometimes it works with common names. When I Google for 'Stephen Jones + EFL' the 'Usability must die' link comes up first, even though I have scarcely ever mentioned EFL on these forums, and the hundreds of postings I have made in my own name on the leading International EFL forum don't come up at all. On the other hand change 'Stephen Jones' to 'Steve Jones' (which is the name everybody outside the web, and many on, know me bye)and I disappear off the map. This no doubt tells you sometning about the perceived formality of the web.
Sun 28 Sep | www.marktaw.com | ... or your perceived formality of the web, Stephen Jones, aren't you the one who names yourself in your posts? Google my name and you get my webpage, the president of InnerCool Technologies, a mention in Wired (in multiple languages) and my personal favorite: 'He and Mark Wieczorek swore that they would sodomize a goat, if Matt and I would give them $50, supply the goat and some rubbers.' Really, I never said this. It was a sheep... I mean, it was a different Mark Wieczorek, I never went to CalTech. Unfortunately, thats the exact quote that shows up in Google. Continuing on, it seems I have several PhD's from multiple universities, mostly in what seem to be scientific fields.... I remember 5 years ago the only other Mark Wieczorek on the web was a thermodynamics (or something similar) student and he had his photo on the web. I think he gets quite a few mentions on Google. It seems so many people have my name that it's impossible to seperate the wheat from the chaff. I wrote a review of 'The Sporting Life' which shows up as Google's 46th hit, but didn't write a review of Eyes Wide Shut, which shows up as #48. It seems I'm also in the swiss boy scouts, and 'David Mark Wieczorek' is a Private First Class in the US Marines, deceased. Interestingly, my father was a US Marine. I'm also a Chef Manager, Astronomer, Bass Player (wait, I really am a bass player), I lectured at MIT, and wrote papers with a girl whose name is eerily like the name of my high school sweetheart. I run Track and Field (which I did do, but apparently one of my dopplegangers did too - my track & field records never show up in Google). I'm in the Cincinnati Fire Department, and I'm a Certified Pranic Healing Instructor and Associate Certified Pranic Healer. I'm a collections manager. I live in Germany. I play video games and role playing games. How many of you can say that you've been thanked in for 'pointing out the problems with the original gamma-ray flux derivations' in a paper on 'Thorium abundances on the lunar surface.' I hope being dead, or willing to sodomize a goat in some sort of college contest won't be held against me when I apply for a job.
webDAV... | Fri 26 Sep | christopher baus (tahoe, nv)
Ive been thinking about using webDAV (MS webfolders) in a CMS system I am considering.  Has anyone had any experience with it using either the Apache or MS or another implementation?  It seems the IE client is about the buggiest portion of the entire browser.  It might as well be beta software. 
Sat 27 Sep | ... | i'm using webDAV in a couple CMS systems. one based on IIS, and another based on apache. i have run into a few problems, but nothing severe. what issues are you having?
Sun 28 Sep | Johnny Bravo | Yes, IE's WebFolders is buggy. Try Cadaver.
Tech Exec fired for criticizing Microsoft | Fri 26 Sep | Dennis Atkins
Well it looks like the MS gestapo is at it again: A technology executive whose company does business with Microsoft Corp. has been forced out of his job after he helped write a cybersecurity report critical of the software giant, according to sources with knowledge of the situation. http://story.news.yahoo.com/news?tmpl=story&cid=1804&e=17&u=/washpost/a2328_2003sep25 Wow!
Fri 26 Sep | no name | It makes a nice conspiracy story, but the reality looks like there was one guy who was a bit of a loose cannon, and had certain agendas which his employers disagreed with on intellectual - not corporate - grounds. There's a lot more to security than saying it's all Microsoft's fault. I would sack him too.
Fri 26 Sep | no name | I wouldn't sack him because he criticised Microsoft, but because his analysis was superficial.
Fri 26 Sep |   | He got fired because he criticized his company's main client.  The fact that he criticized his company's main client indicates he had morals.  Maybe not a lot of tact, but morals nonetheless.
Fri 26 Sep | risk taker | I was going to say the only thing he was guilty of was bad business sense.  Then I realized that I thought doing the right thing meant bad business.
Fri 26 Sep | who cares | > He got fired because he criticized his company's main client. This is the superficial interpretation and the one that makes a great story. Howevever there are other interpretations. It doesn't seem a very solid report. I would expect this guy probalby had regular arguments or differences with his colleagues there, and his participation in, and leadership of, this weak report was like a final act of not just poor analysis, but also subordination.
Fri 26 Sep | When will you learn | 'It doesn't seem a very solid report' Another head in the sand Microsoft bigot.
Fri 26 Sep | Mike | BTW he was the founder and CEO.
Fri 26 Sep | who cares | News reports call him the CTO ( chief technology officer. ) Given that there is also an R&D director, and the firm is not a big corporate user, I suspect the CTO may be a relatively unimportant role.
Fri 26 Sep | name withheld out of self-preservation | I don't think Microsoft overtly asked them to fire the guy (for stating the obvious and getting lobbyists to distribute it), but some MS employee had to state their displeasure, and whatshisname's company clearly saw the short-term threat to revenues. There is a freedom of speech, but that's only a promise from the federal government, not corporations.
Sat 27 Sep | no name | This is what my sales buddies mean when they say geeks don't understand business. People, you just don't publicly criticize your biggest client. It doesn't help the bottom line.
Sat 27 Sep | I like Coke AND Pepsi equally | Ok, take of your Microsoft blinders and consider the situation if Coke's CEO stated he truly preferred Pepsi, but frankly thought that soda was evil and bad for kids. Or how about a lawyer publically stating that his client was guilty... It may be the truth, but publicizing it is hardly the right thing to do. If you dont believe in what your organization is doing, you shouldnt be working there. In this case the problem has fixed itself.
Sat 27 Sep | name withheld out of self-preservation | Well, martyring the whistle-blower is bad for Microsoft and good for him, since he'll likely find a job elsewhere... and has free publicity.  Many won't want to hire a whistle-blower, but he'll probably land ok.
Sat 27 Sep | Frederic Faure | For those interested, the report is here: http://www.ccianet.org/papers/cyberinsecurity.pdf
Sat 27 Sep | who cares | If anyone wants to talk about conspiracy and bias, have a look at the crowd that published the report. Microsoft this, Microsoft that, Microsoft are nasty, .... http://www.ccianet.org/index.php3
Sun 28 Sep | Jacco | Also have a look at http://www.ccianet.org/membership.php3 and who do we see there? Well known 'friends' of Microsoft like Sun, Oracle and AOL. I think think this CCIA one of these bodies that's just cranck out reports that contain whatever their sponsors/members want to made public by a seemingly independent organization. (Microsoft has a few of them as well). Those reports have no value at all, it's just rewriting the (political) arguments of the sponsors into something that sounds objective (and CCIA didn't even do a good job at sounding objective).
Sun 28 Sep | name withheld out of self-preservation | They're lobbyists. The authors (Schneier, et al) don't have the resources of their own, so they used the Washington machinery of companies like Sun and Oracle. Obviously the CCIA did this of their own interest, but are people claiming they paid off the well-known authors to possibly dirty their names? That sounds like a big charge.
Sun 28 Sep | G | If I had a company, and an employee of mine criticized like that one of my customers, I would have done exactly the same thing!
Sun 28 Sep | who cares | > are people claiming they paid off the well-known authors to possibly dirty their names? That sounds like a big charge. First, if you commission a report on the security problems of a software monopoly, do you think the outcome or the target is in any doubt. Second, there are heaps of authorities with interests aligned with CCIA who can be enlisted to write such a report. Third, the fact that Geers - the guy sacked by At Stake - even participated in such a loaded exercise reveals a strong anti-Microsoft attitude that probably caused numerous issues while he was at AtStake.
Sun 28 Sep | Michael K. Bryor | 'Those reports have no value at all' Yeah, when they said there are security risks inherent in using MS software, it was all a despicable lie without any basis. Just a bunch of politics. MS operating systems and software are THE most secure and reliable products available. The so-called 'Reports' of problems so far are just lies and propaganda. The few cases where there was a 'security' issue is really where the user was so stupid they never should have been allowed to have a computer in the first place.
Sun 28 Sep | who cares | Yeah, that's right. Barn, aim at, fire.
The Soul of a Chef | Fri 26 Sep | Tayssir John Gabbour
Keller has put in skylights, an expensive design decision requiring compilcated rerouting of the exhaust systems above the stoves. He wanted abundant natural light in his kitchen. I knew I had to have the kind of place that would attract people who can do this kind of food, he explained. I just got _The Soul of a Chef_ by Ruhlman, second book in his series, and this quote reminds me of Fogcreek. It was uttered by the main chef of Napa Valleys French Laundry restaurant, and for a couple paragraphs the book talks about the carpeted mats in the kitchen, and two long windows that run the length of it. After reading his earlier book, I emailed the author that I thought there were parallels in software dev and the cooking industry; and he seemed to like Joels article on Big Macs, as well as http://www.fastcompany.com/magazine/30/trotter.html . It seems the cooking world has many battles eerily similar to the ones in the software world. I could write a long review about them, but this would be a long post. ;) Im curious if anyone has any good books outside the software dev genre, that you feel applies to the developers world?
Fri 26 Sep | www.marktaw.com | Sleightly cynical here... isn't "a good work environment" a nice to-have no matter what your industry is?
Fri 26 Sep | Bob Ng | people issues are endemic across all disciplines.  Wake up nerds!
Fri 26 Sep | Tayssir John Gabbour | Maybe I shouldn't have linked this too closely with Joel's recent entry. My point was there exist books that really bring out parallels between crafts... The nice workplace thing was just a couple paragraphs out of two books. And I wouldn't say great places to cook are easy; to the contrary, they're tough and you're expected to find your own motivation to love the work. Plus, people eventually get sick of doing things another guy's way and desire to work for themselves. In fact, the French Laundry's owner wishes he could create a restaurant with about five cooks who work independently, with no head chef imposing his will. But there are other parallels. In the US, there's the Culinary Institute of America, which has many good qualities but many in the industry are disturbed at its influence and sometimes play political games... they also have a grueling 10-day certification test for ~$2.5k that many question. These are some obvious parallels. However, the author is skilled enough to talk about inner motivations of cooks he's met; the uneasy rift between selling yourself and being a 'real cook.' (The story of Mel, anyone?) Other stuff too, I recommend the book. I guess I don't care about the old debates on whether a nice working environment is good. There are a lot of restaurants and software shops, only a few are dream places to work, and the people staffing them are a little insane. Instead, I want to learn about books. Another good book was one Joel mentioned, _The Secrets of Consulting_ by Weinberg. I don't consult, but it certainly was... educational... Giving advice looks like a subtle and risky craft.
Fri 26 Sep | Marc | I've said for years that Chefs, Musicians, and Programmers are all leaves off the same tree. Even having done all three I'm still sometimes astounded by the similarities of these professions (especially restaurants and software shops). I'll have to pick up the book; sounds like a good read.
Sat 27 Sep | Albert D. Kallal | >I've said for years that Chefs, Musicians, and Programmers are all leaves off the same tree. Even having done all three I'm still sometimes astounded by the similarities of these professions (especially restaurants and software shops). Do you have any nice cute article that expands on the above? While the “Big Mac Vs chefs article is close, it spends too much time on IT and consulting. I would love to find a real nice written article that explains the similarities between Chefs, Musicians, and Programmers. Anyone with a good story / reference? Albert D. Kallal Edmonton, Alberta Canada kallal@msn.com http://www.attcanada.net/~kallal.msn
Sat 27 Sep | www.marktaw.com | No but I could build one for you. All three involve studying, often by example: Is that tarragon? Was that a G major followed by a B minor seven? What algorithm does Friendster use? Building up a set of tools: Does everything you cook have paprika? Everything you play sounds like Led Zeppelin. I think Joel spent too much time at Microsoft. Finding creative solutions to problems: By braising the Mahi-Mahi and bruising the cucumber, I find that each bite remains fresh. Instead of going to the 'V' chord in the chorus, I go to the 'VII' chord, which adds even more tension. Instead of making API calls, I cache the information in RAM. Sacrificing your personal ego sometimes for the greater good: I find this dish works better without Paprika. You're right, a guitar solo isn't quite appropriate here. Okay, maybe I won't write the applicaiton in Lisp. Some people are talented and lazy, others aren't talented and work hard, and other mixes of the two. I don't think I need to give you any examples. Throw in a few more similarities, a few differences, and pad it out with some anecdotes and personal experience, and you have yourself an article. All three have rules, which can be broken, a scientific and artistic side, all three can be done alone or in collaboration, and all three have an audience that needs to be pleased... or not. All three have superstars, personalities, punditts, magazines. All three can be appreciated by anyone, and have obscure or very public examples of work that defies convention. All three are mediums in which everything has been said, and everything is always new. By the way, go to any audio forum and ask for their favorite recipe for ______ and a dozen people will step foward.
Sun 28 Sep | TheWeasel | I'd recommend this book to anyone with a passing interest in cooking or dreams of running their own restaurant. Keeping on-topic, the section on the Certified Master Chef exam is interesting for the way its its discussion of 'do we need certification for our industry' mirrors the discussion you see on these boards and elsewhere. The middle section about running a small highly succesful restaurant is perhaps the most entertaining and vividly illustrates the value of learning, thinking hard about what you do, and team work, and also of the importance of networking in career development. The final section about a restaurant that has achieved /some/ of its owners personal goals is good source of inspiration to anyone else trying to Get There. One thing I really think the s/w biz could take away from this book (other than an appetite) is the idea of apprenticeship. I forgett the actual term used, but the idea is to spend a week, a month, a year working in other kitchens to get new ideas, recipes, techniques. Over all, an excellent read.
Grudgingly admitting defeat | Fri 26 Sep | Philo
Have you ever had to implement a technology you *hated* in a proof of concept? Did you do your best to make it work anyway? Did you have to eat crow and admit itll do the job (possibly dooming yourself to working with it forever)? Or did you, either intentionally or by simply not trying hard enough, allow the technology to fall flat on its face? [Id recommend withholding your name on this one] (This thread brought to you by the allowing the tech to fail observation by Portabella in the VLDB thread) Philo
Fri 26 Sep | Alyosha` | Not to hijack your thread, but I wonder if anyone has ever done a proof of concept which didn't ... prove ... the concept (i.e., the initial analysis lead you down the primrose path to unmaintainability and unscalability (is that a word?)). To answer your question, Philo, no, I've never had that experience, cause I'm always right. =-)
Fri 26 Sep | pdq | I have done a proof of concept that showed we didn't have the knowhow to do the whole project. The development team swore if they put a little more time in the prototype, it would work. The performance was an order of magnitude from what we needed so we punted and ended up licensing something instead. To Philo's original thread, nope. Usually self fufilling prophesies.
Fri 26 Sep | SteveM | Well, I've been 'forced' by senior management and sales&marketing to implement something I was convinced and adamant just couldn't work. More than once it's turned out I was wrong; when I really tried I made it work... I've always chosen to regard this as conclusive evidence of my own genius
Fri 26 Sep | Portabella | > something I was convinced and adamant just couldn't work. Well, the longer I stay in IT, the less I am inclined to say 'Can't work', because I've seen so many amazingly bone-headed ideas actually made to work. I call this the follow-through coefficient, and claim that it can be described by an equation like this one: worth of idea * follow-through coefficient In other words, even really good ideas will fail if they do not have enough oomph, and even really bad ones can often be made to work, given sufficient push. Please note that just about *anything* can be made to work if we have control over what the requirements are, since we just change the requirements to match what we actually did. I've actually seen projects which were run this way, though usually not commercial ones.
Fri 26 Sep | Tom Vu | >>proof of concept which didn't ... prove ... the concept yes. I would say about 95% (or higher) of my research is thrownout.
Fri 26 Sep | Dave | Sometimes, even on a commercial product, it simply makes sense to tweak the requirements to match reality. We oftentimes create a UI design that turns out to be not *quite* do-able. Instead of spending three days trying to wrestle with Windows Forms to get it to look *just perfect*, we just change the requirements. Note, however, that we only do this for those requirements that really don't matter, such as small tweaks to the UI. For important requirements, we would cut the feature before we'd work the requirements around the difficulties of the particular technology, since going forward without doing it right would drag down the quality of the product.
Fri 26 Sep | Wedge | What's wrong Philo?  They picked Oracle, didn't they?  They probably did it just to spite you if you've been talking up SQL Server to them as much as you have here.
Sun 28 Sep | Clay Dowling | I've had a few. My attempts to use ActiveX from C++ have all ended in scrapped code. Pretty much anything I've done with Visual Basic has wound up scrapped, since it was obvious that it was unmaintainable in the long term. My proof of concept for getting rid of embedded HTML in ASP programs went right out the window. Actually, I followed that proof of concept a few months later, and have since used a variant of it in almost all of my software.
Sql server question | Fri 26 Sep | sql newbie
i have about 1.5 GB of text files created every day. i can have these automatically entered into sql server, which would enable me to run some handy-dandy analysis software blah blah blah. i would like for sql server to automatically delete all records in this table that are older than say, two weeks, or something like that. whats the best way to do this? thanks for your help.
Fri 26 Sep | John | If the table has a column (create_date) that is set to the date when the data is loaded something like delete tablename where create_date < dateadd(dd,-14,getdate()) will delete all the records older than 14 days. SQL Server has a scheduler that can be used to run this once a day.
Fri 26 Sep | sql newbie | excellent!  thanks so much!
Fri 26 Sep | Glade Warner | Anticipate the delete of 1.5 GB of data to take some time, especially if the data is stored into many rows and there are indexes on the table. I've worked with an Oracle database table that was large and hand several indexes. It took more time to delete the rows from the database than it did to insert them in the first place.
Fri 26 Sep | Philo | It might be worth writing an SP to drop the indexes, run the delete, and then put the indexes back. Philo
Fri 26 Sep | Li-fan Chen | Second philo here, the reasoning behind it is because everytime there's transactions happening to a table.. the table index(es) needs to be maintained. That means.. take whatever part that was affected.. recalculate the index.. save the index. Not to mention the logger has to write to the rollback log your action, row by painful row. And as you delete these rows one at a time.. the index is wasting a lot of time rebuilding an index for the rest of the records that are soon to be deleted anyway. So for an offline db, do it exactly as philo says, for online, add a step to duplicate the table without the index.. and without the rows you need.. rename as proper... or if you can.. drop a partial index on the records affected.
Sat 27 Sep | Troy King | I have to manage millions of deletes a day. The best way to do it is not to do it at once. It ties the log up for too long and makes it grow like crazy. If you can make deletes more frequently than once a day, you should. Even a once-every-five-minutes delete would be ideal, if it suits your data. That way you don't wind up with a bajillion delete rows in the log and wind up waiting a half hour on the checkpoint.
Sat 27 Sep | Philo | Heh. I thought 'turn off logging' was obvious - it's usually the indexing that trips people up. Philo
Sun 28 Sep | Troy King | Philo, please, for the benefit of us all, post directions on how to delete specific rows from a table in SQL2K without logging it. TRUNCATE TABLE doesn't count because it deletes all rows. Tell us any way you know how to turn off logging for the purpose of a DELETE in SQL2K, since it's so obvious and funny to you.
Sun 28 Sep | Philo | Rule #1: Think before posting. Rule #2: If tempted to make a quick quip that really requires no thought, rule 1 becomes imperative. Totally moronic post on my part. When doing a bulk *insert*, you can do so without logging by using BCP. I honestly don't know what was going through my brain when I wrote that. My apologies. Philo
Sun 28 Sep | Matthew | Troy, Re: disabling logging, check out Recovery Options. I believe (though its been a while) that Simple Recovery will disable logging. Of course, you will want to make sure you do a full backup before and after the job. Simple Recovery is similar to trunc. log on chkpt as well. Seeya
Where to Place a Job Ad? | Fri 26 Sep | Dave
Im about to put a job ad up, and I wonder if Monster.com is still frequented by a lot of folks? Ive used them in the past, but its been about a year since Ive hired my last programmer, and I wanted to know if things have changed. Does anyone have an opinion out there in terms of if Monster.com is one of the places youd look first if youre looking for a programming job? (I know Id look there first.) Id like to use one service only, and Id like to use the best one... Thanks, Dave
Fri 26 Sep | Prakash S | YOu could put on Simon's website http://www.ijustheard.com - it will hekp the folks on this forum....
Fri 26 Sep | RocketJeff | Do you really want to post an ad? At this point, you'll be drowning in email within an hour. I'm looking for a new job and in the past 2 weeks I've been directly contacted by a couple of companies (not recuiters) based on the resumes I have on computerjobs.com and dice.com. Talking to them, they decided not to post the ad because of the email flood and the annoying calls from recruiters trying to place people (they didn't want to use recruiters). There are enough current postings on the job sites that both were able to find enough qualified people without have to post the job.
Fri 26 Sep | Dave | Prakash - Thanks for the suggestion. I'll check it out. RocketJeff - That's an interesting take, but I guess my gut reaction is that I don't have time to go hunting people down. Instead, what I do is purposefully make it a little involved to apply for the position. I have a multi-page questionnaire that I ask applicants to fill out. In addition, I refuse to review plain-text submissions sent via the 'automatic' tools on Monster. Plus, I can judge by how people chase the job how much drive and motivation they have. Anyhow, this process has worked very well for us in the past, and I think I'm going to stick with it, but thought I'd throw the question out there to see if there was any 'out of the box' thinking I should be doing... I'll look into both suggestions. Thanks!
Fri 26 Sep | RocketJeff | Dave, While I'm sure you get people desperate enough for a job that they're willing to jump through hoops, do you think you're actually getting the best qualified people? Heck, I haven't had a full-time position in 11 months and I wouldn't follow your procedure. People who make you jump through hoops just to get an interview are usually the same people who continue to jump though them after you're hired.
Fri 26 Sep | Sam Livingston-Gray | http://www.craigslist.org - depending on your region, of course.
Fri 26 Sep | Philo | 'RocketJeff - That's an interesting take, but I guess my gut reaction is that I don't have time to go hunting people down.' Then you don't need to fill the position. Philo
Fri 26 Sep | Dave | RocketJeff: The real superstars recognize the fact that I'm providing them with the ability to gain an edge over their competition, and leap at it. The best employees I ever hired were those who went to town on the application. I'm afraid not enough people realize that when you apply for a job, you're selling a product--yourself. So, I'd compare your question to someone who would ask, 'Do you think the vendor will actually spend the time to fill out this RFI?' Only if they want the business...
Fri 26 Sep | Dave | Philo: Huh? I'm afraid your response is counterintuitive. Only if I had spare time should I question my decision to take on another employee. I need to spend my time managing my project and reading questionnaires from those employees who want to fight for a position at my company, not going out and hunting people down. Dave
Fri 26 Sep | Andrew Burton | I use http://www.flipdog.com and http://www.computerjobs.com when I'm looking for a job.
Fri 26 Sep | z | >>> RocketJeff - That's an interesting take, but I guess my gut reaction is that I don't have time to go hunting people down. <<< The concept here is that you have your choice of spending time hunting people down or spending time sifting throught the flood of responses you'll get when you post the job ad. Some employers think the former is more efficient.
Fri 26 Sep | gc | What browser do people use for flipdog?  Please be specific as to version.  My initial attempts to use that site resulted in various browser crashes and hangs.  I have never seen site that caused so much trouble for the browser.  I use Netscape 7.0 and have tried a couple of others (don't remember which now.  I finally gave up.)
Fri 26 Sep | Anonymous Coward | You could try reading the big orange box in the centre of the page that says: *** NOTICE *** This site contains programming that requires a different version of your Netscape browser. FlipDog.com currently supports Netscape 4 (versions 4.07 to 4.79).
Fri 26 Sep | Tom Vu | put your ad on a mailing list targeted to desired skill set. I have found that people who are really interested in the technology or field subscribe to a mailing list
Fri 26 Sep | Alyosha` | Dave: have you asked your current employees who they know? It's better sometimes to search your network than to pick someone up cold off the street. When I was unemployed, I would often send my resume to the person or email listed (with a brief one-or-two paragraph sales pitch), as well as use the automatic tools on Monster. The reason being that I did not know if they thought like you did (automatic tools = lazy = no hire) or whether they wanted all their resumes to go to one account (not using automatic tools = doesn't do what we asked = no hire). The other disenheartening thing was to fill out pages and pages of 'who are you' registration forms without any guarantee or belief that anyone would ever see them. If you do choose to use Monster, please make sure to indicate: * real people, no agencies * send me email with cover letter (no automatic tools) Also make sure each applicant gets a response that you recieved and will see their resume (preferably in a way that doesn't seem autogenerated).
Fri 26 Sep | Clutch Cargo | Flipdog?? The jobs there are pulled from websites by a spider. There are jobs listed for any number of companies that went out of business a year ago. Applying for Flipdog listings has to be the least effective way to find a job.
Fri 26 Sep | Dave | Alyosha` Great feedback, thank you. I have informed our staff that we're looking to fill the position, and they're keeping their ears open. I did specify on the Monster ad that a) send a cover letter, resume, and completed questionnaire, all in Word format, b) no agencies or sponsorships, and c) we will not review resumes in plain text format or automatically submitted via Monster's tools. Dave
Fri 26 Sep | Dave | And I'll have to work on getting a response out to people--the hard part is not making it seem like it's automatically generated. Even if I manually replied, I'd likely copy and paste, so it would be difficult to get back to everyone. However, since only a small percentage actually follow directions, I could probably get back to those who do, in fact, submit all three required documents. Thanks again, Dave
Fri 26 Sep | www.marktaw.com | Sounds like these tests I heard about in high school, and I think I actually took one. 'Carefully read all the instrcutions before you begin the test. 1. Do not fill out any questions, you will fail if you answer any of the questions. 2. Just write your name at the top of the page and fold your hands.'
Sun 28 Sep | Dave | I'm looking for those people who either got it right the first time, or never forgot the lesson. Dave
Example of Optimizing to a Performance Metric | Fri 26 Sep | Ray
Just found this article that talks about the timers at a Burger King drive through and how in order to ensure the staff that was working would measure up the writer as a customer was asked to do something that didnt make sense to him... Just another example for the argument against performance metrics. Onces there is a measuring stick in place, people will optimize their behaviours to it in any industry.
Fri 26 Sep | Ray | Sorry, should have included the article. D'oh! http://www.fool.com/news/commentary/2003/commentary030926ram.htm?source=mppromo
Fri 26 Sep | Passater | Great article, thanks.
Fri 26 Sep | Dignified | We had one of these at a Taco John's (regional Taco Bell competitor) when I worked there in high school. We *never* asked a customer to pull ahead on an order, unless the customer behind them had their food ready. That being said, perhaps ours was less sophisticated. It just kept an average of all times on an LED, and then at the end of the shift, the manager recorded them. So, before we left, we drove on and off it a few times. A bunch of 1-second times drops that average like a stone! ;)
Fri 26 Sep | Nick | I don't think that providing one example of an abused performance metric means that all performance metrics are bad. And believe me, I've seen plenty of examples of misapplied and abused performance metrics. But I have seen many more examples of well applied performance metrics that are tamper resistant. Performance metrics are best applied when the process that is being measured can be standardized. I've worked in manufacturing and my wife works in mortgage underwriting. Both are environments where standard metrics can be applied with good results. Software development, on the other hand, is much less standardized, and therefore performance metrics can be difficult to apply. But that doesn't mean they're bad in all cases.
Fri 26 Sep | Philo | 'I've worked in manufacturing and my wife works in mortgage underwriting. Both are environments where standard metrics can be applied with good results.' Yeah - witness the growing trend of bankruptcies filed, to the point that the banks lobbied to make bankruptcies harder to get. Yep, those loan worksheets work like a champ! Philo
Fri 26 Sep | T. Norman | True, not all metrics lead to this kind of behavior, but most of them do when the particular metric's importance is allowed to dominate over the rest or can be faked. Like using lines of code to measure productivity, while ignoring bug rates and maintenance effort. Or using budget compliance as the primary measurement of a manager's success, resulting in decisions like laying off the $85K expert instead of the $60K average guy because that makes this year's budget numbers look better.
Sat 27 Sep | Julian | Performance metrics are often counterproductive. For example, focusing on bug counts leads developers to argue whether something is a bug, leading to unnecessary hostility and discouraging people from filing bugs. As another example, increased standardized tests in public school lead teachers to drill students for months about how to do well on those particular standardized tests. In both cases, aiming for overall quality, without objective metrics, would generate better results.
Sat 27 Sep | Nick | 'Yeah - witness the growing trend of bankruptcies filed, to the point that the banks lobbied to make bankruptcies harder to get. Yep, those loan worksheets work like a champ' Actually, this underscores my point. My wife works as an underwriter in the non-conforming (higher credit risk) mortgage business. Many of the companies that have entered this market in the last few years are flight by night operations sweeping in to capitalize in the low interest rates. Most also don't have standardized processes for ensuring the quality of their loans. Sure, they have underwriters that underwrite to guidelines, but the quality of the underwriting is not as important as the turn time and volume to most of them. But, back to my main point - these companies don't bother with performance metrics, whereas my wife's company has been very solid on this front. Her company has used the loan default metrics to go back and adjust their rates, guidelines, and training where necessary. Looking at the past two year's worth of data, their monthly deliquency rates have gone steadily down from 0.8% to 0.6%. I am a firm believer in performance metrics. If you want to improve something, measure it. It may not apply to all areas of performance or all types of businesses, but it does to a lot of them. I understand why many people have a bad taste in their mouth when it comes to performance metrics. I've had my share of piss-poor metrics mandated upon teams I've been on. But overall, the main problem with performance metrics is not whether they should be used, it's with how they are used.
Sun 28 Sep | Philo | The problem with metrics is that we're not robots. So you will always fuck people who don't conform to the metrics. So long as you don't have a problem with screwing random strangers, this is not a problem for your business. But I've met a *lot* of people who swear by the system until they get screwed by it personally (DA's that become defense attorneys, credit underwriters who become credit repair counselors, IRS auditors who become tax attorneys). I'll bet your wife budgets her credit in such a way to maximize her credit score - not because it's the best way to manage credit, but to game the system (it seems like a *lot* of loan officers keep 2-3 credit cards and make purchases on them regularly, then pay them off in full - why not simply keep one card and pay in cash when possible? Because that lowers your credit rating). In other words, she optimizes to a performance metric. Philo
Sun 28 Sep | Ray | I have to say that I agree with Nick. The metrics aren't the problem, it is how they are used. In the Burger King/Taco Bell/ example it is obvious that the 'time per customer' metric is being used to either punish the staff of a particular shift or as a way of ranking staff or something like that. Since the measurement of the metric has a direct impact on some aspect of the staff's lives like compensation or employee of the month or whatever, the staff has incentive to optimize for the metric. If on the other hand, the metric is a short-term thing used to gather information on customer service times and then look for ways to optimize the overall proceedure that the staff follows or to detect trends in what time of the day certian foods need to be closer to being 'customer ready' then the staff wouldn't have a need to optimize to that metric. I think the bottom line is if the metric is going to be used in any way that affects the employee, it will be optimized for and an info you gather from the metric will be meaningless.
Web servers cluster : where do I store web files ? | Fri 26 Sep | Olivier B
Hi Im planning to build a 2 web servers cluster to make my web application more robust. Everything is ok (load balancing, failover, session management, ...) but Im not sure where to store the web content (asp, php, jpg, gif...) ! Each server must access the same files to provide the better quality of service. We change the files many times a day, so we need the directories to be synchronized in permanence So, many solutions are available : Storing the files on a third server, using microsoft file sharing system (\\server\folder) and a lan 100 mbps connection. It works quite well... but the processing times of the pages seems to double (and worse) 150ms for local files... means 400 ms of a distant server Replicating the files : we need big hard disks on each front server (ok, its not so expensive). The main problem is to find a way to have perfect copies of the files in permanence (is the expression in permanence ok ?) using Windows DFS means having an Active Directory system, with a Domain, a domain controler... things we do not have for the moment... but we can use if its a good system. Buy a scsi hard disks bay... seems perfect but costs $6500 So if you were me what solution would you use ? Some information about the web site : 20 000 sessions a day (peak usage) 2.5 millions of pages by month the front servers could be something like 1 or 2 Xeon 2.4 or 3.0 ghz, 2gb of ram Sorry for my bad english, its not my native language.
Fri 26 Sep | Andrew Hurst | Both have their own copies, and use source control. So you'd have a third server where you'd keep the full CVS (or whatever your favorite flavor is) tree and develop off of that. When you are satisfied its production material, tag it, and check out that branch to each of the production servers. You can even write a little program to login to each server and checkout the tree at the same time, so as to have the least amount of non-sync between them (yes, bad grammar, I know). This scheme could be made better with test servers, etc. But I think just using cvs or another source control would work fine, and it would be easier to add another machine in in the future should you need to (just add that to the script).
Fri 26 Sep | Patrik | An external disk subsystem that both nodes can use would be the best way to go. If you want failover, you can not have disks within the machines, since if the power fails to one of them, you loose whatever disk is inside that machine. Replication gives you headaches and introduces the risk of getting a different set of files on one than the other in case replication of files fails (temporary network outages, and network related problems). A 3rd server would introduce a single point of failure. What is the point of having 2 machines load balanced and all nicely clustered if they depend on a third machine?
Fri 26 Sep | Li-fan Chen | At the moment our office and our cohost is going with the 'the webserver should access files stored on local scsi drives' style of serving. Because there are cold stand-by and hot stand-by servers, the minted master pages has to be replicated perfectly to all the webservers. We are trying out a few replication software that lets us transfer files properly. Peersync is the one we are evaluting at right now. The only way to reduce 150ms is to change protocols. Networks are faster than files, but TCP/IP is not faster than a local file open call. This is doubly so if the file in question is already be cached by your Windows kernel. There is one way to solve this problem and still let the files stay on a single networked file server but it would required wholesale caching of frequently access web views or web pages, but that eats up a lot of ram. If you are worried that the page accesses to your site is evenly distributed, you'll need to partition the caching over several servers and teach the page cache manager where to go for the cached pages. -- David
Fri 26 Sep | Joe | you can look into rsync to sync the filesystems http://samba.anu.edu.au/rsync/
Fri 26 Sep | Li-fan Chen | Is there any good how tos for rsyncing on the windows platform?
Fri 26 Sep | Philo | IMHO, server clusters are more about scalability than availability. Two web servers in a cluster should NEVER be considered redundancy. Why? Because in my experience the #1 point of failure for a website is network-related. Hint: Two webservers in a cluster must, by definition, be on the same network segment. So when that network problem happens, they're both gone. You cluster for scalability - load balancing, etc. And the smartest way to do it is to have two identical independent systems. I concur with the CVS solution - your publishing script simply pushes the pages to two locations. You need source control anyway, so no big deal. Now for availability, you duplicate your solution at another physical location. :-) Philo
Fri 26 Sep | Li-fan Chen | Philo.. we have two sites.. sorry to not point that out... not only are they in different cohosts.. one is situated in a counter less likely to be nuked.
Fri 26 Sep | Philo | Heh - good answer. I was really addressing Patrik's comments re:failover. Philo
Sun 28 Sep | Olivier B | the main raison for why we choose cluster, is because we use colfdusion MX... which is a great tool, but with lots of imperfections. The main one is the fact that in a time that vary from 2 hours to 2 weeks, with no reason, the server crashes. No matter the code is build, the amount of ram, the server has to crash :-( The problem is well known, and many people developping coldfusion mx application have it. When CF is crashed, nothing seems to be able to make it work. The best thing would be a physical reset of the server, but it means 5 minutes of unavailability... which are imho too much. So... a cluster... The problem of the disks is really annoying, because of the way we actually access to the files. The cfm, jpg, ... files are mainly send from the developpement server to the production one using ftp protocol. But we aslo have a back-office system for non developpers people, to allow them the publication of pdf files, screenshots, ... using an HTML file upload system. The file is uploaded to the server, then stored on a specific directory. So the CVS isn't enough for our problem. It solves developpement organisation, but not the usage of the back-office. So a replication must be in both ways, that is to say a perfect replication, where files uploaded on server1 have to be transfered on server2 and conversely. I looked for information on the windows replication system. It seems to answer my problem, but needs a Domain Server, and all the AD stuff, a bit boring for only 2 servers. I'm not sure, but I think that the scsi bay could only be accessed by 2 servers. If a day I need a third frontal, how should i do ? The caching method is a great idea, because many of our pages could be cached. We are a sort of small amazon.com with many 'product pages' ... the only thing the server have to to is to check the date of the file on the distant server and if it's the same that the one in cache, no need for transferring it. But i'm not sure, it seems that the main problem of the placement of the files on a distant server is the access to the files, not the transfert. For example, I tested a page which is composed by only 3 different files (using includes) it is very fast to recompose. But a page with 7 or even 10 templates takes really more time, because of the need to call a file, analyse it, then recall another file, so on... so... no really good solution... anyone has expierience with DFS (file replication system used in combinaison with and Domain server) ?
Null-ing combo boxes in VB6 | Thu 25 Sep | Sam Livingston-Gray
Im working on my first VB6 database application after years of developing in Access, and this one is a real jaw-dropper: Using a form with data-aware combo boxes (in my case, Im using ComponentOnes combo boxes, but the effect is the same with a DataCombo from MSDATLST.OCX) and an ADO Recordset (based on an Access 2000 MDB) as the data source, its impossible to Null-ify the field a combo box is bound to without using some rather silly code. I can open the form, retrieve a record, clear the contents of the combo box, save and close -- but when I reopen the same record, the value I cleared is still there. I cant set it to Null in code either, because then I get an error message stating that Multiple-step operation generated errors. The only workaround Ive found is to call the recordsets .Update method, then run a SQL statement like UPDATE table SET field=Null WHERE primarykey=123. Needless to say, this feels a bit kludgey. Any alternate solutions?
Thu 25 Sep | Simon Lucy | In your phrase 'save and close' what do you think is happening during save? Is it an updateable cursor? I guess it must be if you can call an UPDATE method on it (though that might go redo the query all over again). Have you gone and looked at the data directly in the database to see whether it has been changed? My guess is that it hasn't, and that you're working with a plain old cursor or view.
Thu 25 Sep | Sam Livingston-Gray | Funny, no matter how much information you post when you first ask a question here, someone always asks for something else. ;> Anyway, Simon, it's a connected ADO recordset with client-side dynamic cursor. Problem #1 is that apparently no Combo box is smart enough to set its value to Null when you clear it (except, of course, for the combo boxes in Access). Problem #2 is that the simplest workaround (setting the value to Null directly before updating) errors out on the line that calls .UpdateBatch, so the data is not being written to the underlying DB.
Thu 25 Sep | Matthew | Sam, Anyway, Simon, it's a connected ADO recordset with client-side dynamic cursor. There is no such thing. If you have an ADO recordset with a client cursor then the cursor type is always Static (regardless of what you set it). This is not well documented, but you can check it for yourself. Problem #1 is that apparently no Combo box is smart enough to set its value to Null when you clear it (except, of course, for the combo boxes in Access). Its not a 'smartness' issue. Its that standard VB textboxes return strings. And VB strings cannot contain Null (by definition). Problem #2 is that the simplest workaround (setting the value to Null directly before updating) errors out on the line that calls .UpdateBatch, so the data is not being written to the underlying DB. To be honest, this is most likely programmer error (ie you have made a mistake). I would suggest posting your code to a VB list (say http://peach.ease.lsoft.com/scripts/wa.exe?A0=visbas-l ) and we can give you a hand. Seeya
Fri 26 Sep | Sam Livingston-Gray | 'If you have an ADO recordset with a client cursor then the cursor type is always Static (regardless of what you set it). This is not well documented, but you can check it for yourself.' Charming! Programmer error is definitely a possibility; I haven't worked with ADO much before. I'll head over to the list you mention.
Fri 26 Sep | Mark Pearce | Sam, >> I can't set it to Null in code either, because then I get an error message stating that 'Multiple-step operation generated errors'. << This error is normally caused by the underlying database column not accepting Nulls, or at least not accepting whatever type of data you're trying to push into it. Have you checked the constraints on the underlying database column? As Matt said earlier, a VB string can't be Null in a database sense, although you can set it to vbNull (which is definitely *not* the same as a database Null). HTH, Mark ---- Author of 'Comprehensive VB .NET Debugging' http://www.apress.com/book/bookDisplay.html?bID=128
Fri 26 Sep | Sam Livingston-Gray | For the record, I'm well aware that a String can't contain a Null. (How newbie do you think I am? (= ) I just find it amusing that combo boxes in Access, when you clear them, know to set their underlying value to Null rather than an empty string -- and, in fact, some of the 3rd-party text box controls I'm using have an option to do that as well! (= As for the constraints on the underlying database column (and I did mention that I'm using Access 2000 with an MDB, right?), the column is a long integer field, which is definitely nullable through the Access table interface (and via a SQL statement). It's only complaining when I set the field to Null (not vbNull, which evaluates to 1 thanks to type coercion) with the statement: rs.Fields(sFieldName) = Null Interestingly, calling UpdateRecordset before I do this, then setting fields to Null, then calling UpdateRecordset *again* works fine. Hm.
Sun 28 Sep | Matthew | Sam, As mentioned earlier, I really think you would be wiser to post this question on a VB list. You are probably missing something really obvious. You stated: not vbNull, which evaluates to 1 thanks to type coercion That is not really type coercion. It is just because vbNull is a member of an enum (and members of an enum always are numeric). Type coercion would be something like assigned a string to a numeric (or vice versa). Seeya
Message Based Programming | Sat 27 Sep | RB
Does anyone know anything about message based programming? Are there message based programming languages? What are the pros and cons compared with oop and other methods? Under what circumstances would message based programming be the right tool for the job? Ive been reading come of the GotDotNet blogs and they seem to push message based programming using xml as an interesting alternative approach to programming (alternative to oop). However I cant find any resources on the net that go into details.
Sat 27 Sep | Fairlight | I thought message based programming was OOP. I once read that Alan Kay while working on OOP at the Palo Alto Research Center in the 70's, explained the notion of objects exchanging messages ...
Sat 27 Sep | Tom Vu | Do you mean messaging? Look into TIBCO rendez-vous, JMS, spread.org. Or do you mean realtime OS messaging, then maybe qnx.com may help.
Sat 27 Sep | Gigi Duru | In OOP, by 'messages', in 99% of the time they mean just method calls. OOP message == OOP method call So, it's just another term.
Sat 27 Sep | Li-fan Chen | The only other method I know of is distributed programming. In distributed programming a job is really a series of dicrete steps. It is massively helpful if at any given moment any one of these series of step can step out of a busy processor and get the job done on a less busy processor. To do that it has to take the state of where it's at, package it (serialize it), go on a trip to the other processor, and resume it's job. This is very difficult (currently) if it's job is to finish a HTTP document transfer.. because how would you temporarily interrupt a connection with the client half way through a document.. and resume the connection on another web server? These are some of the problems being tackled by most major commercial research groups. Sometimes the management of job distribution is pretty trivial. You never dispatch a job to a busy server (among the cluster) and if the job never returns with the computational answer after a timeout you just send out the job again. But all of this requires the mini-steps bring their job with them.. as they go from one step of the crunching to the next. And that's one way to do computation with messages.
Sat 27 Sep | Li-fan Chen | In short, functions and objects are almost always never stateful. And you can reset an object's identity by having it load a serialized "object" that came in over the network. This is part of what Java's JINI  can do.
Sat 27 Sep | I'm Brian Fellow! | REBOL (http://www.rebol.com) is billed as a 'messaging language'. I think they make their claim here due to the language being: * highly network-centric - nearly all major standard protocols built cleanly into the 200KB lang core * highly platform independent - 40+ platforms supported with _zero_ modifcations necessary to port your code * highly readable - when properly written, the code reads a bit like a run-on sentence; if you want it even more readable you can write a domain-specific dialect that mimics your favorite pseudo-code or program design language So, I think the idea they're going after is near-universal inter-machine communications, in a way that's readable for users/programmers. How much they deliver against that is a matter of opinion, but I can say that I find the language to be a spunky little champ regardless of the 'messaging' label. Check out their online cookbook for an example of 2 scripts talking to each other over TCP/IP in 25 lines (including a minimal GUI): http://www.rebol.net/cookbook/ Most other languages are traditional fare with special libraries added on to generate XML/RPC/SOAP -- the language is divorced from the data, its format and the transport mechanism. REBOL's value prop is that it unifies code and data in a human-readable format across all networked platforms.
Sat 27 Sep | RB | Thanks for the responses so far. I'm actually working on an distributed app that has several distinct workflow components and the workflow has to be configured by users. I think I vaguely remeber someone on this board talking about message based programming and they described it as having a post office type core with various independent modules that register their interest in a type of message. If that message arrives, then the post office forwards it to the interested modules. Is that message based programming? It sounds interesting but I want to know more details.
Sat 27 Sep | Dennis Atkins | You are thinking of Blackboards. See p 165 of the pragmattic programmer. Examples they give are JavaSpaces and T Spaces. Message based programming languages include SmallTalk and Objective C, but NOT C++.
Username field length | Fri 26 Sep | Dinesh
Why do we have username field length mostly as 40 char? I have not seen such a long user name. I have seen at the max 25 char long.
Fri 26 Sep | Brad Wilson | 'I can't believe we only left 40 characters for e-mail address. It needs to be 80 at least.' That's the job I worked a few jobs ago.
Fri 26 Sep | Philo | 40 chars for an email address is too short: jmichael.straczynsky@sciences.massachusetts.edu As for username, it depends on who controls the field. If you control it, and you're thinking standard usernames, then yeah, generally 15 is plenty. If you *don't* control it, then you have to be prepared for 'use email address as username' in which case see above. :-) Philo
Fri 26 Sep | Andrew Hurst | There is also the group that believes in using the full name as a username, i.e. "Andrew Hurst" for 12 chars or "Thurston Howell III" for 20.  I think 20-30 is enough for most uses. (except email, noted above).
Fri 26 Sep | matt | Why would you (the programmer) set a short limit anyway? What's the point? No RDBMS worth the name cares or differs in performance or takes more storage if you set the limit to, say 200 chars. So why set an arbitrarily short limit? Just seems like peculiar behaviour.
Fri 26 Sep | Brad Wilson | Actually, I take it back. It was 80, and we made it 160. The affecting factor was the temporary e-mail addresses that Monster.com generated.
Fri 26 Sep | HeWhoMustBeConfused | Think about it in the broader context of uses for this information. Do you want to use it for mail-outs? If you intend to print labels, better keep it less than 35 characters. Do you have to interface to another system? What are that system's semantics for names, addresses and related information? Do you work in an industry which standardises information for exchange between companies, such as banking? If so, make sure you don't exceed the (sometimes de-facto) standard. On this issue, I saw a banking system have to DOUBLE all the name and address field sizes when it moved from Australia to India. Some of those people have REALLY long names. Same in Thailand, made worse by the need for double-byte character support.
Fri 26 Sep | www.marktaw.com | > Brad Wilson (dotnetguy.techieswithcats.com) 43 characters
Fri 26 Sep | Brian | You would think that there's a limit to the allowable length of an email address, and I believe there was a 256 char limit under one of the obsoleted RFC's (822 superseded by 2822?), but the superseding RFC seems to not have a limit. Can anybody say for sure one way or the other? Also, this is only marginally related, but is it true that a windows path doesn't always fit in TCHAR[MAX_PATH] ? Something about paths beginning with '\\?\', or something? It's OT, but I'm curious.
Sat 27 Sep | somebody | >> Also, this is only marginally related, but is it true that a windows path doesn't always fit in TCHAR[MAX_PATH] ? Something about paths beginning with '\\?\', or something? << Yes, this is true. At least under NTFS, the limit is much greater than MAX_PATH. I think MAX_PATH is around 256 characters but the real limit is more like 32k. I've had problems with this in the past due to nested folders on the desktop or in Favorites. When this happens, it's easy to see what apps rely on hardcoded path sizes and which have robust path handling. I could've sworn that in the past that Windows allowed you to freely use the full path limit. However, I just tried out some test cases that used to work but they give errors now when MAX_PATH is exceeded. I'm running XP with all the latest updates so I'm going to go out on a limb and guess that Microsoft has started enforcing MAX_PATH at the API level for security. You can still create and access paths exceeding MAX_PATH by using file shares or drive mapping.
Cross-platform sockets in C? | Fri 26 Sep | Confused C Programmer
Hi. Ive recently found myself in the position of having to write a lot of network code in C. It has to run on both Unix and Windows. I havent done much network coding in C, and Id rather not have to write separate code for sys/socket.h and Winsock. Can anyone recommend any cross-platform sockets libraries for me to use? Ideally something simple that provides an abstract socket API to both socket.h and winsock, or something that provides the socket.h interface on both Unix and Windows? Thanks.
Fri 26 Sep | Chris Tavares | Does it have to be plain C? Can you use C++? The ACE[1] library is very well regarded in the C++ community for portable network programming. [1] http://www.cs.wustl.edu/~schmidt/ACE.html
Fri 26 Sep | Confused C Programmer | Unfortunately, it has to be in plain C.
Fri 26 Sep | David Roper | When last I tried this some years ago under NT4.0 there were, and probably still are, some real gotchas trying to make socket i/o code portable across Unix and Windows. The most notable of these was that Window has no concept of file descriptors, so you cannot treat sockets, pipes and files interchangeably. This means that fundamental calls like select() become unworkable. If you need to do anything more than just send and received stream data I would strongly recommend you get more than just a 'sockets' library. Take a look at http://www.cygwin.org. This is pretty much a complete POSIX API bundled into a DLL. It even provides fork() and exec(), which amazes me considering how fundamentally different the Unix and Windows process models are!
Fri 26 Sep | David Roper | Sorry, that's http://www.cygwin.com. Hey, it's Friday and it's late....
Fri 26 Sep | Shlomi Fish | Well, the Berkeley sockets API has relatively portable semantics, but I'm not sure Win32 follows them accurately. In any case, there are many abstraction layers for sockets: APR - the Apache Portable Runtime - (ANSI C) http://apr.apache.org/ ACE (like someone mentioned before me) NSPR - the netscape portable run-time (used by Mozilla) - I'm not sure if it's C or C++. Boost - a C++ framework that provides portable abstraction for sockets (among else). It has good Standard C++ (STL and all) operation. You can find more potentially useful links here: http://vipe.technion.ac.il/~shlomif/abstraction/ and on Freshmeat.
Fri 26 Sep | happy to be working | just follow the Berkeley sockets, and your set. Above those, windows only needs an init call to start the socket stuff. If you are doing select() calls, make sure you only do them on the sockets and nothings else. Portable socket code is pretty straight forward.
Fri 26 Sep | Chris Tavares | The other thing to worry about is that select is the wrong way to do sockets under Windows. The performance just blows. You want to use the Async I/O calls instead. If you're writing a client app, you'll probably be ok. If you need to be on the server, I'd say bite the bullet and do the separate versions.
Fri 26 Sep | tim | If you want to get the maximum benefit and performance from each platform's implementation and you don't want to use an available cross platform library, you really should implement certain functions differently. As an example, it would be criminal not to use WSAAsyncSelect() on Windows for event notifications. I don't think you will get the performance you would like under load with a generic implementation. Best to use platform specific functions where available.
Fri 26 Sep | somebody | >> The most notable of these was that Window has no concept of file descriptors, so you cannot treat sockets, pipes and files interchangeably. << Maybe I'm misunderstanding what you mean but once you have a handle to a socket, pipe, or file, they can be used interchangeably with API calls such as ReadFile and WriteFile.
Fri 26 Sep | tim | I recalled reading somewhere that socket handles are not file handles in windows. I went back and found it in MSDN, from which I ripped the following, which is hopefully not a copyright violation they'll come after me for ;) Socket Handles for Windows Sockets 2 A socket handle can optionally be a file handle in Windows Sockets 2. It is possible to use socket handles with ReadFile, WriteFile, ReadFileEx, WriteFileEx, DuplicateHandle, and other Windows functions. Not all transport service providers support this option. For an application to run over the widest possible number of service providers, it should not assume that socket handles are file handles.
Fri 26 Sep | runtime | Netscape's NSPR is plain C and very cross-platform. I've used the NSPR for some simple programs and I was impressed. Mozilla uses NSPR, so you know it is very well tested. :-) One problem might be that it has an open-source license that requires you to release changes you make to the NSPR source files, but not your own source files. Rebuilding NSPR yourself is difficult, but you don't have to because Netscape has pre-built libraries (static and dynamic/DLL) you can download and ship
Fri 26 Sep | Chris Tavares | 'A socket handle can optionally be a file handle in Windows Sockets 2.' It may say optional, but in practice I've never seen a socket handle on any version of Windows that wasn't actually a file handle. This out is there for people implementing other network stacks like IPX or Decnet or Vines or whatever. If you're using TCP/IP, a socket handle *is* a windows HANDLE, and you can use all the appropriate API calls. HOWEVER - the select( ) call, as far as I know, only works on sockets, not files, like it does on Unix. That may be what the original poster was referring to. This is yet another reason why asynch IO rather than select is the way to go on Win32.
Fri 26 Sep | HeWhoMustBeConfused | The Imatix standard function library: http://www.imatix.com/html/sfl/ has exactly what you need. While you're there, take a look at their Xitami web server. Small, fast, and exactly the way software should be.
Sat 27 Sep | Confused C Programmer | Thanks for all of the replies. The SFL, as well as some tools I found at freshmeat, seem to be exactly what I was looking for. This group has been most helpful. I asked the exact same question on comp.lang.c, and was told, in no uncertain terms, that any questions about sockets—apparently even questions about C socket libraries—were off-topic.
Sat 27 Sep | RocketJeff | Sockets _are_ off-topic for comp.lang.c. comp.lang.c exists to talk about the C language, not about specific implementation details. If sockets were part of the C language specification, then it would be on tpopic. The reason for this is simple - there are plenty of issues to talk about in C without talking about specific implementations/technologies. The newsgroup would be overrun with people asking Windows/Unix/VMS/BeOS/... specific questions ('but I'm doing it in C...') if they starting allowing this type of question. It's all in the faq for the newsgroup. You did read it before posting?
VB Bundling... | Fri 26 Sep | Spam
Hello, Sorry to bother you all with a repeat, but Im looking for a thread about software used to bundle a VB application into one distributable, without DLL hassles, etc. Can anyone point out where it is, or refer me to a place to look? I tried the search, but with no luck. Thanks.
Fri 26 Sep | Fred | I can't help you find the thread you remember, but it sounds like you just want an installer. In that case, I recommend the free Nullsoft installer. It works great!
Fri 26 Sep | Spam | Thanks Fred. I am looking at various installers, but in this case I have to get a test executable out this afternoon, and am grasping at straws. My application has some kind of DLL problem with 98se, and I can't resolve it. I have a colleague who's working on 98se, and needs to see some interface changes I've made. He doesn't have Visual Studio, so I just want to bundle something together to get it working over there; size doesn't matter. At the same time I'm trying to resolve these DLL issues, and am getting very confused by outputs from the Package & Deployment app, and dependencyWalker, etc. I'm not a Windows guru, and these things are confusing the heck outta me. I know these questions are asked all the time on here and elsewhere, I just can't find the answer I need. There, I feel much better now ;-)
Fri 26 Sep | Jon | Here's a thread... http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=47791&ixReplies=18
Fri 26 Sep | Kevin | I can't find the thread, but this might be what you're after: http://www.thinstall.com
Fri 26 Sep | Fred | I don't know much about Windows actually. I use the Nullsoft installer to install my Java software, JVM and all. I launch using a small exe I did in VC++.
Sat 27 Sep | Frederic Faure | You can use eg. PEBundle to cram DLLs and OCXs with your EXE. Works OK.
Best Cities for Small Business | Fri 26 Sep | Garett Chang
Don’t know if this has been posted before, but here is a pretty interesting article about a study done by Dun and Bradstreet detailing the “Best Cities for Small Business”. It also includes some information on job growth as well. Darn! Should we be looking to relocate to Minnesota :) http://www.entrepreneur.com/bestcities/0,5271,,00.html --Garett
Fri 26 Sep | Rick | That list looks pretty volatile from year to year... 28th! No, 8th!
Fri 26 Sep | MSHack | No you should not move... Rick is correct that the factors are too vague/uncontrolled/irrelavent to make a decsion. Of the top 10 this year, only 3 were here last year. With #1 this year being 15th last year. I suspect that if we looked at DC, where they have been in the top 2, for two years, we would find these are lobbies. Where being one is a business and who you know is not necessarily long term.
Fri 26 Sep | Nathan | I just started my business in Norfolk VA, and it's good to know I chose correctly.  I'm glad that happened to coincide with where I live... ;)
Fri 26 Sep | Mike | I live in MN.  Bring your business here, we'll tax you to death.
Fri 26 Sep | z | >>> I suspect that if we looked at DC, where they have been in the top 2, for two years, we would find these are lobbies. <<< The list doesn't have DC in the top 2. It says DC/MD/VA/WV. The DC suburbs in Maryland and northern Virginia have a lot of businesses, large and small, that provide services to the Federal government ('belt-way bandits' as they're called). And there are small businesses that provide services to the big companies that contract to the government. In addition to the feds, there are telecom and Internet companies (e.g. AOL).
Fri 26 Sep | christopher baus (tahoe, nv) | At least we made the list here in NV. Say what you want about NV, but you can't beat the taxes! christopher
Fri 26 Sep | me_in_the_corner | Peijing
Fri 26 Sep | Alyosha` | Nevada has the nation's highest tax on people who don't understand statistics.
Fri 26 Sep | Dave Torok | Statistics or Probability? a real question, because there's likely a real distinction somewhere... e.g. statistics being based on history (75% of the people who travel to Las Vegas lose $50 or more), probability based on expected future behavior (if you bet $5 on red/black roulette, there's a 47% chance of winning money on one spin).
Fri 26 Sep | GG | Seattle. But what kind of a small biz?
Fri 26 Sep | Cubist | I'd think the best place for a non-retail business is near others in the same industry... easier to hire and/or get people to move there.
Fri 26 Sep | fool for python | Henderson, Nevada baby. Good for business. Not good for all people though. There are many beautiful places to build a town in the Southwest. Vegas/Henderson isn't one of them. http://www.cityofhenderson.com/ecodev/ecodev.html
Fri 26 Sep | www.marktaw.com | Good ole New York, NY hasn't moved much: 31 -> 29, Seattle moved from 89 -> 50. Do they tell you what these numbers mean? What is 'Risk?' Is a 96 better than a 2? maybe we should all go to Indainapolis and Tampa (#44 and #25) where the risk is '2' and the small biz growth is in the 90's. Or maybe we should go to Nassau/Suffolk, New York (a-k-a Long Island, #43) where the risk is 100 and the growth is 8. Which is better? The only way I have a clue is that they list Nassau/Sufflk as the #1 Best Bet for Risk. So this means... I'm gauranteed to do well if I start in Nassau/Suffolk? Is it 100% or on a scale of some sort? Is 100 the top because the scale is weighted?
Sat 27 Sep | Marc | Anywhere in the North East if you ask me. It is just like California without all that California. ;-)
Sat 27 Sep | Bored Bystander | Surveys like this bug me for the following reasons. They present a bunch of variables such as rate of startups, survival rate of startups, etc without really being able to reveal the real story behind both successful businesses and failed businesses. For instance: a high rate of startups may indicate that a certain area has a bullish and non-conservative 'can do' culture. It also may indicate a lot of middle class pain: one thing that many laid off executives and managers do is look into sinking their remaining assets into an AlphaGraphics (or whatever) franchise where they visualize being their own self employed PhB. IE, a high rate of business formation may be indicating something undesirable in the local environment. A high rate of startups may contribute to consumer skepticism ('will you be around or will you fold like all the other stores that were in this space?') It certainly indicates that there will be a lot of the same kinds of businesses around competing for the same customers, loan money and employees. A low rate of formation of businesses *may* indicate overt conservatism, but it may also portend much better opportunities available due to underserved needs. And what about the unique nature of businesses? When someone is laid off or otherwise desperate for income, anything from these wireless internet kiosk 'opportunities' pitched on late night TV to a shrink wrapped franchise looks good. I submit that a person is better off looking around their community for underserved needs that fit their own temperament and talents - that is, if they have the will power and discipline to develop it into a business. I can imagine these surveys being misused in two ways. The clueless and unimaginative will use it to rationalize starting a business just because an area 'seems' to guarantee success. And someone who really needs to just buckle down and try their idea will be put off by a survey indicating probable early death. OK, I wouldn't try starting a skin waxing boutique in Steubenville, OH.... but aside from extreme mismatches between local needs and preferences and the product being sold, I think someone with a decent idea just needs to ignore the official numbers, do their own research and go for it... My $0.02, worth less than that probably...
Why am I regularly kicked out of my wireless inter | Fri 26 Sep | wifi
Thanks to posters to this forum, who assisted me in earlier threads, I now have an Internet wireless network running in my apartment :) I noticed today that I am kicked out of the wireless connection every 10 minutes or so. I then have to log back in. I set up WEP encryption today - will that have anything to do with this?
Fri 26 Sep | Simon Lucy | You might have some other device that cycles through every 10 minutes which is blanketing the signal band temporarily. What kind of signal strength do you have?
Fri 26 Sep | Lou | A common problem is either a microwave (which wouldnt have this regularity), or a cordless 2.4 GHz phone.  If you go into your router's config screen you should be able to change the channel (from 1-6 or so).  Its probably on 3 or 4 (it seems that everything is).  Adjust the channel and see if that doesn't stop the boot.
Fri 26 Sep | no name | Running XP? Here's how I have mine set up. I had the dropped connections problem for a while too. Get the latest service packs. There was an issue with their zero config mgt stuff. Go to the 'wireless networks' tab. Under 'preferred networks' hit 'configure'. 'data encryption' is checked. 'Network Authentication' is unchecked. I manually entered my key. The 'Enable IEEE authentication' box under the advanced tab is unchecked. Close that down, reopen it, make sure under 'available networks' that the settings are correct.
Fri 26 Sep | Tom Kleinpeter | What do you mean by 'kicked out'? Is it dropping your idle connections (like in SecureCRT), or something else? A lot of those little routers drop idle TCP connections very frequently. Some applications will let you send a keep-alive every few minutes to prevent that, but you might try googling for 'idle timeout' and your router model number for more ideas.
Fri 26 Sep | Prakash S | the closest access points needs to ping to  your machine constatly, maybe your firewall is set at such a high level that it does not let the access point ping to your machine!
Fri 26 Sep | Mike | Isn't it laughable that the wireless networking solutions choose to run on same bands as your microwave and phone. I know of someone who had to go get a new cordless phone to fix his problem. The 2.4ghz phone caused problems until it was replaced. You'd think the Linksys et al would put a tad more forethought into their devices.
Fri 26 Sep | Rick | I think they're severely limited in the U.S. by what the FCC lets them use, since just about all usable frequencies are taken by some device or another.
Fri 26 Sep | Mark Hoffman | 'You'd think the Linksys et al would put a tad more forethought into their devices.' Not really. The spectrum they use is heavily regulated.
Fri 26 Sep | Brad Wilson | They have 5GHz devices. It's called 802.11a. No interference. The problem is, the range sucks, and the penetration sucks. The other two choices, 900MHz and 2.4GHz, are both chock full of noisy devices. That's why 802.11b/g allow you to choose channels, so you can opt to try and tweak things. They can't just pick a frequency out of thin air. That stuff is highly regulated.
Fri 26 Sep | JeremyNYC | I had similar experience for a while with my wireless net. Moved my WAP to a different spot in the office and now I've got no problems. Check out what happens if you're in direct line of sight for a half hour. If the problem goes away, you might try to find a better spot for the WAP. Jeremy
Fri 26 Sep | 19th floor | “They have 5GHz devices. It's called 802.11a. No interference.” Phones are slowly moving to the 5GHz band as well.
Fri 26 Sep | Stephen Jones | The reason that so many conflicting devices use the band is that it is the band that is available for unlicensed use.
Fri 26 Sep | Brad Wilson | Phones are very slowly moving to 5 GHz. However, if you look, the 5GHz band has much tighter specifications on allowable interference and how it must be handled.
Fri 26 Sep | Nat Ersoz | I have also experience problems with Win XP WEP encryption settings.  XP seems to decide to forget its WEP key from time to time.  I have no idea why.  More recently I put the XP machine on a cat 5 cable so I don't have to worry about this any longer.  My "loss of key" problem only occured every few days, not every 10 minutes...
Fri 26 Sep | Israel Orange | 'They can't just pick a frequency out of thin air.' Brad Wilson, you are CLEVER! ;-)
Fri 26 Sep | www.marktaw.com | > Phones are very slowly moving to 5 GHz So wirless networks can probably move down into 900mhz in a few years when the marketing hype is such that no more 900mhz phones exist....
Sat 27 Sep | Christopher Baus | The only phone I have in my pad is cellular.  Problem solved. 
I had an idea driving to work. | Fri 26 Sep | Grumpy Old-Timer
It occured to me that the whole death of long-term employment thing (you know, where Dad worked at the same company for 40 years, but Ive had four gigs in the last three years) is contributing to traffic. Think about it. If you had every reason to think youd still be at your present employer 15 years from now, youd buy a house near your job, right? That fact that you wont be there years from now means youll buy a house in an area you like and can afford, and then drive all over hells half acre to your gigs for the rest of your life. Thats why theres so much damn traffic lately! Were all driving all over the place because of the commoditization of labor! (Can you tell I live in the city with the longest commute times in the USA?)
Fri 26 Sep | Simon Lucy | My wife has been working in Liverpool since March and stays during the week in Chester.  Now she has an interview with a firm in London and one of our questions is, do we move closer to London if she gets it or do we maintain our enjoyed environment and lifestyle here.
Fri 26 Sep | i like i | And how many of those people you see 'in traffic' are driving great big SUVs and other gas-guzzlers?
Fri 26 Sep | Brad Wilson | We need to face this fact: people like to drive. Even if they lived closer to work, they would still go out and drive from time to time. Only a very small percentage would take some alternate form of transportation, and again a very small percentage would move closer to work (mostly apartment dwellers, as sometimes it's too cost prohibitive to change houses).
Fri 26 Sep | Philo | IMHO a major part of the problem is the growth of urban areas, the flight to the suburbs, and the refusal of business to a) create suburban branches, b) move to the burbs, or c) allow telecommuting. Is there a real *business* benefit to 'being in the corridor'? Has anyone ever seen a company lose a contract because of their address? (I'm curious if this has ever really happened - I don't know). I live in a bedroom community 20 miles south of DC. Our rush hour is about 3 hours long in the morning, 5 hours in the evening, and it's a fault-intolerant system - any glitch in traffic (breakdown, weather, road work) and it's instant gridlock. So why don't more businesses put branches in our community? SAIC or KPMG could easily justify a 20-person office down here. But of course then we get the 'out of sight, not working' thing. Telecommuting would also do a lot to alleviate congestion. But businesses are more interested in sending work around the globe than down the street. I honestly don't know if there *is* a solution, but I'm convinced it's got to be a lateral answer - 'more roads' is never going to fix it. Philo
Fri 26 Sep | Stephen Jones | Says somethiing about the stultifying effets of being stuck in traffic, that it's taken thousands of hours for you to realize it! There's also a little bit of a chicken and egg scenario; because people are worried about changing jobs they get a house in somewhere accessible, and therefore they are able to jiump jobs easily. Another factor is that wives now routinely work, which wasn't true fifty years ago. So you need a house near both of your jobs; as this is nearly impossible in cases where both spouses are professionals, you end up with a house in the middle bot parties commute from You've also touched on one of the reasons for low unemployment in the US, Australia, and to a lesser extent the UK. The fact that in both places it is possible to easily change houses in order to move to a new job means unemployment figures are low. On the other hand in a country like Spain, where public housing is owned instead of rented, and where average landlord's deposits, advances and agency fees for renting are five month's rent, you have an unemployment rate well above the average. Incidentally, Brad is being blinkered if he thinks people sit in traffic jams because they enjoy driving. If you look at places outside the US with a good public transport system (or New York for example within the US) you will find that people have no problems leaving their cars at home.
Fri 26 Sep | Brad Wilson | 'Incidentally, Brad is being blinkered if he thinks people sit in traffic jams because they enjoy driving.' I actually didn't think I was saying that, but I guess in some ways I am. Here in Denver there are some good alternatives for transportation with more on the way, and by and large, they're ignored. There must be some reason people sit in 10 mph traffic on the xway instead of getting in a light rail train.
Fri 26 Sep | Stephen Jones | Dear Philo, The problem with businesses moving out to the suburbs is that it can actually be more expensive, since they will find that their pool of labour is only about 20% of what it was (I'm presuming you're talking about businesses requiring skilled labour here). A city centre address can get anybody. A suburban address can only get those within the local catchment area, and no, you won't persuade a guy to move because he's afraid he'll find himslelf unemployed later down the line, and there is the spouse to consider. And as for companies being prepared to let their workers telecommute from India, instead of from 30 miles away; that's logical. If they're telecommuting why not get the cheapest offer; they not going to be physically present anyway.
Fri 26 Sep | Will | It's because you have to take a bus to and from each end of the rail line to complete your commute.  Trains may be fast, but include the connections and transfers and they're a p-i-t-a.
Fri 26 Sep | Stephen Jones | Brad, There are plenty of reasons why people ignore public transport, and in the second most car-mad nation in the world some kind of atavistic repulsion might be involved. However, in many cases publid transport fails because it only covers part of the journey. If you have to take the car to the rail station at one end, and worse still don't have free secure parking at the rail station, then you will take the car the whole journey, particularly if you have free parking at work. Then there is the matter of cost. In Germany they found that only the rich took trains, because everybody had a car, and only the rich could afford to pay for the train as well. And finally there is the question of time. At the moment you might find most companies near the freeways. Give it a bit of time and you wil find some start moving near the rail network, and this will have a knock on effect.
Fri 26 Sep | no name | I must be rich then Stephen, we do all our long distance travel by train and use public transport within the city. Mind you, one of the reasons we are so well off is that we do not have to maintain a car...
Fri 26 Sep | anonymous | The solution seems to be to rent. Has anyone tried renting a house? I'm surprised it isn't more common. The economics of owning a house seem to be that you need to stay for 7 years to break-even, compared with renting. The 7 year figure is approximate, because it depends on your assumptions. Most places that perform the calculation do so incorrectly. To consider the 'rent or own' equation, you must consider the difference between owning the house OR investing the downpayment plus (mortgage payment - rent). To get a realistic answer, you need to know: - expected appreciation on house (2%-5%) - interest rate on mortgage (currently 6%?) - expected return on other invesments (7%-8%) - home purchase fees (commissions for real estate broker, legal costs, closing costs, mortgage costs and hidden costs) - tax braket, and the extent to which mortgage deduction will be deducted If you take all the above information, and make a suitable spreadsheet, you can calculate the 'own vs. rent' equation. Also notice that you should compare renting a house to owning a house. You shouldn't compare owning a house to renting an apartment, because living in a house is probably nicer.
Fri 26 Sep | Sam Livingston-Gray | Stephen- Only the second most car-mad? I admit to not being a world traveler, but... who's the first? (=
Fri 26 Sep | mackinac | Grumpy's idea is a factor, but not the whole story. I had a 20 minute commute to work with two alternate routes available for over 15 years. When I lost that job in the bubble, my next job was an hour or more commute and I did not plan to stay there long enough to move closer. But people don't chose their homes just to be close to work. I know someone (with wife and three children) who has kept his job but moved, within this past year, much farther from work. Many people prefer not to live in the urban area where their job is located. In densely populated urban/suburban areas (e.g. lower Bos-Wash) with so many planned communities with CC&R restrictions, one may have to go quite a distance from the office to find the home of one's choice.
Fri 26 Sep | Stephen Jones | --'Only the second most car-mad? I admit to not being a world traveler, but... who's the first? (= '--- Where I live: Saudi Arabia. Non-car owners are truly the 'UnterMenschen'. I know, I don't own one!
Fri 26 Sep | Stephen Jones | Dear Anonymous, Problem with your figures is that there are too many uncertainties. Certainly mortgage payments will always be considerably higher than any risk-free return you can get for your money, but oroperty price appreciation (or depreciation as has been the case in Japan for 15 years) is not a regular process. It happens in fits and starts.
Fri 26 Sep | mb | I'll claim much of the traffic is *because* businesses moved to the suburbs. two reasons why: 1) A concentration of businesses 'downtown' allows you to build a good public transit system: since most people are going within walking distance of 2-5 stops, you can have a bus route from each suburb which heads downtown, or ties into a train system which will run at high frequency. Both require high demand, which a concentrated downtown provides. With dispersed offices, public transit becomes low-demand an ineffective. 2) When you put a business in the east suburb, all the people who live in the west suburb still have to go downtown. through it, then out the other side. Or way around. And reversible lane systems don't work very well.
Fri 26 Sep | Vince | Where I live (in orange county), it seems to be the case that more and more companies are building offices right in the hear of suberbia.  I've seen 5 or 6 really nice buildings spring up within walking distance of hundreds of communities. 
Fri 26 Sep | Philo | Anonymous - the one thing that seems to be missing from your equation is accumulation of equity. Simply put - if you own a house for thirty years, when you sell it, all that money is yours. If you rent for thirty years, you have nothing to show for it. Did I miss something? Philo
Fri 26 Sep | Jim Rankin | 'There must be some reason people sit in 10 mph traffic on the xway instead of getting in a light rail train.' Because Americans have a special psychosis about transportation. We're building 'communities' (don't know that you can even call them that anymore) where it's only possible to survive by getting into a motorized vehicle and driving many miles to the Super Stuff-Mart to load up the Land Hummer to the brim with industrial-size containers of home goods. Am I the only one left in this country who thinks having a store at the corner where you can get just a carton of milk or whatever else you might need on a whim is a good thing? Or a park kids can walk to and play with other kids without needing a grown up to take them there in the Canyanero? Even if you do live close to one of these things, good luck surviving the trip as a pedestrian across the 12 lane highway you'll need to cross. As far as I can tell, everyone in the U.S. who wants to opt out of this lifestyle has one option: move to New York City. In the Great Divorce, C.S. Lewis presents a metaphorical vision of Hell (or perhaps purgatory?) where people can create dwellings for themselves just by thinking of them. What happens? Everyone builds larger and larger homes for themselves, farther and farther apart, isolating themselves more and more until they are light years from any other human beings. I think of this often when I consider American suburbia, with ever larger homes ever more isolated from their neighbors, with ever more entertainment options allowing us to avoid human contact ever more. Food for thought.
Fri 26 Sep | Jim Rankin | 'than any risk-free return you can get for your money' Ain't no such thing. It's called arbitrage, and one of the basic rules of economics is that it can't exist. If it did, it would be possible to leverage any investment into an infinite amount of money. Investors are always searching for this, kind of like a perpetual motion machine.
Fri 26 Sep | Alyosha` | Philo: I think anonymous's point was that once you factor in interest costs, house maintainence and brokerage fees, the advantage of building equity isn't so great anymore. Especially on the front-end of a 30-year mortgage, where the payment is almost entirely interest -- short-term home owners may end up getting screwed. Jim: actually, I think the move to living in jam-packed cities is a historical novelty; used to be that we were all farmers and lived quite a distance from each other.
Fri 26 Sep | Stephen Jones | ===='Jim: actually, I think the move to living in jam-packed cities is a historical novelty;'----- Yea, I mean it only goes back to a few thousand years before Christ, and the traffic jams didn't even become serious until Ancient Rome. Actually, the recent innovations are the suburbs. The train was the main culprit, and then the car put the nail in the coffin.
Fri 26 Sep | Dave Torok | Cities make wonderful sense for a variety of reasons. NYC is not exactly panacea; plenty of people have a 1 hour subway commute (e.g. Riverdale to Wall Street). I live in center city Philadelphia, and for the past year I've been lucky to have a 10 minute walk to work, versus a 45-minute drive to the tech-heavy 'western suburbs'. That's 250 hours a year I'm not driving. And I can run all sorts of errands to and from work (food shopping, dry cleaning, shopping, post office, banking). Yes I have a car, and have probably put almost 4000 miles on it in the past year, mostly on weekend trips. Sadly, the vast majority of people in the US are unable to walk to work and instead spend 100's of hours (and $$$) in the car.
Fri 26 Sep | T. Norman | >'Ain't no such thing. It's called arbitrage, and one of the basic rules of economics is that it can't exist. If it did, it would be possible to leverage any investment into an infinite amount of money.' But you'd need an infinite amount of time to accumulate that infinite amount of money. For all practical purposes, economists do regard instruments like US Treasury bills as having risk-free interest rates. Rates are generally quoted in terms of an annual return, not an instantaneous return.
Fri 26 Sep | www.marktaw.com | You might want to consider it the other way around. Because businesses no longer hire people 'for life' and people are less willing to move somewhere for a job, businesses now have to be in a place where they can choose the best and the brightest from among 8,000,000 citizens (i.e. New York City). Locate your business in... What's the name of that place IBM & co are setting up shop to make chips? and you'll have to chose among the best & the brightest in that area.... Unless you're IBM & co and people actually ARE willing to move to work there.
Fri 26 Sep | fool for python | Yes. Business must now move to the talent. 'The rise of the creative class' http://www.amazon.com/exec/obidos/tg/detail/-/0465024769/
Sat 27 Sep | Christopher Baus | Jim. I will say hell yea! I hate the burbs. They actually make me sick to my stomach. I long for ability to walk to the local pub, grocery, and work. I stayed with a friend of mine in Paris, and thought of waking up and buying fresh croisants at the corner, makes me green with envy. That is all but impossible in this country. I live in Lake Tahoe. It is a hypocrites paradise. All these CARS with bumper stickers that say 'Keep Tahoe Blue.' Am I the only one that sees the irony in this? There is a tradition of manipulating your sticker. Some put 'Keep Tahoe Local', 'Keep Tahoe Green' (as in weed), etc. Mine? Burning Sweet Crude! Cars are killing the Lake Tahoe Basin, yet it is impossible to get anywhere in this area with out a car. Someday will wake up and realize we are buried in our own, well, feces.
Sat 27 Sep | www.marktaw.com | I grew up in an area where lots of stuff was in walking distance, and NYC was commuting distance... I now live just a couple of miles away, and I'm in hell... 5 to 10 minutes to get to any store, and the walk is pretty drab. I used to live around the corner from a bodega, bar, video store, car service, hair cutters, 10 minutes from the train, and about 10 - 15 minutes walk from the supermarket. Heck, I used to walk 20 minutes to the Video store. Why not? Like that MacDonalds guy said - Location Location Location.
How to make cleaning the house easier :-) | Thu 25 Sep | software enthusiast
I have always had problems with cleaning my house. Usually, garbage accumulates around the chair where I sit at my computer. No, Im not kidding. I have found a way to make cleaning the house a lot easier: I buy audiobooks, and while cleaning the house, I listen to an audiobook I like - usually physics or business management. It may seem weird, but I found that this makes cleaning the house really easy.
Thu 25 Sep | The Pedant, Brent P. Newhall | I have a specific time every week -- Saturday afternoons -- set aside for cleaning. That helps me a lot. Also, I started reading up on diseases and cleanliness. That really motivated me.
Thu 25 Sep | software enthusiast | Your post is very interesting. The reason why cleaning the house is easier when you listen to audiobooks is that it's no longer boring as hell. You actually do some physical work (which is good for you) and also learn something (which is also good for you). Audiobooks are also good for the times my eyes are too fscked up to read from the screen. I mean, I can read, but after 12 hours straight, my eyes get tired - I really should get an LCD! Now, if I only could find an audio player app which allowed me to set bookmarks and return to them later! :-)
Thu 25 Sep | Exception guy | 'Now, if I only could find an audio player app which allowed me to set bookmarks and return to them later!' Well, my car's CD player remembers your current position, to the second. I listen to audio books on the way to and from work, and whenever else I'm driving alone; it's a lot better than flipping radio stations and I actually look forward to time in the car.
Thu 25 Sep | na | on every monday while i'm in work, somebody cleans my flat/iron my shirt, etc. it cost 1% of my salary / occasion
Thu 25 Sep | Philo | So if they come every week, you're paying 52% of your salary a year? Philo
Thu 25 Sep | Michael Johnson | I pay 2% of my gross for this to get done for me. I resisted for years and thought of it as lavish. However, the 2-hours a week it was taking me was detracting from my personal down time. The house is immaculate and I can spend my saturday mornings sipping coffee and reading/writing code thats off task for my business like mastering Ruby for the fun of it. You might even be able to deduct part of it if you spend a significant amount of time working from home.
Thu 25 Sep | Piggy | I live like a pig. It's easier and cheaper. :)
Thu 25 Sep | www.marktaw.com | > So if they come every week, you're paying 52% of your salary a year? HA HA HA... weekly salary. I listen to books on tape when I go bike riding. Sometimes I don't feel like going, and to motivate myself I start listening to my book on tape. It just gets me going. Or when I'm listening to more music than books on tape, then music... Whatever it is, listening to it on my walkman works. I guess it's some sort of Pavlovian association. Books on TAPE have a built in 'bookmark.' Books on CD you have to remember the minute/second combination... Books on MP3, I guess the same. Will an iPod remember your spot?
Fri 26 Sep | Simon | I'm also an audiobook junkie, but these days everything I get is through audible.com; I no longer buy tapes or CDs. First off, its desktop player software has built-in bookmark functionality. It's basic, but enough. But best of all, I can now transfer the audiobooks to my Ipod. No more ripping tapes and CDs!
Fri 26 Sep | Ben Combee | If you have a Palm OS 5 device, Pocket Tunes 2.0.4, from http://www.pocket-tunes.com, plays MP3, Ogg Vorbis, and uncompressed WAV files, and supports audio bookmarks. I use it quite a bit, and the author is very responsive.
Fri 26 Sep | na | 'So if they come every week, you're paying 52% of your salary a year?' ye,ye, it's good that we have only 52 weeks and not 104, otherwise I would have no money :)
Fri 26 Sep | Lou | Yes, you can bookmark your iPod Audiobooks. From http://www.apple.com/ipod/audible.html 'You’ll never lose your place iPod lets you easily navigate through spoken content, and when you sync Audible back and forth between your computer and iPod, each will keep track of where you last left off listening — just like a virtual bookmark.' I'm currently listening to a book on my iPod, but when I go home I want to use my computer speakers (so I can hear other things too). Conveniently it will sync that bookmark when you hook the iPod back to the computer. Pretty handy. I've found that listening to a book while working reduces my obvious downtime. It may slow me down just a bit, but I find that I don't seek out information elsewhere nearly as much (ahem, /.).
Fri 26 Sep | apw | Molly Maids, once every two weeks....excellent service
Fri 26 Sep | Mr Jack | I have a girlfriend. I find she does the job admirably.
Fri 26 Sep | John Ridout | If your nett hourly rate is higher than a cleaner's gross hourly rate then it just doesn't make sense to clean your own house.  The downside is one stole my mobile phone - at least I backed up the memory. New cleaners; bliss has returned.
Fri 26 Sep | Stephen Jones | Most maid services charge you about $25 an hour and pay the maids $6. You do both yourself, and the maids a favour, if you hired direct. Not recommended if you want to stand for Office in DC, but the best solution otherwise.
Fri 26 Sep | GML | >>Most maid services charge you about $25 an hour and pay the maids $6. However, most maid services take care of insurance and bonding, which most $6/hr maids won't have. Real important when that phone gets stolen or your TV gets broken by the cleaning lady. besides, to hire that $6/hr maid, at least here in NJ-USA, you need to speak Spanish.
Fri 26 Sep | Stephen Jones | Sure the middleman has costs, but you're talking a huge profit here. And if you're hiring direct you can afford to pay the maid more so you can be choosy. I personally reckon that maid's agencies work because people have hangups about employing servants, but these hangups magically disappear when a third party agrees to charge you a fee to take the exploitation off your conscience.
Fri 26 Sep | Jim Rankin | 'If your nett hourly rate is higher than a cleaner's gross hourly rate then it just doesn't make sense to clean your own house.' This assumes that you can always bill more hours at that rate. Otherwise, if you can only bill, say, 40 hours, that 5 hours you spend cleaning is probably taken out of your TV watching time, not income generating activity. If you're salaried, of course, it only makes sense if putting in extra hours can earn you a bonus or comission that exceeds the cost of the maid's services (is maid the correct term?).
Fri 26 Sep | na | eg 1 need to surf 1.5 hours to pay 6 hours of maid work. and I dont't have tv, so she has no options :)
Fri 26 Sep | Anonymous Coward | My wife works for 'Molly Maid' on the weekends when she wants extra cash. The numbers given in this thread are wrong. Here they charge the customer C$ 15 per hour. The worker gets C$ 8 in cash, no tax, no deductions, not reported to the government. Further, they drop-off and pick up the worker. My wife drives our car so they pay her C$ 10 per hour instead. When they assign two workers to a job she transport the other worker then she gets C$ 12.
Fri 26 Sep | Dennis Atkins | 'I personally reckon that maid's agencies work because people have hangups about employing servants, but these hangups magically disappear when a third party agrees to charge you a fee to take the exploitation off your conscience.' Wow Stephen, this has a perfect parallel in software outsourcing. Companies do criminal background checks, require dozens of references, insist on original sealed copies of transcripts, and take urine and blood samples from the local developers they hire. Then one day, they lay them all off and hire developers who live thousands of miles aware, even the names of whom are a complete mystery.
Sat 27 Sep | www.marktaw.com | Oh yeah, those maid services. I read about some of them in Barbara Ehrenreich's book 'Nickel and Dimed' where she - a fairly successful writer for New York Magazine - as an experiment headed to some fairly random location with just a few hundred dollars in her pocket to get her started, and tried to earn a living with sort of bottom of the barrel jobs like maid, housekeeping at a hotel, wal-mart, etc. She said that they carefully regimented how they cleaned your house, to the point where the amount of water/solution to clean your kitchen floor was regulated to half a bucket... The more fluid you used, the more it cost the company. She was actually just swishing around dirty water, and people have complained that soon after a cleaning, they spill something on the floor, and when they clean it up, their paper towels are dirty. She has similar stories for the kitchen counters. You might think it's just a few ounces of fluid, but on the national level, it's hundreds of gallons. She didn't work for The Merry Maids, but a similar national outfit. I've seen TV News Expose's or something like this about people stealing stuff like account numbers from loose paperwork lying around the house, so if you're like me and leave bank statements out until you've filed them... clean this stuff up and close it away before anyone shows up at your house. That 'your hourly wage' thing is good if you actually planned on using that hour working, but if you have spare hours in the week, then it doesn't really pay.
Sat 27 Sep | robert | About these maid services, what do they actually do? I remember when i was a kid we had a maid for awhile, and it was always MORE work: 'we have to pick up, do the dishes, and fold the laundry - the maid is coming.' When I was a kid, this was like 'huh?' I don't need someone to dust for me - that takes 5 seconds and frankly I don't care if things are a touch dusty. Now if someone would launder my clothes, fold them and put them away, collect the glass I left in the bedroom and the three by the computer, finish loading the dishwasher, run it, put away the dishes, now THAT I would pay good money for. Are there any maid services that actually do this kind of stuff?
Sat 27 Sep | www.marktaw.com | I don't know, but I know someone who has a maid - not through an agency, a referral I think - who charges around $7 an hour, and works for a solid 10 hours. She doesn't speak english, but they point her at something and say "clean" and she does.... From what I hear these people still do their own laundry, but to not have to sweep then mop my floors, clean the bathroom, etc. I'd be willing to pay.
Is Postgres/MySQL ready for VLDB solutions? | Thu 25 Sep | Database on the cheap
Should we stay away from Postgres or MySQL for VLDB problems? I have some questions for all you db experts, especially regarding postgres.. Basically our team have been doing scientific marketing, and the load is getting too much for our current configuration. We wish to take sales, web access data, email clickthrough, personal profile data from hundreds of data sources for a dozen clients... plug them into a cheap 5+ server offline db farm.. and be able pull reports (doesnt have to be OLAP.. but that would be a bonus) on large data sets that increases by the gigabytes per week. The required dataset that make up the input of the regular reports we generate are becoming more than a hundred million rows. Well be using major analytic tools to pull from these databases so its necessary it supports ODBC and friends. We dont have the budget of large companies. Who can easily justify entire multi-million Siebel installations. And we cant afford wonderful platforms like Oracle on distributed Solaris or SQL Server enterprise on clustered Xeons. I have heard that Postgres recently acquired the ability to do replication.. thats very exciting.. but will I be able to do selects over partitioned tables spread over multiple databases? I like to learn about what you guys know about free databases limits and near future developments that we can look forward to. Is there anything in the OSS community that resembles EMCs drive farms? Any aid or pointers would be much appreciated. And many apologies to those who feel this thread is off-topic.
Thu 25 Sep | Philo | From my research on Postgres, it's not quite ready for prime time, especially regarding data integrity. I'll make a strong suggestion for checking out SQL Server - find out *exactly* what your needs are, and talk to Microsoft or Microsoft Consulting about what the costs would be. If what you're doing is so very important, you MUST make an informed decision, not a vague 'it's too expensive, let's look elsewhere' one. Look at it another way - let's say that Postgres might be approaching where you need it to be. From my experience with cutting-edge Linux clusters, going to that place means you will be investing a LOT of time and manpower on managing your solution instead of using the results of that solution. What is your time worth? How much time will be risked/invested/lost on finding out if Postgres is 'where you need it to be'? Can you afford to spend a month building a Postgres solution to see *if* it works? And if it doesn't, who do you have on tap to help you out? What's the Postgres talent pool like? What's it like for bleeding-edge solutions? Only you know how important your work is. Only you know how calendar-critical it is. Only you can budget your licensing and manpower dollars. Therefore you should get quotes and make it an informed decision. Philo
Thu 25 Sep | Colin Evans | Avoid postgres - it has good SQL support and transactions, but it is a dog for performance and it is not very good in production. I've not heard that their replication is anything past experimental or beta stages. MySQL is solid and good for small, simple database needs, and has good support, but it won't scale to your needs. You might want to look at SapDB or Firebird - both free, and they have better scalability characteristics than PostGres or MySQL. If you are running a database that large, you may find that you spend more money on hardware than you would spend on an Oracle license in order to get it running quickly and reliably.
Thu 25 Sep | Philo | Nah - even at those sizes the database licensing generally outstrips hardware costs pretty quickly. But regarding Oracle vs. SQL Server, don't forget that SQL Server runs 25-50% of the cost of Oracle, and that Oracle costs don't include any of the tools that SQL Server ships with. Philo
Thu 25 Sep | GiorgioG | What about http://firebird.sourceforge.net ?
Thu 25 Sep | Lou | Postgres isn't a dog anymore as its seen significant speed improvements since turning v7. It may be sufficient to meet your needs. One problem with asking IT people about these open source solutions is that they have a habit of getting better when you're not looking. People still complain about MySQL not having referential integrity (well now it does with InnoDB and I think by default in v4). The PostreSQL people have made a lot of changes in the last year and its worth asking their user groups a few pointed questions. You might be surprised by how candid some of the lead devlopers are about their product's limitations.
Thu 25 Sep | Philo | From the Firebird homepage: 'Firebird is a relational database offering many ANSI SQL-92 features' Doesn't exactly inspire confidence, IMHO. More importantly, SQL-92 is the thing that lets you leverage experience across databases - that gives you a chance of getting an Oracle guy to help with MySQL or whatever. If you lose that, then you're in the realm of looking for 'Firebird experts,' which I suspect is a vanishingly small talent pool. The point I've been alluding to, and I'll say it directly: license costs are often the cheapest part of a database installation. Your big problem is ongoing cost of operation. This isn't just how much you pay for a DBA, but how much does it cost you to, say, lose a month's data? Or to have queries take 10x as long to run? How about if the data is unavailable one day a week due to maintenance? These are all costs, whether they're direct or indirect, and the impact of those costs are best evaluated by the original poster. If the cash savings up front means he's willing to have a database available 12/3 instead of 24/7, then that may be the way to go. I'm just helping the original poster understand what he's trying to bargain for, and suggesting he make darn sure he knows the costs he's bargaining against. Philo
Thu 25 Sep | software enthusiast | Firebird is in fact InterBase.
Thu 25 Sep | Database on the cheap | If you all don't mind, I would like to add Firebird and SAPDB into this mix of the discussion.. (thanks to whoever pointed these two RDBMS out) will someone who is knowledible about these two additional databases please provide examples of replications and scalability?
Thu 25 Sep | Anthony Rubin | PostgreSQL is hardly slow.  In fact, if you are going to be doing a large number of INSERTs PostgreSQL will most likely provide much better performance than MySQL (and has in past tests I have performed).  As far as whether PostgreSQL is up to large tasks, the entire .org registry runs on PostgreSQL.
Thu 25 Sep | Portabella | > As far as whether PostgreSQL is up to large tasks, the entire .org registry runs on PostgreSQL. IMO, this is the kind of data you need: verifiable success stories (no, I haven't verified this one, but it should be easy enough to check). The points about tool support, and the ability to find experienced DBAs are well taken; but if you can find a number of other shops that are operating successfully with the toolset that you use and the same data size, than you can be fairly sure that the tech is up to spec.
Thu 25 Sep | Anthony Rubin | Here is the information about the .org database: http://www.linuxworld.com.au/index.php?id=1166688643 Case studies are available here: http://advocacy.postgresql.org/casestudies/ I also want to point out pgAdmin once again for those looking for a decent administration tool for Windows: http://www.pgadmin.org/
Thu 25 Sep | Anthony Rubin | I also wanted to point out that one option for replication in PostgreSQL is a well tested commercial product that was recently contributed to the project. Here is the information: http://archives.postgresql.org/pgsql-announce/2003-08/msg00022.php The following paragraph from the announcement is probably the most relevant to this discussion: 'eRServer(c) has proven itself by supporting large mission critical systems, including the .INFO and .ORG registry management system.' observes PostgreSQL, Inc.'s President Marc Fournier. 'Version 1.0 was released commercially in October 2001 and today I am proud to announce that an enhanced version of that source code is being released to the community under the BSD Open Source Software License.
Thu 25 Sep | Anthony Rubin | While I'm not a huge MySQL fan I also wanted to point out that large portions of Yahoo, including historical financial data for finance.yahoo.com, rely on MySQL.  I really have to question any "research" performed by some of the people doubting MySQL and/or PostgreSQL in this thread.  Both RDBMS are already being used for very large projects, you just don't always hear about it.
Thu 25 Sep | Anthony Rubin | Here is the information on my last claim: http://www.mysql.com/press/user_stories/yahoo_finance.html The following paragraph should be of interest: Prior to its switch to MySQL in 2000, Yahoo! Finance managed its database needs through homegrown flat files and Berkeley DB databases. But those solutions proved to be inflexible and not scalable enough for their needs, with the volume of data nearly doubling every few months. 'Our needs vary considerably, and that is one reason that MySQL works well with us. It handles the high-volume, 260 million record tables just as well as the small, low-volume ones. One of our servers handled over a quarter of a billion queries in a month-and-a-half, and it still has capacity to spare.'
Thu 25 Sep | Philo | My research was simply surfing the mysql and postgre communities - I've found they're each amply capable of pointing out the others' shortcomings. I'd be interested to do a costing analysis on Yahoo's finance solution - obviously there was coding work that went into making MySQL do what they needed - maybe the cost was break-even with implementing a major RDBMS, or maybe it cost more? In addition, the original poster said he would like analysis services - OLAP cubes are in the box with SQL Server; again a matter of 'spend a little money up front, save lots of time down the road' I'm just suggesting a well-informed decision. Philo
Thu 25 Sep | Database on the cheap | Hi, a busy day at the office, Just to follow up with some more details. At the moment our team need a good data warehouse for primarily offline reporting of very large data sets, we do have other tools which handles OLAP tasks very well which can connect to most ODBC-compatible databases. Although we might create final reports using just sql queries, we are starting to use 3rd-party professional OLAP tools more and more to serve the need of analysis and reporting. It's critical though that our future new database meet certain expectations. We depend on the database (farm?) to serve the required data in a timely manner (despite the large datasets and transformations) and in a form friendly to OLAP tools.
Thu 25 Sep | Database on the cheap | Many thanks to everyone here (and all the readers) for your time and insights. I hope our team can gather up even more information from the readers of Joel On Software before judging on the merits of each free RDBMS.
Thu 25 Sep | Philo | One other note - this fall MS is going to roll out SQL Server Reporting Services, which will provide direct reporting from SQL Server. Based on MS' recent products, it promises to be a pretty neat setup. You might want to try to get on the beta program or wait until it rolls to check it out, if reporting is a fairly important part of your business. Philo
Thu 25 Sep | Saruman | PostgreSQL performance is a dog if you don't tune it. Basically, in order for it to run on stock unix kernels, it's set to use 4megs of shared memory. That's because it's the lowest common denominator available without kernel parameters being altered run-time (ie: in /proc for Linux) or compile time (most BSDs.) I've had very good success with 7.2 on a dual p3-933 using a gigabyte of ram for cache-ing. In my situation, it was more then twice as fast as MySQL. Spreading the tables and log files accross multiple volume is possible (by symlinking the files from the default location to a different volume, the files are only opened once so there's no drawbacks.) I found that my limiting factor on large data was the speed of my disk I/O (only an adaptec RAID-5 with 6 seagate cheetah 18GB disks, 80MB/sec sustained and half that on writes.)
Thu 25 Sep | Mike | Correct me if I'm wrong, but I don't believe Mysql has views. Philo, for what Yahoo uses Mysql for it probably can't be beat. I don't think they are doing much in the way of transactions. Mysql is terribly fast for reading data which is why websites use it. I know my own company might use it in the place of SQL Server to have available from the web. Our strategy, to save money is load mysql from sqlserver thereby getting around the internet connection license. Our website on Apache/Linux then queries the mysql database. The database gets reloaded every night from SQL Server. For us this looks cheaper and more secure than doing an IIS/SQLServer web solution. We haven't fully decided yet, but are 80% sure this will be our direction Our ERP software is backended by SQL Server and it performs very nicely and no I wouldn't trust Mysql to do that task. If you want a quick database backend to a website mysql is the ticket, especially if you load it from an enterprise class db such as Oracle, SQL Server, DB2. If on the other hand you want a system to do transactions pick something else over mysql.
Thu 25 Sep | Ossie | What are VLDB solutions? is it Very Large DataBase?
Thu 25 Sep | Philo | Mike - SQL Server now has a per-processor license... Philo
Thu 25 Sep | HeWhoMustBeConfused | Philo, is your mother on the SQL/Server design team? Your (increasingly) passionate advocacy for this product must have either family or religious roots!
Fri 26 Sep | rz | 'We wish to take sales, web access data, email clickthrough, personal profile data from hundreds of data sources for a dozen clients... plug them into a cheap 5+ server offline db farm.. and be able pull reports (doesn't have to be OLAP.. but that would be a bonus) on large data sets that increases by the gigabytes per week. The required dataset that make up the input of the regular reports we generate are becoming more than a hundred million rows.' If you have dozens of clients and databases of more than a hundred million rows and can't afford an oracle setup, you aren't charging enough money for your services. That said, what you are doing IS feasible with postgres, but I would not recommend it.
Fri 26 Sep | Matthew | HeWhoMustBeConfused, Philo, is your mother on the SQL/Server design team? Your (increasingly) passionate advocacy for this product must have either family or religious roots! Thankyou for your insightful contribution. Good to see you also applied the same even handedness against those advocating other solutions. More likely than your suggestions is that Philo's advocacy is based on use of and appreciation for MS SQL Server. Just like others use and appreciate Oracle, Firebird, mySQL etc etc... Seeya See
Fri 26 Sep | Vince | haha, I noticed Philo's undying loyalty to msSql too!  I think its a pretty good database, but I like mysql too.  I've noticed MSSQL will "tune" queries automatically.  We're using it for offline reporting at our office, and we'll mine through 50million rows doing some complex joins, and it will take about 14 minutes (returning a couple hundered thousand).
Fri 26 Sep | Jilles Oldenbeuving | > MySQL is solid and good for small, simple database needs, > and has good support, but it won't scale to your needs. I'm sorry? We're running a pretty big MySQL database application at work. With over 10-20 database servers, all replicating. Might be the database is not rocket-sience (e.g. simple) but it *does* scale!
Fri 26 Sep | Philo | Matthew, thanks for the support! I've been using MSSQL for a few years, and been living in it for the past two years. It is, quite simply, an exceptionally fine product. While MS may (nay, does) have faults in other products, they've made SQL Server a flagship product. As for why I 'push' it so fervently, what I *do* hate is FUD and uninformed decisions. The one I hate most of all is someone who turns away from *any* product as 'too expensive' when they haven't even costed it out, much less compared the actual TCO to that of a 'free' solution. I've labored in pain under too many projects whose technology was chosen by a magazine manager for the wrong reasons - I try to fight those kinds of decision-making processes wherever I find them. So when someone says 'I have a mission-critical application, but I can't afford SQL Server,' I ask 'why? how much would SQL Server cost?' and when I get the answer 'I don't know. A lot' I get miffed. :-) Philo
Fri 26 Sep | Walter Rumsby | Well... here comes a flame war... I think Matthew's comments re: Philo's posts are on the money personally. The person who originated the thread asked specifically about OSS/freeware products. Philo's initial comment was warranted, but his other comments in this thread seem redundant/noisy. Can we all respect the fact that Philo thinks MS SQL Server is REALLY REALLY good; Philo can you please respect the fact that MS SQL might not be a feasible solution for the original poster and can well all then move on to answering the original question.
Fri 26 Sep | Lou | You really need to think hard about what you'll be doing with your data going forward to make a good decision. MySQL is blazingly fast and scales well enough that it will handle all your data needs. And if you buy a license (not expensive) you get a real vote on what the developers do next and support from experts too. If you're not looking for ACID but you do need to retrieve information quickly, MySQL is a great tool. That said, I don't believe sub-selects are implemented yet, necessitating the creation of a view to join on. That's a pain if you do a lot of ad-hoc queries that are relatively complex and require them. If you're just pulling data basec on simple criteria, its probably one of the better choices. If you're looking for inexpensive, ACID, referential integrity, scalability, and can suffer a bit of slowness compared to MySQL (which turns out to be fast still) then PostgreSQL is a good choice. I've used it on a few projects, and while we aren't tossing around huge sets of data, we did build a transaction server on top of it. SAPDB is a gread database that SAP R|1 and 2 ran on. I think R|3 will still run on it, but its more at home on Oracle or DB2. The one comment I keep hearing about it from developers is that the code is poorly documented (as in barely) and that its pretty much a rat's nest. That hampers quick development and will be a stumbling block for a while. That's important to coders, to a developer you should know that if it doesn't quite meet your requirements now, its probably not a good solution because it won't meet them any time soon. As for leveraging common SQL commands. The only problem I find with that is that Oracle (and SQL Server until recently, and DB2 until a few years ago) had very different ways of performing joins (syntax). It was really a bear to convert (I've done Oracle to DB2 and back a few too many times). So while a lot of things will translate well, a few things take a bit of thought to translate across from one to another. So write down your requirements. How much data, how large are the tables (width and length), what types of data are you storing. Do you need quick indices on large text fields (LOBs)? How important is it that the database returns a result in 10% less time. What types of joins and queries will you be writing? Will there be a lot of complex ad-hoc queries? I think that should help you choose your DB, or at least narrow it down to two. * I didn't talk about Firebird as its only come to my attention in the last few months with the Mozilla naming problems
Fri 26 Sep | Philo | Walter, I was questioning some assumptions the original poster made on which he (or she) based his/her decision that they couldn't afford SQL/Oracle. Specifically - if a free RDBMS solution requires 1.5 DBA/Devs, while SQL only requlres .25 DBA's, that's a net cost of 1.25 DBA/year, or about $60k/year (or more). I can create a really, really good SQL installation for $50k which would then be paying for itself inside of twelve months. Now I don't *know* that an OSS solution would require 1.5 DBA/Devs to do the job, nor do I know what an MSSQL install would cost for the original poster's requirements - only the originator of the thread knows that, which is why I was so adamant that they actually do the math before betting their business on a solution (ANY solution). I have personal issues with major corporate decisions made based on insufficient data or FUD. So it becomes a personal issue for me. I apologize. Philo
Fri 26 Sep | jm | It's not Philo's statements that are out of place, but the criticisms of them. To anyone who has worked in large corporations, with high transaction loads, Philo's views resonate strongly.
Fri 26 Sep | i like i | JM: not me. I am amazed it takes so many admins for whatever database always, frankly. Get a better admins.
Fri 26 Sep | Passater | 'Avoid postgres - it has good SQL support and transactions, but it is a dog for performance and it is not very good in production.' Gentlemen supports those kinds of claims with numbers. Where are yours?
Fri 26 Sep | Vince | I think this is a really good Discussion.  I know that MSSQL does some queries faster then MySQL does.  I've copied databases over from one to another, on almost identical machines, and found a HUGE difference in performance. (now, this wasn't the most optimized query.  When I optimized it, the performance edge still went to MSSQL, but not by a lot).  I will agree that MSSQL is a better DB then MySQL.  But by how much?  I don't think that it will take any more time to Administer MySQL then it will to administer MSSQL, but is the extra cost paid for by the slight edge in performance?
Fri 26 Sep | Database on the cheap | My coworkers and I would like to thank everyone for your inputs! We will take your information and try to come up with a plan to analyse each server's benefits in more depth. Thanks! We really appreciate it.
Fri 26 Sep | Portabella | >>'Avoid postgres - it has good SQL support and transactions, but it is a dog for performance and it is not very good in production.' > Gentlemen supports those kinds of claims with numbers I think this is a bit wrong-headed: both the initial statement and the response. Generally, we look for *success stories* to show that a particular technology does what it says it does. A massive amount of failure stories are also an interesting data point ('almost nobody can actually get this thing to work'), but individual failure stories are not, and, for the most part, neither are individual failures to scale. Some of the reasons for this approach are: * It's easy to screw things up by using complex technology unintelligently * Sometimes technology is the scapegoat for project failures * Some projects may actually want the technology to fail (eg, because they prefer a different technology and want a reason to use it)
Fri 26 Sep | Walter Rumsby | Philo, I appreciate the point you are trying to make, I think your reasons are both sincere and sound, but I feel you made that point with your intial point and your subsequent answers don't really add anything to that point. We're all guilty of that sometimes. That's all I want to say about this - it's certainly not a personal attack.
Fri 26 Sep | Philo | Point taken, and my apologies to the deceased equine. :) Philo
Sat 27 Sep | Hans Lövhaga | Hello! I've been reading the posts with great interest. I really have problems with all of this talk about success stories, this RDBMS scales better then that RDBMS, or has faster transactions. Measureing the overall performance of an RDBMS is a complex and non-trivial task. In the cyclical development scheme of constructing a large DB the choice of which RDBMS to go with comes after the visualization of the involved data, only at this point can the developers make an informed decision based on the specs of what the DB actually is going to be used for. Opting for what ever the DBA knows does not hold, there are online docs and free trail downloads. My 2 cent's is this. Hold the decision of which RDBMS to go with until you have a very good picture of the structure and use of the DB, test parallel RDBMS with key 'real life' implemenations of the DB (put SQL to good use). After this go with the system that best holds up for your needs. It's likely going to be something OpenSource ;-) 'parden my French' (English)
Very long term storage. | Thu 25 Sep | Oldman
I believe cave drawings are about the oldest thing we can find in an archive type environment. Those of us who wrote on a TRS-80 or saved to 5.25 floppies or reel tapes are finding it difficult to bring that information back. So...if we want to store information. Long term (200+ years) how would we do it. Computer information seems wrong. Even if you have the storage (if a DVD would last 200 years), like reel tapes, the devices to read it would be gone. As technology, at least at the state it is in today cannot be depended upon for long term storage, what to do? How do we store our family records, journals, and blogs to be enjoyed by future generations, without setting aside a climate controlled room?
Thu 25 Sep | Craig | My money is on biotech to solve this problem. We could design a single-cell organism with a portion of its DNA encoded with the information we want to store. The error rate in DNA during single-cell reproduction is vanishingly small, so with the appropriate checksums and a few petri dishes, we could have data storage lasting millions of years. Yes, I read way too much sci-fi when I should be working.
Thu 25 Sep | Francis Crick | :The error rate in DNA during single-cell reproduction is vanishingly small: Are you sure about that?
Thu 25 Sep | Craig | 'Are you sure about that? ' Hey, it worked on Star Trek, so it must be true.
Thu 25 Sep | Almost Anonymous | The trick is to constantly keep moving the data to new storage as it comes out. If you have anything on floppy now, move it straight onto recordable CD or DVD. When the next technology comes out, move the data from the CD/DVD onto that. The same thing for media also applies to software. If your original app is so old that you can't find a computer to run it then it doesn't matter if you can read it off the media. You need to keep the data in a format that is readable.
Thu 25 Sep | Kero | While not actually practical for every application, I don't think there are many long term storage systems as effective as a book.
Thu 25 Sep | Tayssir John Gabbour | In case of a dystopic tech-poor future, I'd consider etching it on metal in tiny writing. With macroscopic instructions and maybe a rosetta stone. I'm sure there's a materials engineer that can fill in the missing details like protecting the etching surface so it can be viewed without danger of scratching. If enough demand can be spurred, a factory can be made for this. If this is prohibitive because of sheer mass of data, you can go digital and etch onto metal the specs of the device required to play it. It should be a device engineered for ease of production. Perhaps you can etch enough information so a dystopic world can figure out how to develop the tech required. Mention there's also the history of pornography on the media, so people will have additional motivation to do it. Unless they're a different species or something... hopefully the perverts will be the technically gifted ones...
Thu 25 Sep | sedwo | Books have so far been the absolute best recording devices. But while the medium which the information rests on has finite properties, the actual information does not. And just as importantly are the required applications that can make use of that data. I predict that computer technology will evolve to such levels of power that today's current machines will be nothing more then mere 'emulations' within its data banks. We already witness this today with so many game platform emulators, and ofcourse our beloved Amiga emulator (et al.). The transition will always be constant, and no doubt there will be a percentage of information lost. As the massive knowledge base for human beings expands, we will continue to abstract ourselves from understanding every level of detail and just expand on the applications of it all. Whoa! Sorry, I guess dozed off there and digressed to far. :}
Thu 25 Sep | software enthusiast | Awww, c'mon! Write your personal archive on CD's, DVD or even a large IDE drive. Make sure you have two copies, stored at different locations. When you feel that the current media you are using for storage is not used anymore, simply copy it to new media (SuperUltraMega-DVD Pro Turbo II, or whatever they will have in 2010). It's that simple. It's no rocket science. I don't know why this question appears here and on slashdot again and again!
Thu 25 Sep | Dave Torok | I've already had an argument with my dad about data storage. I sent him something in ASCII and he said 'why didn't you send it in MS Word, it looks so much better?'. I explained how I can still read with Mozilla my UNIX email files from 1990, while he had trouble exporting Outlook email to another computer with Outlook! And I still can read all the ASCII files I saved 15 years ago. It'll be a very enlightening when 5? 10? 15? years from now we won't be able to read and convert our MS Word '95 files...
Thu 25 Sep | Dennis Forbes | 'It's that simple. It's not rocket science.' The problem with data that you want to keep is that often you don't realize that you want to keep it until far in the future, probably long after you should have done several technology shifts. Secondly, I agree with the poster that it _is_ an issue -- How much technological baggage will we all be converting and restoring every couple of years, building more and more of a process. By the time I'm 50 I'll have to dedicate myself full time to re-encoding video files, converting data files, etc.
Thu 25 Sep | Nick | Just curious - what are you storing that needs to be kept for 200+ years?
Thu 25 Sep | Mike Swieton | Nick: 200 years? If you have data from an apple from say, 12-18 years ago, you may have trouble getting it: some of those have different trakc lengths than are used now, if you can get a working 5.25' drive. And the software to read it. If you want it for 10 years, that's doable with foresight, If you want anything for any more than that, you have to work at it. Things change to fast nowadays.
Thu 25 Sep | software enthusiast | ~~~ By the time I'm 50 I'll have to dedicate myself full time to re-encoding video files, converting data files, etc. ~~~ I consider this a non-issue. I remember the migration from C64 to PC, from 5'25 floppies to 3'5 floppies, from 3'5 floppies to CDs, etc. It's not that bad! In the future: Storage devices (SuperDuperMegaRambo-DVD II TurboPro 6+R) will be so large, that you'll take 10 normal DVD and store them on a RamboDVD II ... . Processor speeds will be so high, that you'll encode your 100 DVDs worth of movies to GigaDivX PRO 2015 in just minutes.
Thu 25 Sep | The Pedant, Brent P. Newhall | This is attempting to predict the future, isn't it? There's really no way to know what storage mediums will be in effect 200 years from now. Crystals? Holography? Heck, at the very least, the storage format will be wildly different. I say, just make sure you keep your *data* on a current storage medium. If it's on an obsolete or near-obsolete storage medium, move *all* of that data to a new storage medium, and convert it to an ubiquitous format if necessary. For example, I still have some documents on 3.5' disks, in MS Works for Windows 3.1 format. I should copy those all onto my hard drive, convert them to something like RTF, then burn them onto a CD.
Thu 25 Sep | eclectic_echidna | Paper!!! 1500 year old books are still readable. Is that good enough? -- ee
Thu 25 Sep | mb | >It'll be a very enlightening when 5? 10? 15? years from now we won't be able to read and convert our MS Word '95 files... Dèjá commencé. Because of the binary OLE embedded objects, you can have a word file which you can only read part of. Unless you have an old machine with all the right components installed. WordML is a start in the right direction, but it still embeds binary blobs for many things.
Thu 25 Sep | Simon Lucy | Ummm on DNA error rates. DNS is a redundant tree, the scriptase is meant to strip in sequence and copy in sequence but occasionally it gets dropped on the way or recombined in a different order that switches on some other behaviour. As this is happening in lots of cells all of the time its not such a big deal, but its not a great way to encode how many lightbulbs were sold in June. But it wouldn't be a bad way to store the method of creating new lightbulbs. Currently all electro-magnetic methods of storing data have relied upon the medium to remain relatively stable over the required time. All of them, save possibly one, have suffered from one kind of deformation or another. Mylar becomes brittle and the oxides painted upon it start to shed;Hard drives wear, and if the platters themselves don't degrade the read electronics do, or the motors give out; Pre-recorded CDs if kept out of sunlight and in completely stable ambient conditions may last between 25 and 30 years but again the numerous rare earths and metals have a tendency to want to depart from the plastic; Writeable CDs now seem to barely last the time it takes to write them. The one medium which seems quite stable (but isn't old enough to really tell), is the magneto-optical disk, the re-writeable CD. Because of the way the ablateable material is sandwiched in the disk it seems that if the disk is kept under optimum conditions (which none of us probably do), then it seems that it may outlast the pre-recorded CD. But even so, it wouldn't be that long. A non electro-magnetic solution might be to etch the information, much the same way as processors are etched, but in a material that is extremely stable under its normal conditions. I don't know what that material would be, none of the silicates, perhaps somethine like tungsten or platinum. And as it was an etching and not some kind of magnetic domain you'd need a photo-optical reader of some kind, probably not a very quick retrieval, and definitely a WORM arrangement. Come to think of it this could be a reasonable defence in any RIAA action for copying CDs.... 'I was just preserving my collection guv...'
Thu 25 Sep | Simon Lucy | Spot the deliberate mistake and why I'm not a biologist.
Thu 25 Sep | X. J. Scott | I was a fairly early adopter of rocordable CD technology. We've all heard how CDs should last 100 years or more. Well, they don't. I have CDs recorded from 1995 to the present using a variety of recordable media and NONE of my CDs from before 2000 are readible. I keep the CDs in a cool, dry, dark place and seldom use them, so it's not a situation of the media being left on the dashboard of a car. Do NOT trust recordable CDs for long time storage.
Thu 25 Sep | pdq | The problem with books are that they are very heavy, can't be copied for offsite archives, can't store audio and video and are susceptible to moisture and fire. By the way, the experts expect that hard disk sizes will continue to increase by orders of magnitudes, but the access times won't. You might have a exabyte of storage, but it will take a year to search.
Thu 25 Sep | Matt Latourette | 200 years is rather extreme. That vast majority of data is just not important enough to be kept for that long and those things that are important are likely to be maintained by copying from one medium to another. You can get COTS hardware that can read/write media that has a shelf life of about 50 years. Specifically, magneto-optical media will last that long. Also, because it is commonly used for research data and for storing medical records which have to be kept for a long time for legal reasons (for example, mammograms have to be kept well past the lifetime of the patient), you're likely to avoid the problem of having media that cannot be read because the hardware to read it no longer exists. As an alternative, you just keep everything in RAID on redundant servers and on a tape backup system and copy the data from the old RAID to the new one when you upgrade the server.
Thu 25 Sep | f | The best solution is to travel back into the past as needed when you need the information. Oh by the way, say hi to Marty McFly for me !
Thu 25 Sep | Ben | Etch-a-sketch
Fri 26 Sep | Aussie Chick | I believe the Harpers of Pern had this exact same problem. They turned everything into music, which was then mandatory to be taught to the youngters, they would sing it all as entertainment, and in this way the next time the thread fell, they knew to hide in a cave and watch the dragons flame it all in the air....
Fri 26 Sep | realist | Outsource your storage requirements. Then when you've passed away, and nobody pays the bill anymore, it'll all be deleted and nobody will care. Problem solved.
Fri 26 Sep | Shawn Leslie | hmmm... The idea of passing on passing knowledge on via musical instruction gave me an idea. First off, let's assume that information is free and open -- no copyrights or impedance of access for commercial gain. Secondly, assume that all those involved were maximally altruistic, and gave consideration not to their own interests but for the interests of all those involved in the idea I am proposing. Lastly, assume that this idea appeals to huge pool of people. The problem? The permanent storage of information. An eternal Library of Alexandria. The idea? 1. Every participant allocates a certain amount of electronic storage, accessible at any time to any other participant. 2. Each 'text' will be indexed, accessible via a unique number. 3. The location of any 'text' will not be fixed or tied to any one location. 4. The 'texts' within this system will be transfered, copied, and stored in a completely *random* and automatic fashion in the storage locations of all participants. 5. Any text deemed worthy by any particpant may be entered into the system. 6. The one aspect that I think will be hardest to enforce -- There will be no deletion of any 'text' from the *system*, for any reason. (individual 'texts' may be deleted, as long as another copy exists in the system). 7. Accessing the 'texts' will be done via a P2P mechanism. 8. All 'texts' will be in a commonly understood format. From these rules will emerge the system that will store information with permanence and complete accessiblity for all time. The one problem I see is the ballooning of the storage required due to the requirement that no text may be erased from the system. BUT, won't that be solved by the increasing effeciency of the storage mediums of the future?
Fri 26 Sep | Aussie Chick | I think the Harpers of Pern would be more User Friendly.
Fri 26 Sep | Simon Lucy | There's all that tedious mucking about with dragons though. There is always a downside.
Fri 26 Sep | na | send out all your data as radiowaves to the universe. it will bounce back and forth between planets, galaxies. then you need a telescope to read back the data whenever you want. it will be there for million years. the problem if the universe will shrink into one black hole it will be difficult to read normal data from the noise :)
Fri 26 Sep | bil | Their are two proven technologies in the field of extreme-long term data storage are: A) write it on clay tablets Sumarian style (the market leader in the field, used by most of the ancient civilisations) B) carve it on the walls of your temples (a technology heavily used by the Egytians but with little market penetration elsewhere) Both have a track record of preserving at much of the data stored on them for six thousand years and are still going strong. With proper care and attention lifetimes beyond that of the human race (theprefered retrieval mechanism) are theoretically achievable. Oh and both are free of licensing considerations, with only the one of cost of creating the records. Books are for early adoptors.
Fri 26 Sep | Martin Beckett | Stone circles are good - low bit density but good reliability! On a more serious note, glass photographic plates are very good. I worked in astronomy where all sky survey photos are taken on 14' square glass plates. Some plates are >100 years old since you want to see how something has moved over these timescales. These plates are scanned to find individual objects. It's expensive having to keep copying the scanned data to new formats ( 9track - exabyte - dat - cd -dvd ) and none will last 100 years. The latest idea was to print the digitised location data back to glass plates as a 2d bar code which can then be read with the same scanning machines as the original plates!
Fri 26 Sep | Will | I struggled with this last year. I helped someone retrieve the text of a book he wrote in the 80's on an Apple IIe with AppleWorks, stored on 5.25' disks. Luckily, we found a transition machine, an old Apple IIgs with a 5.25' drive and a 3.5' drive. After copying the files to the 3.5', we were able to load them on a Macintosh computer. (We had to cover a hole in the disk so it appeared to the Mac as a low density disk). Text formatting was minimal and in the form of text markups. If we didn't have the Applie IIgs, or if the file format was in binary, this would have been much harder. The upshot is that practically speaking, a 15 year-old retrieval can also be challenging.
Fri 26 Sep | Stephen Jones | I've yet to see a 1,500 year old book wiritten on paper, though presumably Chinese example exist. Modern paper is so cheapskate it wll discolour and get brittle in a short time, and that is not taking into account the fading of the ink! Carving on temple walls or clay tablets has a very, very low chance of surviving. The materials are too valuable and are nearly always recycled (and in the same vein, make sure your descendents don't keep goats if you leave everytning on paper). The answer of course is to keep transferring your data to modern media. Not all of it will get transferred, but we only have a very small proportion of all the data produced in the last few hundred years anyway. The main problem future historians will have is not the loss of data, but the overwhelming amount of it that has been saved.
Fri 26 Sep | Russell Thackston | According to the National Archives and Records Administration, acid free paper will last several hundred years 'without significant deterioration under normal use and storage conditions.' So, if your great-great-great...great grandchildren discover the paper is deteriorating, they can use a photocopier to transfer the information to fresh, acid-free paper. It might also make sense to print the information in plain English, using an OCR font, in case someone wants a digital version to play with.
Fri 26 Sep | Dennis Atkins | 'I've yet to see a 1,500 year old book wiritten on paper' The Dead Sea Scrolls would be one example.
Fri 26 Sep | Rick | More like "scroll fragments"...
Fri 26 Sep | ajs | Ask the Long Now Foundation ( www.longnow.com ) ! Although famous for their clock, they are also interested in preserving data. Tayssir John Gabbour posted about tiny writing etched in metal, with readable instructions. Their solution is rather elegant, the text is written in a spiral, where the text size gradually decreases. The first part of the message is large enough to be read by the human eye, then you'll need a magnifying glass etc. I'm sure that's what the www.rosettaproject.org site is about, but the link seems to be down.
Sat 27 Sep | Bill Rayer | Use mylar paper tape http://www.westnc.com/mylar.html . You can fit about 1MB source on a spool about 10' in diameter.
Best Laptop mouse | Wed 24 Sep | anon
Which is the best external mouse for a laptop? It need to be small but not so small that it is uncomfortable to hold, it needs to be optical, needs to have scroll wheel, needs to have that 2 extra buttons which will let you go forward and backward in IE, needs to be USB. Any sugesstions?
Wed 24 Sep | Stephen Jones | Microsoft make one and so do Logitech. Are they worth it though. If you have room on the table for a small mouse, I'd have thought you'd have room for a normal sized one as well.
Wed 24 Sep | M | I'll swear by my Targus USB optical mini-mouse. It is small, but not too small for even the biggest of hands. It has about a three foot cord (could be slightly shorter). Two buttons. I have tried wireless mice, but traveling a lot, I get annoyed with batteries and the loss in precision.
Wed 24 Sep | Brad Wilson | Logitech just released a wireless optical mouse designed for laptop users. The wireless transmitter is just a little USB dongle... no cables. I haven't tried it yet. It looks 3 button + wheel, which would exclude it for my needs, but may be fine for others.
Wed 24 Sep | Prakash S | my friend has a pretty cool kensignton mouse, that has a retractable cord. I use a Microsoft 5 button Intelli mouse.
Fri 26 Sep | jburka | I use the Kensington mouse for my tiBook, and occasionally on my dell desktop when I forget to recharge the batteries for my cordless mouse.  The Kensington has a retractable cord and a pop-open door to hide the usb plug, so when you chuck it in your backpack, there are no cords to get [t| m]angled.  It's an optical mouse with a scrollwheel, and I've been extremely pleased with it.
Sat 27 Sep | www.marktaw.com | My friend has that kensington for his tiBook and loves it. It's also a conversation piece. Do only mac freaks call them tiBooks?
99.9 percentile | Wed 24 Sep | sedwo
Joel continuosly raves (brags) about his deep philosophy to only attract candidates within the 99.9 percentile. Essentially, geniuses of a super high genetic caliber. Supermodels with Masters and Phds. But its got me wondering how effective this can be and for how long. While Fogcreek seems to have done very well for themselves, its also portraying (IMHO) a pretentious and snobby attitude. Now Joel can do whatever he pleases in running the company. But is this the recipe for successful conglomarate building? Or will too many chefs in the kitchen explode from excessive brain power? On a much larger scale, it also makes wonder if this is how the United States is organized and has attained its power. A small group of brilliant people (0.1%) that carry and progress the rest of the lesser 99.9%. Here in Canada we like to think (and I guess assume) that the 0.1% is spread out a little more even among the rest. And so while the concentration may not have a finer focus, the mean average is of better quality and intellect. But hey, thats just me wondering.
Wed 24 Sep | Sgt. Sausage | ==>it also makes wonder if this is how the United States is organized and has attained its power. A small group of brilliant people (0.1%) that carry and progress the rest of the lesser 99.9%. It's usually not planned that way, but unfortunately -- yes. A small group of people usually shoulder the weight of the remainder of the deadwood. Just my opinion.
Wed 24 Sep | ordinaryguy | Another funny part is that do you need that much intelligence to develop silly applications like bugtracking software.
Wed 24 Sep | MD | Somebody drank a bit too much of the Microsoft Kool-Aid. In my career, on the other hand, I've come to realize that most programmers are pretty good; and people who think most programmers are deadwood are usually the guys you don't want to work with; because they are incapable of respecting anybody else's work. ('Everybody else is shit' is cover for 'I'm afraid to acknowledge that other people are as good or better than me' and seems to be overly pervasive in our industry).
Wed 24 Sep | Matt H. | According to Steve McConnell, Joel is going for grade 14 or 15 people: http://www.construx.com/professionaldev/organization/pdl/version1/pyramid.htm I suppose that's possible. Honestly, I think he's probably going to get 13's and 14's, not 14's and 15's. Of course, the average company hires 9-11's, so Joel is doing great. (3-5 years of experience seems to be the sweet spot for hiring. I'm not saying it's right, but I've seen several managers who want people who have 'had some lumps but are still moldable ...') regards,
Wed 24 Sep | Simon Lucy | I'm still trying to get my head around the idea of the US (or anywhere else), being run by the 0.1% most brilliant (whatever that means), given recent history. Hell, not even recent history, any history.
Wed 24 Sep | Thiaz Harbinger | My first job I obtained as a programmer was while I was going to school to retool in '97. At that job I was mentored and Doug taught me one thing that has stuck with me throughout my career as a programmer 'Someone will always know something you don't.' Just a kernal of knowledge, take it for what it's worth. That being said, I think the office space issue paramount to success. Obtaining and maintaining good talent is crucial to making quality products and without space to match talent becomes apathetic, lethargic and ultimately leave for greener pastures. 'nuff said.
Wed 24 Sep | Dave Torok | Actually I don't think Joel is being too selective! After all, how many 'supermodels' are out there in the US, maybe 300? Out of a population of 300 million, that's a 99.9999% percentile (1 in a million). Joel's criteria is only 1 in 1000! Even if you restrict it to 'IT workers' or 'computer science grads' or something like that, those are much better odds. Let's say there are 1 million potentials for Joel's hiring pool in the US. There's 1000 Joel-ready-to-hire candidates in the US right now. Of course only 10% of them are in New York, no relo expense. The rest are slugging away in the Bay Area, Redmond, or perhaps retired/telecommuting from a nice resort after becoming a dot-com millionaire. Still, that's 100 ready-to-hire! Oh, but some of them (20?) must already work for Joel by definition. Joel just needs to find and lure those other 80 genius New Yorkers with sumptious office space. (All above is hypothetical based on no actual worker distribution knowledge whatsoever, for amusement only)
Wed 24 Sep | The Pedant, Brent P. Newhall | So, sedwo, it's 'snobbish' to try to attract the best possible employees? Seriously, is that what you mean?
Wed 24 Sep | Alyosha` | Yes ... why does Joel need 99.9 percentile people?  Why not 99 or even 90 percentile folks?  What he's doing is not exactly rocket science.  Is "must be smarter than Einstein while being more humble than Jesus" the job requirement at FogCreek?
Wed 24 Sep | MD | Not speaking for sedwo, but I find it irritating how many companies claim to be hiring the 99.9th percentile (it's almost Lake Woebegonish around these parts).
Wed 24 Sep | standardized anon | I like Simon's and MD's attitude on the topic. I'd break down the 11,12,..., 15 into a somewhat broader category: 1. Clueless - do not hire 2. Good (11-12 on the scale) 3. Excellent. (somewhere above that) That's all. In the day to day world, that's pretty much what you get. When you're busting hump for your company, you don't have a whole lot of time to be reviewing trade journals and writing articles. You're designing, implementing, delivering. The Bill Joys and Linus's of the world - you just don't meet them in most work places. And those that think they're a '15' are fucking dellusional - better to stand clear. Hey, look. It doesn't take brain surgeons to write web apps.
Wed 24 Sep | anon | I strongly suspect that Joel is not really sticking to his 99.9% claim. I guess it's possible but I'd think you'd have to be prepared to wait a very long time, even in this market, to find someone with those kinds of qualifications.
Wed 24 Sep | no name | I worked in an office that only hired 'superstars', and it worked out great. ... if you like watching shouting matches over architecture and getting handed 1/2 done projects because the guy that started it got bored and left. (I was tech support/cust. serv., so I'm not putting myself as a superstar)
Wed 24 Sep | Johnny Bravo | sedwo, 'Supermodels with Masters and Phd's.' - I'd like to know how you got the impression applicants need to look as good as supermodels. Joel never made such a statement, and I think he never implied it.
Wed 24 Sep | Matt H. | 'When you're busting hump for your company, you don't have a whole lot of time to be reviewing trade journals and writing articles' Note that that ladder is by Steve McConnel of Construx.com. Steve wrote a lot of books. His company does a lot of training. To sell training, people need to recognize your name. To get name recognition, you can give to open source, get published, or, potentially, have an advanced degree. Steve choose publishing. Is it any surprise that his ladder leans toward publication and education? On the other hand, Micrsoft's ladder, with it's Distinguished Software Engineer (DSE) track, leans toward 'Wrote cool software and made the company big piles of money.' Since Codd, IBM's ladder has leaned toward 'Cool R&D projects that get IBM's name in the newspaper, and have everybody else struggling to catch up.' Each of them is garnered to create more of what made them successful yesterday. Like the management proverb says: 'Be very careful what you measure, because you are going to get it.' Joel is going for the top 1/10 of 1% of what -he- considers 'good.' That does not -need- to be the same thing as McConnell, but past on his 'archive', I'd say they are pretty close ...
Wed 24 Sep | Patrik | Every company seems to be claiming to aim at hiring only the best people. This is a corporate mantra. Not very many is holding up to their own standards though. This thing called greed. Most companies consultant or product companies does not really need an all star team. Stars in the making can be good enough, since working with good people usually elevates everybody in a team.
Wed 24 Sep | C# | I seem to recall Joel saying that A's hire A's and B's hire C's so take a look at your boss and if he isn't an A then YOU are a C.
Wed 24 Sep | Sgt. Sausage | ==>and people who think most programmers are deadwood are usually the guys you don't want to work with ... Not sure if that was directed at me but: Yes, I think most programmers are deadwood. The difference is that I also lump myself in that category (note the fact that I'm posting on JOS when I should be writing code! )
Wed 24 Sep | sedwo | Brent, It just seems to 'come across as' a very discriminating attitude. I understand wanting 'the best'. But Joel's portrayal institutes something out of 'only the one true race' totalitarian movements. Nortel and IBM in Canada won't even look at you if you don't have a University Degree. College isn't good enough for them. And then they wonder why those positions won't fill when they turn away so many excellent potentials. Its like exclusive membership to some fancy golf clubs. They have to deam you worthy to play there, through all sorts of discrimination (and mostly your bank account). Natural selection deams that only the strongest survive. Joel's selection asks for super-hero's. If there is ***any doubt***, your GONE! Not 'good enough' for our club. 'Ciao!' I'm sure Joel is a cool guy. But he's definately got an ego (nothing wrong with that), and there is a level pretension.
Wed 24 Sep | Patrik | ABCD. Its all a matter of what you are doing; I think its a waste of time having A people doing all the tedious and boring parts of system development. Those reports you need, for example. I've done my fair share of reports back in the day, and now I stay away from it all. But if some clueless boss puts me on such tasks I sure perform worse than if Im doing something intresting and challenging. So maybe B and C bosses get B and C performances out of any people, simply because they assign them the wrong tasks.
Wed 24 Sep | sedwo | Johnny Bravo, > 'Supermodels with Masters and Phd's.' - I'd like to know > how you got the impression applicants need to look as > good as supermodels. Joel never made such a > statement, and I think he never implied it. No he didn't imply it. But since I see a lot of his programmer pictures on his site with moderately good looking guys (who definately workout) and wear tight T-shirts, then I just assumed it. And hey, I guess they answered properly to 'how would you move Mt. Fuji', because their working there. Which means their smart enough for Joel.
Wed 24 Sep | not required | Regardless of the difficulties of having an office full of superstars.  It sure must be nice having your boss tell the rest of the internet that you are in the top .001%
Wed 24 Sep | Li-fan Chen | The only way FogCreek can attract 99.9 percentile is if someone really high up at that company starts selling their wares like fanatics. Because without money nothing would be possible.
Wed 24 Sep | Lou | Jack Welch said that GE needed to hire only As and Bs with the potential for being As. He would fire Cs and any Bs that showed no promise of becoming an A. Of course he was got GE from 400,000+ to 270,000 employees. He's also the one widely quoted for saying that As hire As, while Bs hire Cs. I don't think anyone is quite serious about hiring 99.9th percentile folks the way that we all think of them. What Joel is saying is that of all the people who he might hire to work at FC he wants that one person who will add so much value that they couldn't imagine FC without them. Its Joel's personal 99.9th percentile, which might be very different from Microsofts or mine. If Joel is in the business of turning programmer-time into money than he needs people who are worth far more than they are paid, who have ideas and can code and communicate and process and handle a half dozen random things while they're still small and growing. So he looks at his critera and evaluates each candidate. Joel's 99.9 percentile claim essentailly comes down to: 'I might hire you if I was a huge corporation and could afford some slack, but I can't and I won't. I'm looking for that one person in 1000 who's going to make a huge impact here and fit right in and work hard and fit a dozen other critera. I can't afford slack so I can't afford to hire below my standard.' That's not so unreasonable.
Wed 24 Sep | Mike McNertney | I really don't understand what people are objecting to.  Joel is saying he wants to hire the absolute best candidates, and he expects that having this nice office will help him accomplish that.  Of *course* he wants to hire the best people available.  Everyone does.  It makes the company more money to hire a superstar than it does to hire an average person.  You'd be stupid *not* to try and hire the best available.
Wed 24 Sep | no name | Does Joel want the top .001 of the entire population, or just to be able to hire the top .001 of people that APPLIED to fog creek? My definition of the 99.999 percentile is made up of people that have no interest in writing bug tracking software or content management systems. I'll bet he has a different definition of 99.999.
Wed 24 Sep | standardized anon | When I have wet dreams, I dream of me.
Wed 24 Sep | Ram Dass | The 'best person' for the job can be hard to quantify. Very often people who are in the 99.9% of acdemia are not the best for the work environment. Team players are very important part of building a software team - they are hard to find and often not an indication of their education results. Many firms use the so-called 'We only hire the best' as a marketing tool to further promote their products. What they actually do is something different. Some of the dot-coms were famous for hiring only the best - I guess we do not have to analyze whether that strategy was succesful or not. When I left college I had an offer from Arthur Andersen - it was pretty big thing back then. They brought me to their training center in the mid-west for two weeks. It was a cool place - most of the other fellow prospects were eager sharks. They spent an awful amount of time talking about how ethical the organization was and how we were the best people they could find. And how we were going to raise standards. I had an Uncle who was a partner at Arthur Andersen, so I pretty much knew the reality from the spiel they gave us. Disclaimer: The AA partners, in majority, do not want to be not ethical. Competitive pressures may force them to cut corners. In essense a partner is a sale machine - what knowledge they acquired is mostly irrelevant, it is sales and sales only. But I digress.
Wed 24 Sep | cmsing | It's just content management software, not exactly rocket science. It's highly unlikely Fog Creek is competing in the same talent pool as quant firms and cutting-edge startups. I don't know anyone who'd want to do bug tracking or CMSs, even as a first job.
Wed 24 Sep | Bobo Jackson | CityDesk is a decent piece of software, but do you really need the the 99.9% to create something like this? I don't find it particularly easy to use. It has weird little UI inconsistancies, on my machine anyway. It has huge toolbars with over-saturated icons that don't wrap when you make the window smaller. I could point out lots of things that I would change. Still though, it works as advertised and I would recommend to people looking for a simple CMS. I'm not in the 99.9%, but I write decent product that has few bugs, a nice UI, and a good feature set. People seem to like buying and using the thing too. Why are the people Joel has working for him better than I am? I couldn't tell you how to move Mt. Fuji, but somehow we manage to have happy customers and a parking lot full of luxury cars. Maybe it's because FC people don't spend half their day reading this forum.
Wed 24 Sep | Prakash S | 'CityDesk is a decent piece of software, but do you really need the the 99.9% to create something like this?' - You need the 99.9% to make sure what not to include!
Wed 24 Sep | Alyosha` | The number one conceit about 'we hire only 99.9 percentile workers' is the implicit assumption that you yourself are in the top 0.1%. What does that say? 'The top 0.1% of people are defined as people who think like me'. Joel may be a smart guy but I'm not convinced he's smarter than 999 out of every 1000 engineers.
Wed 24 Sep | Johnny Bravo | Mike, 'I really don't understand what people are objecting to'. You meant objections like 'Joel may be a smart guy but I'm not convinced he's smarter than 999 out of every 1000 engineers.'? I don't understand it either. Perhaps all those folks complaining in here fell for the ole' Leftist dream that we all shall end up as 100% A's when given just a proper chance to prove and evolve ourselves? Perhaps obeservations like 'Joel has only decent looking employees in his office' just show that although people already recognized nature put some limits on their final destinations they still feel being disadvantaged by conspiracies and not by nature's gifts? Who knows.
Wed 24 Sep | Simon Lucy | Hmmm, that old chestnut about 'leftist/socialist' believing that there was no such thing as excellence and difference in people. I doubt if anyone that reads this stuff thinks that there is some kind of level set of abilities in any group. And personally, I'm sure that Fog Creek has a greater than average set of high achievers and that they probably have a very good working environment. However, measurements such as 0.01% are simply silly, as a shorthand for excellence its fine, but it isn't a real measure of anything. There's no quantifiable number or percentage you can ascribe to any group and say, oh they are the leaders, or they are the ones that get things done (not necessarily the same thing). Life, real life, is more confused than that. And a good deal more fun.
Wed 24 Sep | Caveat | It's impossible to hire only A's. There is no test/puzzle/interview/process in existence that can filter candidates that accurately. A statement like 'We only hire the A's.' is rhetorical, not a statement of fact. It's more for the consumption of employees and prospective hires, since for them it's a motivator. There's significant psychic payoff in feeling like you're part of an elite. A hiring manager in 'Soul of a New Machine' summarizes his technique with a candidate as: 'You tell him we only hire the best. Then you hire him.' Saying that your firm only hire's A's doesn't say much about it, since everyone says they only hire A's. The more revelatory question is: Given that you will inevitably hire B's, what do you do with them once you recognize them? Do you try to educate them, or move them elsewhere, or just get kick them out the door?
Wed 24 Sep | Johnny Bravo | Gee. Peeps, do you really think Joel was being that reasonable when making a statement about that '99.9%'? Wake up! It was just an illustration! If I were to say 'No ten horses can pull me in that office!' - will you counterargument 'Johnny, look, I've made some calculations: 10 horses can pull as much as 10 tons weight, so your figure is not realistic. And by the way, I've already called PETA for the possible harm done to the animals. And why not Shetland ponies? They are smaller than horses, but they deserve a role in sayings, too!'
Wed 24 Sep | Johnny Bravo | Just saw the story has been slashdotted. Now that might explain why the thread went down the pipe.
Wed 24 Sep | Simon Lucy | Ummm, that is exactly what I was saying. Its those that take the 0.1% as gospel and a measurement, as you, (Johnny Bravo), seemed to be doing that I was responding to. If you weren't doing that, then obviously what I said doesn't apply to you :-).
Wed 24 Sep | MD | What I'm saying is that a company which makes claims like this is not likely to be somewhere I would enjoy working. People who look down on 99% of their peers generally aren't nice to be around. That's pretty much it. Even if Joel really IS hiring the top .1%, and even IF I was one of them, I still don't think I would want to be at a company that patted itself on the back for being superior. I have enough experience in our industry to know that 9 out of 10 people who think they're superior really aren't.
Wed 24 Sep | Tayssir John Gabbour | I think we're too close to IT. Think of cooking -- what if he said he wanted to attract the best chefs willing to work for him? Would people then complain about intelligence or pretension? It would become very clear he just wants to enjoy his work. Too many people think of programming as 'intellectual' and I wish it stopped being about that. I'm sure you can tell what '99.9%' means, even if you're not it. The understanding of detail, an unwillingness to do pointless shit, lack of ugly fundamentalism... a lot of it holds true for comedians, book dealers, etc... By the way, I think Joel's missives are aimed to destroy morale at his competitors... food for thought.
Wed 24 Sep | MD | If 5 out of every 10 restaurants claimed to only hire the top 0.1% of chefs, we'd have the situation we have now in IT. So much for that analogy.
Wed 24 Sep | Tayssir John Gabbour | You're right, 5 out of 10 IT companies work with good architects to develop perfect offices, as part of a rational strategy. So much for your quick retort. ;) You've got a chip on your shoulder you should probably fleck off, MD.
Wed 24 Sep | C+ | well, what's he supposed to say? 'fog creek, where we only hire people in the 70th percentile or above?' 'fog creek, if you are average, you are probably good enough!'
Wed 24 Sep | Johnny Bravo | Obviously the crowd expects him to say "I'll drink a beer with you even though you might not be above those 99.9%."
Wed 24 Sep | Alyosha` | C+ ... take a look at what Joel said: 'I suspect that $700 per person [per month] is on the high side for software developers throughout the world, but if it means we can hire from the 99.9 percentile instead of the 99 percentile, it'll be worth it'. My gut feeling is that shifting from the top 1% to the top 0.1% isn't going to make much a difference at all to a company's bottom line. And certainly it's not going to generate $700 of revenue per month per employee. Give me the choice, and I'd rather work in a $350 / month place and get a 5% ($2/hr) pay raise. The savings is not because you're going to be hiring a new breed of employee, but rather the employees you have may end up staying later working because they like the office better than home. So, my suggestion: 'I suspect that $700 per person [per month] is on the high side for software developers throughout the world, but if it means that we can continue to pull in top talent and that our employees enjoy working here, then it will be worth it'.
Wed 24 Sep | doubtful | Doesn't make sense to me how he can attract the 99.9th percentile. Google is probably the only company that is small enough, interesting enough, and has potential for big payoff enough, to attract the 99.9th percentile of software engineers. Fogcreek being small makes it easier to be more selective. The work doesn't seem interesting enough to attract the candidates that would otherwise work at Google (or do research at Microsoft or IBM.) I don't understand how his company can expect to compensate 99.9th percentile software engineers, especially in pricey NYC. Lots of salary, bonus or promise of future equity necessary there. Is everybody making over 200k base or something?
Wed 24 Sep | www.marktaw.com | 1. Hiring the 99.9 percentile person is easy - look at 1,000 resumes before making your decision and really believe in your selection process. 2. Why does everyone think that one number measures everything? You're assuming that the 0.1% people are also going to be arrogant and leaders. Just because they're in the top percentile in 'x' doesn't mean that they're also going to be in the top percentile in 'y'. I know a lot of very smart people, and their temperments vary just as widely as anyone else's. A good leader doesn't have to be smart, and a smart person doesn't have to be a good leader.
Wed 24 Sep | Bill Carlson | 'A' people won't be happy writing data entry screens, taking questions from support staff, maintaining spaghetti C code from 15 years ago, or doing HTML layout. And they won't stay. You'll have a revolving door, constant arguments about coding style, drop dead boredom, lots of internet surfing, etc. if you hire only from the 'A' list. Knock the 'C' list all you want, but respect the 'B' who does his job competantly month after month. Many (most?) positions require a 'B'. They can't be effectively replaced by an 'A' or a 'C'.
Wed 24 Sep | Jim Rankin | I think it's really funny to read so many people trying to make "We want to hire the best people we possibly can!" into a controversial statement.
Wed 24 Sep | Peter WA Wood | I think Joel should urgently read Belbin's Management Teams - Why They Succeed or Fail. It will help him understand why his all 99.9 percentile "Apollo" team will not be the top performing team.  Chapter 2 - The Apollo Sydrome should suffice.
Wed 24 Sep | www.marktaw.com | I'm with you Jim. People are reading way to much into this.
Wed 24 Sep | Alyosha` | Jim: it would have been a whole lot better if Joel simply said, "We want to hire the best people we possibly can!".  But that's not what he said.  He said, "if we can hire from the 99.9 percentile instead of the 99 percentile, it'll be worth it".  That's completely different.  The amount of hubris in saying "we're better than almost every startup in existence, and even that's not good enough for us" ruined what was an otherwise great article.
Wed 24 Sep | Vince | Alyosha`, If joel *is* hiring the top 99.9 percent of programmers, I can garantee you that an extra 350, hell, even 700 dollar a month pay raise isn't that important. The top 99.9 percent don't work for 80k, probably not even for 130k. I'm guessing much more then that.
Wed 24 Sep | C+ | 'My gut feeling is that shifting from the top 1% to the top 0.1% isn't going to make much a difference at all to a company's bottom line. ' Not to be an ass, but this comment reminds me of those nerd fights in 1999 about whether or not the millenium starts in 2000 or 2001 or whatever. Joel's comment is just marketing talk, people. I doubt he's doing any serious statistical analysis of SAT scores and IQ tests of his applicants to ensure he is getting the top 0.1%.
Wed 24 Sep | anonymous | We are having a problem with hiring only 99.9%. Personally I don't understand why it is necessary. You really need very good people -- not everyone needs to be a superstar. What happens, and has happened, is you end up with power struggles out the ying yang. To many chiefs not enough indians. The truth of the matter is everyone deserves to be a chief, but they aren't enough positions to go around. I believe it the market was only slightly better for software developers, our office would turn into a revolving door as a result of hiring only 99.9% people.
Wed 24 Sep | Tayssir John Gabbour | Alyosha, maybe this will make you feel better about the article. a) A software developer is anyone who automates computing tasks. Anywhere in the world. b) He didn't say he has the 99.9%, just that he's taking steps to try reaching them consistently. c) There's a lot of programmers in the world because of money, and various effects thin the .1% disproportionately. d) He might have retention problems he doesn't mention. e) Fogcreek is worried about competition in upcoming markets. I think people are reading too much into it; maybe this is a sociological problem or people's feelings are sensitive to this. But a perfectly possible reading is that Joel is trying to be a good CEO who wants to populate his company with these 'superstars.' It does not necessarily mean he is a superstar or has no flaws as a manager. Most of us don't work with him, so why invent motivations?
Wed 24 Sep | Brian | Has anyone else considered the fact that he might not be talking, literally (numerically?) about 99/99.9? Read some of his other articles--mostly he's saying that saving money on equipment is a false economy--spending a little (OK, a lot for us mortals) extra on nice gear allows him to attract good people, keep them, and (important one coming up) keep them happy. If (bogus numbers, bear with me) rent is $1,000,000/year, and spending an extra $100,000 on plasma TVs and a fancy window scheme raises revenue from $25m to $50m, isn't it worth it? I have a job that consists of a fair amount of web app development. I used to do a lot of tech stuff (walk around and fix things) and that still part of my responsibility, but I work in an open cube and can only get any coding done from about 6p-8p, after everyone has left. (a) it's quiet and b) people aren't walking up asking for help.) Since web dev is supposed to be >50% of my job, not 25% of it, wouldn't a nice office boost my output? Things commonly take a week that could be done in a day in isolation.
Wed 24 Sep | Matt Latourette | I think a lot of folks are reading way too much into this. Joel is trying to hire smart people who get things done. Smart doesn't necessarily mean an IQ of 180 and gets things done doesn't necessarily mean that you're the Speedy Gonzales of coding. Really, it just means that the person has enough intelligence, common sense, resourcefulness, motivation, and persistence to solve the problems that need to be solved: a) without having to be told what to do b) without making too many little mistakes c) without making any really serious errors d) in a reasonable time frame There is some minimum threshold and people below that threshold are not smart enough or do not get enough things done. They are liabilities to the company instead of assets. Joel doesn't want to hire anyone who is below that threshold. Because there is a great deal of variance in the productive value of individual developers, he sets that threshold higher than the minimum that is necessary. Ideally, he wants people who are a few standard deviations above the norm. Building a really nice office space and treating developers well is a way to get more of the people who are above this threshold to apply for jobs at Fog Creek.
Thu 25 Sep | IDidNotHaveSexualRelationsWithThatGoat | Hum, right, right... "99.9 percentile" to write bug tracking apps in ASP. Sure. I'm sure the "99.9" percentile would love to have "VB experience" on their resume also, about as much as they'd love me taking a big, old, nasy dump on it.
Thu 25 Sep | IDidNotHaveSexualRelationsWithThatGoat | That should be "nasty", but I can't spell. It's sad.
Thu 25 Sep | xyz | Why are you guys so upset - fogcreek wouldn't hire ya?
Thu 25 Sep | Sum Dum Gai | It's marketting rhetoric, what do you expect? joelonsoftware.com is all just one big marketting blurb for fog creek, I think even Joel would admit that. :)
Thu 25 Sep | Bill Rayer | I don't know what's special about the top 99.9% I'm in the top 100% of developers worldwide :)
Thu 25 Sep | dat | And I'm not an A, maybe not even a B, but I also have to earn a living, so I'm quite glad that there are companies out there which do not only hire A's. Thanks.
Thu 25 Sep | Chris Hanson | One poster above said it didn't make sense to hire the top 0.1% and then have them slaving away doing drudge work. One of the things that differentiates an A player from a B or C player is that the A player won't put up with the drudge work. They'll find a way to automate it, and that'll make them go substantially faster. Check out what some A players at NeXT (now Apple) created to automate the development of database-backed web applications: http://developer.apple.com/documentation/WebObjects/Developing_With_D2W/index.html You don't write any SQL when you're working with WebObjects to access a database from the web; with Direct to Web, you don't even create web pages! Instead you create rules describing how the pages should be generated, customizing a default rule set and adding new components here and there when necessary. Which would you rather hire, a team of six J2EE/.NET developers to create the first release of a web application in six months, or a pair of WebObjects developers to create the first release of the same application in two months? Assume that the total project costs are identical. That, I think, is the essence of how Fog Creek is trying to compete. Providing a great working environment that will help to attract and retain A players is what the new office looks like it's all about.
Thu 25 Sep | Matthew | sedwo, Joel continuosly raves (brags) about his deep philosophy to only attract candidates within the 99.9 percentile. Its good to see that (like most discussions on the net) this one has failed to look at the context. The context of Joel's statement is software development. He is not looking for the 0.1% people with the highest IQ. Or prettiest 0.1%. He is looking for the 0.1% that are the best developers, based on his criteria at http://www.joelonsoftware.com/articles/fog0000000073.html . Many studies have shown vast discrepancies between different developers. Steve McConnell in Code Complete talked about this (I think - maybe it was in Peopleware?). He identified (from memory) a 3 to 10x difference in speed between the top 10% of developers and the bottom 10% (with no drop in quality). To deny that there is vastly different levels of ability in programming is ludicrous. I have worked in many places, and I would agree that a good developer is worth at least 10x a bad one in terms of output. Just like all the studies show. All Joel is doing is making it part of his strategy to aim for the best. OK, he is aiming for the 99.9 percentile (rather than the 90 percentile) but the principle is the same. He wants the best, since they produce alot more. Of course, Joel's strategy SEEMS obvious, but many companies (especially large corporates) can't actually tell who their best employees are and their recruitment process can't distinguish either. Joel is trying to consciously not go down that path. Seeya
Fri 26 Sep | www.marktaw.com | > He is not looking for the 0.1% people with the highest IQ. Or prettiest 0.1%. He is looking for the 0.1% that are the best developers, based on his criteria at http://www.joelonsoftware.com/articles/fog0000000073.html . < Exactly. I think too many people are confusing top 0.1% in too many unrelated fields. Joel says, 'if it means we can hire from the 99.9 percentile instead of the 99 percentile, it'll be worth it.' Nowhere does he specify this means intelligence, arrogance, inability to work with others, or the 0.1% laziest. He could be talking about the top producers, not the superstar programmers. Anyway, I don't think we're making any new points on this thread. Anyone who posted here is probably not in the top 0.1% because we would've recognized it as a waste of time upon first reading it. In fact, this probably passed Troll status days ago.
Sat 27 Sep | Jim Howard | Would the best programmer in a group of 1000 programers want to work in a place where the boss expects the superstar to live in his (very nice) office? Would not the best programmer in a group of 1000 professional programmers already have a nice house that was a suitable place for him to meet and entertain his friends? Would not the best programmer in a group of 1000 professional programmers already have a nice TV and whatever other toys he likes?
Sat 27 Sep | www.marktaw.com | Would this include 1,000 programmers who have been working 6 years - 3 for a failed startup, and 3 in this economy. I thought we already established that excellence in one area doesn't automatically mean excellence in others. This 0.1% programmer may have horrible negotiating skills. Any way you slice it, if I interviewed at a place and was told I wouldn't be working in a cubicle, I'd look more closely at that company than one that said I would be.
Living at the office? How about actually living? | Wed 24 Sep | Gregg Tavares
Wasnt it one of those Microsoft books on programming that claimed you get the most productive people by making them work 9 to 5 and kicking them out and making sure they have a life outside of the office? The arguement was that people that live at the office dont actually work 8 hours they just think they do. Instead they show up at 11am, take a 2 hour lunch, read their personal e-mail for an hour, catch up on slashdot or Joel, do 1 or 2 hours of coding, pay their bills, go to a 2 hour dinner, come back after dinner, play a few network deathmatches, work another 1 or 2 hours and go home between 11pm and 1am and think they worked 12 to 14 hours because thats how long they were at work. The Microsoft guy (sorry, I forgot which book) claimed it was better to get your people work a solid 8 hours (9 to 5 or 9 to 6) and stay focused most of the day then to let them live at the office, be unfocused and also feel like they spend too much time at the office. Im very curious your opinions of that opinion.
Wed 24 Sep | Chris Winters | I'm not sure about a Microsoft book, but Peopleware (a favorite around here) certainly emphasizes this. Most interesting is the theory that for every hour of overtime (that is, more than 8/day, 40/week) there's an hour of undertime (web surfing, email, discussing sports, etc.).
Wed 24 Sep | Chris Woodruff | The only issue I have with having a 8-5 day (in my case) with 8 hours of wanted solid focused attention is that you will never get 8 hours of total concentration.  So I do like the idea that I come in at 5am and leave at 6pm.  In that time I can have my spans of total productivity and also have some time to sit back and think or look like I am unproductive (even though I might not be).  Everytime I get distracted or have to meet with a group or individual it takes time to get back into the zone.
Wed 24 Sep | Tim Lara | My personal preference is for a 'flexible hours / rigid deadlines' approach. I feel that it's generally OK to let people 'show up whenever' as long as everyone is held accountable for finishing their responsibilities on schedule and making sure not to hold others up from being able to do their jobs. Obviously, this won't work in a lot of cases because many people can't be trusted to be reliable and self-directed and behave in a mature, conscientious manner that does not abuse this freedom. The fact that most companies don't allow flexible hours is probably based on statistics just like car insurance premiums. Lots of teenagers are indeed very dangerous, irresponsible drivers and because of this, ALL teenagers have expensive insurance rates. Convenient, but not necessarily fair. If you have the right kind of people and the right kind of project and the right kind of blueprint for dividing up the necessary tasks involved in getting the big goals accomplished, the flexible hours system can work extremely well. IMHO, when people have to worry about being 5 or 10 minutes (or God forbid, an HOUR late), it just generally adds an unnecessary layer of stress to their daily life and plants tiny subliminal seeds of resentment that may eventually influence whether they stay with your company for the long haul. For instance, I REALLY appreciate having an acceptable 'window' during which I can show up to work, and consider it to be part of my benefits plan: Maybe you don't like commuting in rush hour. Maybe you have kids or pets or other outside responsibilities that have random needs that can't always fit a rigid schedule. Maybe some days, you just wake up feeling like crap and want to sleep a while longer, but not necessarily call in sick. Flexible hours keep all this stuff from bugging you too much. Doesn't everyone have enough stress in their lives already? And besides - people who are not dependable, tend to abuse policies, and can't be trusted to care about performance and quality don't belong on your team in the first place, do they?
Wed 24 Sep | anon | Well, I'm an XP type so a 40 hour work week is standard. Personally, 40 hours is too long. :) I like flex hours too, but you have to have at least some core hours in order support pair programming or even a basic level of team communication. I don't really like the idea of a developer pulling, say, a vampire shift away from the rest of the team. It's kind of funny how overtime is almost a given in some peoples minds, even developers. Isn't a project that limits the team to 40 hours per week while still meeting scope and deadlines superior to one that requires overtime, just on the face of it?
Wed 24 Sep | Mikayla | It goes in phases. The downtime, the times when it doesn't matter if I come in an hour or two late, get measured against the amount of 'push' toward being (stupidly) panicked about a deadline. These days I feel perfectly comfortable pushing right back, but I tend to contribute extra focus, or an hour or two of my time as needed, in direct proportion to how much slack the company gives me and how long it's been since they've done so.
Wed 24 Sep | dmooney | I think it was McCarthy's book Dynamics of Software Engineering that pointed how it was fruitless to keep people in the office for more than around 40-45 hours per week for more than a few weeks straight. I agree this is generally true, and I know this is true for me. I tend to work lighter hours during the fuzzy front end of a project and then try to 'peak' during the later phases of the project when deadlines are looming, like a marathon runner.
Wed 24 Sep | Bored Bystander | Gregg: this is my experience too. Many software companies create this stupid internal cargo-cult of 'personal sacrifice' and pressure people to engage in heroics. And being present for conspicuously long hours is part of the whole image. What usually happens is that only the green kids and really stupid naive wankers take this 'dedication' stuff seriously. Anyone qualified who chooses to (or has to) work in this kind of environment who has any emotional maturity at all tends to become incredibly cynical about their job. IE, you see things like people leaving their office light on and their computer sitting in a text editor when they quietly slip out and go home, to give the appearance that they went to the bathroom and will be right back. And as you said so well, the overall personal dislocation of 'heavy onsite hours' causes the hours worked to have very little value in many cases. In fact, what tends to happen is that the stress, pressure and image stuff takes on more importance than meeting goals. So the cynical staff members 'use' the importance of 'visible time served' to manipulate the system for perks and favors. And the high pressure environments tend to produce crap because the worker bees are more concerned about survival than creating something good.
Wed 24 Sep | Vince | well, I agree with the spirit of the post, but thats not always the case.  Theres definatly been times where our team has worked 14+ hour days for weeks at a time, (and every day they get a couple hours longer), and thats been solid *work*. No checking email, no posting on Joel, no chatting.  Of course, the problem is, code just keeps getting messier and messier.  I'd had to clean up some UGLY stuff I did at that time, (and i'm sure I thought it was the coolest thing in the world at the time, being it was 4:00 am).    The point is, even if people are coding away non-stop, I don't think its possible to squeeze that many hours of GOOD code out of someone.
Wed 24 Sep | Tayssir John Gabbour | But it's not just about extracting work. People comfortable to hang around can come up with the best ideas. This isn't work -- it's instead a warm way to generate ideas on saving work. Recharging batteries. Or frankly, getting a second wind for another round of coding. When I'm coding at home, I often take a break to do something completely different like watch a comedian or read. Talk. Then my interest refreshed, I go back to my so-called work. I'm not travelling between places, so I don't lose energy; if I have a good idea, I can just drop everything and hit the machine.
Wed 24 Sep | Aussie Chick | I am so interested in this. I am a firm believer in 'living life today'. I have no desired to live at the office 80hrs a week, when I have a husband to go home to, books I would like to read, things I would like to do. I do not want to be taking copius amounts of work home, I want to be relaxing with my husband, going for a jog, watching ST, talking, sleeping, convincing him to buy me dog so I can call it 'Ellie the elephant' (He refuses to buy me an elephant). But I hear so many workers tlak like, if I want to *seriously* get into programming and the tech world, then I am going to have to work 80hrs weeks at least 90% of the time, and shame on you for desiring a 40hr week, you lazy person. I don't object to working a few extra hours, however if it is cutting into my time I want to know that I am going to be recompensed in some way. This is my life, everyday it is my life, and it is important to me. Can I really have the best of both worlds???
Wed 24 Sep | M | 'Can I really have the best of both worlds???' Yes! My managers have always cared more about delivery than hours worked. If I can wow them with what I deliver and when I deliver it, I get more slack time and they don't have to watch the clock with me. I end up spending a lot of quality time with my children. So, how do you deliver? I say no to most meetings and keep everybody informed with my status everyday. I always love when my Project Manager asks why I am not attending their bi-hourly status meetings - because I am working on their project, you know, the actual code that is needed to complete the project. I can interrupt coding to give you a status, or you can read the daily status email I send - up to you.
Wed 24 Sep | Patrik | m, >My managers have always cared more about delivery >than hours worked. Consider yourself lucky, I've seen the opposite, and it sure aint pretty. If you have a manager that is clueless about what the team does, the only meassureable thing becomes time.
Wed 24 Sep | Vince | I think a lot of times programmers cause this problem for themselves.  Theres been many times when my manager, or some other high up has asked "how long will feature Y take to add?" and I say "hrm, about 4 hours".  Now, i'm thinking it will take 4 hours to code, but they're wondering how long it will take to code, bug-test, deploy, re-bug test, and optimize.  I'm starting to get better, but I see members of our team do it every day. 
Wed 24 Sep | Li-fan Chen | Gregg Tavares, I know you are just generalizing but it sorta peeves me to see that you can't fathom people working hard overtime. I have seen people for all walks of life putting more than their 9 hours worth for much of their productive lives and millions of people around you (including me) have no problem doing the same.
Thu 25 Sep | Gregg Tavares | Yes, I can fathom it, I've worked Christmas day 5 times. I've worked 14 hour days for 10 months straight and generally at least 4 to 6 moths every year. That's not the point. The point is Joel is a Microsoft graduate, Microsoft says 'people are more productive if they work 9 to 6 and leave instead of living at the office' and yet Joel is trying to make his office a good place to live at. So, that makes me wonder, which is it?
Thu 25 Sep | Bella | The problem is, even during down time. its never explictly acknowledged as down time. you're still there from 9-6, 'pretending' to work harder than you are. It's those times people should be allowed to balance out their 14 hour days they did to meet the last deadline. Man, I am so glad I left IT, Solution to your problem, go join a trade union. Best career move you'll ever make. You wont work a minute of overtime w/o knowing exactly how you'll be compensated for it.
Thu 25 Sep | RocketJeff | >>So, that makes me wonder, which is it? Why can't it be both? Does Joel _anywhere_ state that he wants people to work long hours (I haven't read this)? Maybe Joel wants a great office that people actually feel like they actually have a life there, and aren't just boring cogs in the machine? I see all the 'cool stuff' as a way for the people to take a quick break, recharge, and then go get things done. I don't see it as a 'we have all this cool stuff so people will spend 18 hours a day here'. Please point me to Joel's writings that say different.
Thu 25 Sep | anon | [Yes, I can fathom it, I've worked Christmas day 5 times. ] Oh man. You either really needed that job or REALLY loved it. :) That's a line I would never cross.
Thu 25 Sep | Iain Forsyth | I also thought the 'living at the office' quote didn't seem to fit with Joels overall philosophy. I agree about the loss productivity / quality associated with long hours. However, I think people are kidding themselves if they think 9 to 5 means 8 hours of solid work. I find I need a break / change every 2 hours or so and interacting with your colleagues - even about non-work issues - is a good thing! If people come in sit in their office with the door closed for 8 hours then go home you are going to hit problems pretty soon however productive they are. We have a flexi time system (35 hour week) that allows people to work shorter days when things are slack by using up the credits they built up in busy times. It seems to work pretty well.
Thu 25 Sep | Dennis Atkins | 'yet Joel is trying to make his office a good place to live' Ok, Chris, so you've made it unmistakably clear that you think this is a really bad idea, repeating so over and over. Am I missing some alternatives? As I see it, you can: - make your office a good, comfortable place to live - make your office a bad, painful place to live - make your office in between Now it's clear to me that, barring the few masochists, good developers would, when the choice is available of places to work, chose the first. But you are saying your experience is different. Interesting. Now, there's no studies that back up what you and anon are claiming, but maybe you'll do some formal studies and post your results. You could even become a consultant on the development uncomfortable offices and write a book or two!
Thu 25 Sep | Dennis Atkins | Sorry I meant Gregg not Chris.
Thu 25 Sep | Bill Tomlinson | I think that people are mis-interpreting Joel's meaning in the bionic office article when he quotes Greenspun about living in the office. I think that if you look at the context of the article and Joel's other writings, it's clear that he simply means that the office should be a place that you're happy to be at. He doesn't mean that he's using the workplace to try and get his employees to work excessive hours.
Thu 25 Sep | Bella | Ha, today on MSN.com http://www.bcentral.com/articles/workshop/163.asp
Fri 26 Sep | no name | m - where do you work, and are there any jobs going? Jesus your employer is enlightened. Don't quit that job!
Fri 26 Sep | z | >>> Solution to your problem, go join a trade union. Best career move you'll ever make. You wont work a minute of overtime w/o knowing exactly how you'll be compensated for it. <<< I know some people who belong to a union. Some train their kids to never admit that mommy or daddy (whichever is the union member) is at home when answering the phone. It might be the office requesting they come in for overtime. They have fixed shifts, but there is no guarantee that when the end of shift time comes that they can go home. Yes, you're right. They know exactly how they'll be compensated for that overtime, however much it might be.
Sat 27 Sep | Alex V. Koval | I have been at both sides: 'Living at the office' and 'working only X hours/day'. I was living at office mostly because there were no good alternatives. When I was student there were not so many computers available, and no time (you our from institute at 5pm, then go to job at 6pm, work 2 hours, and at 8pm there are time to go home? So solution was to stay at night, to work more, to earn more, and to study more. It was was great times, all I can say :) After a years of working at other companies, finally we grouped and opened our own company. Our rules are simple: workers have to work only 3 productive hours per day: this gives us enought income to pay good salary. We build everything according to Joel rules, and according to XP rules, and thats help really much, thanks Joel! Rest of time could be spent (and usually spent) surfung the web, playing games, entertaining at the city, etc. And my experience is that developer should not work with computer for more then 7, maximum 8 hours / day, 5 days/week. Otherwise work becames so unproductive, that in future, you will spend more time correcting ugly code, then you save during such sessions. Also, I belive that people who live at office do much less work, then people which go home everyday. I have seen much of such ppl, have been one of them, and know this very well from both internal and external points of view.
Question on Dell's Warranty | Fri 19 Sep | Ram Dass
I am about to make a purchase of a Notebook from Dell. I was wondering which warranty plan is best suited to Notebook owners. I remember reading once that computer manufacturers make most of their margins through additional warranty items. I am tempted to go with Option D below, will this be a waste of money? Option A: 1-Yr Return-to-Depot (RTD) Service+Complete Care, 24x7 Phone Hardware Tech Support, 365 days a year Option B: 1-Yr Return-to-Depot (RTD) Service, 24x7 Phone Hardware Tech Support, 365 days a year Option C: 3-Yr Return-to-Depot (RTD) Service, 24x7 Phone Hardware Tech Support, 365 days a year Option D: 3-Yr Return to Depot (RTD) Service+Complete Care, 24x7 Phone Hardware Tech Support, 365 days a year Option E: 3-Yr Ltd. Warranty, 3-Yr Onsite Service, 24x7 Phone Hardware Tech Support, 365 days a year Option F: 3Yr Ltd. Warranty, 3Yr Onsite Service+Complete Care, 24x7 Phone Hardware Tech Support, 365 days a yr
Mon 22 Sep | Martin Beckett | The other advantage of on-site is the data stored on the machine. If you send it off for repair nobody says you get the same machine ( and harddrive back ). So you have to back everything up first - then maybe reinstall. Plus if it is company data - are you allowed to send it off for repair without wiping everything - I'm not. From other companies I have had repaired machines back with somebody elses system installed on them.
Mon 22 Sep | Antti Kurenniemi | We have a company full of Dell's with the on-site guarantee on all of them, and this year we've had to call maybe 5 or so repairs (the laptops seem to have a habit of losing the display, though that may be due to bad handling), and every time the repair guy has shown up exactly the next business day and fixed the machine very quickly. It's a huge relief, and worth every penny.
Sat 27 Sep | Ben Combee | My two cents: I have a personal Lattitude CPJ650 laptop that I bought from Dell Factory Outlet in 2001.  This unit seems to have a design flaw that causes the keyboard to occasionally need replacing due to the location of the keyboard ribbon near a major heat source.  I've had Dell on-site service come out twice and fix this with replacement keyboards, and it's always been painless for me to call, justify the repair, and schedule a session.
How to deal with team members' mistakes | Mon 15 Sep | Better than being unemployed...
Recently, I outsourced some work on my project to a team member on another project who had some slack time. The team member in question is enthusiastic but inexperienced, so he makes mistakes which arent trapped at a simple unit test but are uncovered when it comes to integration. My moral dilemma is this : I can fix the bugs myself quickly and get on with integration (which is holding up the rest of the project), or I can get him to fix them. Which is less quick in the short term and also involves him being pulled off his current project hes moved onto since completing unit testing. It would be a good move in the long term as hell gain some programming experience. What do you recommend?
Sat 27 Sep | Fairlight | If this Junior programmer produce to many bugs per day then maybe he's not ready for writting production code and should be assigned only to bug fixing for a while, this would improve his solving skills and hopefully coding skills too. If the rate of bug per week is fairly low, mentor him as he's almost there. Good Luck with your project anyway!
The Making of Oracle Database 10g  | Sun 14 Sep | cocoa developer for mac
Interesting article on making of Oracles Latest Database http://otn.oracle.com/oramag/oracle/03-sep/o53making10g.html
Sat 27 Sep | Tarun Upadhyay | I have encountered pretty serious bugs in oracle (previous versions - havent yet worked on 10g). In particular, RAC and the rest of the clustering technology is totally crap and should not be trusted. And so is large part of their XML support. If somebody wants more details I can start a separate thread on my experiences with Oracle.
Remote database replication | Fri 26 Sep | pdq
Does anyone have any experience with setting up either SQL Server or Oracle where there were going to be two duplicate servers thousands of miles away that were supposed to have the same data on them? The application that I have in mind does not require instant duplication - its not like a stock market or airline reservation system. Users will be, mostly, adding new records and remotly added records will need to be visible in hours, not seconds.
Fri 26 Sep | Li-fan Chen | If 1. you have the programming resources 2. and the datasets are tiny, like the IPaq on thousands of your sales force 3. and the replication is master to many secondary for lookup and many secondary to master for updates... You might just simply try to find a file transfer mechanism you can live with. For example your sales force needs to update customer info at thousands of sites, they are mobile. Have then plug in the ipaq into their hotel laptop and run synchronization over night. At 1am: Upload the changes.. Give 4 hours: To allow for batch updates At 5am: download an rsync (talked about earlier yesterday on JOS threads) suitable for your database file (say Access MDB). You could just write a vb program that do uploads and downloads using HTTPS. But if you give us more details (and your details indicate fewer and larger secondary dbs) that could change the story completely..
Fri 26 Sep | pdq | It's one SQL database that needs to be replicated between offices. Let's assume the offices have T1 lines for the moment and the database is on the order of 500 megs. The amount of data that is changing is on the order of 10s of megs per day and is mostly additional records. I am interested in having the database engine do the work. I've heard this is possible? Has anyone done it? We could always write our one database, but I would prefer to buy not build.
Fri 26 Sep | Li-fan Chen | > I've heard this is possible? You are probably talking about replaying log files... not for recovery, but for replication. Most databases that preserves every inserts and updates can create such a file. You just transfer it to the destination db, replay the changes. This assumes the secondary db is read only. This update can be relatively life, but you'll still have to do some programming I think, depends on cost.
Fri 26 Sep | Sgt. Sausage | I can't speak for Oracle, but SQL Server supports 2 methods of accomplishing your task: Log Shipping Transactional Replication Do a quick google for SQL Server with the above terms and you'll find plenty of discussion on the pros and cons of each. I've used both, but in support of multiple servers on the same LAN, not across a 1000 mile WAN. Both work well in a LAN environment.
Those programmers (bookcrossing) | Fri 26 Sep | Andrzej Kocon
Another free and open source movement - free books this time, by Ron Hornbaker of Humankind Systems, tired of making commercial software: http://www.bookcrossing.com It might also be another solution for the Markets or uses for old dev. books and tools? thread. I kind of like the idea, especially the release part. Do they read them? Hope so. By the way, Joel hasnt been bookcrossed yet...
Fri 26 Sep | You were all thinking it, I just said it. | Sooo....  how do they make money?
Fri 26 Sep | GiorgioG | Ok, I have to make the obligatory joke: 1. Give away books 2. ??? 3. Profit!
VS.NET macro slowdown | Fri 26 Sep | Adrian Gilby
Anyone had this problem? We use Visual Studio .NET for our C++ development. Weve got a bunch of macros that we use to do things like slide in/out comments, insert our standard header file templates, function templates etc. Sometimes, these work fine. Other times, they work incredibly slowly, and quite often they crash. It seems to be some sort of COM problem -- QueryInterface is failing for the DTE._EnvDTE interface. You can usually tell that the macros are going to fail, because they run noticeably slowly first. One thing Ive noticed is that weve got .NET framework 1.1 installed, but if I go to Help/About Microsoft Visual C++, it says: Microsoft Development Environment 2002 Version 7.0.9466 Microsoft .NET Framework 1.0 Version 1.0.3705 (Note: .NET Framework 1.0 ???) I cant find anything about macro slowdowns in VS.NET on MDSN. Anyone here have suggestions?
Fri 26 Sep | Chris Tavares | I've got no idea about the slowdown (never used VS.NET macros), but I can explain why you're seeing that .NET 1.0 framework version: You're using the original release of VS.NET. It only works with the 1.0 framework. Even if you have 1.1 installed, VS.NET won't use it. To work against v1.1, you need VS.NET 2003. Which is only $29. Upgrade already! ;-)
Fri 26 Sep | somebody | It's only $29 until the end of the month. Since that's only a few days away, you better hurry the heck up! http://msdn.microsoft.com/vstudio/howtobuy/upgrade/vstudio03/default.aspx
UI framework design | Fri 26 Sep | Andy
Im looking for some information on UI frameworks and paradigms. Basically, how does one come about a good class structure for constructing a generic user interface framework? Is there any site or paper that explores what Microsoft did with MFC, what mistakes they recognized and fixed with .NET, and how that compares to Apples APIs, or Unix GUIs, and so forth. I guess that these systems were developed with some starting principles, but the details were filled in ad hoc, and there has probably been a lot learned from all these years of using UI frameworks. Im looking for stuff related to concepts of input focus, what state youre supposed to maintain between screens and how to do it, communication with the application, the idea of modal/non-modal, input validation, how to make everything as data-driven as possible, automated traversal of the UI for testing, how to make it extensible with custom code (e.g. if you need to all of the sudden play a video that reacts to UI events), etc.
Fri 26 Sep | i like i | A bit off target but a useful link anyway: http://www.atai.org/guitool/
Fri 26 Sep | Simon Lucy | You may walk into the flames of 'we're not here to do your project assignment' type of thing. http://citeseer.nj.nec.com/cs is an academic paper search engine, shove in UI HCI and probably widget and you'll come up with pile of papers.
Fri 26 Sep | Jeff Kotula | This isn't really an answer to your question, but just a different perspective on UI frameworks. May or may not apply to your situation... To me, 'generic' UI frameworks are not really what we need. We've already got a billion of them. What we need are domain-specific UI frameworks that are geared toward families of related products. These should incorporate corporate or project branding conventions as well as the event management, look and feel, operational paradigms, etc. that is all left up to the programmer's discretion with generic toolkits. I wrote a paper on this called 'Branded Toolkits' that was published in Software Practice and Experience a few years ago.
Fri 26 Sep | Paul Brinkley | I suspect I won't get any useful UI-related information from this thread, but the link to that search engine was certainly worthwhile. Thanks, Simon. I may as well ask, though: is there anything CiteSeer will get that Google (or Teoma, etc.) can't?
Fri 26 Sep | Simon Lucy | I think probably most if not everything will be indexed on Google that CiteSeer will have. I think though that they won't be drowned in the noise. Makes me think of one of my current boil the ocean ideas of categorising Google searches using Bayesian filtering and keeping the category as a look aside search index. PS if anyone does this don't even think of patenting it.
Fri 26 Sep | No flames please | I just want to use your question as a launching point for something related: The Apple APIs are absolutely horrid. Obvious results of hackers throwing stuff together willy nilly with absolutely no design whatsoever. The Win32 API, on the other hand, I really liked when I worked with it. Is it true that the Borland guy had a hand in its development? It seems Microsoft has been doing a much better job at software framework design than Apple for several years now. I suspect it's because they hired that brilliant genius who designed TurboPascal. I suspect he is behind it all. Unix APIs I've seen are a mixed basket, but some things originating on Unix have been quite good.
Fri 26 Sep | Andy | Simon: this is definitely not a school project. I work for a game company. It's not even a project yet, but I'm just trying to gather some ideas. I guess I should have said that, but the idea was to see some common patterns in existing frameworks that could be learned from. The ideas I'm looking for should be relevant whether you're using a PC or a game console. Jeff: interesting comment. What are some of the pitfalls of generic frameworks in your opinion? The look and feel, for my purposes, must be completely data-driven. To me look and feel is definitely not part of the framework -- the system to get art in is. Also maybe people have some comments about Java UI... if I remember correctly, the first UI toolkit was kind of hard to use, and then they released Swing which was lighter weight. Academic papers might be useful, but I'm also looking for more practical stuff, comparing real frameworks that have been extensively used.
Fri 26 Sep | Joe | Actually, depending on what Apple API you are talking about, they can be 'horrid' or great. Check out the AppKit, it came from NeXT http://developer.apple.com/documentation/Cocoa/Conceptual/CocoaOverview/index.html
Fri 26 Sep | Joe | whoops, that link should have been http://developer.apple.com/documentation/Cocoa/Conceptual/CocoaOverview/Articles/CocoaFrameworks.html#//apple_ref/doc/uid/20001932
Fri 26 Sep | Ged Byrne | Andy, For a different perspective take a look at http://www.nakedobjects.org .
Incessant rebuilds with VS.NET | Fri 26 Sep | Richard Kuo
Something about VS.NET is really starting to grate on our nerves. We have a rather large/complex solution with around 50 projects. Everytime we try to debug the application, VS.NET complains that projects are out-of-date even after weve just done a rebuild. Furthermore, if we change just one file, during the rebuild VS.NET insists on checking every project to see if its up to date, which takes on the order of one second per project. VS6 actually knew which project needed to be rebuilt and didnt spend all this time waffling about what to build so this seems like a serious backslide in functionality. The worst thing now is that when we try to debug, even if we tell VS.NET not to rebuild, it checks all the projects AGAIN and then starts the debugger. I assume other people are facing similar issues? Does anyone know how to stop this ridiculous behavior?
Fri 26 Sep | Chris Nahr | The up-to-date checks in VS.NET are completely broken for some reason. All my project files are local so I don't mind as much but I can see how it could get very annoying with lengthier builds. In addition to needlessly recompiling projects that are up-to-date, VS.NET doesn't include resource files (.resx) in its rebuild checks. So it will NOT rebuild a project/solution when the resources have been changed -- you have to do that manually. Oh, and have you seen the 'can't overwrite XML file in target directory' bug yet? VS.NET occasionally leaves output files locked until it's shut down and restarted. Fun! I recommend moving the build process to NAnt: http://nant.sourceforge.net Yeah, it's underdocumented freeware and it's buggy in its own way but unlike VS.NET, the builds actually work.
Fri 26 Sep | na | exit and reopen project?
Fri 26 Sep | Brad Wilson | +1 for the build system in VS.NET being a fundamentally broken piece of trash. +1 for loving to NAnt.
Fri 26 Sep | Mark Hoffman | Has anyone got a sneak preview the new MS build product? I saw a mention of it on someone's blog and it was supposed to be demonstrated at PDC.
Fri 26 Sep | JWA | For those of you using NAnt - How does that work for debugging? Are you only using NAnt for final builds, but still debugging with the VS.NET builder? Just trying to understand the process as I'd like to try out NAnt soon. --Josh
Fri 26 Sep | Rob Walker | I use NAnt for builds, but run from within VS.Net because: 1. it is the editor I am most familiar with 2. the debugger As far as VS.Net is concerned I am working on a make file project that wraps the NAnt build file. Unfortunately NAnt dependency checking for C++ projects is worse than VS.Net's. In the build I am using it is totally non-existant and relies on the compiler to do minimal rebuilds. Newer builds do some checking, but in a way that was incompatible with our build process. Sigh ...
Fri 26 Sep | Brad Wilson | In point of fact, if you wanted to eschew VS.NET altogether, you could. There is a GUI debugger that ships with the SDK. Or you can use the IDE to edit and debug, as others do (I find Intellisense very useful, personally, and can't find it in any quality in any other editor besides VS.NET's). We do C#, not C++. I've never used NAnt to do C++ builds.
Fri 26 Sep | Nick Lassonde | One bug that we ran into all the time comes from just wanted to relink everything. This is worked around by not putting any relative paths in the 'Additional Dependencies' section in the 'Linker\Input' options. Only put file names here. If the files you want to link to aren't in your %PATH%, put the paths to the .libs in the 'Linker\General', 'Additional Library Directories' My opinion is that VS.NET has been MS's best and worst product wrapped into one. It's so feature-rich and powerful, but ridden with annoying bugs. I haven't been able to switch to VS.NET 2003 yet. Has anyone seen improvements with that?
Fri 26 Sep | David Pickett | This problem often occurs when you put relative paths into your resource compiler or MIDL compiler input paths. You can usually fix it by including '$(ProjectDir)' in whichever of those path collections you have other paths in. See http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=utf-8&selm=3cee7e84%241%40news.microsoft.com.
Fri 26 Sep | David Pickett | Copy that URL and paste it, btw, I think the posting software is escaping the '%' signs, so the link doesn't directly work.
Fri 26 Sep | Dan G | Generally what I do when using NAnt and developing is to build a version with all the debug symbols etc ,deploy it to my test environment and then attach VS.NET to the aspnet_wp and remotely debug it. Works well enough
Fri 26 Sep | Ankur | The GUI debugger that comes free with the SDK is good, but not as good as the VS.Net debugger.  Particularly for me, I can't set conditional breakpoints with the free debugger.
Whoa - when did NetSlaves die? | Fri 26 Sep | Grumpy Old-Timer
I used to hang out there all the time (during the height of the Cheopys/Uncle Meat pissing matches)... Ive googled for a while, but only came up with Baldwins half-finished post-mortem. Anybody have a link to anything about what finally killed it?
Fri 26 Sep | Stephen Jones | ---'Anybody have a link to anything about what finally killed it?' ---- Self-poisoning?
Fri 26 Sep | "Maytag Repairman" | 'during the height of the Cheopys/Uncle Meat pissing matches' 'nuff said.
Fri 26 Sep | Trollumination | Splat and O'Rooney killed it bit by bit, in what can only be described as ironic performance art. First they made a list of the main ChUM feuders, and 'suspended' their accounts. Then they kept accusing them of sneaking back on - accusing all sorts of people of really being them - and deleted a few more users. Then they deleted all their old posts, revising history so that NetSlaves had always been a shiny happy place. Then they suspended all the users who had complained about this process. Finally, faced with real and imaginary incidents of people sneaking back on, they just got happy with the suspensions and IP-bans. Uncle Meat escaped unscathed, and it came out that he was and had been a major financial backer of NS all along and had therefore been given immunity privileges. Finally the board consisted of UM, user who gripes about UM, user getting deleted... and then there were none. At last, the posting capability was frozen - and Baldwin continued to post, although the IP bans were still in effect even for this new read-only board. Now NS.com is a redirect to Amazon, and Baldwin writes for his own site only. Throughout this whole process, Splat and O'Rooney refused to answer any correspondence from the affected users. They would only even explain the REASON for a ban if a user provided real name and telephone number, let alone actually discuss whether a particular user deserved to be banned or not. This may not have been so bad, except that Splat was threatening to sue any of these users who had sneaked back on after a ban or who had been suspected of doing so for $500 per post for 'unauthorized access', and was also threatening to call the bosses, parents, and significant other's of the banned users in order to get them fired or unloved. Someone who sure SEEMED to be Splat, although may not have been, was raging on the FC forums about how his 'business model' had been ruined by pranksters and trolls and how he was going to sue every last one he could find. Meanwhile, Baldwin was apparently evenhanded and somewhat of a bystander and, though he promised to check in on things and genuinely meant well, never managed to get a word out of the other two. It was performance art. Despite being broke-assed unemployed writers with no power whatsoever, Splat and O'Rooney managed to put on a very convincing act of being a big evil corporation - complete with legal threats (that they almost certainly could not afford to carry out) and rude indifferent customer service. They finally got revenge for the way that the world had kicked them around - by having their own mass layoff with the click of a button. Theater in the round, that's what it was.
Fri 26 Sep | Israel Orange | Truly fascinating, Trollumination.
Fri 26 Sep | Andrew Hurst | Sounds like a textbook case of why it sucks when some little community site grows enough to get really popular.  A few people start arguing on the site, it consumes the rest of the site, the admins go overboard, and yet another once-good sites bites the dust...
Fri 26 Sep | bunch 'o tards | Netslaves collapsed under the weight of it's own self importance.
Fri 26 Sep | Not Gondaba | Just curious -- what ever happened to Cheopys? I remember him from his FuckedCompany days, though I lost track of him sometime around two years ago or so. (I never even visited NetSlaves.) Cheopys really seemed to have some emotional problems, but his posts were often amusing (more-so than the average troll's).
Top notch development teams don't torture their pr | Thu 25 Sep | Slow Computers Suck
Well, my team isnt top notched, but it is tortured with inadequate-slow computer equipment.  Does anyone know of any studies that have been done which quantifies the productivity increases.  I need to put together a business justification with $ in it and would like to cite some studies.
Thu 25 Sep | software enthusiast | Well, I have upgraded my Duron 800 to an Athlon XP 2400+, 1 GB RAM, 120 GB HDD. I only did this so I could give someone the old Duron 800, because in my mind, it was more than sufficient. Surprise, surprise. I discovered that I work much better on the new system. The fact that it's fast makes me be less angry while writing code, get less frustrated, etc. This improves my productivity and increases my working time quite a bit. Now, I don't know if there is a study about this.
Thu 25 Sep | Slow Computers Suck | Thanks -- but I agree.  I actually do development on my own home computer and I understand that what you say and agree.  Just was wondering if there was a study that said people are X % more productive if they have good machines over old ones.  I think I am going to make up some numbers if I can't find a study.
Thu 25 Sep | speeder | We are also using old equipment to save money. It sucks.
Thu 25 Sep | Fred | It does suck to use a Duron 800 at work, then go home to an Athlon 3000 with a gig of memory and three Samsung 19" LCDs, which is basically used to read email.
Thu 25 Sep | Dave Torok | If you are a consultant and get paid hourly, you'll make more money if it takes longer to do things! So it really doesn't pay to upgrade to newer equipment. Well, except for losing projects, engineers, and clients due to higher costs and project times than competetors.
Thu 25 Sep | Jan Derk | Fred, switch the systems. Only half jokin here. If the situation would ever occur that I had to work for somebody else again and they didn't provide it. I'd bring in my own Aeron and big screen LCD.
Thu 25 Sep | software enthusiast | > If you are a consultant and get paid hourly, > you'll make more money if it takes longer to > do things! So it really doesn't pay to > upgrade to newer equipment. You may earn more money, but you will also suffer a lot more while working. Personally I don't like this kind of mentality. I'd rather do my job quickly and properly, enjoy it, maybe take a little less money, then go home.
Thu 25 Sep | Bored Bystander | 'Slow', with all respects: If you have to prepare a study to convince some numnut PhB that you need decent equipment, then you will probably be wasting your time. My experience is that good equipment shows a measure of respect as well as a pragmatic understanding of the relationship between good facilities and work output. Respect is extremely slow moving and is either there or it isn't, and likewise for the ability for a manager to understand that poor equipment is a morale and productivity cost. IE: if you have crappy and slow equipment, that probably indicates that the decision makers do not respect the people who have to use that equipment, and/or the work being done. Or, they HEAR you say that the equipment is bad, but they believe that it doesn't matter because they assume that they can simply flog you into working more hours to compensate. Believe it or not, I worked as a contractor years ago for a moron who honestly didn't believe that shitty equipment was dragging him down. If I had wanted to bill 100 stupid unproductive hours a week I could have. A report isn't going to change any of that. And I don't have any better suggestion unless you bring in your own equipment. Which I wouldn't.
Thu 25 Sep | Mitch & Murray (from downtown) | Dell is brooming out 2+ GHz P4 systems with reasonable disk and memory, XP and NIC included, less monitor, for $399.  What exactly more do you need as an argument to upgrade?
Thu 25 Sep | Bored Bystander | >> If you are a consultant and get paid hourly, >> you'll make more money if it takes longer to >> do things! So it really doesn't pay to >> upgrade to newer equipment. >>You may earn more money, but you will also suffer a lot >>more while working. >Personally I don't like this kind of mentality. I'd rather do >my job quickly and properly, enjoy it, maybe take a little >less money, then go home. Uh, software enthusiast, Dave then said: >>Well, except for losing projects, engineers, and clients due to higher costs and project times than competetors. I thought it was pretty funny, really... and true.
Thu 25 Sep | Bill Carlson | I think you could make an argument for buying your own laptop and ferrying it back and forth between work and home. $799 gets you a 2 Ghz Dell. You're buying and maintaining a home machine anyway. It's nice to have all your files and personal stuff on one machine, rather than screw with Outlook sync, online 'briefcases', etc. Has added advantages of being able to use backed-up network storage at work for your personal stuff (encrypted .ZIP files), leeching the nice office printer, etc.
Thu 25 Sep | GiorgioG | $799 gets you the crappiest Dell Laptop on earth (the 1100.)  I had one from my employer.  It was so bad they bought me a ThinkPad R40 2 months after getting the 1100.
Thu 25 Sep | Slow Computers Suck | It is a case where we are a special group working on J2EE developement -- and our 512mb machines are no longer cutting it.  The problem is that there are other programming groups doing mainframe developement and they are happy with 256mb (they are just using their pc's as fancy terminal emulators).  So a faster computer for them really doesn't make their compiles any faster since they are being compiled on the mainframes.  My manager is behind going ahead and fighting the battle.  He just asked for some additional info and some #'s he could use to make the business case.  I am not after the $399 dell specials.  I am after 3ghz 1.5gb machines with dual monitors $3000 machines.  As I said -- I can make up numbers -- it is just that any outside numbers to support mine would be icing on the buisness case.
Thu 25 Sep | Andrew Hurst | Impromptu study: Say you have a big codebase, and it takes you 2 minutes to compile the code on your machine, and 1 minute to restart the program and get back into it to run some tests again. Say you do this cycle 20 times a day. For 1 hour a day of waiting total. Over the course of a year (250 working days). Thats 250 hours a year waiting. Which is 6 weeks. Which is probably over $10,000. By spending $6,000 on a mega system them might be able to more than half these times, thus saving them 6 weeks of you twiddling your thumbs a year. ... Or they could buy you a 486 to work on while your other system compiles.
Thu 25 Sep | anonymous | Those low end Dells are pretty much disposable laptops.  The keyboards are pretty damn cheezy.
Fri 26 Sep | Stephen Jones | Dear Slow, In my experience it's the dual monitors they'll balk at.The technical stuff they don't understand, so they'll let it pass if you insist, but you'll need to do a good presentation to show them how dual monitors improve productivity. (And don't bring toilet paper into the eqation or they'll be cancellng your health insurance!)
Fri 26 Sep | Russell Thackston | In support of the dual monitor argument... Do you have spare monitors in the office? We did at the last place I worked. I asked the boss to spring for a new video card (Martox 450). He agreed, thinking I needed just needed an upgrade over the on-board video. The day it came in I grabbed a second monitor, enabled the DualHead support, and started happily coding. It was two weeks before he noticed the second monitor. By then it was too late for him to argue.
www.datamaxinfotech.com | Thu 25 Sep | Anshuman Maini
find our site for outsourcing work in software development, web designing, web development, data entry, data processing, elearning www.datamaxinfotech.com
Thu 25 Sep | Homer Simpson | ... a name like CutCo, or EdgeCom, or InterSlice or DATAMAXINFOTECH.
Thu 25 Sep | read-only mode disabled | I guess I won't outsource web development to company that uses <font> tags in its home page.
Thu 25 Sep | Grumpy Old-Timer | I'm not a web person, so I'm curious: why are <font> tags bad?  (Hurry before this gets deleted...)
Thu 25 Sep | Chris Nahr | I'm not a web guy either but I believe they're non-standard and you're supposed to use stylesheets instead.
Thu 25 Sep | Lou | Its not non-standard in HTML 4.1 and earlier, but in XHTML1.1 they're illegal. Furthermore they add markup cruft that adds no value (you can add styling with Cascading Style Sheets (which are cached), and reduce total bandwidht by 20% or more (in my experience). Using the Font tag basically shows a lack of understanding of current trends in web development and a general disregard for the company's bandwidth bill.
Thu 25 Sep | Joe Blandy | Homer, that's the first thing that ran through my mind when I saw this earlier. I didn't post it because I figured somebody from FC would have deleted it by now. By the way, what DOES CompuGlobalHyperMegaNet do, if anything?
Thu 25 Sep | read-only mode disabled | According to http://www.w3.org this HTML tag is deprecated (not the only one). http://www.w3.org/TR/REC-html40/present/graphics.html#h-15.2.2 I guess it is good to follow the standards :) Sorry for being pedantic but the whole site is below my criteria for software company.
Thu 25 Sep | Steve Barbour | Unless you have to support old crufty browsers and don't fell like spending several weeks to learn the 'nifty' way to do everything. Especially when font tags still work...
Thu 25 Sep | Nick | It seems strange that there is so much focus on the tag when there are so many other, more glaring problems with this web site. How about all the links that don't go anywhere; the clipping of the first character in each line of the flash animation; the pointing fingers (indicating links) that aren't links; splitting software into two words - Soft Ware; the poor English and redundancy on the Technical Writing page. The list goes on and on. I swear, people that post these kind of links to their sites on JoS must be masochists.
Thu 25 Sep | Leonardo Herrera | Poor guy. That page looks like ass on Mozilla.
Thu 25 Sep | Homer J. Simpson | Oooooo... the internet. They have that on computers now?!
Fri 26 Sep | GG | I went to see the prices and it says Under[EXPLETIVE] construction. Jeez i had a decent project for these guys.
Home-based Grid Computing | Thu 25 Sep | GRiD
I have three computers with different configurations (all running Windows) at home. Is there a way I can probably "connect" all of them to form a Grid network where system resources are shared between the three so that the computational tasks are processed in parallel and hence overall performance can be improved. Im sure this must be possible. Just curious whats the software and hardware add-ons required to build a distributed architecture like this.
Thu 25 Sep | Useless | I would recommend installing Advanced Cray Cyber-Think R5, and after that adding the neural network plug-ins you will find on the program's web site. It has a special programming language called NeuroCOBOL which gives you the power to program it using advanced natural language processing commands. You can also add the neuro-chips released recently by Hitachi, which connect using a small PCI card.
Thu 25 Sep | i like i | If you can use Linux, look at OpenMosix.  There is even a CD version so you don't have to install anything on most of your boxes.
Thu 25 Sep | GRiD | Thanks. I've been looking for something exactly like OpenMosix (but for Windows). I also came across PVM (Parallel Virtual Machine) - http://www.netlib.org/pvm3/ which seems to be an effective solution to my needs. Anyone had any experience with PVM?
Thu 25 Sep | David B. Wildgoose | Take a look at Oz which can be found at http://www.mozart-oz.org/ and is a programming language ideally suited to distributed processing, (it was one of the many design goals). There is also an (excellent) book currently available as a free download written by Peter Van Roy and Seif Haridi, and which will be published by MIT Press shortly.
Thu 25 Sep | Bill Tomlinson | I'd like a little clarification about what the original poster is asking for. It's my understanding that all the grid computing environments out there (for grids of personal computers, I mean, not the highly specialized supercomputer stuff) are really only applicable for specially designed tasks, not for simply turning three computers into one for general purpose tasks. What I mean is that you install the 'grid software' on all your machines then that gives you an environment where you can run applications *that were specially designed/programmed for that grid software*. What they don't do is suddenly make the group of computers look like one computer for general tasks, like running Word or Minesweeper. From the original poster's comments it looks like he was looking for the later.
Thu 25 Sep | i like i | To clarify for Tom, OpenMosix turns n workstations into n processors (shared between x users). So if you are in a linux shop, then you can share each others idle cycles. This is especially ideal for compiles etc. At one shop I was in once, Mosix (now forked to OpenMosix) was running on all the admin staff's PCs; developers could use those spare cycles transparently. But as I said before, this is Linux. Of course it is great if you use the CD version, because then you don't need to install *anything* on your windows boxes.
Thu 25 Sep | GRiD | Actually, I'm not looking for a grid computing based/driven programming framework but a grid computing facilitation system - a way to convert n computers (their CPU/memory resources etc.) into a single logical entity - and ANY application on any of the systems may be able to use the resources from this single logical entity. I've heard this to be possible on Linux but I'm looking for a solution for Windows.
Fri 26 Sep | i like i | It might be extremely tricky to write without access to the OS sourcecode; maybe a bit beyond the average 3rd party?
Fri 26 Sep | Tom Vu | you are not looking for a grid. you are looking for a cluster. As someone stated, openmosix is probably the easiest to setup. It's on knoppix linux which is bootable from cd. For a grid you can download the globus toolkit but that won't give you what you want.
Weblogic cluster problem for slow network | Thu 25 Sep | BSA
Hi, Does anybody know came across such a problem? The problem is i am running a simple application using proxy cluster on machine A which is talking to managed cluster on Machine B through internet. But when i send large requests i get following exception, --------------------------------------------------------------------------- #### <> <> <000000> java.net.ProtocolException: EOF after reading only: 24966 of: 43608 promised bytes, out of which at least: 0 were already buffered at weblogic.servlet.internal.PostInputStream.complain(PostInputStream.java:74) at weblogic.servlet.internal.PostInputStream.read(PostInputStream.java:126) at java.io.InputStream.read(InputStream.java:91) at weblogic.servlet.internal.ServletInputStreamImpl.read(ServletInputStreamImpl.java:91) at java.io.InputStreamReader.fill(InputStreamReader.java:173) at java.io.InputStreamReader.read(InputStreamReader.java:249) at weblogic.servlet.internal.ServletRequestImpl.mergePostParams(ServletRequestImpl.java:700) at weblogic.servlet.internal.ServletRequestImpl.parseQueryParams(ServletRequestImpl.java:587) at weblogic.servlet.internal.ServletRequestImpl.getParameter(ServletRequestImpl.java:739) at weblogic.servlet.internal.ServletRequestImpl.getParameter(ServletRequestImpl.java:725) at UserAuthHelper.getUserAuthInfo(UserAuthHelper.java:166) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:213) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:1265) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:1631) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120) --------------- nested within: ------------------ weblogic.utils.NestedRuntimeException: Cannot parse POST parameters of request: /UserAuthHelper - with nested exception: [java.net.ProtocolException: EOF after reading only: 24966 of: 43608 promised bytes, out of which at least: 0 were already buffered] at weblogic.servlet.internal.ServletRequestImpl.mergePostParams(ServletRequestImpl.java:716) at weblogic.servlet.internal.ServletRequestImpl.parseQueryParams(ServletRequestImpl.java:587) at weblogic.servlet.internal.ServletRequestImpl.getParameter(ServletRequestImpl.java:739) at weblogic.servlet.internal.ServletRequestImpl.getParameter(ServletRequestImpl.java:725) --------------------------------------------------------------------------- I have posted this problem to on BEAs forum too, but not yet recieved any answer yet! Thanks in advance!
Thu 25 Sep | na | BSA, Weblogic's clustering mechanism makes use of broadcast traffic to let all of the servers in a given network know about the availability of each other.  How slow is the network that the cluster is on?
Thu 25 Sep | Joe | What version of WLS are you using. This was a prior bug in 5.1: http://www.weblogic.com/docs51/classdocs/README2.html#CR44152 CR 44152 Fixed the problem with parsing POST parameters after failing over by HttpClusterServlet. After HttpClusterServlet fails over the client POST request which has parameters, the secondary server can not parse POST parameters and shows the following: weblogic.utils.NestedRuntimeException: cannot parse POST parameters of request/foo.jsp - with nested exception: [java.io.InterruptedIOException: Read timed out]
Fri 26 Sep | BSA | Hi Joe, I also read that article but there is slight differenc in problem. CR 44152, deals with Timed out problem, but i am getting this exception because of java.net.ProtocolException. This has to deal with how large request objects are exchanged beteen Proxy Cluster & Managed Server. I got a reply from one of BEA engineer, he says try with SP5. Thanks for reply! BSA
Smart, But Don't get as much done... | Thu 25 Sep | Anonymouse
I classify myself as a the kind of developer whos smart but doesnt get as much done as I should. I dont think that people are static in nature, therefore I wish to move toward the goal of becoming the kind of person that is smart and gets things done. Ideas? Ive started countless (hundreds by now?) personal projects and rarely finished anything that took any longer than a few days to write. Usually I set out to write something, a utility, an app, figure out the challenging code and/or fun design stuff, and then when it comes to doing the mundane/grunt work, my motivation & attention span for the project goes to zero. Is this just me? If not, how do most people get around this? At work, its different, I have a set project thats defined/set-in-stone, and it has to get done. I digress.
Thu 25 Sep | Not a native English speaker | I am like you in this respect. I am smart. People know that and respect me for that. They usually come to me for advice. The problem is, I can't focus for very long, unless I have the boss looking over my shoulder. :-( I get bored easily, etc. I have noticed that it helps me a lot to keep a small paper notebook with me at all times. For each project, I dedicate a few pages, and whenever I interrupt a project, I write down exactly where I stopped and what the next step should be. When I continue an interrupted project, I simply read my notes about where the project has stopped, and so I can start working a lot easier. Also, when I have concentration problems, it helps a lot to always know what the next step is.
Thu 25 Sep | somebody | First of all, it's important that you get the right mindset. It's a common tactic to avoid failure by simply never trying. Then you end up one day telling your grandkids about all of the great things you might've done rather than the great things you accomplished. Realize that you've failed when you don't get things done. At work, your boss will be happy to let you know this is true. At home, you're the boss. Going along the same line as being your own boss, it's important that you give your home projects some level of formal structure and set goals. Get organized about what projects you want to do and when you want them to be done. Mark it on a calendar or put it in a spreadsheet or whatever and then keep it somewhere obvious. Print it out and stick it on your wall. Goals are important because they give you something to focus on and give you feedback on how well you're doing. You should set multiple levels of goals. Figure out your major goals. Is a given project intended to be a commercial release, a personal-use-only utility, or just a learning experience? There's no point in wasting time on the mundane stuff if your goal for a project is mainly to learn about the challenging stuff. Once you have major goals, break them down into progressively lower level goals. Set milestones for longterm projects -- 'I want this major functionality figured out and in place by next week', 'I want to be able to send this to some friends to try out by December', 'I want to be able to sell this by next Summer'. Create some task lists. Break the tasks into very small pieces. It's much easier to find the time and motivation for a five minute mundane task than a five day mundane task. It's a great motivator to be able to check things off of a list when they're done. Keeping a list of tasks on paper or on a computer frees you from having to keep this list in your head. The point of all this isn't to make a major project out of managing yourself but to get things down in a concrete form.
Thu 25 Sep | Not a native English speaker | Very interesting advice - I noticed this too: TO-DO lists tend to have some tasks which take two days and some tasks which take 20 minutes. At the end of one day, you may check 20 tasks as done, because they were 20-30 minutes tasks. At the end of another day, you may have worked like hell yet not check any tasks, because you have worked on a task that is not yet complete. This is why it's good to have fine-grained tasks. Also, I have found that it's good to think a lot about your goals. Every 6 months or so, I think a lot about my goals - this means I think about my goals for, le't say, an average of 2-3 hours every day, for 2 weeks. I invest this time, but at the end of the process, my goals are very clear in my mind. Also, I am 100% sure I want those things.
Thu 25 Sep | Nekto | It's all about lack of _clever_ development tools and languages (one of or both). You shouldn't do manually what is actually obvious. So the real task for you is - to develop such tool. But you need to do it so, that you will not loose interest after a day :) That means after a day you should use this tool to continue development.
Thu 25 Sep | Name withheld out of cowardice | The hardest thing to do is to create something new. The second hardest thing to do is to finish anything. My limited experience is that the overwhelming majority of people are not finishers. One suggestion a friend gave me years ago was based on the work habits of some famous author whose name I falied to memorize. This author had a day job and so he had to write his own stuff in his spare time. He made a rule that for one hour each night he would sit in front of the typewriter, whether he could manage to write something or not; there were no excuses. At the very least he would stare at a blank page for a solid hour each night. I have found this helpful over the years. A year's worth of one-hour nights produces a heck of a lot more than once a month alllnighters.
Thu 25 Sep | don't stop | You need to learn how to finish things. It's really not that hard. 1. Don't start other things in the middle of something else. 2. Put one metophorical foot in front of the other 'til it's done. Do that and it will get easier with experience.
Thu 25 Sep | Bill Tomlinson | I don't quite understand the original poster's problem. He (she/whatever) says that he has no problem getting things done at work. The complaint is about not completing personal projects because he can't bring himself to do the mundane/boring implementation parts. Well, so what? Why is that a problem? By definition, any personal project I do is something that I'm doing for fun (if it wasn't, I'd want to get paid for it; hence, work). When it stops being fun, why continue it? So long as you can recognize the difference between work that people are paying you to do and personal projects that you're just doing for your own amusement, I don't see a problem with not following the later through to completation.
Thu 25 Sep | compile error | You may want to see a doctor. Their could be brain issues involved. Seriously.
Thu 25 Sep | Will | Bill, this may be true for you. But there are people (me included) which like to finish projects. Ok, a project may be started for fun, but I also want the satisfaction of having a solid project completed in my spare time, and maybe sell the project and leave my day job. This is why I don't like open source - they weaken our ability to sell software.
Thu 25 Sep | Bored Bystander | Anonymouse: >> At work, it's different, I have a set project that's defined/set-in-stone, and it has to get done. I digress. My problem too. I'm surprised that nobody has mentioned this fact and considered it in their response. What I have experienced is that the *paid* work is what I take seriously. The personal projects don't get done because I apparently don't feel 'responsible' for them at a deep emotional level. I think this is the crux of your problem, and probably mine. IE: it requires an external need, and preferably other interested parties, to trigger the motivation to finish any project. Another (more charitable) interpretation is that deep down, you don't believe that the personal work is necessary or that it fills a need or makes any difference. That is what happens in my case. Maybe this is a way of saying that the personal projects don't instill a sense of 'must get done' that professional projects do? And that if you could correct this and create a sense of urgency, then you could get those personal projects done? Just my $0.02.
Thu 25 Sep | Nick | I'm guessing that what you're lacking is a sense of closure. Since the mundane tasks bore you, there's no sense in spending your personal time on them if you don't get satisfaction from it. What you could do is seek out a junior programmer and act as their mentor. Have them do the mundane tasks. You would get the sense of closure, and they would receive mentoring.
Thu 25 Sep | Dennis Forbes | Well given the state of the job market in some areas, maybe you should get some unpaid 'interns' to 'earn job experience' to take care of the mundane tasks? :-) Really, though, I think this is pretty universal (and it isn't a 'brain issue' -- overcoming challenges is fun and rewarding, but unless you really care about the uncertain payoff that completion might bring the grunt work just isn't all that motivating). Another common issue for lateral thinking software developers is something that I've heard referred to as 'Babbage Syndrome' - It's a propensity to never finish anything because there's always some circumstance or exception that needs to be built into the design. I've had many projects derailed by that because while I start intending to achieve A in X situaions, soon I am personally uncomfortable with the project unless it can achieve A, B, C in X, Y and Z situations. Knowing that I don't have time to do them all I could scale it back, but by then I've convinced myself that anything less that ABC+XYZ is garbage that isn't worth the effort to do.
Thu 25 Sep | Bill Tomlinson | Will, Well sure, if you're getting satisfaction from the completion of the project then the anticipation of that will prompt you to get through the boring parts. I don't believe that I was saying that you should always drop a personal project when you hit a boring patch. I was saying that if it's not fun and you don't anticipate that you'll get any satisfaction from completing the project then there's no point continuing just because you might feel guilty for stopping. And in regards to hoping to make some money of a personal project, well, if that's the plan then it's a whole different ball game and it's really a personal project anymore (at that point you've, in effect, become an employee of your own one man company so all the reasons for working for money come into play).
Thu 25 Sep | Jan Derk | Smartness is overrated. Success depends much more on hard work and stamina. Fighting laziness is the most difficult task we all have to face. Recognition of the fact is the first step in beating it. Almost everyone knows what they really should do to get things done, but 99% doesn't act accordingly. How many hours do you waste browsing the web, finding any excuse not to do what we know that we should do? Doing nothing or doing it later is such an attractive option. The solution: Stop a few times a day. Stare outside your window and think what really is your top priority right now, don't lie and just do it. It helps to write it down. It's that easy.
Thu 25 Sep | The Pedant, Brent P. Newhall | I have the same problem as the original poster, and am working to solve it. Here's what I do, and it's helping: 1. Choose smaller projects. I tended to tackle really huge, difficult problems, which I could never finish. I then started choosing small projects, and finishing them. They weren't quite as impressive as the big ideas, but I felt highly satisfied upon completing them. They also improved my sense of what I could reasonably finish. 2. If you're in the middle of a project and think up another, don't start it. Shelve it. You can write down the idea, but resist the temptation to dive into it. Instead, work on your current project. Tell yourself that you can 'get to' that other project when this one's done. Best of luck.
Thu 25 Sep | jm | Anonymouse, it's not a problem or unusual. There are always lots of quick tasks to do, and they invariably push aside the bigger tasks. What I started doing a few years ago was identifying the big tasks and then accepting that I wouldn't do anything else until I had either completed that big task or put in most of the day's work on it. It is sort of like a licence to be lazy, but I'm not really being lazy. As part of this technique, I do make little lists of things to do, but I identify the one or two important things, and I'm quite happy if the rest of the tasks do not get done. Also, as someone else suggested, I document my work in notebooks. This is really useful.
Thu 25 Sep | anonymous | One thing I've been doing on personal projects is to pay other people to do the work I don't want to do.  Ok that's expensive, but I figure I can get a good return on investment by keeping myself focused on my core skills.
Thu 25 Sep | spineless | Great question, Anonymouse! I've been thinking the same thing about myself lately. Here's a couple things that I've started recently that I think are helping. First is that I've started excercising in the morning before work. I find that I have more energy during the day, so when I get home from work I don't want to be a couch potato, I want to be productive. Second, I'm taking a master's level CS class at night. It's something I've been meaning to learn more about, so that's part of the 'getting things done.' But I think the bigger benefit has come from having something extra in my schedule that 'has to get done.' I think it's exactly what I needed. The time commitment is small enough that I can fit it in around work, and my social life, but big enough that my free time feels a little more scarce. This turns out to be perfect, because the scarcity makes me use it more wisely.
Fri 26 Sep | www.marktaw.com | Nothing in the world can take the place of persistence. Talent will not; nothing is more common than unsuccessful men with talent. Genius will not; unrewarded genius is almost a proverb. Education will not; the world is full of educated failures. Persistence and determination alone are omnipotent. --- Calvin Coolidge 1872 Of course, how to get persistance is the question. Perhaps it ties in with the other thread about household chores. Will a Pavlov / Skinner-esque rewards system work? Listening to a book on tape becomes associated with doing household chores so you do them? Perhaps it's a 'learned helplessness' where in certain environments, accomplishments are so few and far between that we give up trying. Or maybe in a sort of Fight Club sense, we've never hit rock bottom, and we'll sabotage ourselves until we've reached the point where we know we can't accept any worse for ourselves. Strange nobody brought up the Crossing the Chasm article that Joel wrote on the topic of getting started. Whoops, he titled it Fire and Motion: http://www.joelonsoftware.com/articles/fog0000000339.html Natalie Goldberg, who wrote a few good books on writing, said that you should find a writing buddy, meet them at a cafe, and write. It's important to have the outside structure of someone waiting for you to inspire you to get off of your own ass and do something. I think it also doesn't hurt to have a seperate location & time you associate with a certain behaviour - your office. Some sleep therapist I read once (I've always been an insomniac) said don't read in bed, don't watch TV in bed because you'll begin to associate bed with things other than sleep. Well, do you also game on your computer? Surf the web? Maybe create 2 different ID's with 2 different color schemes and access to 2 different sets of programs, one for work and one for play. I think having a time & a place to do stuff is important... I don't know if the idea of 'make work more comfortable than home and people will spend more time at work' really works unless you just need warm bodies, like a service industry, where the people come to you. Maybe it's important to, when you have no work to do, go home. Go for a walk. Don't hang around the office because when you do have work to do, you'll be too comfortabel to do it. You'll go online to look for an answer to some programming problem and end up reading the latest Joel on Software and then participating in his forum, and before you know it, hours have gone by and you still haven't answered your programming problem because you've trained yourself to mindlessly surf anytime you launch your browser, or even sit at your desk. 'Pair Programming' seems to work. We're probably genetically programmed to be social, so when I'm working out a problem with someone we get a lot done... A lot more than twice what one person could do. When I'm alone.... I get bored. When I googled that quote, I found a page with a few others: Thousands of people have talent. I might as well congratulate you for having eyes in your head. The one and only thing that counts is: Do you have staying power? --- Noel Coward More here: http://www.happyotter.com/hoquote/Quote_1Page62.html
Fri 26 Sep | Bored Bystander | The stuff about persistence, stamina and passion are very true. I still say that attaching tangible importance to the project in your own mind is the most important thing, even above persistence. Why? Because if you think what you're trying to do is important and necessary, you WILL generate all the persistence and stamina to complete it that you need. IOW, the work ethic qualities that some here are talking about are second order effects. The first order 'mover' is your own belief that the work must be done. Without that, nothing will happen. I've never seen someone generate persistence out of thin air. So, the OP needs to get to the absolute bottom of why he doesn't stay with his side projects, and not worry too much about *symptoms* like lack of persistence. He needs to figure out why he doesn't 'believe' in what he's doing....
Fri 26 Sep | Anonymouse | Bored Bystander, I think you nailed it right on the head... >The first order 'mover' is your own belief that the work must be done. I've always started projects with enthusiasm, being motivated, but never got the sense (or told myself that) 'I have to finish it.' It's so fundamental that I should have seen it all along. Thanks everyone. I also went out and bought an 'Action Planner' notebook yesterday. I don't know why using outlook or any other software-based task manager doesn't work for me. Maybe it's because the notebook is tangible, always there and next to the PC.
First-time contract -- Costing estimate | Thu 25 Sep | Monad
Weve had a product in circulation for a while now, and were on track to have our first related consulting work come in associated with it. The potential client wants typical work: take the base we have, modify it slightly, and build a couple plugins in order to make it suitable for their particular vertical. Thats wonderful, but heres our quandry: when they deliver their official first pass at a mission statement for the development next week so we can give them a rough estimate of the time/cost involved, how should we approach it? Were barely profitable at this point, and we have big plans (and a solid product line emerging), so Id like to use consulting to give us some buffer to work in while we experiment with product positioning, marketing, etc. Bottom line, to keep us afloat while we get our business together. With that in mind, we really need to land this job (and maybe one or two more like it), so we cant just say something stupid like Well, the work will probably take 500 hours at a rate of $65/hour, and scare the customer off with the impression that were overpriced. My instinct is to lowball it, take the hit financially, and track our progress very hawkishly so as to be able to estimate this kind of work with some level of accuracy in the future. Comments? Any links to helpful guides to working ones way through such a situation? Thanks!
Thu 25 Sep | GiorgioG | Monad, Once they give you some specific requirements, take a couple of hours to figure out a high level overview of what needs to be done to implement what needs to be done. Make a reasonable estimate of what it will cost you in time and money (the time you spend on the consulting gig is time you don't spend on your product line (i.e. opportunity cost.)) What is that time worth? You say you're barely profitable and you want to lowball/take a financial hit? You're already on shaky ground - figure out what makes sense financially and make them a reasonable offer. If you're going to take a hit, why bother taking the gig at all?
Thu 25 Sep | GiorgioG | >Once they give you some specific requirements, take a couple of hours to figure out a high level overview of what needs to be done to implement what needs to be done I need some sleep ;-) That sentence should read: ...take a couple of hours to figure out a high level overview of what needs to be done to implement the requested customizations...
Thu 25 Sep | Simon Lucy | You also need to factor in the future grief of maintaining their modifications or whether you're going to roll them into the standard product. If its the latter then you can amortize the development cost over a longer period and give the client some leeway over the pricing to them. Here's a basic rule though, unless you cover your bottom line, meet all your direct and indirect costs in relation to any piece of work you will fail. You may not fail tomorrow or next month, but you will fail. Don't fall into the fantasy that you can make on the easy jobs in some future unknown time.
Thu 25 Sep | FullNameRequired | Never (deliberately) do work that doesn't make a profit :) Honestly, the 'ill make a profit next time' approach is pure madness and pretty much never really pays off.....if you dont have the courage to make an accurate bid this time, whats going to be different next time? if your not in business to make a profit then WTH are you doing there? The other problem if you lowball it now is that when you try and give an accurate quote next time its going to look high. ('what, its going to cost $10000 for these features but you only charged $6000 for these much easier features....') Do your absolute best to get an accurate quote, if you have to err try to err on the side of too much rather than too little....if you get it right you will be in the position of providing the work for less than the quote...this will cause great joy amongst your clients :) If you lose the work this time because your client is unable or unwilling to pay you what you consider to be a reasonable quote then you are ahead of the game....much better to find out now than after youve done lots of work at less than cost to try and woo them. it does take a lot of effort and courage to make an accurate and reasonable quote so you have my sympathy...Ive been giving quotes for 3 years now and I still agonise over them way more than I should.
Thu 25 Sep | Peter Ibbotson | If you can break down the costs. i.e. if the client says there are five reports they must have, price each report at one day apiece. Break up stuff into smallish lumps (Say one day to a week) and then price those lumps into days (Perhaps with a half day granularity) Given that you're talking about plugins unless they're small it might be worth splitting those into finer lumps How much does a (emergency) plumber cost in your clients area per hour. I would guess a minimum of $50 and more likely $100 (this is based on UK rates converted) Point this out to your client and aim to charge over $800 per day a plumber would cost! Sort out who owns the copyright. In this sort of case my preference is that you own the copyright, but give the client a non-redistributable license. Remember that you might be able to get away with 10-20% year maintance charges for the modifications. Final thought. Do not assume the mods will be any use to anyone else, only around 50% are any good for anyone else.
Thu 25 Sep | www.marktaw.com | ... But you don't ask an (emergency) plumber for a quote weeks in advance.
Thu 25 Sep | www.marktaw.com | Sorry, I'm picking nits.
Thu 25 Sep | . | > My instinct is to lowball it, take the hit financially, and track our progress very hawkishly so as to be able to estimate this kind of work with some level of accuracy in the future. No. Never do this. Work out what you need in order to do this work profitably, add a margin to cover unexpected events and ensure you can charge for agreed extra time. That then becomes your quote. If they don't accept it, forget about them and look for your next customer. If you 'lowball' it, you will become financially and time stressed, not to mention doing a bad job. Also, your customer will detect your readiness to sell yourself short and probably try it on in other areas.
Thu 25 Sep | Monad | I suppose I should have enumerated where I'm coming from here. I used to be employed by a small consultancy, and I can't count the number of jobs that we lost by making our best estimate, ratcheting that up some reasonable percentage for wiggle room, and making a client think we were high end. I think what contributed to that was the CEO's attitude of 'well, that's our price, you have to pay for quality, y'know? **sniff**'. So, when I see a chance to bring cash in the door, I feel like I should maybe bend over a little and take one this time, and say to the client that hey, this work will be licensed for use on version XX of the core product only; when we come out with version XX+1, we'll be renegotiating. In addition, the potential client has expressed interest in setting up a distribution/co-branding deal for them to resell the bundled *vertical* solution (i.e. they don't get to play outside of their space), obviously with a suitable kickback to us for each license sold. That's clearly pie in the sky at this early point in the game, but the upside is huge for us if we can get this client to become a live sales channel for us into a market we really aren't able to target anytime in the near- to mid-term. Anyone have recommendations for resources on best-practices when doing cost estimates for outside clients?
Thu 25 Sep | Peter Ibbotson | To mark... Yes I know about plumbers but it can make rates seem more acceptable. Back to monads point. This is really tricky, personally I'd be tempted to give the client a kickback based on how many others buy. Clients will ALWAYS tell you everyone else does it that way. I can think of two systems we've written one for a bank back office and another for jewelers which while potentially useful to others we have NEVER managed to resell. I'm in the fortunate position of being able to afford to turn jobs down because they're too far out of our core business. So I can afford to quote 'silly' money to see what happens, however we still seem to get shafted by a sales critter once a year or so. It also depends on how much your 'core' software costs. If the mods budgeted properly (i.e. say at $500 per day) are less than 50% of the core software it probably doesn't matter too much. (All of the profit can come from the core software and you wouldn't sell it without the mods anyway) I notice you say 500 hours at $60 which I reckon is $30K if the software component of this is less than say $60K then I'd worry strongly about accuracy of the spec and your time estimates above that who cares, you've made 60K you'ld never have gotten otherwise. You need to figure out what the opportunity costs of the deal are. i.e. what else could you be doing (Writing the next version? Getting 10 other smaller deals) I'm talking from the view of an ISV where we charge 20% maintance and $1,500 per seat to get into the software and we prefer sites with more than ten users, so my view may not match yours. Personally I'd find out / do the following: a) Who authorises the spending, do they have any limits? Perhaps the folks you're talking to can go up to 10K but not beyond, so splitting it into two phases might work well. b) Do they have a budget in mind? Could you hide some of the cost under maintance (Then it's not an asset on their balance sheet) c) Present the figures honestly, saying something along the lines 'These are our starting figures if you want to own all the modifications and have the ability to resell under your own brand' (Vary as needed) See what their reaction is (you might be surprised). d) Remember lowering your price is easy, raising it is much harder. (Dropping by upto 50% can be explained away, perhaps because the IP situation has changed, the specs have been tightened up, features have been thrown away, you have a clawback if they don't buy as many copies as they said they would) If they want all the mods for the price of a cup of coffee it's no good, find another customer. e) What are the alternatives to your software? By now it's likely they already have something thats already doing a similar job, so why do they want to move? f) Find out when you'll be paid and what tests they may want to do before you'll be paid. We had one customer who took 3 years (some have done it in weeks, typical is a few months) to implement our software. We got their small (5 or 10%) retention after six months but that can cripple a smaller outfits cashflow. Remember clients business priorities may change, a few bad quarters and that software they were going to roll out around all their branches looks like an easy cost saving and you end up only selling 10 seats.
Fri 26 Sep | na | a good tactic we use is to split the payment into parts, eg 40%-40%-20%. we invest heavily into spec, after that is approved we get 40%. after we ship the software (even buggy one), we get another 40%. after acceptance we get the remaining 20%. the good thing here is that client who need the source should accept the software, pay the whole bill so they cannot come to use and trying to sell new features as bugs. also at the end if you're fed up you can leave the client and only lost 20%.
Banning email? | Wed 24 Sep | Mark Hoffman
I saw this article on CNN http://www.cnn.com/2003/TECH/internet/09/19/e-mail.ban/index.html about an English company that has banned internal email in favor of phone calls and face to face communication. According to the article, they have 2,500 employees. Is it just me or does this seem nuts? So now instead of sifting through emails are they going to have to listen to 4,351 voice mails a day? Or be interrupted constantly during the day by people who need to communicate with them? Seems to be a nearly literal example of shooting the messenger.
Wed 24 Sep | Patrik | 'owner of high street retailer Phones 4u' Thankfully it was not 'Email Clients R' Us', but this seems like stupidity at first glance. However, phone retailers maybe are not the most frequent users work related emails. Maybe the guy saw the zillions of cute images and movie clips being sent around to everybody. I sure could do without the 'internal spam' also :-) Still, a strange and uninformed descision.
Wed 24 Sep | Almost Anonymous | There is a bank here in Canada that has a no email and no voicemail policy. Basically, you're always supposed to be able to talk to human being. If the person you want isn't in, you get forwarded to reception. On the surface, it seems like a good customer service decision. In reality, it's a huge pain in the ass. Phone calls are not always the best way to get things done! I know lots of people who prefer email over phone-calls or face-to-face in a business environment. For one thing, you have a paper trail; this is hugely important. Furthermore, phone calls are distracting. Voicemail leads to phone tag.
Wed 24 Sep | Philo | Voice mail is better than email because...? Funny that a telecomms tycoon would turn out to be a luddite. Philo
Wed 24 Sep | cut the cable | Probably the smartest thing they've ever done, the world did just fine before email. It's not the boon evangalists would have you believe. Email doesn't enhance communication, it obstructs it. The vast majority of email, even when it isn't commercial spam, is pointless noise. People use it to delay and procrastinate, gather ammunition, trap and annoy people. People spend hours crafting messages when a simple quick phone call would do better. Email is dead, dead, dead. Another part of the problem is that people have come to regard Internet access and email as a right, not a privilege. The Internet is supposed to be a means to an end, not an end in itself, which is something A LOT of technical people forget. Corporates have wasted loads of money wiring up employees to a technology they do not need, that wastes time and costs more money to maintain. Most of these people abuse the facilities, download porn, virusus and perpetuate jokes on their co-workers. Instead of cutting employees, they should be cutting Internet access. It would be more productive and produce greater savings than otherwise.
Wed 24 Sep | Alyosha` | 'People spend hours crafting messages when a simple quick phone call would do better'. Conversely, people spend hours trying to track down the one person they need to speak with in order to waste a half hour of their time explaining details which can be more clearly and unambiguously set down on paper. Giving your employees telephones and no email is a bit like giving your carpenters saws but no tape measures.
Wed 24 Sep | www.marktaw.com | I find it hard to believe that a bank in Canada decided that it would rather face-to-face over e-mail. e-mail creates a log of everything that happened, face to face communication doesn't. It creates a fuzzy area when someone sues you because you did or didn't do some transaction on their behalf.
Wed 24 Sep | Patrik | Im with Alosya on this one, I see email as having two major advantages to phones 1) Email is non-intrusive communication, you do not get interrupted in your work by getting one. (You could if you have Exchange pop-ups enabled, but that another thread). 2) Written communication is if not always, at least sometimes more clear than spoken. If you need technical details, like passwords and ip numbers and things I usually tell whoever is calling to write me an email so there is no missunderstandings.
Wed 24 Sep | M | Why not get every employee in your company into a single room so they can communicate face to face. This is much more efficient than just using a phone.
Wed 24 Sep | Almost Anonymous | 'I find it hard to believe that a bank in Canada decided that it would rather face-to-face over e-mail. e-mail creates a log of everything that happened, face to face communication doesn't. It creates a fuzzy area when someone sues you because you did or didn't do some transaction on their behalf.' Have you ever tried to get bank to send you something in writing? It can be very difficult! I think the banks prefer that ambiguity. Besides, the bank still has fax machines for sending instructions and getting things in writing.
Wed 24 Sep | Matt Latourette | For me, the number one reason that email is preferable to voice mail is simply that my email is searchable.  Sometime in the future, somebody will encounter a tricky problem that is identical to or very similar to some problem that I've solved once.  If the details of that old problem are preserved in an email thread, then when the problem happens again it doesn't matter that I only have a very vague recollection of the old problem.  A few keywords are all I need to search my mailbox and find the old email thread.  You can't "google" your voice mails.
Wed 24 Sep | anon | I'm going to offer an alternate view, in favor of the policy, just for s**ts and giggles. If you find you have to frequently (say daily or hourly) e-mail someone as part of your work, I say that represents a broken work environment. Better to re-organize your work environment to remove the need for these e-mails. Since the written word is a 'lossy' form of communication, speaking face to face is always preferable. Now, before the deluge of edge cases pours in, let me put in a disclaimer by saying that I think you'd still need e-mail for those once in while or once only communications. I also assume that the people in your group are mature enough not to abuse their face to face privileges. Hey, I'm a dreamer.
Wed 24 Sep | cut the cable | Alyosha, you point is taken, but there are other ways of dealing with that issue. Let me reiterate: 'People spend hours crafting messages when a simple quick phone call WOULD DO BETTER' Which shows that written words, even though they're reviewable, are just as fallable to misinterpretation as any other form of communication. If we we're having this discussion by phone it would be easier to have that to-and-fro necessary to clarify meaning. Alternatively I could send you an email, wait half a day for you to check it, wait another half a day while you mull over a response, wait half a day for me to check for a response, then read your message which says something like 'did you mean A or did you mean B?'. Your carpenter anology does not relate. What you are in effect saying, is that it is not possible to be an office worker without email. To that I say, god knows how we ever got around to inventing the Internet in the first place.
Wed 24 Sep | Derek Woolverton | Email is dead anyway.  IM is where its at.  Its interactive, and you don't spend "hours" composing messages.  (Ok, one guy I talk to does, but he just doesn't get it yet.)
Wed 24 Sep | Johnny Bravo | Yes, and vinyl record is dead because of radio. Oh, wait, radio has been killed, too, by the cassette. Cassette dead? Ah, yes, CD killed it. Which is being killed now by MP3.
Wed 24 Sep | sgf | 'People spend hours crafting messages when a simple quick phone call would do better'. I've never seen ANY evidence of this. If anything most people's email is short and full of abbreviations. Any blanket statements that email is bad are preposterous. How do I attach a document to a phone call? email and phones both have their place and can both be abused. Any company that bans email is abdicating its responsibility to actually *manage* its employees. Supervisors have failed if people are not getting their jobs done. Maybe the best cliche here is 'throwing out the baby with the bath water'. Just my (probably pointless) $0.02
Thu 25 Sep | James Karaganis | The problem with this decision is that it is unbalanced.  Email, voice mail, spoken language ... all are just tools, means to an end, with their own unique pros and cons.  None of these communications techniques are inherently bad, or innately superior.  it's that those who make use of them may do so inappropriately.  Laying out reasonable corporate policies on proper communications usage, and educating the employees on those policies, would have made a lot more sense in the long term.  This just eliminates a valuable business tool, and I suspect that they will ultimately regret it.
Thu 25 Sep | GiorgioG | I'm pretty sure email is abused at all levels of the corporation as far as using it for non-work related reasons. If email were restricted to only using it for internal use and client/vendor domains, it would be used more effectively. Also, having an effective intranet cuts down on those mass-entire-company emails...
Thu 25 Sep | Simon Lucy | Phones4U isn't your regular kind of corporate company. Its essentially a high volume sales outlet. All of its mechanisms for selling from the retail outlet are purpose built. As I understand it there is no business reason to have email as a separate conduit. Phones4U is also run by a very driven guy who isn't interested in people wasting their time in spurious emailing, whether its text or pictures or movies. I imagine its the loss of attention rather than any cost (which seemed a bit high), that he was concerned with.
Thu 25 Sep | Better than being unemployed... | If I didn't have at least internal email, life would be so much harder. Try phoning somebody up and saying 'Hi, I've updated the spec in the usual location - E:\Archive\FooBar\1.2\Docs\Spec\FooBar 1.2 Spec.doc to include an update to how the WingWang dialog will run under 2000 Terminal Server. Also I've put in E:\Archive\FooBar\1.2\Docs\Spec\Screenshots\WingWang2000.bmp so you can link that straight into the help files and the user guide' ... and see if they can do it off the top of their head. That's a typical day's email for me.
Thu 25 Sep | A cynic writes | For crying out loud it's a shop. (aka store). Next time you go to the supermarket to buy food, ask yourself 'Why would the person at the checkout NEED e-mail?' or more to the point 'Why would the supermarket NEED e-mail at the checkout?' I work in an office and most of my work is done by e-mail but I don't generalise my working experience to the rest of the planet.
Thu 25 Sep | anon | [Email, voice mail, spoken language ... all are just tools, means to an end, with their own unique pros and cons. None of these communications techniques are inherently bad, or innately superior. ] Actually, I would disagree with you there. Face to face communication is always preferable to any other form if information transfer is the goal. It's the oldest form of communication and it's the one we do best. E-mail, voice mail all lose something in the translation. The reason that some people prefer e-mail and voice mail is that you can't delete a face to face communication without listening/reading it first. :)
Thu 25 Sep | Philo | No, it's because when Joe is standing in my cube, it doesn't matter what I'm working on - my agenda has just been changed by someone else. When Joe sends me an email, I can read it when it's appropriate for me, then think out the answer, do the research, cut n' paste, etc, when it's appropriate. How many 'drop in' conversations end with 'send me an email?' And how come so many programmers are arguing *for* synchronous communication? Philo
Thu 25 Sep | Mark Hoffman | 'For crying out loud it's a shop. (aka store).' I'm not familiar with the company, but the article states it has 2,500 employees. A company that size undoubtably has plenty of administrative and management staff that has nothing to do with the customer faced selling, just the regular corporate type job.
Thu 25 Sep | Herb Singleton | 'Probably the smartest thing they've ever done, the world did just fine before email. ' Before email office environments used interoffice memos (remember those?) for internal communications. Email is simply a more efficient form of paper memos. Email *does* have its place. Yes, sometimes communication is handled better face-to-face or via telephone. However, I would go nuts if had to deal with a constant stream of interruptions caused by telephone calls or office visits for every minor issue that comes up.
Thu 25 Sep | NathanJ | So a company named Phones4U decides to ban email because they say that PHONE communication is better than email? Sounds more like a marketing ploy than a real attempt to enhance productivity. But anyway, phone and face-to-face can be a much better way to communicate information. Email is fine for simple facts and details, but achieving even a simple dialogue on a subject is tough. If you disagree with the above statement you have no way to gain immediate clarification from me. You will have to post a question to my response and then wait for me to respond. In a face-to-face you could ask a question and get a response immediately.
Thu 25 Sep | A cynic writes | Marc: I hadn't realised they were quite so big - so I checked with their website. They say they have over 330 shops, which I work out at roughly 7.5 people per shop. I've seen a few of their branches and given the size that figure would seem to me to be about right - suggesting that they're a reasonably 'flat' organisation. To the vast majority of staff I don't see that this would make a real difference. They're there to sell you phones. Thinking about it at the shop level the principle legit use for e-mail would be to transmit sales figures & stock levels. I'm not being funny but in Britain first class post usually gets there next day at a cost of 27p. Herb: your point on internal memos is also valid - but just think how often do people send you an unnecessary e-mail when if they had to talk to you they wouldn't bother? In all, I do think that there will be a few pissed off people at the company but I don't think the sky will fall in.
Thu 25 Sep | Simon Lucy | There's no need to email sales figures or anything from the shop. The transaction happens on line. You choose the phone; yes the pretty one that looks like a Hong Kong fake toy camera of 1961 with little celluloid images of girls in Happi coats and would be crushed by the slightest over enthusiastic grip, and yes I want the camera that makes it look like a sex toy and no I'd never take pictures of bits of my anatomy and mail them, wow that vibration is strong isn't it; they fill in the form whilst you annunciate clearly to the entire shop your personal details and credit and show your utility bill as proof of breathing at that address ; then they wait in a queue to phone someone at some call centre and gives them the details of the plan you chose and your phone gets activated; maybe, just maybe they key in a few bits and peices from the form onto a web form, but probably not. Actually, the only thing I don't understand is that the regular demonstration of the phones these days includes peering at the screen whilst they thumb their way round the internet, more likely yahoo and impress you by sending a picture of your left nostril to his own phone. But this requires they're demonstration phone to dial up to the net each time at the hideous rates that mobile phones have. So, I really can't see that there'll be an actual financial saving.
Thu 25 Sep | Tekumse | anon, you forget that face to face adds lots of noise to the communiction like gender, age, etnicity, etc. which unfortunately way in the answers some people give out. Example: I know an Indian guy who will not buy from or help anybody who he deems Pakistani.
Fri 26 Sep | Fernanda Stickpot | There are pros and cons for everything, and I'm not surprised a phone company would encourage the use of voice and personal interaction. Which is definitely more efficient and/or more socially appropriate in many contexts. But I notice that when people are trying to be dishonest, they evade written communication, sometimes to the point of explicitly telling me not to use it. For this reason alone, I would hate to lose e-mail.
The Internet is a radioactive environment | Wed 24 Sep | dmooney
How long would it take for a computer purchased at an average computer store to destroyed by viruses and intruders if it was connected to the Internet without being patched or firewalled? It would not take long, for sure. Our computers must be constantly vaccinated and wear protective shielding when entering the wild, hazardous environment of the Internet. There is no point to this post, Im just playing around with the metaphor.
Wed 24 Sep | Patrik | I had a standard install Linux PC connected to the net unfirewalled before. It lived happily for four days or so. Havent done the same with Windows.
Wed 24 Sep | GiorgioG | How long would a 3 year old child survive on a busy street without its parent? Yes, computers are that dumb. Yes they have alot of uses (and potential). But they're still dumb.
Wed 24 Sep | Jeff | I put one outside our firewall yesterday as a test of just that. It lasted 10 min and is now not booting properly. Win 2k fully patched and updated.
Wed 24 Sep | Thomas | A co-worker was setting up a system for a friend of his. Took less than an hour for it to be hit IIRC. -Thomas
Wed 24 Sep | Mark Hoffman | 'I put one outside our firewall yesterday as a test of just that. It lasted 10 min and is now not booting properly. Win 2k fully patched and updated. ' With all due respect, I certainly hope you don't think that is indicative of the lifespan of a computer on the Internet. Windows or not.
Wed 24 Sep | GiorgioG | As of 11pm tonight, my dedicated server account will be closed. It's running windows 2003 server. I've just removed VPN server/RAS role, so the machine is out on the internet like little red riding hood, 'vulnerable' and all. Have at it, you have 4-5 hours to take it down, deface the default IIS6 webpage, whatever. server IP address: 66.135.34.133 I don't think it'll go down. I don't think a properly patched (and secured) Windows 2k/xp/2003 machine will go down if left on the dmz either.
Wed 24 Sep | Li-fan Chen | Re: How long would a 3 year old child survive on a busy street without its parent? To take your analogies furthur, the streets is filled with only 2 kinds of people: with orphans with credit cards and SUVs who can't defend themselves and crackers/hackers.
Wed 24 Sep | Damian | The Honeynet project do tests like this. I saw one report (it was a while back) where an out of the box Red Hat 6 machine lasted 15 minutes before being compromised. I'm sure an unpatched Windows box would have a similar lifespan now.
Thu 25 Sep | software enthusiast | WTF are you talking about?!?! 1. Install Windows XP. DON'T patch it. 2. Install ZoneAlarm. It's a simple and easy to use, personal firewall. You can use it's password-protection feature so the user can't shut it down. 3. Uninstall Outsuck Express. Install The Bat! or another good e-mail client. The Bat! warns the user before opening potentially dangerous attachments. 4. Teach the user the following 2 things: a. Outsuck Express is very buggy and dangerous to use. b. Some e-mail attachments are dangerous. Open attachments only when it's absolutely necessary. If you follow the 4 simple steps above, the computer will resist for at least a year. I know mine resisted a lot more than a year, and only because of the measures above. I reinstalled the OS not because of an attack or virus, but because I upgraded the hardware. So, it's that simple to protect a computer connected to the 'radioactive, bad, evil Internet'. Please stop spreading FUD around.
Thu 25 Sep | Bella | I've put a PC bare on the net (win2k) for weeks, with no issues. 
Thu 25 Sep | Justin Johnson | We've been running Red Hat 7.2 on the Internet as a web/messaging server for about a year now, with constant and immediate patching. Apache 2.0.42, Sendmail, and Resin. No telnet, all logon communications by SSH or through SSL (for POP or IMAP access). It hasn't been compromised as far as I know. There's no change in performance indicating a zombie. But the logs are full of attempts to exploit IIS vulnerabilities, relay spam, and other tricks.
Thu 25 Sep | Lee | One of my clients inadvertently did this test w/ a SQL 2000 box (I warned them). They lasted nearly a month before getting Slammed. At another place I worked at one of my colleagues vigorously asserted that firewalls were unnecessary. One of our security guys remotely broke into one of this guy's servers and changed his admin password. It was the last I heard of that discussion.
Thu 25 Sep | J. D. Trollinger | For the past two years or so, my father's been using an uprotected Windows 98 machine connected to a cable modem.  No viruses that I know of.  Of course, he only uses it for about 15 minutes at a time, three or four times a week.  But still...
Fri 26 Sep | Mark Hoffman | Did Giorgio's 2K3 machine get hacked?
design problems in physical products | Wed 24 Sep | software enthusiast
There are several problems with the design of objects in real world. Examples: Recently I bought a brand-name cordless phone. Its excellent.. except for one thing: it is very small. With a larger phone, I could raise my shoulder a little, tilt my head a little and keep the phone between my shoulder and my ear. This way, I could talk on the phone confortably (well.. reasonably confortable) AND type on my computer. When a co-worker called to ask me something about the source code we are working on, I could find the problem rapidly, while talking on the phone. Because this phone is very small, I cant do this, or if I do it, it feels extremely inconfortable. Why did they do this?? I a cell (mobile) phone, I understand - you have to carry the cellphone with you, and the smaller-the better (unless its so small you cant dial numbers on it). But why do this in a fixed phone? I also had fixed phones with cords, that have the same problem. When I went shopping for a phone, I discovered I couldnt get a standard thick phone (3-5 cm), because they are no longer on the market. So I bought this tiny, thin (1-1.5 cm) phone. So what Im interested in finding out is: why do they do this? Do they surrender to the hype of the market, which calls for smaller and smaller devices?!?! Another gripe I have is about bikes: My grandfathers bike, made in Austria, had a fine seat. The seat was wide, soft and supported by springs, so you could have a nice ride even if riding on a bad road. Also, the handles were high enough so you didnt have to lean forward a lot when riding the bike. I went shopping for a bike recently. Almost all of the bikes in the market are now sports type bikes: - Very small, hard seat, coupled with the bike with a rigid bar. If you are a super-athlete, you probably dont mind this. If you have a normal body, or you are a little overweight, the very small seat presses hard against your buttom, and its unpleasant. - The handles are low, so you have to lean a lot in order to keep them in your hands. If you are riding at the races, you probably dont mind this - it gives you a better aerodinamic prophile. But what if you just want to ride the bike for fun? It sucks to have to lean forward so much - its an unconfortable position. All the bike manufacturers seem to think that everybody riding a bike is an athlete, and they make 99% of the bikes for super-athletes. So, again, why this design decision? Another issue: park benches. I recently walked in the largest park of my city. There are several types of benches, put there at several times. The modern ones are good, but very unconfortable, compared to the ones put there 30-40 years ago. The design of physical objects is many times getting worse, not better. The designers somehow got into the idea that confort doesnt matter, gave in to all sorts of hypes, and some of them think that all their customers are athletes.
Wed 24 Sep | RocketJeff | Cordless phones - better to get one, no matter the size, with a headset jack. That way you can easily talk on the phone without having to try to balance anything on your neck. Small is better this way, since then the phone can get tucked into a pocket while you move around and you can still talk on it. Bike seats - The newer seats are more uncomfortable, but they probably sell better... There seems to be this entire 'biker chic' trend going on. I see middle-aged men & women outfitted like bike racers (bright colors, racing-style bikes, etc) peddling around my neighborhood. None of them would stand a chance in a real race, but they buy the 'real' equipment. Park Benches - don't know, maybe a matter of cost rather then design?
Wed 24 Sep | Kero | The type of bike you are looking for is called a hybrid or comfort bike. It has an upright geometry and a softer seat and is made for casual riding. Bike saddles are hard because too much padding actually is uncomfortable once your sit bones become accustomed to the sadle. I started riding on a comfort bike, a Raleigh R400, with a padded seat and switched to a road bike about 6 months later, after riding the road bike with a traditional saddle for a couple of months the saddle on the comfort bike was so uncomfortable I couldn't ride it for more than 45 minutes at a time. Just because a design doesn't fit your needs doesn't make it a bad design, it just makes it a bad design for you...
Wed 24 Sep | pdq | Phones - I agree. I have an idea for a product - an inflatable phone cradle so you can put a small cell phone in the crick of your neck to talk. This would also work for your regular phone. I have no intention of marketing this, so someone please steal the idea. Bike seats - for better or worse, the market for bikes is wannbe racers. There are some comfortable seats out there. I have a gell filled seat that is ok and I coworker has a bike that has shock absorber built into the seat post. Park Benches - This is a feature not a bug. You don't want a park bench to be too comfortable. Someone might want to sleep on it.
Wed 24 Sep | M | When I work at home, I use a good quality speaker phone (hard to find and expensive). It is so much easier than headsets and acrobatics with the phone on your shoulder. Second choice would be a headset.
Wed 24 Sep | Steve Barbour | Also on bike seats. Those little racing style bike seats can be incredibly comfortable once you've broken them in. Best bike seat I ever hade was basically just hard leather on steel rails. It was uncomfortable as heck the first 75 miles or so, but after about 300 miles it fit like a wallet. Guys will know what I mean. No idea what you mean about park benches though, we don't bother building parks out here in the country. Hell the whole county is a park.
Wed 24 Sep | apw | Bike seats: Those that have no center like an elongated donut are supposed to be the best...also concider geting a seat cover. I used to have a Spenco Seat cover...very comfortable.
Wed 24 Sep | X. J. Scott | enthusiast -- I went through this same process when looking for a bike. There is a solution though -- you have to buy a new seat and a new pair of high rise handlebars for the bike you chose. Most bikes are compatible with a wide variety of handlebars and seats and any bike shop will be able to install them for you if you don't want to do it yourself. It's just that most people want what's fashionable or common or what everyone else is doing. Hence, developers justifying and defending calf fattening pens and slamming joel for daring to have nice offices. They don't know anything better so they think that what they have is best. An intelligent person can transcend this and pick what is the correct solution rather than the me-too chorus of the lemmings. So, go get the bike you want. I noticed the same as you on phones. I had to look for months but finally found a decent one at Staples, where I also was able to find a 2-tape answering machine that takes standard cassette tapes.
Wed 24 Sep | Lou | The make other bike seats for people who need extra cushioning, a wider pad, a split back (for those with lower tailbones), etc. They aren't that expensive and can be purchased at a good bike store. Cell phones aren't made to be cradled in your neck. Standard phones aren't made to be cradled in your neck. You will pinch a nerve or pull something. They make small headseats for cell phones, either with a boom mike or with a mike on the wire to the earpiece. Park benches do suck. But the plastic/composite ones should last a lot longer than the wooden ones. That may have been a trade-off that was made when the budget was drawn up.
Wed 24 Sep | Martin Dittus | In some cities, park benches are designed to make it impossible to lie/sleep on them.  Makes the park a safer place (supposedly) as the bum rate decreases.
Wed 24 Sep | J. D. Trollinger | Bicycling can cause impotence. Not an urban legend -- this is true: http://news.bbc.co.uk/2/hi/health/2991088.stm
Wed 24 Sep | Mike McNertney | That's why it is important to have a seat that correctly fits your body.
Thu 25 Sep | Simon Lucy | Actually I think it likely that a higher proportion of impotent people ride bikes is as plausible as riding bikes causing impotence. And there's a joke waiting to get out squished around park benches being uncomfortable and incidence of bums going down...
Thu 25 Sep | Kero | <
Thu 25 Sep | pdq | I don't know about impotence, but I the wrong seat can certainly cause numbness
Thu 25 Sep | Mister Fancypants | XJ Scott is right about the bikes. The way the bike market is, it makes a lot more sense for bike companies to feature standard equipment that matches what most people will want, so that is what they do. If you aren't most people, keep in mind that bike parts are very interchangable. When you buy a bike, focus on things like the frame, the brakes, the crank and derailleurs (though even these can be changed). Getting a new set of handlebars (or just a longer stem) or a new seat is trivially easy and relatively inexpensive. Also, if you are shopping for bikes at a good bike store (around here in San Diego I recommend Performance or Supergo, YMMV in other parts of the world) and you're not buying a $200-special you can often negotiate with the bike salesman to throw in a different seat or a different set of handlebars for free.
Thu 25 Sep | Matt Latourette | Stock bikes come with lousy seats for the same reason that bikes don't have disc brakes, they're cheaper to manufacture and they can get more money by selling you aftermarket seats and replacement brakes. I once had a bike that had disc brakes. They never caught on, despite being far superior to squeaky rubber pad brakes. When I crashed and bent the rear rim, I found that I couldn't obtain a replacement rim that would work with the disc brakes and ended up having to use a standard rim with spacers on the axle to make it fit and had to switch back to rubber pad brakes. For the seat, I'd recommend you get a gel seat or a gel seat cover to put on the seat you have. They're quite nice. I hear ya on the cordless phone thing. I bought one of those cordless units that has one main charger/answering machine and a second phone with charger that answers the same line without needing another phone jack. The phone unit lets you store frequently used numbers in memory for easy dialing. Unfortunately, it never occured to the manufacturers that most people would want to have the same numbers available in both phones. So, I had to enter every number twice to get them on both phones. I can't cradle this phone on my shoulder either, not because of the size of the phone, but because it's far too easy to inadvertently hit the button that ends the call in this position. During the blackout, the cordless phone didn't work, despite having batteries in the charger/answering machine unit. The corded phone in my kitchen worked just fine.
Fri 26 Sep | apw | My dad had a bike with a back disc brake!  It was a while ago, Lime Green bike...not sure of the manufacture....it was great cause you could peddle through puddles and such and be able to stop....the problem was it was a heavy unit...rim/brake combinations now do well in water...
Fri 26 Sep | Stephen Jones | I've got mates who don't bother with a mobile phone; they just carry the cordless one around with them. Claim the new ones have a 2-3 kilometer range. Explains the small size maybe. Make sure you've got a mobile as well in case of powercuts, or you won;t be able to phone the electrician, if you have a cordless.
Fri 26 Sep | RocketJeff | Or, just make sure you still have a 'real' phone that you can plug in during power outages.
Private offices, just say no! | Wed 24 Sep | Gregg Tavares
Joel went over this before http://www.joelonsoftware.com/articles/FiveWorlds.html I have say that I believe private offices is one of those things that fits some worlds (app development, back office development, database access development) and doesnt fit others (game development). I tried it. I started a company, we found a place with 21 individual offices (use to be an executive suites place). Communication that is eccential for making great games was almost non existant. There may have been ways to help that happen but at a non-private office company it happens natrually.
Wed 24 Sep | The Pedant, Brent P. Newhall | :shrug:  At every place I've worked with a private office, I've been more productive than at every place I've worked with public workspace.
Wed 24 Sep | anon | :sigh: I guess it depends on how you define 'productive'. I tend to look at it that it's really not about individual productivity but about team productivity. Personal productivity is such a fuzzy concept anyway. One of the kneejerk arguments against pair programming is that it 'decreases productivity'. Invariably, after some questioning, you'll find that the people who claim this don't count code reviews or fixing bugs against their productivity. So, when you say you are more productive in your private office, do you count the time you have to go back and fix your bugs against your productivity? Is it possible that a less private, but more communication friendly seating arrangement would reduce your bug output and therefore your overall productivity? An honest question, btw. Maybe you're a programmer who never creates bugs, in which case your private office may very well be the most productive arrangement.
Wed 24 Sep | Martha | Private offices give you the option to close the door and code without interruptions. But you are not required to work that way: you can leave your door open, invite someone to work with you on a particular issue, maybe go to someone else's office to work on another issue, or whatever. You have the flexibility. Without the office with a door, you *never* get uninterrupted work time. No flexibility whatsoever; it simply cannot happen. You can put up 'do not interrupt' signs, you can try to train people that 'if I'm wearing headphones, don't interrupt', you can be as creative as you wish; people will always think that their question/reason for interrupting is the exception to the rule, that you won't mind 'just one second', etc.
Wed 24 Sep | Martin Dittus | I thought that modern communication (IM, email, ...) would avert developer isolation. You can still communicate if you are too lazy to stand up.
Wed 24 Sep | Rob | Well, private offices are nice, but they just don't do it for communications purposes. I don't like cubicles any more than the next guy, but two or three times a week I overhear something on the next aisle that is vital to my interests. Maybe I overhear someone trying to solve the same problem I'm trying to solve or I hear them assuming something I know is false or whatever. The point is that this kind of communication is just too valuable to give up for a nice cushy office. This assumes, of course, that your job involves programming on a team of several people. If you're mostly going to be working on one or two-person projects, then private offices are great.
Wed 24 Sep | Aussie Chick | Not that I have worked in a team before, however last Friday the entire office of accountants left on a trip to the mountains (professional development they called it). The office was so quite, no computers humming, no people, I have never gotten so much work done, nor enjoyed doing it in the peace and quiet. Obviously I cannot vouch for team work and team collaboration process. But is was pure heaven....I did not want that day to end.
Wed 24 Sep | no name | Offices work fine in games if there's proper planning of work. In fact they work very well. However I can understand someone saying they don't, and that greater communication is needed for games. What really happens is that, in a lot of games, the programming is treated as a support function for the designers. Such places hire younger, cheaper programmers and development is run by dedicated game designers or the art manager. So instead of developers working out how to achieve the aims of the game and going off and doing it, the art manager races over every 30 minutes and issues a new directive that needs a complete change to the architecture, which is just a load of crap cobbled together anyway.
Wed 24 Sep | somebody | Something is seriously wrong if you have to regularly overhear vital things. What if you go to the bathroom and miss one of these 'vitial' things? Email, meetings (preferably not too long or too often), specs, docs, bug tracking systems, etc. take care of communication in a more formal and documented manner. Coffee breaks, office visits, instant messaging, common work areas, etc. are good for spontaneous discussions. A developer's day is split between a variety of tasks. Not all of them require absolute concentration but it's important to have that available when needed. The mind has a limited number of active 'slots' to keep track of things. If you are dedicating these slots to a sequence of changes you need to make to the code and suddenly one of these slots is taken over by Suzy in the next cubicle arguing with her boyfriend or some guy who types obnoxiously loud, you're going to miss something important.
Wed 24 Sep | anon | With respect to all, I believe that developers tend to be extremely self-centered. For most of us, software development is a team exercise. Individual productivity can, and sometimes must, take a back seat to team productivity. Team productivity is only as good as the communications in a team. How many of us have completed our portion of a project only to see the project fail because the team did not accomplish all of it's goals? How many of us have said: 'oh well, I got my part done'? Again, respectfully, I say this kind of thinking is broken. If someone on the team needs assistance, they should be able to get it, and immediately. A lot of good ideas are only found after the involvement of many. Private offices tend to discourage these kinds of conversations. At least in my experience. Now, if you have someone who continually just drops by for a chat, this is obviously a problem. But perhaps the better solution is to confront them on it?? An open, team based seating arrangement doesn't HAVE to be noisy and distracting.
Wed 24 Sep | fool for python | I thought the game folks all worked at benches.  Offices are good at filtering non-developers, especially those hypersocials who think that everyone else also feels unproductive if they're not talking. And they can't get their brain around the concept that someone sitting at a desk/cube.bench staring into space could be at their most productive (or just chemically enhanced). Developers usually work out the commmunication thing regardless of space configuration. But management that groks the flow thing sure can make it easier.
Wed 24 Sep | mackinac | I have worked in a variety of office arrangements: quiet private office, cubicle, and shared office. And I have worked on various sized projects from working alone on a project for several months to working on a team of 10-15 people. The quiet private office has always been much better than any shared work space for productivity, quality of product, or just being a pleasant place to come to work. But I have never done game development. In the report on the Santa Teresa lab McCue quoted surveys that showed developers worked about 30% of their time on individual tasks and over half their time working with a small group of other developers. On my projects the fraction spent working alone is usually quite a bit higher. But in any case, even if it is only 30%, it is not something that can be eliminated. I think McCue got it right. For the most productive environment you need quiet private offices arranged near each other with ample facilities for group meetings or work as needed. Developers need to have flexibility. It is good to have an office with a door, but in a good work environment there is seldom a need to close it. In a good environment I would only occasionally close my door when working on a particularly difficult problem that required a couple of hours of concentration. Once I was in a shared two-person office that had a soda machine in the hall outside. That office had its door closed all the time to shut out the noisy compressor on the soda machine. If developers in private offices keep their doors closed all the time, then there is probably something wrong with the facilities that needs to be fixed. Several posters say that shared work space is better for the communications that occur. I have never seen any useful communications occurring in a shared evironment that wouldn't happen just as well in a private office environment. The only things you get from shared office space are distractions and stress.
Wed 24 Sep | no name | anon's post confirms my point. The people who think they have to work in a big noisy mess are the ones who aren't very good, who fail to listen and plan, and who have never resolved complex problems well. They continually suffer problems that must be resolved with their 'team mates.' They bodge and patch. They tell the art director he can only have 17 whatsits because that's how big the array is ( didn't use dynamic arrays.) I have seen these types of disasters. They are not pretty and they are self sustaining. The managements become even more convinced that they must have 'good communication,' so ensure the programmers can be always disturbed. The art director continually interferes. The resulting environment smells, and experienced developers avoid them.
Wed 24 Sep | anon | [I have seen these types of disasters. They are not pretty and they are self sustaining. The managements become even more convinced that they must have 'good communication,' so ensure the programmers can be always disturbed. The art director continually interferes. ] Clearly, you have no idea what I'm talking about if you think I'm describing what you experience. What you have is a train wreck caused by a generally low quality team. With that kind of team the environment largely becomes irrelevant. All private offices do in that case is allow the few good developers to ignore the larger problems. Who cares if they succeed if the entire team and project fails? I really get a kick out of people telling me these things won't work when we live it every day. Perhaps it does work and you just haven't done it right?
Wed 24 Sep | anon | [Several posters say that shared work space is better for the communications that occur. I have never seen any useful communications occurring in a shared evironment that wouldn't happen just as well in a private office environment. The only things you get from shared office space are distractions and stress. ] I generally agree with everything you've said, but you might have done better if you'd left that last sentence off. As I said earlier, shared office space doesn't have to be that way. Or maybe we've just stumbled over the magic secret. I doubt we're that special. Anyway, your point about balancing common area with some private space is a good one. Everyone needs some 'space' some time or other, if only to take care of those personal things (e-mails, arranging appointments) that intrude on the day.
Wed 24 Sep | Leonardo Herrera | Nawh. Anybody that tells that individual offices are 'bad for communication' have poor management skills or little knowledge, that's all. And game development isn't different to any other development. The problem is that game developers tend to have little experience with good software management; they usually jump to development from mod or demo scene. And many are prima donnas. Any 'flow,' or 'communication,' or whatever, can be (and should be!) achieved within the boundaries of the proper instances: regular meetings, schedule revisions, documentation, etc. And a good manager, helps, of course.
Wed 24 Sep | Brian | Which is easier: having private offices, with the option of hanging out/working in an 'open' area, or working in a cube farm with no chance of privacy, ever, period? Yes, I do overhear useful things every so often, but not nearly often enough to make up for the difficulty I have trying to concentrate amid the noise of yakking neighbors. At least I don't sit by the copier (BS central) anymore.
Wed 24 Sep | somebody | >> Nawh. Anybody that tells that individual offices are 'bad for communication' have poor management skills or little knowledge, that's all. << This is what I was thinking but I was too nice to say it ; ) Something is seriously wrong if you need to be in frequent contact with your coworkers or need to rely on overhearing critical things to get things done. I'd bet that most of these 'teams' consist of one or two good developers who have to pull the weight of a bunch of bad developers. That's been my experience with these sort of things. Feel free to convince me that I'm wrong. I'd particularly like to see a good example of what sort of information these teams are exchanging so frequently.
Thu 25 Sep | Andrew Reid | Q: Why do game developers like open-plan offices? A: It makes the 3 hours spent every day playing Quake a lot more enjoyable. That's my experience anyway :)
Thu 25 Sep | mackinac | >>> but you might have done better if you'd left that last sentence off. As I said earlier, shared office space doesn't have to be that way.<<< Let me rephrase it: After 20+ years of software development I have never experienced a shared office environment that provided anything but distractions and stress compared to private office space. I can imagine, by extrapolating from experience, that private office space could be done badly. But I can't imagine how shared office space could be designed so that it could work out as well as good private office space. So how did you do it? If I think back on the projects I've worked on, the ones done in a private office environment were the ones that got done on time or close to it, met the requirements and pleased the customer. The ones done in shared office space were the ones that took twice their original schedule, finally muddled their way to something deemed deliverable, and still had a long list of bugs and missing features. The supposed benefits of 'communications' amounted to nothing.
Thu 25 Sep | Mike Treit | I know a development team that got moved from private offices to an 'open office' environment - it was basically a glorified cube farm with some fancy looking cubicles that tried to pretend they were something new and different (taller walls to give the illusion of privacy, etc.) Morale tanked. Key people left the team. It was a complete disaster, and within a year they had moved back to private offices.
Thu 25 Sep | Gregg Tavares | Well I'm frustrated that I think nearly everyone replying to this topic ignored the original post. The post does NOT say private offices are bad. It says, as Joel eluded too before, that private offices don't fit all cases. http://www.joelonsoftware.com/articles/FiveWorlds.html They may fit yours, they don't fit mine. In games, IMO, the interaction between artists, desigers and programmers is an eccential element to making great games. The faster the iteration is between artists, designers and programmers the more things can be tried searching for those illusive 'fun' elements. My impression is in more traditional programming that kind of intense interaction is not needed. People can go to a meeting, it can be decided what to do for the next weeks and then people can go in their office and do their job without the need to interact nearly as much as games. Again, go back and read Joel's article on the Five Worlds. Don't assume that all programming advice fits all types of programming.
Thu 25 Sep | later | I wonder how the separation in Joel's new office works between those who have offices and those who don't. Is there any resentment? Is the communication better between those in the open than between those in offices? Also, does Joel's new office have room for growth, or is it optimised for how things are now (i.e. using up all available space)?
Thu 25 Sep | anon | [Something is seriously wrong if you need to be in frequent contact with your coworkers or need to rely on overhearing critical things to get things done. I'd bet that most of these 'teams' consist of one or two good developers who have to pull the weight of a bunch of bad developers. That's been my experience with these sort of things. ] Is it really such a stretch for you to admit that your personal experience might not be an iron clad rule? If you, personally, don't like the idea of an open concept team environment, that's cool. However, I fail to see the need for silly put-downs. It feels like fear. In MY experience, I've never met a single developer who's designs couldn't be improved upon. I've never been on a project where I could say 'this project only succeeded because of him/her'. This simply confirms to me that the team is more important than any individual. Your experience is obviously different. I don't know why our experience is so positive while yours was so negative. All I know is the team is doing very well, and it is being noticed by the rest of the company. Make of that what you will. I'm done here.
Thu 25 Sep | Leonardo Herrera | Anon, you are making statements based on false (as 'not necessarily true') claims. Good team interaction don't mean open spaces (and don't mean closed spaces, neither); good communication, and good interchange of knowledge should happen in proper instances. Let me put this down. Imagine a closed environment, where every developer has his own office, with door that shuts and that kind of stuff. If you come directly to your office, program like a madman from 9 to 5, and then go home. Right, you have a serious issue. Now, imagine this same guy in an open space. He is 'exposed' to questioning, and overhears some coworkers making a decision here and there, so he is more 'integrated' to a team. So, we assume open space is good for communication, right? Wrong. Never, never a developer have to be isolated from a team. The isolation should only ocurr when the developer have some task to complete. If you are managin your team the right way, then this task is small, and well bounded. When the developer finish his task, he makes some kind of report, and this should be a good time for meeting and revision. Is this guy being more productive? Heck yeah, you gave him a small task to complete, and due to good working conditions he is able to complete it in less time. Okay, my ideas are kinda disorganized, but hope someone can get the picture :-)
Thu 25 Sep | Leonardo Herrera | (Please forgive my spelling, haven't finished my morning coffee yet)
Thu 25 Sep | Philo | I'm wondering if there's a trees/forest thing going on here. Perhaps, in general, the office layout is indicative of management? Bad managers/control freaks tend to want cube farms while they're in the corner office; good managers tend to believe their people will work better in private offices. Bad managers create crappy work environments, good managers create good work environments. In other words, cubes or offices are *symptoms* of bad projects, not causes. Philo
Thu 25 Sep | anon | [Perhaps, in general, the office layout is indicative of management? Bad managers/control freaks tend to want cube farms while they're in the corner office; good managers tend to believe their people will work better in private offices. ] Um, a little excessive generalization there, wouldn't you say? Why exactly would a control freak want cube farms and a good manager want private offices? Why couldn't a control freak go into an office as easily as a cube farm? I guess I missed the proof part of the logic chain there. Personally, where I work, I've never heard anyone complain about the cubicles. Not having a window, now that's a complaint I've heard a lot. And window seats are not given out on a seniority basis. There as as many junior programmers with window seats as there are managers (not that we have all that many managers in the first place). Clearly, my experience is not the same as yours. No problem. But I find your fixed mindset... interesting.
Thu 25 Sep | mackinac | >>> Well I'm frustrated that I think nearly everyone replying to this topic ignored the original post. <<< Sorry, Gregg. I understood that you were only referring to the specific type of development that you were doing. Your title didn't fit that idea very well though. Maybe something like: 'Private offices, not for every team'. Other posters are making claims indicating more general benefits from shared office space. These are the ones I am arguing against. For instance, anon makes statements such as 'For most of us, software development is a team exercise.' and goes on to argue that this implies that shared office space is better than private offices for software development teams (anon, let me know if I misunderstood your argument). Well, it is true that for most of us, myself included, that software development is a team effort. But this is not a valid argument that shared office space is better than or even as good as private offices. The software teams that I have been part of consist of a small group of developers (and testers, etc.) each doing their own piece of larger effort where all the pieces have to work together. In this kind of project the team members need both space to do their individual tasks and easy access to other team members to coordinate those tasks. In my experience the private office environment is the best arrangement for most software development teams. I can imagine that some types of software development, such as games, require the continuous interaction of shared office space. At the other extreme, some types of software development may work in a telecommuting environment where team members only meet every few weeks. But that doesn't work well in very many cases either. I have seen team software development work in all these environments, but always poorly except in the private office work space where the team interaction can be varied to the current needs of team members.
Thu 25 Sep | Philo | 'Why exactly would a control freak want cube farms and a good manager want private offices? Why couldn't a control freak go into an office as easily as a cube farm? I guess I missed the proof part of the logic chain there.' Uh, if you need this proven, then this really isn't the right discussion for you. [forgive me for being gruff - I'm having a bad day] Philo
Thu 25 Sep | mackinac | >>> Personally, where I work, I've never heard anyone complain about the cubicles. <<< I can believe this, but have to ask how much experience these developers have in a private office environment. Most companies put their developers in cubes or shared offices, so not many get to experience a better work envirionment. That is, they just don't know what they are missing. You may have noticed that I argue for the private office environment as the best general software development environment. But this comes after years of experience in a variety of work spaces from cubicles to private offices. This even includes brief periods in bad (noisy) private offices, so I usually say 'quiet private office'.
Thu 25 Sep | anon | [I can believe this, but have to ask how much experience these developers have in a private office environment. Most companies put their developers in cubes or shared offices, so not many get to experience a better work envirionment. ] Won't argue there. I've never worked in an environment where EVERYONE had a private office. That's gotta be pretty rare. Btw, Philo, I've had control freak managers when I've had a private office. It didn't really seem to make much difference to him. Personally, I'd rather have a window than a private office. I've had an office with just 4 closed walls. . And I'm not claustrophobic. But it was quiet. :) I still dispute that 'public' seating has to be noisy. There are times when you can hear a pin drop in our 'cubicle' seating (I don't even like to call it cubicle, since there are no cubes). Maybe it's a personality thing. I really prefer working with other people. Extrovert vs introvert??? Of course, the whole thread is moot since most of us don't have the luxury of picking our environment.
Thu 25 Sep | Brad Wilson | [Maybe it's a personality thing. I really prefer working with other people. Extrovert vs introvert???] Fascinating, when you consider that Microsoft is all private offices, yet almost every Microsoft blogger registers as an ENTJ (of course, it might be that you're likely to be an extrovert if you're a blogger... although my wife is an I and a blogger).
Thu 25 Sep | somebody | >> Is it really such a stretch for you to admit that your personal experience might not be an iron clad rule? If you, personally, don't like the idea of an open concept team environment, that's cool. However, I fail to see the need for silly put-downs. It feels like fear. << I thought my wording 'I'd bet that most...' would make it clear enough that I'm not claiming any iron clad rule. I'm sure that examples of successful teams could be found in pretty much any environment. I'm not sure why you interpreted what I said as a put-down. There's no need to get defensive. It speaks volumes that you chose to respond with indignation rather than responding to my request for some examples of why such frequent communication would be necessary or beneficial. Calling software development a 'team exercise' seems bizarre to me. Of course, team dynamics are important but do you really need a team to gather around to help you decide when to use a 'for' loop versus a 'while' loop? Getting back to the revised main point of the thread, I don't buy the argument that game development is so much different from other forms of development. It takes concentration to write a rendering engine. You're not going to write a decent rendering engine with artists and designers looking over your shoulder. Iteration that's fast enough to take place with a few people gathered around a monitor doesn't occur too often in software development. If you can change things fast enough for an artist or designer to give their input in real time, you've probably moved beyond the core development phase. Tweaking game logic is something quite different from developing a game engine.
Thu 25 Sep | The Pedant, Brent P. Newhall | anon asked me, 'when you say you are more productive in your private office, do you count the time you have to go back and fix your bugs against your productivity?' Yes. I found that my code was more robust when I had a private office. This was earlier in my career, also, so it wasn't simply a function of being a generally better programmer than I was in an open environment. However, this robustness may have been related to that particular development environment. anon also wrote, 'Personal productivity is such a fuzzy concept anyway,' preferring team productivity. I think that team productivity is at least as fuzzy as personal productivity. There are so many more variables affecting teams; it's much easier to isolate a personal productivity problem than a team productivity problem.
Thu 25 Sep | no name | As I mentioned, there's a self-sustaining bad model. Managements that don't understand how good software is developed pay badly, hire inexperienced programmers and cram them into crowded areas. Because of this, and because of the high-interuption work environment, there are regular and serious difficulties and errors in the software. To the managements, whose work experience has probably been in other areas where problems can be addressed by close supervision, this confirms the need to have the programmers in close contact with their fellows. But it's actually not the answer. Here's a typical communications scenario that would seem like good communications to dumb managements, but should never need to occur at all. Artist: 'We're using this new texture. Can you add it in?' Prog 1 to three other programmers: 'We have to change the texture for g1. Let's work out how to tackle this. I'll go through files in the a-g directory. B can do the h to m directories ....' They then spend the next two hours making changes and miss a few instances. These guys have hard-coded file names into files and haven't even centralised it. It looks like great communication though. Prog 1 to artist after lunch: 'You will have to trim that texture. We're getting a crash. We tracked it down in the debugger and the texture is too big.' (They don't understand how to expand the texture buffer. There is then a 30 minute meeting on the best texture size. The manager is impressed at the terrific communication on the team.) Prog 1 to producer, who is doing a demo to the publisher in two days: 'We're using a different texture. Give us your laptop and we'll make the changes.' The producer's version is a forked version because it has some short term bug fixes. The programmers spend five hours again, and again miss some changes, and the demo has several silly things.
Fri 26 Sep | mackinac | >>>Maybe it's a personality thing. I really prefer working with other people. Extrovert vs introvert???<<< I would be definitely classified as an introvert, but I do like working on team projects. I don't think that is the essential difference though. It has more to do with one's concept of the value of the individual human being and of how they cooperate to achieve common goals. Some of your (anon's) postings stated a preference for shared office space because you worked on team projects. You didn't even consider the possibility of individual programmers working in private offices being able to cooperate on a common goal. >>>Of course, the whole thread is moot since most of us don't have the luxury of picking our environment. <<< In the current economic downturn, we take any job that comes along. In any economic conditions great project management, including concern for quality work space, is a rarity and it takes a significant dedication to go after it. Few developers do that, which provides little incentive for more employers to provide it.
Fri 26 Sep | T. Norman | 'Why exactly would a control freak want cube farms and a good manager want private offices? Why couldn't a control freak go into an office as easily as a cube farm?' It's not about the control freak going into an office, it's that the control freak doesn't want to have other people in offices. Because that way he/she can't see whether they're working at any given point in time. To maintain their sense of control, they have to be able to easily see you hitting the keyboard.
New FC office | Wed 24 Sep | Mitch & Murray (from downtown)
Gotta say Joel, it looks gorgeous. Congratulations on having the balls to do something like this. You say the landlord paid the tab to build it out - would you mind giving us a ballpark figure on what that was? How long is your lease for? The big test will be to see if the strategy of building a super-primo office environment actually pays off - you hire better people, make better products, and (ultimately) make more money. That is the theory, it will be interesting to see if it works. NYC must be one of the worlds most expensive cities in which to do business. In any event, good luck. Time for a lease-breaker level of office party I think!
Wed 24 Sep | Li-fan Chen | My coworker is not too hot on the windows. I mean 95% of the time you are in an office it's business, but how do you close that window if you are having sex?
Wed 24 Sep | Rahul Dave | Could we see some larger pictures? The at-angle alcove layout is quite brilliant! Could we see a single room from different angles? I'm having trouble picturing the 2-side light principle and the layout of an office..thanks!
Wed 24 Sep | Jeremy | Great, except for that hideous green. And I'd have to see the translucent stuff in action to know whether or not I'm a believer. I've seen some really awful uses of similar materials in really expensive lofts.
Wed 24 Sep | SteveM | > mean 95% of the time you are in an office it's business, > but how do you close that window if you are having sex? You spend 5% of your office time having sex??? ;-)
Wed 24 Sep | J. D. Trollinger | Joel's essay reminds me of an alleged quote from Nobel prize-winning physicist Richard Feynman: 'It's not that I'm smart -- it's that everyone else is incredibly stupid.' (Warning: he may not have actually said it.) Joel's design decisions -- most of them, anyway -- just seem like common sense. So why don't more people understand this?
Wed 24 Sep | R. Bailey | Leaving alone the $700/month (move to North Dakota already!)... Who the heck is using the old tangerine iBook? http://www.joelonsoftware.com/pictures/bionic/Bionic-Xlucent.JPG ;^) Maybe that move to REALbasic is coming sooner than we thought. Let me know when you're hiring.
Wed 24 Sep | Robin Debreuil | Ow, those colors make me cross-eyed just on the pictures!Hope you don't have any graphic designers that need to get work done, unless you are reviving Wired circa 1999 ; ).
Wed 24 Sep | schmoe | What's your (anyone's) opinion about the hardwood floors? I've only worked in one office with hardwood floors, and the whole office was terribly loud, at least in part because of the floors. (This particular office was terrible for all sorts of other reasons, too, so maybe it's not a good example.) Do they contribute noticeably to the general noise level? Why did you choose them instead of standard boring office carpet?
Wed 24 Sep | snotnose | > You spend 5% of your office time having sex??? ;-) He never said there were 2 people involved :) I want to work there. Too bad I'm about as far away as can be from New York (California, the Recall State). snot
Wed 24 Sep | Simon Lucy | Ummm a slight geographical note, you can be considerably further from New York than California. 
Wed 24 Sep | RocketJeff | I hate hardwood floors. If I had them in my office, I'd bring in either a chuck of carpet or a decent rug (depending on my mood/bank account).
Wed 24 Sep | Prakash S | Great design can be translated from software to anything else. Good work FC! BTW: Is it ok to drop by if I am in the neighborhood?
Wed 24 Sep | f | 1st comment: MORE PICTURES PLEAAAAAAASE!!! 2nd comment: The Mac is probably used 'to read Joel on Software when your main computer is rebooting to install today's Windows Update'... ;-)
Wed 24 Sep | X. J. Scott | I love the chartreuse and not just because I have 1/4 my house interior painted that exact shade of pure chartreuse. Beautiful design, wonderful light -- really something to be proud of. Congrats. Any good developer would be happy to work there.
Wed 24 Sep | david glenn | Those aren't 'desks', they're tables. And there is a decided lack of storage for all my 'stuff' not to mention a lack of drawers, extra flat surfaces, white boards, etc. Nice start but it will take a little more 'livin-in' to get real. And those hardwood floors, pretty, but try to keep those swank Aeron chairs in one spot while you cross one leg under the other thigh for the 50th time in a day. Weee. Nothing more annoying than an office chair on a frictionless surface. What about window blinds. Windows are great, unless there is glare, then they suck no less than whole office intercoms. And the ceilings, how are those setup. Do the walls run all the way up (looks like they might, good). And do the inter-office windows have glass (can't tell)? And remind me, why do I want translucent walls again. I like to control the light completely in my 'private' office. And I don't think 'plasticized' cardboard offers much sound protection...
Wed 24 Sep | sedwo | Talk about overhead! Well you get what you pay for. Its straight out of the .COM , Californeeya-eh scene. Hip, bright, business with pleasure, and an iMac to boot! I'd love to work in an environment like that. I'm just not really sure how much work I'd get done. But it fulfills Joel's criteria on attracting the best talent. Now lets see if the theory works.
Wed 24 Sep | mackinac | It can be quite interesting to read about some of the architects of the 20th century. Architects like Albert Kahn who designed factories, office buildings and university buildings, Christopher Alexander who wrote about design patterns, and McCue who designed the Santa Teresa labs all were concerned with how the building fit the work of the people who occupied it. Office architecture has evolved to today's pack as many people into ever smaller cubicles office plans ('veal-fattening pens'). It is wonderful to hear about an office planned with the occupants in mind. If Joel is inclined to make some comments to this thread, I would really like to hear what his architect, Roy Leone, thinks about this project and the whole concept of work space designed with the workers in mind.
Wed 24 Sep | JWA | The offices look awesome Joel. I, for one, love the colors and textures. The translucent walls with the bright colors look awesome. I'd love to see some more pictures as well, to get a ful mental picture of the space. How do the colors work out, are they the same in every office? Looks like a kick-ass office space. Congrat's. --Josh
Wed 24 Sep | Philo | Effects of hardwood floors: 1) they *always* look dirty (dust bunnies blowing around). The new guy is gonna have to have the task of running a swifter around every evening. 2) No sound absorbtion. This alone makes me shocked Joel chose hardwood. 3) Temperature control may be an issue in the winter, I'm not sure. Anyone else notice that Joel decries CEO's who design their offices with no input from the managers or employees, then goes and designs his offices as the CEO and we see no mention of manager or employee input? ;-) Philo
Wed 24 Sep | mb | How do you change the height or position of the table/desk if you don't like it/it's ergonomically not a fit?
Wed 24 Sep | anonymous | This reminds me.  Back in 1996 when I was in college I interviewed at Macromedia in the Soma district of San Francisco.  That had to be about the strangest work environment I've ever seen.  There was a slide going down to was like a pit where the programmers worked.  Anyone else been there?  It was a requirement that all developers have green hair I believe as well. 
Wed 24 Sep | Lou | I'm fascinated by the use of angled walls and the cut through window to add an extra source of light. We're considering leasing an old building with eight foot on center four foot wide windows, but that would make for large boxes of offices with only one window, hardly ideal and quite strange. Adding the translucent wall is a trick that's not too uncommon to let light filter through from exterior offices, but the cut through is really quite something. As to hardwood floors, Joel did note that he was on a budget for the design (that explains the non-ergonomic desks as well). Carpeting , even industrial grade carpeting with little padding, is still a bit expensive for a large space. One can cut down on noise in the future by using sound panels and area rugs (and large pieces of soft furniture like couches). These same tricks work in large houses. I was curious to see how Joel would end up wiring the offices. When I wired my workshop i put outlets + strips at the height of the workbenches, which works out nicely since things are constanly being changed, but offices are different with most connections being permanent or longer termed, the hidden trough makes a lot of sense. And the UPC wired outlets is ingenious, I had not considered that for our use ( I was coming to the conclusion that I would end up with a UPC in each office, yuck). I'm impressed Joel, you've managed to make an excellent start for the new office on a very small budget. For those wondering, most landlord paid buildouts are approximately $30/sq ft (depending on location, lease length, rent, etc). Of course the usually deduct heat, installed fixtures, lights, and other smaller items to get it down to 20 - 24/sq ft. And then there's the whole 'What's a square foot' issue. I think we would all appreciate a few more pictures and/or blueprint/layout schematic of the offices Joel, this is something else and clearly something that you've put a lot of time into. Best of luck with the new office.
Wed 24 Sep | eclectic_echidna | I know that most of you avoid slashdot like the plague, but every once in awile, a good quote will make it. Try this... (sic) Re:My desk is in a *hallway*... (Score:3, Funny) A friend of mine had her desk in a closet. Just the desk. If you saw her at the office and didn't know what was going on, you'd think that they put her against the wall as a timeout. Being openly Lesbian, this led to incessant jokes about being in and out of the closet. Not that she minded (I wouldn't be surprised if she actualy initiated it) .. In fact, in the telling of it, I'd say that she seemed downright proud of it. Too funny... Ok, back to work... -- ee
Thu 25 Sep | Philo | 'As to hardwood floors, Joel did note that he was on a budget for the design (that explains the non-ergonomic desks as well). Carpeting , even industrial grade carpeting with little padding, is still a bit expensive for a large space.' You have *got* to tell me where you shop that hardwood is cheaper than carpeting (even industrial!) Philo
Thu 25 Sep | Lou | I presumed that the hardwood floors were already present, making them a no-cost item. 
Thu 25 Sep | Philo | Ah, sorry - yes, that's true. I was coming from the perspective of 'install carpet' vs. 'install hardwood' You're probably right. Philo
Thu 25 Sep | dat | I also noticed the non-adjustable tables. I don't think it's wise to sacrifice ergonomics for, e.g., wired UPS outlets. Note also that on Joel's photos, the computer screens are placed right on the table. As most people are quite tall nowadays, a screen (even a large one) should be placed a bit higher, so that a person's eyes are the same height as the upper border of the screen when sitting upright. Otherwise you tend to 'crawl into' the screen with your backbone bent to unhealthy shapes. Sorry for this criticism; the remaining ideas for the office are just great.
Fri 26 Sep | Simon | The flat desks (tables really) reminded me of an office I worked at which outfitted themselves with AnthroCarts. They were wonderfully built -- you could have stood a hippo on one -- but they ended up frustratingly covered in crap, because there was no built-in storage, and nowhere to put anything without having to get up and/or wheel the chair over to some detached storage cabinet. No big deal, you might think, but after a while I would have killed to just have a simple, sturdy under-desk pencil drawer and file drawer that I could open without moving from the keyboard. In the end, the clean aesthetic was somewhat spoiled by piles of paper and office supplies that grew into festering piles on everyone's desk. So much thought went into the technical practicality; the wiring, the lighing, etc. But I just wonder: where does everyone keep their pencil sharpener / spare staples / health insurance info? :)
VBA Technical Riddle | Tue 23 Sep | Dustin Alexander
In my long tradition of finding, diagnosing, and implementing previously undiscovered or undeveloped bugs in every piece of computing technology I touch, I have uncovered yet another beauty. [See my SQL Server -> Access Linking question for yet another;]. Basically, I am using Excel to produce well formatted reports for bonus calculations. [Before we get into it, I AM using Excel to do this and not any other reporting package]. The data is pulled in via ADO 2.5 and DB2. The reports are fairly large, consisting of a range from 10,000 to 30,000 cells. I have to print 66 of these. Well, the long and short is, it seems to be corrupting my memory. Once the batch is done, the system hangs or other programs begin to experiece strange glitches. Many of these seem related to out of memory errors, but a few of them also run the gamut from corrupted file errors to registry errors. Rebooting always fixes this process. The crashes occur randomly after the workbook has been generated, never in the same spot, but usually at the end of a report. Stepping through the system in the debugger prevents the error from occurring and the program itself sends no error messages. Does anybody here know of problems with high volume Excel reports or anything of this nature? I know these tools werent meant to do anything like this, but its bloody annoying with the randomness of this thing. I have a new programmer working for me and we have named this his Excel Software Bug of Doom +5, or Carlos for short. He is having a blast, but was wondering whether you guys had any experience with this.
Tue 23 Sep | Robert Jacobson | Glad you have a sense of humor about it. Just some random thoughts... What's the Task Manager showing when the batch is processing -- like the memory usage? Obviously, you want to check for memory leaks -- memory usage shouldn't be constantly rising. Have you considered automating Excel externally from Visual Basic, rather than internally through VBA? Perhaps it would help with stability. If you use VB6, you shouldn't have to rewrite any code (and won't have to worry about COM interop issues with VB.Net.) Would it be possible to process the batches in smaller chunks? If you automated Excel through VB, you could programatically open an instance of Excel, process a single report, and then shut down that instance. Lather, rinse repeat. Hopefully, restarting Excel after each report would give itself the opportunity to clean up whatever resources are causing these glitches.
Tue 23 Sep | Dustin Alexander | Robert, fun with Excel. I always looked at bugs as challenging games that I'm paid to play. Actually, this program started out in VB6, then moved into VBA because of this error. Externally, using COM, you experience similar lock ups, but after 3 reports. Right now, we manage to pound out an average of 16 before it cracks. My initial idea was that this was in the COM implementation (thus the move into Excel). I'm told that this relies on the windows messaging API or a similar API that can lose sequence rather easily when presented with a high volume of messages. With the number of calls we are making, I can easily see the stack being overwhelmed and thrashing. But we are no longer using external COM and are still encountering the same error. Currently we are sending one COM call per cell per format request. This is not ideal, and will be replaced with batch arrays once this bug has been isolated. I don't want the users to rediscover this on a high volume report. After all, reducing the work load is simply a work around, not a fix. As for the managers, the memory seems to stay flat, as does the processor. Once the bug occurs, these tools are flaky at best, downright wrong at worst. More interesting triva: I have tried this on Office 97 and 2000 on both Windows 98 SE and 2000 Pro and three different machines. Same bug. When I initial wrote this in the spring (as a one shot fix), I was running on a 64 MB RAM system and it killed after three reports. Upgrading to 512 MB of RAM did absolutely nothing to change the response time or occurrence rate of the problem, nor did switching computers, OS, or Office versions.
Tue 23 Sep | Alienware | Microsoft Windows is the _best_ game there is - you wander around until bam! BSOD
Tue 23 Sep | Dustin Alexander | Also, restarting or initializing the Excel instance externally is a no go. This does not clean up the system and seemed to make the problem worse, as it initiated memory issues. Excel is none to clean an implementation when it comes to memory clean up. 2K is better, but still seems to have some leaks.
Tue 23 Sep | Dustin Alexander | Our current hypothesis is that this is an implementation error in either the ODBC code or the Excel code. We're leaning towards Excel but working to isolate it as we speak. This would be a memory allocation issue that is causing the system to overwrite arbitrary sections of memory when a particular state in the application is created. This would account for the randomness of the crashes.
Tue 23 Sep | Robert Jacobson | This sounds really bizarre. Sorry I can't be more helpful. Just for the sake of asking, would it be possible to migrate your code to VB.Net, using Excel 2003 and Visual Studio Tools for Office? Last week, I saw a demo of VS Tools for Office for a project that was similar to what you're doing -- it used an Excel template that automatically generated sales reports by grabbing data from a database. Looked pretty cool. Of course, no guarantees that it would work any better. http://msdn.microsoft.com/vstudio/office/default.aspx
Tue 23 Sep | Slashdot refugee | I don't have any suggestions to offer to fix Excel, but I thought I would throw in my .02 on alternatives. I work with a group of users who always seem to be stretching the bounds of sanity with Excel, and I have had a good deal of success replacing their flaky reports with Perl scripts once the formats become stable. I just use ActiveState Perl and the Spreadsheet::WriteExcel module. I haven't had any complaints from Excel97 or 2000 when reading the files that are created in this way. I offer this because I started as a VB6 hacker, and I had almost no trouble picking up enough Perl to make this work....
Tue 23 Sep | Dustin Alexander | The technical situation is not a problem, as my team experience in almost every working language today. Its the political situation of our client, who is an exclusive MS shop of the VS 6 variety [no dot net support on the roadmap], and our users, who are moderately uncomfortable with Excel [much less PERL]. To be honest, I was considering alternatives, including PERL, HSSF, and writing our own format [which we've done for past projects], but this is a small project that will have to be embraced by the client's IS department. So, I'm stuck with VB. Thanks for the alternative suggestions, though.
Tue 23 Sep | r1ch | Does the Excel process actually shutdown when you are finished with it? If not, it points to a problem with the VBA garbage collection. Try explicitly setting references to Nothing when you are done with them and introducing yeilds into tight loops. If that doesn't help, perfmon could be very useful - check the available system resources before and after running your scripts (and closing Excel) to see which resources have been consumed.
Tue 23 Sep | mb | VBA is apparently better behaved than external driving of Excel (VB, COM, whatever). But the alternate file format is a good approach to consider: Can you use the XMLSS format, new in a recent (pre-2003, maybe XP) version?
Tue 23 Sep | Matthew | Dustin, I've done work on large Excel reports before and never seen any issues. The issue is probably to do with your code (for example, the code you are using to print). Can you post it? If here is not a suitable location, I am sure we can help at http://peach.ease.lsoft.com/scripts/wa.exe?A0=visbas-l . Seeya
Tue 23 Sep | Sam Livingston-Gray | Dustin- It sounds like you changed from using VB6 to automate Excel via COM to just running the entire reporting job from inside Excel, is that correct? Just making sure. (I had some half-formed thought that you might be having problems marshaling all that data between apps.) It might be instructive to extract your data into ADO, save it to an intermediate CSV or tab-delimited file, open that from Excel and then apply formatting... Oh! I just saw something else: 'Stepping through the system in the debugger prevents the error from occurring and the program itself sends no error messages.' I sometimes get strange errors like this. The only way I know of to avoid the problem is to sprinkle DoEvents statements throughout the code, which is a bit kludgey but seems to work. Hmmm... actually, that might account for the improvement from '~3 reports before a crash' to '~16 reports before a crash' -- if you're not doing external COM automation (read: marshaling), your code can get further before some other thread gets pissy about being shoved to the background...
Wed 24 Sep | Albert D. Kallal | >It might be instructive to extract your data into ADO, save it to an intermediate CSV or tab-delimited file, open that from Excel and then apply formatting... That would be my path/ bet also. Grab the data to a local csv file. Then load it up (much faster then some individual cell processing). Breaking it up into series of steps tends to also reduce memory usage. Running ado/automation/cell merging stuff all at the same time tends to stran things. Albert D. Kallal Edmonton, Alberta Canada kallal@msn.com http://www.attcanada.net/~kallal.msn
Wed 24 Sep | Mark Pearce | Dustin, You can use the following type declarations and Win32 api calls to catch GPFs within your VBA code: Private Declare Function SetUnhandledExceptionFilter Lib 'kernel32' (ByVal lpTopKLevelExceptionFilter As Long) As Long Private Declare Sub CopyExceptionRecord Lib 'kernel32' Alias 'RtlMoveMemory' (pDest As EXCEPTION_RECORD, ByVal LPEXCEPTION_RECORD As Long, ByVal lngBytes As Long) Private Type EXCEPTION_RECORD ExceptionCode As Long ExceptionFlags As Long pExceptionRecord As Long ExceptionAddress As Long NumberParameters As Long ExceptionInformation(EXCEPTION_MAXIMUM_PARAMETERS) As Long End Type Private Type EXCEPTION_DEBUG_INFO pExceptionRecord As Long dwFirstChance As Long End Type Private Type CONTEXT FltF0 As Double FltF1 As Double FltF2 As Double FltF3 As Double FltF4 As Double FltF5 As Double FltF6 As Double FltF7 As Double FltF8 As Double FltF9 As Double FltF10 As Double FltF11 As Double FltF12 As Double FltF13 As Double FltF14 As Double FltF15 As Double FltF16 As Double FltF17 As Double FltF18 As Double FltF19 As Double FltF20 As Double FltF21 As Double FltF22 As Double FltF23 As Double FltF24 As Double FltF25 As Double FltF26 As Double FltF27 As Double FltF28 As Double FltF29 As Double FltF30 As Double FltF31 As Double IntV0 As Double IntT0 As Double IntT1 As Double IntT2 As Double IntT3 As Double IntT4 As Double IntT5 As Double IntT6 As Double IntT7 As Double IntS0 As Double IntS1 As Double IntS2 As Double IntS3 As Double IntS4 As Double IntS5 As Double IntFp As Double IntA0 As Double IntA1 As Double IntA2 As Double IntA3 As Double IntA4 As Double IntA5 As Double IntT8 As Double IntT9 As Double IntT10 As Double IntT11 As Double IntRa As Double IntT12 As Double IntAt As Double IntGp As Double IntSp As Double IntZero As Double Fpcr As Double SoftFpcr As Double Fir As Double Psr As Long ContextFlags As Long Fill(4) As Long End Type Private Type EXCEPTION_POINTERS pExceptionRecord As EXCEPTION_RECORD ContextRecord As CONTEXT End Type In your Workbook_Open event, switch on the unhandled exception filter: SetUnhandledExceptionFilter(AddressOf UnhandledExceptionFilter) In your Workbook_BeforeClose event, remember to switch off the unhandled exception filter: SetUnhandledExceptionFilter 0& In your unhandled exception filter, you can turn a GPF into a normal VBA error and then trap it with your normal error handling: Private Function UnhandledExceptionFilter(ByRef ExceptionPtrs As EXCEPTION_POINTERS) As Long Dim Rec As EXCEPTION_RECORD, ExceptionText As String 'Get the current exception record. Rec = ExceptionPtrs.pExceptionRecord 'If Rec.pExceptionRecord is not zero, then it is a nested exception and Rec.pExceptionRecord points to another EXCEPTION_RECORD structure. Follow the pointers back to the original exception. Do Until Rec.pExceptionRecord = 0 CopyExceptionRecord Rec, Rec.pExceptionRecord, Len(Rec) Loop 'Translate the exception code into a user-friendly string. ExceptionText = GetExceptionText(Rec.ExceptionCode) 'Turn Win32 error into normal VBA error VBA.Err.Raise Rec.ExceptionCode, 'ExceptionFilter.UnhandledExceptionFilter', ExceptionText End Function To get the exception text, complete the following function: Private Function GetExceptionText(ByVal ExceptionCode As Long) As String 'This function receives an exception code value and returns the 'text description of the exception Select Case ExceptionCode Case EXCEPTION_ACCESS_VIOLATION GetExceptionText = 'Access violation' Case EXCEPTION_DATATYPE_MISALIGNMENT GetExceptionText = 'Data type misalignment' ...... ...... Case Else GetExceptionText = 'Unknown (&H' & Right('00000000' & Hex(ExceptionCode), 8) & ')' End Select End Function Once you're able to trap the GPF, you might then be able to figure out whether it's related to VBA code or whether it's something internal to Excel. HTH, Mark ---- Author of 'Comprehensive VB .NET Debugging' http://www.apress.com/book/bookDisplay.html?bID=128
Wed 24 Sep | Dylan Bruzenak | I am the coder that Dustin mentioned was working on the project. Thanks for all of the suggestions, however, the bug remains undefeated. After fruitlessly testing out some of your suggestions this morning I spent the rest of the day narrowing the bug down to the fewest possible lines of code. I've got it down to the point where I can be reasonably sure that it is something simple. The code is just too sparse to be anything but a simple error or an MS error. If it were an MS error, someone should have mentioned it somewhere, right ? For those interested in attempting to replicate it, the code follows: -da.bas- Sub Main() dim i as Integer Dim nctr As New NCTrackingReport for i = 0 to 1000 nctr.produceSalesReport next end sub -NCTrackingReport.cls- Public Sub produceSalesReport() Dim wbBook As Workbook Set wbBook = Workbooks.Add wbBook.Close False Set wbBook = Nothing end sub I've put a watch on wkBook and it is getting set to nothing. My watch on workbooks indicates that close is working as well, and a copy is not getting left inside the collection. I am running this on a p3 800 with 128mb of ram and win98 se 2 (4.10.2222 a). All the code is in excel 97 SR 2 - although, as Dustin mentioned, we have tried a variety of systems. Still haven't retried since narrowing it down though. Another note: Main() is called directly from a command button on a work sheet. This is not a data error.
Wed 24 Sep | Dylan Bruzenak | Oh yeah, it fails at a random number of iterations(depending, I suppose on system resources).  It is usually around 300, although it managed to hit 1400 repetitions before I removed all the range code.  Strange that removing code made it worse...
Wed 24 Sep | Dylan Bruzenak | And yet another addendum:  After removing half of the range code it went from 17 iterations to 200, and removing more slowly moved it up to around 1400, until I removed all of the range code, at which point it dropped back down.  Chaos theory anyone ?
Wed 24 Sep | Rick | You're creating 1000 new workbooks, each with 3 worksheets? Do you really need that many workbooks? Or do you just need a bunch of sheets?
Wed 24 Sep | r1ch | I tried out your code on Excel 2000 on Windows XP Pro, but I couldn't reproduce your problem.  I still suspect that it may be some kind of garbage collection problem in VBA - if you add a delay into the loop (maybe even doEvents would do) does that help?
Wed 24 Sep | Dylan Bruzenak | I pulled a relatively late night tonight and found a work around for the bug(I hope). Instead of creating that many worksheets, I just create one and then clear and rewrite it, stopping to save out for each report iteration. The code I inherited was creating individual workbooks, and I got stuck in that mentality. Sometimes you have to be a little tired to see the light. I told it to output 10000 reports before I went home for the night, which should be a reasonable amount of overkill. If it makes it through that I should be homefree. 1000 is just an arbitary number I chose to force it to fail - since I removed all the data I had to increase the work load to generate the error. Once I could guarantee the occurance of the error I could test fixes for the least number of lines, and narrow it down to the specific cause of the problem. Once I had that, I could start thinking about work arounds. Before I removed the data it failed after 17 reports. Delays didn't help at all - neither did shutting down excel manually and restarting it between reports. DoEvents had no effect. Something about the creation code leaves a memory footprint. I found a few other people on the internet who were having this problem, but no direct solutions. It seems to only crop up in certain absurd cases. A very odd bug. I read some things on Microsoft's site that indicate that some of this, at least, is excel 97 specific, so let's hope the work around cures the 2000 problems as well, otherwise I will have to go back to basics on that OS.
Thu 25 Sep | Albert D. Kallal | I was going to try this yesterday...but had to run out for dinner and lots of fun. My first try it ran OK from the VB IDE. I then placed a button on the excel sheet, and got the out of memory. So, it is some UI refresh problem. Next thing I tried was putting in the old DoEvents trick. Sure enough, it now works. If you add a doevents, then you can run to 2000 times no problem. Try: Public Sub produceSalesReport() Dim wbBook As Workbook Set wbBook = Workbooks.Add wbBook.Close False Set wbBook = Nothing DoEvents End Sub I am right now again in a hurry...but You might also just turn off the screen refreshing (don’t know off the top of my head how to do that). Anyway, the DoEvents will work, but does slow the loop down. I am guessing that some interface update stuff (garbage collection) don’t occur in that loop unless you let Excel grab a gulp of air each time. This is not the first time I seen DoEvents fix trouble like this. (tested on a a97, sr2b, and winME box, 2000 inters each time). Albert D. Kallal (MVP – Microsoft Access) Edmonton, Alberta Canada kallal@msn.com http://www.attcanada.net/~kallal.msn
Thu 25 Sep | DJ | Application.ScreenUpdating = False will turn off screen updates - but probably still need the DoEvents
Fri 26 Sep | Dylan Bruzenak | I tried those two things, and while they may work on the sample code I provided, they do not work when I hook the rest of my statements up. That was one bug out of 3 that I have identified. Come monday I will make sure - but I was able to run through all my reports without a hitch at the end of the day today by removing two lines of code that appeared in several places in my code: range(somenumber, somenumber2).font.bold = true and range(somenumber, somenumber2).ColumnWidth = someothernumber With actual reasonable numbers for the somenumbers, not variables. Very, very strange. I am going to try doing the formatting once somehow instead of for every report. Anyone know if there is a way to construct aggregate ranges ?
Fri 26 Sep | Dylan Bruzenak | The 'that' I refer to in my above statement is the workbook error.
Who pays for unemployment? | Tue 23 Sep | gruntled former employee
Ive been unemployed for a while now, and Im wondering how much my former employer actually saved by letting me (and others) go. Adding up the cost of the severance package, the cost of the outplacement firm they hired, and the unemployment insurance, they actually paid quite a bit to laid me off. Add to that, when the economy picks up, they will incur significant hiring and re-training costs. So it would seem that there is a very long payback period for the cost of a layoff. Im curious whether any economists have studied this. The one thing Im not certain of, however, is how much the former employer has to contribute toward unemployment benefits. I know the state and federal governments pay a large part of it, but what % is the former employer responsible for?
Tue 23 Sep | Anthony Rubin | In Illinois employers contribute to unemployment while you are employed.  I'm not sure that they pay anything extra when someone is let go and I don't think the government ends up paying very much of your unemployment at all.
Tue 23 Sep | GiorgioG | Funny though how you still have to pay income taxes on unemployment benefits eh?  Considering they're essentially being paid by you while you're employed.
Tue 23 Sep | sell out | GiorgioG, The Truth has no place in this discussion of American taxes and subsidies. You know better than that.
Tue 23 Sep | DJ | Up here in Canada, its the same, the employer and the employee both contribute to the emiploment insurance fund while you are employed. When you are let go the employer doesn't have to contribute for you any more, therefore saving them money.
Tue 23 Sep | apw | 'Up here in Canada, its the same, the employer and the employee both contribute to the emiploment insurance fund while you are employed. ' Ha Ha Ha....another vicitm of the ole 'Your employer is paying half of your unemployment insurance' liberal propaganda BS... You pay it all....it only appears that you pay half...In the US I think the tax is 13% or 15%. Half of which appears to be paid by your employer.... NOT...you just make that much less!!! I'd rather have 13% or 15% higher salary and self 'insure' than let the gov't do it.... What a scam....
Tue 23 Sep | apw | oh, my bad...that might be Social Security...which is still more of the same crapola...
Tue 23 Sep | anonymous | Also, your employer's unemployment payments depends on claims filed. So, your ex-employer will challenge your unemployment claim if they can. (Exact rule varies by state.) There is a trick some people use. If you have a high-turnover business, you keep closing and re-incorporating. This way, you get a clean slate for unemployment premiums, as you're always paying the rate for a new business.
Tue 23 Sep | Alyosha` | In the US, unemployment is paid by the employer as a payroll tax (up to a certain limit per employee) according to a formula which varies from state to state, but somewhere around 2% of the employee's salary. When the employee is laid off, the employer no longer needs to pay the unemployment for that employee, but its unemployment tax rate will increase for the next year on the rest of its employees. There are a couple reasons why the US does not privatize social insurance the same way that, say, auto insurance is privatized: * Stability: the private market worships efficiency over every other human virtue. Efficiency means lowered premiums in many cases, but it also will means a larger number of business failures, defaults, bankruptcies, denied claims, and in the end, consumers being screwed. When this happens in the auto insurance industry, it's painful; but when people's lives and families are on the line, it's tragic. * Availibility: the purpose of any insurance scheme is to spread risk over a larger populations. This means that some will end up paying much more into an insurance plan than they draw out, and others will take out much more than they put in. If citizens were able to self-select their insurance, premiums would be outrageously high for the people that need it the most, leading to the collapse of social insurance.
Tue 23 Sep | Gary Sincick | In Oregon, employers pay a payroll tax on the first $26,000 of wages for each employee.  The tax rate varies from 1.2% to 5.4%, depending on the number of claims filed against the employer.  New employers start out at 3.1%.  The payroll taxes are paid into an Unemployment Insurance Trust Fund, out of which UI benefits are paid.  UI benefits come entirely from this fund.  The fund is sometimes used for other purposes as well, such as providing employers subsidies to create entry-level positions.
Tue 23 Sep | flamebait sr. | To expand on Alyosha's points, things like unemployment are generally things that people can't necessarily be relied upon to plan for. Also note that CEOs and middle management also pay for unemployment, even they are generally the ones doing the laying off. Furthermore, unemployment often comes in waves. The last thing the insurance companies would have wanted in 2001 was to have private unemployment insurance added to the mix of all of the other things they needed to pay out. I mean, overall, no economic system is 100% capitalist or 100% socialist. The US has never had a 100% capatilist economic system. It's all a game of where you draw the line -- X% capitalist and 100-X% socialist.
Tue 23 Sep | T. Norman | Making employers foot all or most of the burden for unemployment also makes more sense than private insurance, since the employers are the ones deciding to lay people off, and the more they layoff, the more they pay.
Wed 24 Sep | no name | apw, you currently work for X local currency units. Are you seriuously suggesting that if the requirement for your employer to pay into unemployment insurance for you was to go away that your employer would just give it to you?
Wed 24 Sep | www.marktaw.com | Let's flip it around. Do you think that employers kept salaries the same when they started having to pay unemployment insurance?
Wed 24 Sep | no name | I have no idea, but apw wants to go in one direction so that is the direction he has to consider.
Wed 24 Sep | apw | I would contend that I would have a greater probablility of getting a higher salary if my 'employer' wasn't forced to pay tax for unemployment/social security. Hypothetical situation: I'm negotiating a starting salary. I'd really like to make $55,000. But the employer can't budge over $50,000. WHY? Cause they have to pay and additional 7.5% ($3750) for Social Security, and we'll say 2% ($1000) for unemployement. Not to mention the 7.5% that I pay into Social Security. I'd rather have the possibility of taking home an additional $8500. It's not that hard to save up 5 or 6 months of expenses if you happen to loose your job....if it is then you need to adjust your lifestyle.
Wed 24 Sep | Frederic Faure | Considering the job market, changes are that if the unemployment tax is gone, employer will just pocket the difference :-)
Wed 24 Sep | sedwo | apw, Considering the state of the level of debt that most people carry with them, and that people are usually very lousy with money (hence their debt); E.I. controlled by the government is better for them. What they can't touch, they can't spend right away. To my knowledge, if you are a contractor or someone self-employed, you have the 'option' of having your client company do the tax work for you, or you can just get the whole lump sum and deal with it yourself. I'm currently not confident in my tax work, so I let others do it. But that might change in the future.
Wed 24 Sep | apw | Yeah I guess it's always better to have the gov't control your life.....financials, health, retirement, education, liberty.
Wed 24 Sep | mackinac | In the current economic situation I might expect an employer to keep any savings it gets by not having to pay unemployment taxes. Somewhat over a year ago my employer had a 10% salary cut for the entire company just so they could keep everyone on the payroll. (A year later they gave that up and laid people off anyway). A company in that kind of situation would almost certainly keep every saving they could get. But the economy is dynamic. There have always been cycles and it is reasonable to expect that conditions will pick up again. As the job market turns more towards a sellers market salaries will rise. If unemployment insurance fees, FICA taxes, and any other employer paid fees were suddenly eliminated, any specific company could just keep the savings, but they'd find themselves competing for employees against other companies that also have more money available. The more important question to ask concerning the effects of such a policy change is: would the fraction of production going to pay labor vs the fraction going to investment change in the long term. I expect in the long run the ratio would tend to be constant, but don't have anyway to prove it. The only thing we can say with some certainty concerning the current system is that it reduces the employee's choices. Some people think that is a good thing. It seems to be especially popular among politicians.
Wed 24 Sep | RocketJeff | The problem is that there are plenty of stupid people who won't (or are incapable of) saving 4-6 months pay for when they are unemployed. As a society, we won't just let these people starve to death so the rest of us pick up the cost of their stupidity. No matter what, we all are going to pay for it... Unemployment insurance is a way of funding this. It also makes sure that employers who do have a larger turn-over pay more for it. Social Security is the same way (can't let old people who were incapable of saving a dime their entire lives starve to death either). In a perfect world, people would be responsible for themselves and we wouldn't need Unemployment or Social Security. Or, in a different perfect world, we'd let people actually suffer the results of their short-sightedness.
Wed 24 Sep | apw | I think the problem here is benefits vs law Employer pays a portion of your health care - Benefit Employer pays half of your Social Sec - Law Employer matches 401k - Benefit Employer pays emp insurance - Law You pay the other Social Sec - Law I don't consider the 7.5% that I pay into SocSec and the 7.5% that the employer pays a benefit.... it's forced. I already contribute 15% of my gross to 401k....I'd also like to do what I see fit with the 15% the gov't forces me to pay. Imagine what you could do with 15% of your salary over 30 years? Certainly much more than whats its currently doing in Soc Sec. These programs promote the stupidity of not taking care of ones financial well-being.
Wed 24 Sep | no name | Frederic is spot on. In fact, it being the capitalist thing to do they will always try to screw you down to the last penny. That's why them paying part of the insurance has to be a legal obligation.
Wed 24 Sep | no name | RocketJeff - I guess in the first of your perfect worlds everyone would need to earn enough that they could afford to save.
Wed 24 Sep | Fernanda Stickpot | Yup. Let's see, I'm hopeless with money... saving 10% of my income each month, it will take me 10 months to save 1 month's income, 30 months to save 3 months' income, 60 months to save 6 months' income. In other words, 5 years. Dear oh dear! Why can't I do this! What am I wasting my money on! Let's see... 33% is going on repaying my professional development loan. 5% is going on income protection insurance, in case I get so sick that I can't work for extended periods of time. 10% is going into a retirement fund (and I know full well this should be 33%, but I just don't have the backbone). That makes 48% of my income, and I earn the national average. Add another 10% to save for an emergency fund, and that makes 58%. Oh dear! I am too decadent and feckless to live on 42% of the national average income! Shame on me!!! I'd better adjust my lifestyle. Let's see what it says here in this handy guide, 'five ways to smarten up and stop being so decadent and feckless, you idiot': 1. Don't drink so much beer. Beer costs money. Well, in order to drink less beer, I'd have to drink SOME beer in the first place, which would be quite a sacrifice because I'm a teetotaler. Another case of my not having the gumption. 2. Don't buy your lunch, brown-bag it. Bought lunch costs money. Ah! I have been using one of those freezy insulating bags to carry my lunch. I will just run down to the 24-hour Discount Brown-Bag Warehouse and equip myself wi