last updated:23 Mar 2004 11:13 UK time
Joel On Software Discussion Forum
JOS Statistics - Recent Comments
(Comments added for week ending Sun 21 Mar 2004) | View Other Weeks
Can/Do *good* software managers write code? | Sun 21 Mar | hoser
* Your boss, is he/she a good manager? Is (s)he a good software engineer, respected for their contributions in terms of code and ingenuuity? * Does (s)he contribute code to the product base? * Is it possible for a software engineering manager to contribute significantly to the software, or should (s)he spend his (/her) time managing? * Should a good manager be expected to contribute to the code base? You thoughts, your experiences? Thanks!
Sun 21 Mar | K | If he's a technical manager, yes.  Good managers have a clear vision for their product and unambiguous requirements for the people they manage.  What activity satisfies that better than writing good high-level code that imposes the minimum number of constraints on subordinate code?
Sun 21 Mar | Dario Vasconcelos | Also, writing code makes it much easier to separate the hype from the useful. On the other hand, having the commitment to contribute to the codebase might be harmful, because a) The programmers will spot any tiny non-perfect code and mock it, and b) It could hurt deadlines, in the very rare cases where there's an actual need for management. Of course, it all depends on the type of project, the bossing style of the manager, and his/her relationship with the developers.
Sun 21 Mar | PDF | I am a manager/programmer myself. Whether I am good or not I will let my staff decide ;-) Keep in mind I only ever have one or two part time programmers under me, so I am forced to program much of the time. K hit the spot: for me to help my guys and girls, I like writing code that sets the standard and shows them what I want. If nothing else it gives me the satisfaction of producing something tangible in the short term (new feature, bug fix etc) whereas managing tasks and people have more subtle, and maybe less quantifyable, results. It *is* possible to both code and manage, but the two often tug at each other. eg. often I want to code and fix bugs and other important jobs but simply don't have enough time to do it, because others rely on me to organise tasks, train, and pay them. Should managers code? If they can afford the time then why not. I would always put the management role as a higher priority than coding, since there is likely to be a number of programmers relying only one manager.
Sun 21 Mar | Philo | Do good building contractors lay bricks or cut 2x4's? Do good firefighting team leaders get on the hose? Do good conductors play an instrument? The answer in every case is 'no' They *can* do it, and they may on occasion, but as a general rule, they are not to be considered part of the productivity. Their job is to stay above the whole mess so they can keep an objective view. Philo
Sun 21 Mar | veal | Huh? A conductor that isn't a world class instrumentalist in his or her own right? Who? Which orchestra? [Veal pondered with Daniel Barenboim beautifully playing nocturnes by Chopin in the background.]
Sun 21 Mar | FullNameRequired | 'Do good firefighting team leaders get on the hose?' if its necessary :)
Sun 21 Mar | K | Philo, I think that's a bad comparison. You imply that any kind of 'writing code' is akin to the lowest-level tasks involved in the final execution of your plan. However, that's simply not true. If you're managing a technical project, you've got to know exactly what you want. For example, if I want my team to develop a Lisp interpreter for me, I could give them code as simple as: // 'in' will contain any number of S-expressions (see rfc blah blah) // e.g.: (+ 1 2 3 (sqrt 2)) // see http://blahblah for a list of functions that must be supported // write 'FormatExpression', 'Eval', and 'ReadSExpr' for me while(!in.eof()) cout << FormatExpression(Eval(ReadSExpr(in))) << endl; That's not low-level at all. That's not AT ALL like 'laying bricks' or 'grabbing the hose'. Although I think that an analogy to manual labor is fundamentally flawed in this case, what my example above equates to is something like the station chief telling his team to go to a particular address and put a fire out. That's a very simple idea. Tell your subordinates *exactly* what you want, and give them as much freedom as possible to give you what you want. Tell the firefighters to take a crew of five guys and the smallest truck, because it's a low priority job, or to bring the hazmat crew along because the fire's at a chemical plant.
Sun 21 Mar | Philo | 'Huh? A conductor that isn't a world class instrumentalist in his or her own right? Who? Which orchestra?' Sorry - I read the question as 'do software managers [normally] write code [in every project]?' i.e. Are they always in the IDE up to their elbows helping out the team. I didn't read it as '*can* good managers write code' From my point of view, when the conductor is actually doing his job conducting, then he's not down in the pit playing an instrument. Philo
Sun 21 Mar | mb | This is an issue I'm working through right now... thankfully, our team is flat hierarchically and most people can do a lot on their own. But I really like this quote: 'Should managers code? If they can afford the time then why not. I would always put the management role as a higher priority than coding, since there is likely to be a number of programmers relying only one manager.' And Philo, what do you think of Ray Charles?
Sun 21 Mar | K | PDF, just to be clear, I think that a technical manager writes code *precisely* so that task organization is obvious and unambiguous. When I say that a technical manager should write code, I don't mean that, you know, he says 'OK I'll handle frustrum culling and you write the rasterization system.' What I mean is that he writes code to specify what he wants and to describe how concerns are to be separated. For example: while (!Console.eof()) { UI::Window* pWnd = new UI::ApplicationWindow('Tetris 5353.2422b'); GFX::World* pWorld = new GFX::World(pWnd); GFX::Camera* pCamera = new Camera(x, y, vec); GFX::Mesh* pSurface = new BezierSplineSurface(ctrlpts); pWorld->Attach(pSurface); pWnd->Draw(pWorld->Render(pCamera)); Lang::Parser* pParser = GenerateParser('E ::= \'(\' E \')\' | E op E | atom; op ::= ...'); Eval(pParser->Parse(Console)); } Then I email Bob, Jane and Tom, and tell them which namespaces/classes I want them to implement. Of course, this example is oversimplified (it leaves quite a bit of necessary detail out), but hopefully I've made my point.
Sun 21 Mar | K | >From my point of view, when the conductor is actually doing his >job conducting, then he's not down in the pit playing an instrument. Of course not, but the conductor communicates his desire through the common language of musical notation and so on. He writes code.
Another take on SCO | Sun 21 Mar | Stephen Jones
Courtesy of the BOFH, and well worth reading. http://www.theregister.co.uk/content/30/36116.ht
Sun 21 Mar | Stephen Jones | Whoops. cut and paste went wrong. Here's the correct link, I hopew http://www.theregister.co.uk/content/30/36116.html
A halfway decent online backup | Sun 21 Mar | anonymous
Ive almost given up looking for a halfway decent online backup service. Basically, something that an individual can afford (read, less than $250/yr), yet doesnt do something stupid (like Connected.com, which, if you erase a file of your drive, assumes you dont want it anymore, and so erases the backups of it as well!), and doesnt look like it was set up by a couple of drunken hackers. Anyone with any experience/recommendations?
Sun 21 Mar | Philo | $250/year is less than $25/month. Your data is worth less than $25/month? Philo
Sun 21 Mar | . | Set up a P2P server, setting the root of the archive to the root of your directory structure.
Sun 21 Mar | Joe | > Your data is worth less than $25/month? If my data was worth $1,000,000/month it wouldn't follow that I'd want to spend $1,000,000/month on backup software.
Sun 21 Mar | Tony Edgecombe | I have been using IBackup at http://www.ibackup.com for a couple of months now and am really pleased, less than $10 a month for half a gig of storage space.
Sun 21 Mar | r1ch | Um, connected.com's file retention policy:- The most recent 10 versions of each file backed up are retained on the Data Centers for 90 days. Files you delete from your computer are retained on the Data Centers for 90 days. Files you de-select from your backup set are retained on the Data Centers for 7 days. That sounds reasonable to me, although some level of configuration would be nice.
Sun 21 Mar | anonymous | Err... well, I never would have guessed it, but the Slashdot affect has taken over this board as well. Four of the five responses were primarily bickering. I don't want to be number five, so: Thanks, Tony, for the recommendation of IBackup. My concern with them is that their site is so poorly designed, and makes it so hard to find real info, that I'm a bit concerned about their product. Things like: How many versions do they store? What happens if I delete a file locally? Can they back up open files? Can they burn a CD? are almost impossible to find. (Maybe there buried in that annoying flash movie... someone should send these guys a link to alertbox.com) Anyone have any expereince with http://firstbackup.com ? Their site seems to have a lot of detailed info. My only concern is that they are obviously a couple of offshorers who didn't think to hire a native English speaker proofreader, and we all know that sometimes those companies don't last that long.
Sun 21 Mar | Robert Jacobson | I've used both XDrive and IBackup for my notebook, and they're both OK. IBackup is very unobtrusive -- just use the Windows client app to mark what folders you want backed up, and it performs the backups automagically in the background. The web interface (for downloading or deleting backed-up data) is fairly good. My only quibble is that the Windows client app is rather clunky -- it feels like an old Windows 3.1 application. I never notice when it's performing the backups, other than noticing that my CPU utilization is a bit higher than normal. XDrive has more features (like the ability to use drag-and drop copying to/from your archive from the Windows desktop), and feels a bit more polished. The downsides are that by default, it only backs up your data once per week, and when it's doing the backup it opens up a console window -- which I found annoying. Overall, I prefer IBackup for basic set-it-and-forget-it backups, but both are fine. My advice is to compare several different services using their free trials.
Sun 21 Mar | Robert Jacobson | Oh, regarding your questions, IBackup will retain files that you've deleted.  (I just checked my archive, and see files that I deleted from my notebook months ago.)  Don't know about your other questions.
Sun 21 Mar | Cristian Cheran | I did a lot of research on this topic (online backup) and the best thing that i have seen is Novastor's. This is the online service: http://services.online-backup.com/index.asp and this is the product (client&server) that you can use on your own server: http://www.online-backup.com/index.asp Speaking of Connected, I cannot belive that such a hack was considered the market leader- I have even saw it getting 5 stars from PCMag. That half-baked software was doing a complete HDD scanning everytime it was started. Highly unrecomended!
Sun 21 Mar | Cristian Cheran | From the screenshots of firstbackup I can tell you that they are using Novastor's software (NovaWEB). So at least on this side you can be sure of- it doesn't solve the reliability and availability of their servers & network though.
Witty Worm , Black Ice, and Product Liability | Sun 21 Mar | Dennis Atkins
So theres this witty worm that takes advantage of a security hole in Black Ice Defender to get into a computer and then ERASES THE HARD DRIVE. http://story.news.yahoo.com/news?tmpl=story&cid=1804&e=6&u=/washpost/a11310_2004mar20 Yep, we finally have it folks - the mythical virus that erases the hard drive has at last been seen. Now, I think that the folks who bought Black Ice Defender thinking it was a firewall that would PROTECT them from viruses are very shocked right now looking at their erased shell of a computer realizing that the very same program WEAKENED their security. I predict that this will be the first software product liability suit that will be won. And I predict that once won, the precedent set, it will open the door for a flood of lawsuits against every imaginable ill. Say goodbye to the software industry. The good news? The companies that outsourced the entire company may find themselves, being located overseas, immune to the lawsuits!
Sun 21 Mar | Prakash S | Dennis, I am pretty sure Black ICE would be denying all kinds of responsibilities in their EULA... FWIW: I have heard highly of BlackICE.
Sun 21 Mar | _ | Mmmh, BlackICE ... good name, any Gibson reader will instantly want to buy that product =)
Sun 21 Mar | ? | But then, a lot of people don't think that highly of Steve Gibson either. eg: http://grcsucks.com
Sun 21 Mar | Name expired | ? : I think _ refers to the readers of William Gibsons books.. ? http://www.antonraubenweiss.com/gibson/gibson0.html
Sun 21 Mar | ? | I assumed that he was talking about Steve Gibson: http://www.google.co.uk/search?sourceid=navclient&ie=UTF-8&oe=UTF-8&q=BlackIce+site%3AGRC%2Ecom He's a self proclaimed internet security expert with a thing about BlackICE
Sun 21 Mar | veal | What would a non-self-proclaimed security expert be like?
Sun 21 Mar | no name | Veal: http://www.counterpane.com/schneier.html
Sun 21 Mar | . | I've just bounced around the grcsucks site a bit. As the site name suggests, it feels like the weblog of a sarcastic 16-year-old who has merely directed his angst at Gibson. Perhaps it's a crush? I enjoyed for instance http://grcsucks.com/intro2.htm wherein he calls out Gibson's 'as far as we know' qualifiers as somehow revelatory while doing the same just two comments back.
Sun 21 Mar | www.marktaw.com | I'm still waiting for them to hack Nortons website/virus definitions & spread a virus through AntiVirus software. It would be the ultimate irony, though this comes close. Now the question is... Is Black Ice + Another Firewall twice as good (i.e. the other firewall blocks the access to Black Ice) or twice as bad?
Sun 21 Mar | veal | Yes, I really like Schneier's work. My question was sarcastic and rhetorical. I get bent out of shape by the term 'self-proclaimed' and the false underlying implication that the term has a meaningful opposite.
Sun 21 Mar | no name | What about "peer-proclaimed"?
Sun 21 Mar | _ | Yeah, William Gibson, sorry. BlackICE is security software from the Neuromancer-novels. ICE stands for 'Intrusion Countermeasure Electronics' if memory serves, and black ICE is illegal software that will kill the person attempting a hack via neural feedback (Gibson was among the first to foresee virtual reality, in his vision people browsed it by plugging their brains into 'decks').
Sun 21 Mar | snotnose | > the very same program WEAKENED their security. Um, no. Had the author wanted to, s/he could just as easily trash the drives of those with no software firewall. The author just had to jump through extra hoops to only kill black-ICE customers.
Sun 21 Mar | Brian | > Yep, we finally have it folks - the mythical virus that erases the hard drive has at last been seen. From what I've read, it 'just' overwrites the boot sector. Data isn't actually lost, but average Joe won't be able to get it back himself.
Sun 21 Mar | Dennis Forbes | 'Had the author wanted to, s/he could just as easily trash the drives of those with no software firewall. ' What are you talking about? This worm specifically exploits a vulnerability in the aforementioned security products - if you don't have the security product installed, you aren't vulnerable to this specific fault. http://www.eeye.com/html/Research/Advisories/AD20040318.html
Sun 21 Mar | no name | Re describing Gibson as 'self-proclaimed' expert, and the implied devaluing, it's worth noting that most of us know who he is, and of his work, and that no-one seriously challenges his work. (The script kiddie's web page doesn't count. I recall Gibson took one batch of script kiddies to the cleaners when they tried DOS'ing him.)
Sun 21 Mar | www.marktaw.com | William Gibson isn't a self proclaimed security expert, he wrote Neuromancer on a typewriter. (ok sorry, I couldn't resists)
Sun 21 Mar | veal | And in the same vein on Friday: Flaw stymies Norton Internet Security http://news.com.com/2100-7355_3-5176442.html When it rains it pours for users of the popular platform, no?
Autotrebuchetination | Sun 21 Mar | Dennis Atkins
I just cant resist... http://www.trebuchet.com/articles/ron/trebuchet.html Fortunately this experiment did not result in a hole in anyones head, although several people who tried to duplicate his work seriously injured themselves and one died.
Sun 21 Mar | Nigel | Any story that mentions "consulted two mechanical engineers who said it wouldn't work, but tried it anyways" has GOT to be a good one.
Sun 21 Mar | www.marktaw.com | On one page: 'If you do build one, I'd love to hear about it, whatever size it is.' And on another: 'If you endeavor to repeat a similar stunt, YOU COULD BE SERIOUSLY HURT OR KILLED! DON'T DO IT.'
Sun 21 Mar | Eric Debois | Hm, isnt the trebuchet the design with the projectile in a sling though?
Sun 21 Mar | Philo | Yep. I actually think he built a catapult. Riding a trebuchet would most likely be fatal. Philo
Avoiding namespace collisions in C libraries? | Sun 21 Mar | The Great Minneapolis Sanitation Worker Riots of 1978
Hi. Im writing a C library and I was wondering how far I should go to try to prevent namespace collisions. Im of course going to use a module name prefix (probably about three to four letters long) for each non-static function, but I was wondering what I should do for preprocessor macros. Im going to have quite a few of them, and I know redefining a macro results in a warning with many (e.g., GCC) compilers, and some of the #defines Im going to be using will be quite short (some even just two to three characters long). Would you recommend extending the module namespace prefix to macros too? Do you prefer one style over another (e.g., for libpepsi, CAFFEINE_FREE instead of the safer PEPSI_CAFFEINE_FREE)? (This would be in addition to any category-specific postfix or suffix Id add to the macro name, like ERR_* for error codes or CLR_* for colors, resulting in, for example, PEPSI_ERR_OUT_OF_FRUCTOSE.)
Sun 21 Mar | K | If the macros are defined in header files, pseudo-namespace information should be included in them (especially for two or three letter macro names!).  I'm very paranoid about name conflicts, especially because I hate having some other programmer come to my desk saying, "hey I'm using your library but it doesn't work with X, so I looked at your header file and you just need to make this little change."
Sun 21 Mar | Insert half smiley here. | Yes. Use prefixes for everything. Avoid the temptation to make names 'helpfully' short, and don't worry too much if it looks a bit ugly. (The names can get a bit long, but in my experience that doesn't matter *too* much, unless you're trying to squeeze lots into a line. Unless you're writing code that does some common formula, that probably isn't a good idea anyway.)
Is the VB runtime installed by default on XP ? | Sat 20 Mar | Bella
ie: What Win OSs can run a VB6 .exe without any "setup" installation ? 
Sat 20 Mar | Stephen Jones | Wouldn't a lot depend on the runtime you are using?
Sat 20 Mar | DJ | The VB6 run-time shipped with WinNT, Win 2000 and Win XP But it really depends what components you are using. If you are just using the basic controls and nothing else you may be OK.
Sat 20 Mar | Brad Wilson | 'The VB6 run-time shipped with WinNT, Win 2000 and Win XP' Via a time machine? Windows NT 4.0 was shipped in 1996. The current version of Visual Basic at that time was 4.x... VB6 was 2 years away. Perhaps it shipped with a service pack, but not with the OS itself. Besides, the Visual Studio 6 family itself has had service packs (5 of them, if memory serves), and specific bugs may have been fixed with those later versions of the VB6 runtime. So it's not necessarily enough to require the VB6 runtime.
Sat 20 Mar | Aaron F Stanton | There's even an updated version of the runtime (post SP5) that shipped with Windows 2003 Server.  It can be downloaded by itself.  I don't have the link handy though, sorry.
Sat 20 Mar | Bella | Can anyone test if a non-VB6 win2k build can run a "stock" VB6 .exe ?
Sat 20 Mar | Philip Dickerson | The Visual Basic runtime (msvbvm60.dll) is included in the following Windows operating systems. Version 6.0.82.44 included with: Windows NT 4.0 SP4, SP5, SP6, SP6a Version 6.0.84.95 included with: Windows 2000 (Server, Professional, and Datacenter editions), Windows Millenium Edition Version 6.0.92.37 included with: Windows XP Home, Windows XP Professional Version 6.0.96.90 included with: Windows 2000 SP4, Windows Server 2003 Sorry, I can't run the test that you ask for, all my systems already have Visual Studio installed.
Sun 21 Mar | ICBW | Could you post where you got that info from? I just had a problem with a Windows 2000 Professional machine that had an old version of comdlg32.ocx installed on it and am wondering how that could have happened.
Sun 21 Mar | Philip Dickerson | The information on which Microsoft products or operating systems include a particular version of a DLL is available at: http://support.microsoft.com/servicedesks/fileversion/default.asp Enter a DLL or OCX file name, such as 'msvbvm60.dll' and click 'Submit'. This will produce a list of all the versions of the DLL, and each version has a 'More Information' link. Clicking on a 'More Information' link displays a popup with a list of Microsoft product releases (such as Visual Studio 6.0 SP5, Access 2000, Windows 2000 SP4, etc) that include that specific version, along with dates and other information. Note that non-Microsoft products can also install versions of many of these DLLs, but I don't know of any lists of DLLs installed by non-Microsoft products. A product installation is not supposed to replace an existing DLL with an older version, but there have been a few product installers that break this rule and overwrite a DLL with an older version (I can't think of such a product at the moment, but I have encountered this in the past).
Sun 21 Mar | ICBW | Thanks Philip, that was very helpful.
Questions about London | Sat 20 Mar | RP
Here in this forum Ive seen several expressions regarding the UK in general and London in particular that left me curious. So, what is Londons hire and fire mentality? While the name is self-explanatory, how does this relate in the real world? What does it really happen? What are UKs degree mills? Fake universities that simply dish-out fake degrees or universities so weak one cant expect to leave them with any kind of knowledge whatsoever? TIA RP
Sat 20 Mar | Tom (a programmer) | Sounds like a pair of loaded questions to me. Personally, I'm not aware of a hire and fire mentality... but I have just been with one company since I graduated 18 months ago. Likewise, I'm not aware of the UK having 'degree mills'. I am aware that UK degrees are often (but not always) shorter than European or American equivalents, especially a post-graduate level. But I wouldn't say you could judge somebody's knowledge based on where/what degree they did anyway. Care to expand on what you have heard?
Sat 20 Mar | Stephen Jones | A degree mill is a non-accredited university. You write send them a check and they will send you a nice piece of paper saying you have a Bachelors, Masters, or PhD with them. Some pretend to give you your degree based on your professional experience, so you send them a false or genune CV and that's it; others don't even bother with that stage. As I mentioned earlier the University of Michigan publishes a 13 page .pdf file which lists the main ones. I have some further documentation on them if you are interested. They can have an official base anywhere; in practise those that sell to US and Canadian citizens tend to base themselves in the UK or Europe, and vice-versa. You normally just need to open your junkmail folder to see hundreds of spam letters from them. Some would say that there are universitites where it would cause no lowering of academic standards if they posted you the degree when you applied and saved everybody the hassle of three years study, but that is another matter (and hell: if you spend three years getting pissed, stoned and screwed at college its called preparation for life, or networking or whatever, whilst outside college it's just anti-social behaviour).
Sat 20 Mar | deja vu | There is another aspect of a degree mill in that it aids illegal workers. Obviously, for citizens of countries that find it hard to get visas to the UK, enrollment at a degree mill means that you pay an amount and then have time to work someplace without irritating attendance requirements and so on. At the end of it, you earn money working and you also have a degree certificate. I don't think this is specific to London or even the UK, though.
Sun 21 Mar | Stephen Jones | You don't enroll at a degree mill. They normally work from a PO Box number or a shared office somewhere. In the Uk it is fairly common for foreigners to enroll in a course of study that enables them to work parttime and then work full time and scarcely ever turn up to class, but these institutions are recognized educational institutions. The fiddle of course has been tolerated for a long time. The hospitality industry, and other service industries in the UK rely on cheap foreign labour. The last hotel I stayed at in London had a solidly Romanian staff, apart from the night managers who were Indian.
Sun 21 Mar | Li-fan Chen | Wow, have the authorities in the UK try shutting these operations down? I mean it's hard to justify getting a few po boxes sealed, but to the industry it's a very bad thing if it helps under qualified coders to work on software that could keep someone alive or kill them.
Sun 21 Mar | Karl Max | I don't understand this. I'm assuming that both USA and UK have a list of accredited and 'proper' universities that are allowed to hand out degrees. Wouldn't it be trivial to compare the holder's university with this list and go, 'hmmm... this one's not there. He's probably not got a real degree. Deny him the work visa'? What am I missing?
Sun 21 Mar | Stephen Jones | in the Uk they come under the local Council's fair tradiing inspectorate. They can be fined a few thousand pounds, but still seem to be going strong. It's not too difficult to check if a university is accredited but some people don't bother; remember that degree mills set up false accrediting associations with their own web sites as well. The US News appears to have the most easily accessible list for the States. In the UK you are pretty safe checking up if the institution has an .ac.uk domain name, and I pretty well know all the UK universities anyway. What does confuse things is that there are branches of American Universities in Europe and the Middle East that are accredtied and have impressive academic credentials. As I said; there are a load more of them based in the States than in Europe or the UK.
Sun 21 Mar | Stephen Jones | Incidentally, Kal Max, you're not getting the point about the work visas. What the poster was referring to was the habit of many "students" to enroll at a legitimate course with the intention of being able to work full time in some unskilled job.
Sun 21 Mar | RP | Actually I had the idea that degree mills were universities where you did attend classes but whose curricula and teachers were so weak that they had no industry reputation. You just spent three years there doing your thing and then got out knowing not much more than when you got in.
Open Source CRM? | Sat 20 Mar | Midwest Techie
Hello, Our small band of programmers has been in the business of CRM sales and implementation for a CRM software vendor. We have discovered a vertical niche for CRM that we think has some future promise. (By CRM we mean contact management, with features like workflow, Outlook integration, etc.) Wed use our current vendor, but they are dragging their feet on allowing us to create a version with a new interface , which would be necessary for this niche. (Its not like they are a big company like Peoplesoft or Microsoft, they are a small fry like us!) Anyhow, the question I have is this: Does anybody know of an open source base CRM package that we can use as a starting point to modify to fit our niche? Do the licensing of these allow for modification and resale? Im new to these ideas and would really appreciate the insights of this wonderful group! Jim
Sat 20 Mar | KayJay | http://sourceforge.net/projects/opensourcecrm/
Sat 20 Mar | gunga | Here are a few open-source CRM projects. Outlook integration will be a problem with most, for this you could try http://www.opengroupware.org/ http://xrms.sourceforge.net/ http://www.anteil.com/ http://crm-ctt.sourceforge.net/ http://www.hipergate.org/
Sat 20 Mar | Li-fan Chen | CRM would be a subset of this project, but you might be interested in the OpenACS project.
Sun 21 Mar | Midwest Techie | Hello, Thanks for your replies so far, I'm looking into those links. We're looking for a base product to modify and sell into the niche we've identified. Thanks again, and if anybody has more ideas, I'd be happy to discuss in further detail.
IT Document Repositories | Sat 20 Mar | Stevie Ray
i have been asked by my boss to create about 50 IT policies and Procedures. Everything from what to do when an employee is fired to an electronic use policy. Does anyone no of any services I can go to to get these docs that I can then change to fit our needs? Thanx Stevie
Sat 20 Mar | Philo | If you do find one, please post the link here. The only place I can think of to start would be an ISO9001 site - the ISO org might have templates or other companies might have posted something. Other than that, just search on the title of each doc and see what you find. Be advised there may be copyright issues involved. Philo
Sat 20 Mar | Nick | Try isoeasy.org. A list of their process documents (all contributed by a NASA group) can be found here: http://www.isoeasy.org/iso_9000_process_documents.htm If you're lucky you might be able to find 1 or 2 high level documents that will work for you. The problem you'll find is that every company wants to do things differently, so finding boilerplates might be difficult. Also, you might be better off searching for CMM or SPICE documents.
Sun 21 Mar | www.marktaw.com | A Google for Human Resources turns up the following Google Ads. Sponsored Links HR Courses Online eCornell brings Cornell University HR Certificate courses online. www.ecornell.com Complete Compliance HR Suite: HR Manual, Handbook and 200+ Forms. Online or MS Word www.hrnonline.com Instant Employee Handbook Updated, Legally Researched Word or Text format. Easy Edit Download www.instanthrpolicies.com Free HR Policies Samples and plain-English help, Practical tools and answers-Online HR.BLR.com Workforce: Human Resource Your source for HR Info Articles, tips, tools, & more www.workforce.com/ Human Resource Policies Research Enterprise Software. Free Reports, Info & Registration! www.KnowledgeStorm.com Absolute HR Solutions Affordable and professional prewritten HR policies & procedures www.absolutehrsolutions.com Free Employee Manual Download, print and go! Hundreds of powerful business tools. www.workplacetoolbox.com You may want to help make Google rich & do the search yourself.
Charles Simonyi is RICH! | Sat 20 Mar | Karl Max
http://www.forbes.com/maserati/billionaires2004/LIRVMOW.html?passListId=10&passYear=2004&passListType=Person&uniqueId=VMOW&datatype=Person Hes on the Forbes list. Anybody know hes worth *billions*?
Sat 20 Mar | Joel Spolsky | I told you Hungarian notation paid off.
Sat 20 Mar | Fred | Good one Joel :-)
Sat 20 Mar | GNU | He will be the first one punished for his EVIL DEEDS, Once the GPL revolution wins
Sat 20 Mar | Alex Chalucov | If his new gig at http://intentsoft.com/ ( http://news.com.com/2008-7343_3-5162264.html?part=rss&tag=feed&subj=news ) is successful, he could as well increase his net worth tenfold.
Sat 20 Mar | Nick | Anyone know how to pronounce Simonyi? Not knowing how to pronounce his name (or any others, for that matter) has always bugged me. As a side note, I came across this quote in an interview with him: 'I'll bet you that from ten feet away I can tell if a program is bad. I might not guarantee that it is good, but if it looks bad from ten feet, I can guarantee you that it wasn't written with care. And if it wasn't written with care, it's probably not beautiful in the logical sense.' (source: http://www.shamit.org/charles_simonyi.htm ) I just love that quote. Wouldn't that be a great first step in code reviews?
Sat 20 Mar | Kyralessa | Assuming it's standard Hungarian, it would be pronounced Si - mo - nyi The o is long, and the i's are like the i in machine: See - mo - nyee The ny is a bit harder; think of the 'Nyuk nyuk nyuk!' of the Three Stooges, perhaps.
Sat 20 Mar | no name | she-mo-ne
Sat 20 Mar | Joe On Software (Joe) | si - mon - ize
Sat 20 Mar | Sky Captain | Fuck off, cock-sucker.
Sat 20 Mar | MX | Charles was one of the early people at MS and probably has quite a lot of MS stock - that's why he's rich!
Sun 21 Mar | Simon Lucy | Elephant is right, it was more to do with hardware than software... The latter contributions anyhow.
Sun 21 Mar | Stephen Jones | --'was more to do with hardware than software.'--- Not at our age Simon :)
Beta Testers - What to do with them | Fri 19 Mar | Aussie Chick
What do you do with Beta Testers once you have them? Get them to sign a non-disclosure agreement? Get them to give you some details (name, age, university etc). But then what? Just give them a copy of the program and say email me if you have any problems/comments? Or do you give them a more sturucture process?
Fri 19 Mar | Aussie Chick | structured*
Fri 19 Mar | Insert half smiley here. | You should probably set up a web forum or something, because that way the testers will collate the bugs themselves by using the same thread. You can then gauge at a glance how many people are suffering from a particular problem.
Fri 19 Mar | Aussie Chick | I agree with that one, and am organising a discussion board for my site as we speak! thanks.
Fri 19 Mar | Martha | Definitely give them a place to report bugs, and make sure it isn't a black hole (such as just an email address). People like to check up on bugs they've submitted. What to ask for-- well, some sort of contact info would be good. You probably don't need their full name & address, just a first name and a working email. But you might want to ask about experience level, their preferred operating system, and other things that are relevant to the software being tested. You'll need to ask the lawyer-types about NDAs and other legalese.
Fri 19 Mar | Philo | Collect them and trade for valuable prizes? Philo
Fri 19 Mar | As400 | 'What do you do with Beta Testers once you have them?' Well, Microsoft trys to makes us buy a newer operating system every 3 or so years.
Fri 19 Mar | Aussie Chick | Philo, this is an interesting concept. Perhaps a website www.betatester.org swap, trade, share etc etc. Could be a very profitable venture... ----Seriously folks, do I just let the BTs loose with my program, or do I set some guidlines?
Sat 20 Mar | The Javanator | I say let 'em loose but make it clear they need to describe *exactly* what they did prior to running into any problems. Then again, you may want to tell 'em to 'spend 50% of your time testing features A, B and C, 30% on features D and E and the rest on the remaining features'. Make sure they test boundary conditions, i.e. for a group of checkboxes, make sure they 1) leave all checkboxes unchecked, 2) check all checkboxes and 3) check some but not all of the checkboxes. For entering numbers, have them enter lowest and highest values allowed, as well as numbers within and outside of the lowest and highest values allowed.
Sat 20 Mar | Florian Heine | Aussie Chick, What you do depends on what you expect these beta testers to find. If you want to use them as a cheap alternative to a real testing process, give you can try and tell them what to do. I personally wouldn't rate my chance of them staying on board though, as they will spend their time doing the same thing over and over again on different beta versions (This is hard enough if you are getting paid real money). The way I think about it, a beta test is for a piece of software that is already fully tested (ok, tested to the extent that seems reasonable in the light of resource and time constraints). The point for a beat test is to see what happens if 'real users' try and do real things with your software. If you give your users too much guidance, they will only redo tests that you have already done and not really add a lot of value to your product. A beta test is all about finding the guy who wants to doubleclick on something instead of choosing File > Open and makes the software crash.
Sat 20 Mar | Aussie Chick | Florian, thanks.
Sat 20 Mar | Christopher Wells | > as they will spend their time doing the same thing over and over again on different beta versions (This is hard enough if you are getting paid real money) The developer typically doesn't want to do this either: which is why they write automated tests (to do so-called 'regression testing'). I'd agree that the reason for beta testers is to give you 'the surprise factor': if you can tell them what to test, then you might as well be testing that yourself. One thing you might ask beta testers to do is 'click this button to run my automated test cases, and send me the results'. This is to run your tests on the beta testers' machine (which are running who-knows-what versions of various softwares and hardware).
Sun 21 Mar | ~ CycleBurner ~ | Aussie Chicken : What's the URL for your site ?
Sun 21 Mar | TheWeasel | Javanator - You describe what your own internal testing should be doing. Needless to say, your software should have passed this simplistic level of testing before asking a beta tester to look at it. The beta testers should be trying to use the software to do the job you want them to buy the software to help them do. IYSWIM. :-)
Sun 21 Mar | Aussie Chick | what does IYSWIM mean? the url for my site is http://www.calebsoftware.com having said that, the site is not up yet, only a jpg mockup of the site.
Sun 21 Mar | Joey the Bellhop | IYSWIM = "If You See What I Mean"
Cross-browser web development | Fri 19 Mar | Nick
Im finally getting around to putting up my own web site. (Im just setting up the structure at this point, so Im not posting a link. Sorry - the stub content is too cheesy :^)) When I look at it in IE it looks great, but in Firefox it blows. Im no great HTML/CSS whiz, so Im looking for some general advice. Right now there are a lot of nested tables, and I think thats whats giving me the problems. If I figure out how to get rid of tables and do all the layout with CSS will the cross-browser issues be minimal? If so, whats a good CSS reference?
Fri 19 Mar | MikeG | Here are some CSS links that I had bookmarked that proved useful (some are just reference sites): http://www.yourhtmlsource.com/stylesheets/ http://www.tijs.org/css/ http://www.csszengarden.com/ http://129.69.59.141/css1pqr.htm http://glish.com/css/ http://www.blooberry.com/indexdot/css/index.html Hope this helps Mike
Fri 19 Mar | Greg Hurlman | I'm no CSS guru, but I can confidently tell you that mainly due to IE's many layout bugs, CSS-only layout is a PITA when dealing with cross-borwser issues.
Fri 19 Mar | Ken McKinney | Unfortunately using CSS won't eliminate cross browser issues. Plus CSS positioning has a bit of a learning curve, renedered harder by those same cross browser dfferences. In my opinion it's worth learning if for no ether reason than you stand a chance of understanding your markup six months later. Using CSS or not You're much better off developing to a more stringent browser such as firefox and then fixing anything that doesn't work in IE. IE often 'forgives' invalid markup that won't display correctly on any other browser.
Fri 19 Mar | Burninator | My experience with CSS positioning and layout leads me to the following advice: Don't. It's a completely unproductive waste of time to even try wrestling with the multitude of quirks for each browser. Your best bet is to use CSS as much as you can, but stick with tables for page layout, etc because tables generally behave in a reliable, well-understood manner. Besides, the end user doesn't care how you implemented it. Of course, if you're just using CSS positioning as an exercise in self-education that's different. In a business setting though, it's more important to focus on getting things done.
Fri 19 Mar | Lou | If your site has problems rendering a complex table driven site in the Gecko engine (Firefox/Mozilla/etc) compared with IE, you may have a poorly coded table structure or badly nested tables or missing or poorly paired tags. Poorly paired tags and bad nesting of tables is one of the reasons many developers ended up using CSS for layout - there isn't as much of a problem with that. Note that CSS has some cross browser problems with positioning and display, but these are not very complex and can be worked around in most situations. However it is more than a first timer would probably be comfortable with. If you'd like, email me your website (or post it here) and I'll take a look at the markup and see if I can't spot the error. And always run your code through the w3c validator, it will help you catch most bugs related to open tags and nesting.
Fri 19 Mar | Wayne | The original poster in this thread provides a link to a stylesheet called IE7 which apparently fixes any IE css bugs. http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=123659
Fri 19 Mar | Walter Rumsby | You might find that if you use a DOCTYPE (e.g. HTML 4) the rendering becomes a bit more consistent, take a look at http://www.alistapart.com/articles/doctype/ As a general tip try to avoid nesting tables too much because rendering deeply nested tables is really slow.
Fri 19 Mar | Richard P | If you have to provide pixel-perfect layouts in a cross-browser way, just shoot yourself. Accept a little whitespace and that whitespace will be slightly different from browser to browser and you'll have a much easier time.
Fri 19 Mar | Li-fan Chen | Nick, are you coding the html by hand or what?
Fri 19 Mar | odinprotectsus | Wayne said IE7 '...apparently fixes any IE css bugs.' I hope he meant to type 'many', not 'any'. IE7 is a very cool hack, but it fixes bugs (and simple lack of implementation) related mainly to CSS selectors, the methods by which CSS can find the elements to which style rules should be applied. Unfortunately, IE7 doesn't address most of IE's bugs regarding CSS layout, incl. the badly broken box model, in which IE applies extra space in the wrong direction around box borders, which means its calculations for width of elements with padding and margins come out wrong, as illustrated in Tantek Celik's Box Model Hack: http://www.tantek.com/CSS/Examples/boxmodelhack.html This and a number of other deficiencies in IE's CSS support make it a nightmare for doing CSS-based layouts. There are workarounds -- mostly they consist of ugly, and uglier, hacks. They smell bad, and developers should know what that means. I'd echo the thoughts above. Use a mixed model: basic tables (as simply built as possible) for creating the layout grid, and CSS for applying typographic style. When it works, CSS makes things much cleaner, simpler and easier, so it works as its own canary in a coalmine: As soon as applying CSS makes things more painful, rather than less, you know you're skating on thin ice.
Fri 19 Mar | Nick | Just to clarify, my tables only have 1 level of nesting.  The CSS is used to stylize the content, including cell shading and borders.  I am hand coding it for the most part.  The site won't be very and the content will be fairly static once it's set up.
Fri 19 Mar | As400 | 'stylesheet called IE7 which apparently fixes any IE css bugs' I think only Microsoft could fix the bugs. That guy made a kludge work around. MS is too busy with delayhorn to be bothered to make a standards compliant browser.
Sun 21 Mar | John Topley (www.johntopley.com) | 'The original poster in this thread provides a link to a stylesheet called IE7 which apparently fixes any IE css bugs.' Eh? I haven't said anything. Until now!
Looking for tips on government contracts | Fri 19 Mar | RN
Has anyone submitted a proposal for any one of the government agencies for software contracts? I have been thinking about doing this for a while, but always got confused about where to get the specific information about the subject and what the expected proposal should be. So if you have had any experience with submitting and getting a software contract, Id appreciate pointers or tips. Some specific questions I had: - Im an individual (not a company), can I submit proposals or do I have to be a company in order to submit? - Are there samples of proposals that got the contract? I am interested in the level of details. - Whats the rule of thumb for putting a dollor amount on the proposal? Theres ususally a max $ for the contract, should I ask for that? are there advantages/disadvantages for asking for less? - What are the advantages and disadvantages of making a living from this line of work, vs traditional working for a big corporation? - Has anyone used those consulting services that claim they can help write proposals for you and get you the contracts? Are the claims valid? or is it a waste of money? - How long do people ususally spend time on writing the proposals? Thanks in advance!
Fri 19 Mar | Couldn't Resist | - I'm an individual (not a company), can I submit proposals or do I have to be a company in order to submit? Ask your government what they require - Are there samples of proposals that got the contract? I am interested in the level of details. There are no samples - What's the rule of thumb for putting a dollor amount on the proposal? There's ususally a max $ for the contract, should I ask for that? are there advantages/disadvantages for asking for less? Cost + Profit - What are the advantages and disadvantages of making a living from this line of work, vs traditional working for a big corporation? Advantage: potential for more money. Disadvantage: less job security - Has anyone used those consulting services that claim they can help write proposals for you and get you the contracts? Are the claims valid? or is it a waste of money? Some people have used them, and some of the claims are valid and some invalid. - How long do people ususally spend time on writing the proposals? Two hours, 15 minutes to four months.
Fri 19 Mar | Robert Jacobson | > I'm an individual (not a company), can I submit proposals or do I have to be a company in order to submit? You probably *should* be a company, even if it's not required. It will just look more professional. It's not too difficult to incorporate (as a corporation, LLC, etc.) There are various sites that will take care of the paperwork for a few hundred dollars. However, there are various consequences that come with incorporating (tax, record keeping, annual filing, etc.) so you should probably buy a book or two on the subject before filing.
Fri 19 Mar | Doug Withau | Take a look at this first. http://www.pbs.org/cringely/pulpit/pulpit20040318.html
Fri 19 Mar | Lee | I've done some gov't contracting, but all my work has been sub-contracting for larger companies. All through people I just happened to know. A lot of the gov't contracts are open bid and there are a couple of websites that list them: http://www.fedbizopps.gov/ http://cbdnet.gpo.gov/ (they're a little burried) One of the people I worked for said you could request to see the winning bids (FOI I think) but could be mistaken on that. I can tell you it's difficult to win if you're not established and/or already doing similar work. I think it's difficult to break into as a one man operation; you might have better luck hooking up with an established company, then maybe go it alone once you've got some contracts under your belt.
Fri 19 Mar | Ken Klose | There are sties that will Incorporate/LLC you for a fee. Or if you're in NJ at least, you can bypass those places (which will still be happy to take your money) and do it online directly with the state. https://www.state.nj.us/treasury/revenue/dcr/filing/leadpg.htm
Fri 19 Mar | Dennis Atkins | Wow Doug, that Cringely article is certainly required reading. A fixed price contract with incomplete, secret specs. No wonder no one is happy.
Sat 20 Mar | Wayne Earl | In a previous job, I worked as a Sales Engineer for a linux hardware company. We did lots of work for government agencies, both state and federal. Each has it's own challenges. Keep in mind that we did hardware (everything from high end Linux workstations to cluster computers), so my experience may be a bit different than yours. A lot of the federal contracts have some really extra-ordinary requirements, which seemed to indicate that they were targeting large companies. Many of the larger ones required on-site installation and maintenance, which effectively shut out small and mid-size companies. Note that in almost all cases, the lowest bidder is the one chosen, so economies of scale work mightily against you here. Most contracts for jobs appropriate for a small or medium-sized business have to be developed with contacts at the specific agencies (specific defense groups, NOAA, DOH groups, etc) rather than at large bid sites. Better to develop business relationships there, which will cost you money in the short-term, but pay off in the long term. Or, develop relationships with larger government contractors, who can outsource components of bids to 3rd parties. This is particularly useful if the business is woman and/or minority owned. Two things that all government jobs had in common: 1. Huge amounts of paperwork and bureaucracy. This will absolutely kill your profit margin. 2. They take forever to pay you. You will never be paid on time. Doing profitable business with the government is possible, but for small businesses, it is a long term investment of time and money that may or may not pay off.
Sun 21 Mar | Stephen Jones | A lot of medium ot large companies will also insist on onsite installation and maintenance. One reason in the case of government is the nightmare of paperwork involved in letting the vendor take something back to base to repair :) But the main reason is to avoid dealing with multiple vendors who keep on passing the buck to each other. If you have everything set up by the same company it's clear where the responsibility is. Another thing you will find is strangely worded contracts that are in fact aimed to favour a certain vendor, and more importantly, exclude another. If you are a private company you can simply refuse to deal with a company that gives rotten service. If you have to follow government guidelines it becomes a little more difficult. And you often find that the company that wins the contract then sub-contracts everything out to the vendor from hell anyway!
The Prisoner's Dilemma | Fri 19 Mar | Woodentongue
There have been a few threads on honesty & trust. That reminds me of the Prisoners Dilemma. For the uninitated, there is a description here http://plato.stanford.edu/entries/prisoner-dilemma/ My interpretation (which will I will be slaughtered for) is this: Mutual trust usually pays off. If you dont know a person and you have to interact with them, your most productive course of action is to trust them until they prove untrustworthy and never trust them again if you are betrayed. Obviously, you dont bet the farm on that first interaction. You can take this a stage further. If someone proves untrustworthy, remove them completely from your sphere of influence with as much vigour as possible within appropriate ethical and legal constraints. Grifters play this game, of course. They seed your trust with a small payoff and then hit you up for your life savings, so I dont simply interpret person in a literal way. I tend to group situations and classes of behaviour too. Works for me. Comments ? Flames ? Practical experiences ?
Fri 19 Mar | masterOfTheObvious | I believe this is called common sense.
Fri 19 Mar | . | 'They seed your trust with a small payoff and then hit you up for your life savings, so I don't simply interpret 'person' in a literal way.' It's interesting you mention this in light of the threats on the Apprentice. Many lauded the generous actions of Nick (I think that's his name -- not good with names) when he gave back the entire $250 advertising fee because one half of the signs fell off for one half of the day. While many think this would create a sense of trust, my impression is precisely the opposite: It was such an unreasonable, unbusinesslike 'gift' that I think anyone with any business acumen would either have no faith in the business abilities of the individual, or it would lay a seed of distrust as they wait for the other shoe to drop and the con to be pulled.
Fri 19 Mar | Adam N | >> 'Works for me. Comments ? Flames ? Practical experiences?' I hereby flame thee!
Fri 19 Mar | Adam N | But seriuosly, you can easily rig the payoffs in the prisoner's dilemma in such a way as to make backstabbing pay for some.  Welcome to corporate America, baby!!!
Fri 19 Mar | Just me (Sir to you) | For what it is worth I would advice against going to deep into game theory. The knowledge you will gain will not make you a happy puppy.
Fri 19 Mar | genius | Not to get off topic, but Nick knew exactly what he was doing... He wasn't the PM for that week, and it was a good bet that he wouldn't get fired for 'doing what he thought was the ethical thing to do'. On the other hand, he built a relationship with the client for when he may need their business in the future. As far as ethics in the workplace, just do whatever lets you sleep well at night. Personally, I like to think that I have a competence level in my profession that enables me to act with dignity.
Fri 19 Mar | . | 'On the other hand, he built a relationship with the client for when he may need their business in the future.' My point was precisely the opposite -- in the real world, where people are jaded and cynical (AKA realistic), he basically _sabotaged_ the relationship rather than build it. In the business world people expect predictable, fair behaviours where they can understand your motivation. Whenever someone acts unexplainably in your favour, you either lose respect for their abilities/product (which is why desperation is deadly in sales), or you become extremely skeptical of everything they do in the future.
Fri 19 Mar | Mr. Analogy | 'Whenever someone acts unexplainably in your favour, you either lose respect for their abilities/product (which is why desperation is deadly in sales), or you become extremely skeptical of everything they do in the future. ' I agree. I had a somewhat similar reaction to Nick's action. The owner was willing to take much much less. Giving someone TOO much too easily makes them wonder why you gave in so easily. I.e., if Nick readily gave back the minimum he had to, then that looks expedient: please the customer asap and move on. Likewise, if there as a lot of haggling and Nick *finally* relented and gave back more than he had to, then it looks like the customer wore him down. (I think this is not as productive as the former example). BUT... if Nick readily give back more than he has to, it might make the customer suspicious.
Fri 19 Mar | Philo | I'd love to have seen the reactions if Nick's team had lost by $75. I'm pretty sure Nick would've been fired then. Giving a full refund is a long-term strategic action. This is not a long-term strategic game. Philo
Fri 19 Mar | Phillip J. Eby | Actually, the really silly thing about Nick giving the guy cash back, is that the guy asked for a *credit*! He didn't ask for cash back, and it didn't sound like he wanted a full credit, just credit for time not used. So Nick wasted time going over there, when he could've given the guy a credit right then and there on the phone. Meanwhile, depending on how Trump's people accounted for sales, they might have gotten full credit for present-day sales of future services. (After all, the other team got credit for selling future rides.) Even in the worst case, they would've only been out the portion of sales that were credited, not the full amount. Nick's actions just seemed like strategic self-aggrandizement to me.
Fri 19 Mar | Me | This all seems like a case of people who don't live in the real world deciding what ought to be done. About that prisoner's dilemma. You don't rat. You don't become a fink. It's a darn good principle that needs no approval from an ivory tower. About trusting. You only trust as much as is reasonable. You never completely trust unless you have no other options.  No one will every be able to program a computer to make these decisions. Never. This is why character counts.
Fri 19 Mar | www.marktaw.com | There's a point at which you turn human behaviour into a mathematical formula. At that point it's time to go play with your children, or sit in the sun on a beach or in a bar and look at attractive women. It's time to reconnect with your body. Statistics in human behaviour are only important when the outcome is statistical, which it should never be. Human interaction should be messy and emotional, and you should love every minute of it.
Fri 19 Mar | Jack of All | I love you, man!!!
Sat 20 Mar | Michael Moser | >Mutual trust usually pays off. If you don't know a person and you have to interact with them, your most productive course of action is to trust them until they prove untrustworthy and never trust them again if you are 'betrayed'. You have just advanced a very old argument, (at least 150 years old). http://www.objectivistcenter.org/articles/rdonway_dostoevsky-nietzsche-ayn-rand.asp These old style socialists/anarchists (see Chernyshevsky, Bakunin) have voiced these opinions ages ago. The problem (apart from others that socialism/anarchy has with human nature) is that this argument is insufficient to construct a general modell of human behavior. You see, your argument works ok, if other, rational minded people agree with it. If people do not (motivated by things as the dynamics of group behaviour, nationalism, bigotry and other 'features of human nature') then things do not work out as planned.
Sat 20 Mar | nakedCode | Woodentongue:- I agree. You gotta start a relationship with co-workers placing trust in them. But if they fail you, you have to ensure that can't happen again and the best way to do that is to cut them out till they can earn your trust again (if possible)
Sat 20 Mar | Aaron F Stanton | There was a program some time ago that tested a wide variety of strategies to this game, and the one that won was amazingly simple - tit for tat. It starts out being nice, and then just does whatever the other player did most recently. It didn't always win, but it had the highest average score among the many strategies tested. Just an interesting (I thought) tidbit.
Sun 21 Mar | A reader | The summary of 'mutual trust pays off' is true, but only partially true. The real summary is that mutual trust pays off if you are likely to further interact with the same party. Otherwise, you're best off acting in your own self-interest. A good book on how game theory applies to human behavior is Axelrod's 'The Evolution of Cooperation.'
If you can't beat em, buy em | Fri 19 Mar | Walt
http://news.com.com/2100-1030_3-5176017.html?tag=nefd_top Im not sure how I feel about this. MS would end the browser wars effectively. But not that eliminating AOL is all that bad...
Fri 19 Mar | Almost Anonymous | AOL has no future; why would Microsoft want to buy it?
Fri 19 Mar | JP | Because they'd be able to acquire a colossal on-line customer base for a relatively low price?
Fri 19 Mar | no name | The colassal online customer base is only important if it will (eventually) increase profits. The reason TW is looking to dump AOL is because it is not carrying its weight (and is a management nightmare, apparently). And let's not even talk about the BS that they'll have to go through with the FCC. It would probably be better to just let AOL implode.
Fri 19 Mar | GiorgioG | 1. Buy AOL 2. Force customers to switch to MSN software 3. AIM users moved to MSN Messenger 4. MS starts charging for IM 5. Profit! Profit! Profit! [and Netscape ceases to exist]
Fri 19 Mar | Philo | Just out of curiosity, have *any* of the 'give it away free, then take it away and start charging for it' theories about MS strategic moves ever borne fruit? Philo
Fri 19 Mar | . | Philo, Given that Microsoft was rolling in the dough previously, there was no real impetus to do so. Now that they're seeing revenue flatten or decline, the screws begin to turn. As a first step the entrenched IE will require you to pay for Longhorn if you plan on upgrading (in effect they got people hooked, and then made it cost).
Fri 19 Mar | Norrick | No.
Fri 19 Mar | Philo | ., the 'oh, they're giving it away now, but just you wait - they'll charge for it sooner or later' theories predate MS's billions in the bank. But I don't recall it actually ever happening. That's not to say it didn't happen - obviously I'm dangerously myopic on the issue. That's why I asked the question. :) And 'if you want to run the new software, you'll need the new OS' isn't unique to MS - in fact, MS has a long history of being castigated for worrying too much about backwards compatibility. And if you need Longhorn to run IE7, then why would you distribute IE7 independently? Philo
Fri 19 Mar | karthik | AOL is hiring bigtime in Bangalore, India. I have some cousings working there and they are hiring by the hundreds and hundreds. Yes folks. They are getting bigger in size.
Fri 19 Mar | Richard P | Philo, What possible feature of an HTML renderer could require hooks into the OS? Maybe I'm unimaginitive, but I can't think of any feature us users actually want that would require OS improvements. DirectX, hardware-powered rendering??? MS VRML??? It's quite obvious that MS feels that the browser war is no longer worth fighting (because they've already won) and now they are risking (albeit a small risk) their browser dominance to push their OS upgrades on their customers. If IE7 is released with XP Reloaded or a service pack, I'll cut them a little slack. If I, as a web developer, have to wait until Longhorn (2006 or 7) has 60% marketshare before I can safely use well-supported CSS2 features that all other browsers have had no problem with since last year, I'm gonna be pissed. As it is, I already target Mozilla and leave IE as a 1.5th class citizen in my work.
Fri 19 Mar | Wayne | Richard, you sound like a person who develops web pages for public consumption, in which case I feel your pain. However, I think the thing that really drives IE usage is it's requirement for the thousands of software packages that utilize IE as an application component. Developers being mostly lazy are like 'we'll just use IE because it's 95% positive to be already installed, plus it's got plenty more hooks for the developer (like DirectX, et al) ...'. Also, if you *have been* coding IE/COM, there is no big push as a developer to move away from it. Mozilla is just starting to get some COM abilities. As far as MS giving away software...they used to *kind of* give away Windows and Office, but then stopped it with XP and Activation. I'd wonder if they had it planned all along, but then I'd be paranoid.
Fri 19 Mar | Richard P | MSHTML as an embedded application HTML renderer, I have no problems with. They can have that space. I don't care if they update it -- ever. Either it served the purposes of the app builder at the time the app was designed or it wouldn't have been used. I just hate the MS is holding back the entire evolution of the web because they no longer feel any pressure to innovate at a customer-driven pace.
Fri 19 Mar | Philo | Richard - for the web as a content delivery mechanism, where do you see the need for it to evolve to? What do web pages need that IE can't do? I'm not being facetious - I'm honestly curious as to what your vision for the web is. Philo
Fri 19 Mar | Martha | Well, CSS2 would be nice for starters...
Fri 19 Mar | Philo | because...? I'm not disagreeing - I'm just saying that adopting a standard for the sake of having a standard isn't really sustainable. So what does CSS2 offer over IE's current implementation? Philo
Sat 20 Mar | RB | 'So what does CSS2 offer over IE's current implementation?' Quite a lot. Check out w3c for the official list: http://www.w3.org/TR/CSS2/changes.html But that doesn't really show you what's possible. Our interface guru can take some simple html (created by non-interface coders) and with a css2 stylesheet, turn it into a multi-level cascading menu. Apply a different stylesheet and it's a simpler site map that uses a bulleted list. Etc, etc. But it doesn't work in IE. It's a shame because it would really make our code so much simpler to produce. Another item that seems really useful is to have frame-like elements without using frames. Static elements on the page that do not scroll, but are in on the same page. Very useful for things like navigation. You're only limited by your imagination (and IE). Don't get me wrong - I understand how difficult it must be for them to change IE. It's engine is embedded into so many applications that the testing would take a very long time.
Sun 21 Mar | www.marktaw.com | I imagine if they can figure out how to hemorage money with X-Box and I would imagine MSN, what's to prevent them from hemmoraging money with AOL. X-Box will be profitable, probably from licensing, video games, and X-Box Live or whatever it's called. If you want to see creative ways to make money, look again at the Windows licensing scheme they came up with a couple of years ago, which is what's giving them that huge bank account you're talking about. You're also forgetting that if you're on AOL you almost don't need the web. How many times have you seen in commercials 'AOL Keyword xyz, or www.xyz.com.' Here's a thought. X-Box 2 with AOL. $300 down and $60 a month for life gets you broadband, content, TiVo like services, and unlimited online gaming. Then strike a few deals with Sony, Time Warner & other companies to offer exclusive content on AOL - movie trailers, DRM filled audio downloads. Oh, and no pirating - can't install Kazaa on an X-Box. One conversation with Steve Jobs and now you can plug in your iPod and connect to iTunes as well. Strike a deal with Barnes & Noble and a few other online retailer and Amazon disappears. I have two words for you people. MEDIA CENTER Microsoft & Sony want to be the media center for your living room. That's where all the money is. If they could take 1% of the revenue from every media transaction that occured on the internet...
Software houses | Fri 19 Mar | Dave
Does anyone have any information about software houses? Outsourcing and error-free-processing?  This information is for a computer student and would help very much. Thankyou!
Fri 19 Mar | ?! | I have the largest collection of such information in the world - you may have seen parts of it before.  I keep all references to it on google.com; simply key in what you are interested in and you'll probably find what you are looking for eventually.
Fri 19 Mar | Joe On Software (Joe) | A house made of software?  Do you mean like all those AOL CDs?
Fri 19 Mar | abu | Ha ha, you are very funny, effendi. I laughed so hard, I almost soiled my undergarments.
Fri 19 Mar | tapiwa | Dave, you need to be a bit more specific about what you are looking for. Software Houses - Are you looking for company profiles?? Are you looking for industry reports??? etc Outsourcing - In the news?? Academic papers?? Personal sob stories?? etc Error-free processing - Companies that offer this snake oil?? Succcess stories?? Technical methods and processes for achieving this (more snakeoil)??
Fri 19 Mar | Richard Sunarto | Is "Dave" and "Dev" the same person? Guys. don't be so mean to him! Help him!
Sun 21 Mar | Dave | I'm just looking for general information about software houses.  What procedures/methods/testing they use to produce error free code.  To be honest I'm not totally sure what outsourcing is, but I need to find out and relate it to software houses on the internet.
Information Overload | Fri 19 Mar | entell
I posted this one on Ask Joel area, but the thread got deleted. Ill give it another shot here. I am overwhelmed by the amount of information available. In the past just keeping up with magazines, newspapers and business journals was tough enough. Now we have discussion forums, web blogs, rss feeds and all kinds of internet sites to visit to read up on interesting happenings or at least remain in sync with whats going on. I end up spending a lot of time doing information hunting in this way. Do you guys have the same problem? If so, how are you coping with it? Thanks
Fri 19 Mar | no name | uhhh, don't try to keep up with all of it?
Fri 19 Mar | a cynic writes... | I find the level of duplication across new sources means I don't have keep up with everything. 
Fri 19 Mar | entell | Well keeping up is one problem. The other problem is that I come across quite a few sites which seem interesting. However, I won't know if they are interesting unless I spend some time with them which again eats into my time. I kinda wanted to know how much time you people spend each day reading websites, blogs, magazines, books, etc.
Fri 19 Mar | !Slashdotter | I, for one, welcome our new Information Overlords.
Fri 19 Mar | Ron | I prefer to "do" rather than read about other people "doing."
Fri 19 Mar | Scot Doyle | I bookmark potentially interesting sites into categories, and then come back later if there is a need in that category. However, reading classic topical books (e.g. those recommended by Joel) has been significantly more educational than online topical sources. As an example, a large percentage of the discussions on this board are addressed by The Pragmatic Programmer.
Fri 19 Mar | programmer | Decide what you want for a period: Do not look beyound it besides few exceptional things. Things becomes interesting, only because you have 'interest' in it. Remember, the binding factor is 'your interst' and not the things themselves. If you find so many interesting things, you should go one level higher. Find 'valuable ' things. It will filter out 'mere interesting' things. The thing of 'immidiate value' will be more important. Since you are getting 'value' instead of 'interest', you will be more wiser along the process.
Fri 19 Mar | Mr. Analogy | 'I bookmark potentially interesting sites into categories, and then come back later if there is a need in that category.' I do that same thing, but it's hard to keep track of all of those categories.
Fri 19 Mar | entell | I bookmark things too, but now I have literally hundreds of them. There is no way I can go to each individual link everyday and see what changed. I like what Programmer said. Perhaps looking for value amongst interesting things is the way to go. That should cut down the bookmarks quite a bit. At least the ones that are a 'one-time' kind of thing. It still doesn't cut down on the 'repeat visit' type of bookmarks which change on a daily basis.
Fri 19 Mar | Michael Kale | This (to me at least) is one of the cool things about RSS. I can subscribe to a massive number of feeds (way more than I'd be able to check manually with any frequency). There are three benefits to this: 1) It remember which feeds I'm interested it -- I don't have to keep a massive list of bookmarks, post-it notes with 'that's a cool blog', etc. 2) It tells me when there's new content instead of me having to poll it every X days. So I can be lazy and just look at the RSS reader to see all new content. 3) It makes skimming really easy. I'd never be able to read all this stuff if I had to do it via a web page. With RSS, items load in the background and the interface of my reader makes it really easy to glance at headlines and/or articles that seem interesting. If it's really good I'll read it in detail, but otherwise I'll move on.
Fri 19 Mar | Crimson | I second Ron's comments. Also, I agree that there's just too much out there to keep up with. However, recently (like in the past couple weeks), I've decided to spend some set amount of time looking at my favorite haunts for what's new out there (Slashdot/Tom's Hardware/CNN/blogs/etc) and no more. I like learning about new knick knacks out there. But I've found that for all the information available, most of it simply makes no difference to me. I 'discovered' something that database experts have known for years.
Fri 19 Mar | RSS newbie | So what's the best RSS reader?  Please no links to sourceforge when I download a tar file and....well you get the idea.
Fri 19 Mar | Just me (Sir to you) | I like http://www.newsgator.com but I have heard nice things about http://www.rssbandit.org/ and http://www.sharpreader.com/ as well.
Fri 19 Mar | a cynic writes... | I use the RSS reader extension on Firefox.  It hasn't got loads of features but works for me.
Fri 19 Mar | Sum Dum Gai | Once you realise that most of the information out there is crap, you stress a lot less about missing something. Just read what interests you and you have the time and patience for. We live in a complex world, and can't hope to know everything. Remember, if you know more than the next guy, to him you're an expert. So you don't have to go over the top. ;)
Fri 19 Mar | Nick | I used to look at a lot of the sites - usually through http://www.freshnews.org But now I rarely look at that stuff. Not only are the tech news / reviews sites a big time sink, but they also feed the tech lemming culture. Anyone know of some good sites that have a long term perspective on technology trends?
Fri 19 Mar | - former car owner in Queens | I like MIT's 'Technology Review': I haven't actually bought a paid subscription, but a lot of the articles (50%?) are available free online: http://www.technologyreview.com/ (not sure if they have an RSS feed or not)
Fri 19 Mar | Robert Jacobson | Online RSS reader, which I like: http://bloglines.com/
Fri 19 Mar | one programmer's opinion | About ten years ago or so, the problem for many was the exact opposite. That is, many people were probably upset by the lack of information sharing within this industry. While I am pretty sure the original poster is referring to 'keeping up with technological changes/innovations', other programmers are not only trying to keep with changes in computer technology they are also trying to learn as much as possible about specific business domains, IT project management, running an IT business, contracting vs. full-time employment, improving their business skills (writing, selling, marketing, etc.), improving their analysis skills, and the list goes on and on and on. Some people are jumping all over the map because they know each employer/client carries their own set of expectations and they are simply trying to be as marketable as possible. I guess that all I am trying to say with this post is that while most people share the same understanding of the term 'information overload', not every programmer experiences it in the same manner.
Sun 21 Mar | John Topley (www.johntopley.com) | 'So what's the best RSS reader?' http://www.feeddemon.com
JOS Usability | Fri 19 Mar | tapiwa
Was thinking about the JOS forums usability. Does not look like the bolding of highlighted topics seems to have worked. How about allowing users to flag which threads they are following. I dont read everything, and it would be nice to be able to pick out, at a cursory glance, which threads I am following. Should be pretty easy to implement. On a not so related note, seems like Joel has pulled out another leaf from the Philip Greenspun book. The St Paddys day thread got axed. Actually got an email from someone this morning asking why it got killed. They cant see it. I can, but I can only see my posts. <> One of my motivations for building the fancy software ... was the difficulty of moderating the Q&A forum for photo.net. With about 10,000 participants, deleting duplicate postings and uninteresting threads was time-consuming but bearable. One day in 1997, Martin Tai showed up ... Personally I didnt mind having Martin as a community member ... However, hed apparently previously annoyed folks in rec.photo.* (USENET) exchanges and even the slightest error on Martins part provoked a volley of vitriolic responses from other photo.net readers. Every day Id have to go in and clear out 50 postings plus respond to private e-mail complaints. My forums at the time were backed by the Illustra relational database management system, ... If you wanted to update an Illustra row, you had to wait for all the readers to stop reading. ... Under the best of circumstances, users posting to the forum would get a page saying please wait while we try to insert your message ..... message inserted. Under heavy usage, the users would see please wait while we try to insert your message .. *** 60 second pause *** ... deadlock, transaction aborted. Please hit Reload in five or ten minutes. ... Then it hit me: Sometimes a system that is 95 percent reliable is better than a system that is 100 percent reliable. If Martin was accustomed to seeing the system fail 5 percent of the time, he wouldnt be suspicious if it started failing all of the time. So I reprogrammed my application to look for the presence of Martin Tai in the name or message body fields of a posting. Then Martin, or anyone wanting to flame him, would get a program that did ns_write please wait while we try to insert your message ... ns_sleep 60 ns_write ... deadlock, transaction aborted. Please hit Reload in five or ten minutes. The result? Martin got frustrated and went away. Since Id never served him a youve been shut out of this community message, he didnt get angry with me. Presumably inured by Microsoft to a world in which computers seldom work as advertised, he just assumed that photo.net traffic had grown enough to completely tip Illustra over into continuous deadlock. Ive used this trick a few more times in the photo.net forums with users who wouldnt take gentle suggestions from the moderators. <> I think it would work better if I continued to see the entire thread, and have it hidden from other users. That way, I would truly think that nobody was interested.
Fri 19 Mar | Eric Debois | I refer to JOS moderation as Gestapo styled. Threads just disappear. No point in discussing the deletions because those threads disappear too. It works very well here. While there is the occational flamewar, they are always 'on topic' flamewars. But your suggestion is alot smoother. Hide unwanted posts from everyone but the author. Simulating errors for 'banned' users is smooth too. Especially when dealing with people of destructive intent. (Those who start yelling censorship as soon as a moderatior intervenes, and believe that they have a god given right to spam your forum with insults.) Are there more tricks like these around?
Fri 19 Mar | old_timer | >>> Should be pretty easy to implement. How many times over the past 30 years have I heard this one? If I was counting, I'd have lost count a couple decades ago. It's the PHB mantra.
Fri 19 Mar | tapiwa | Not wanting to derail the thread, but cookies and a tick indicating which threads I have read, and possibly two ticks where I have posted should be a fairly trivial task. Don't know what the codebase is like, but it certainly does not seem difficult.
Fri 19 Mar | Just me (Sir to you) | Butt out people: Just give the Joelster time to copy/paste the new url regexp in the asp pages. Imagine: No more 404's from trailing spaces. No more spurious punctuation includes ... hmmmmm
Fri 19 Mar | Jeff Watkins | Actually, I've given some thought to how to track threads that I've read while retaining the cool feature of having the link status indicate whether there have been new posts. My thought was to have the main title use a simple URL without the number of postings parameter and have the parenthesised number of postings use the full URL (including # of postings). The one problem with this technique that I see is the need for the simple URL to redirect to the full URL to continue making the marker work. Of course, cookies would also work; but then you'd either need to rely on client or server-side scripting to track threads. And if you'll going to go this route, it would be super cool to have a separate list of threads I'm interested in sorted by level of interest. Interesting threads could be determined by those that I've re-read after new postings have been made.
Fri 19 Mar | anon | I guess I'll take my chances and post to this thread and hope I don't get this IP banned/hidden again. These tricks don't work with smart people. Pretty soon they're going to be emailing the admin and asking to be allowed to post again. In fact people on dial-up can easily tell if their posts are being shown only to them or if they are being 'tricked' in one any of these ways. It appears tricky and sly but in reality it's not. Reconnect with a different IP or Switch ISPs and you're back in business. I'm not saying that I'm advocating destroying a forum but these techniques only seem to work with people who don't understand technology.
Fri 19 Mar | Just me (Sir to you) | 'My thought was to have the main title use a simple URL without the number of postings parameter and have the parenthesised number of postings use the full URL (including # of postings). The one problem with this technique that I see is the need for the simple URL to redirect to the full URL to continue making the marker work.' It has to be said that that is a great and elegant suggestion.
Fri 19 Mar | Jeff Watkins | Another though I've had regarding the usability of these forums (which is generally pretty good) is that following a post, it would be ideal to redirect the browser to the full URL which included the # of posts. That way, when I return to the list of recent topics, the topic to which I just posted doesn't appear to have new content.
Fri 19 Mar | Emperor Norton | Using the two links, one of which doesn't have the message count and one of which does, would require you to always use the message count link to access the thread--using the other link would let you read all the messages but wouldn't change which threads showed up as having new messages.
Fri 19 Mar | This has to stop | There would be no need for redirects and the full thread would be accessable from both links. Just drop the ixReplies on one of them. i.e. http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=125259 http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=125259&ixReplies=999
Fri 19 Mar | VP | If it's a thread you want to see die early, then continue to allow people to post, but only allow them to see it, and no one else. If the thread has something that the forum owners feel needs to go, then hide it from everyone except the original poster and every else who had contributed to it so far. Of course this increases the complexity of the code, so I wouldn't recommend it for this forum, since the philosophy here is minimal, good enough effort for something that's not financially vital. But if we're talking in general, that would be a good way to create a virtual ostracization, which is the best form of moderation. When you happen to see a troll on the boards, don't feed it by arguing, starve it with silence. Going off on a tangent here: I can't remember which forum it was, but it was one from the early days. Anyways, there was a circle of people you could call the core participants. They would form a private, metaforum where they would discuss issues regarding the main forum. One of the main things they did there was to identify trolls and agree as a whole to ignore them. I heard it worked pretty well.
Fri 19 Mar | VP | 'If it's a thread you want to see die early, then continue to allow people to post, but only allow them to see it, and no one else.' 'It' being the new posts they've added, not refering to the whole thread.
Fri 19 Mar | Jeff Watkins | Actually, you will need the redirect because without it, your browser will record the URL for the post without the ixReplies parameter. This means that when you go to the list of recent topics, the reply count will still look unvisited (because you didn't visit that URL). However, if you return a redirect to the URL including ixReplies, then your browser will load the 'real' URL and when you visit the list of recent topics, all will be correct.
Fri 19 Mar | www.marktaw.com | Tapiwa, what you're talking about has been implemented for vBulletin and is available as a plugin. If you have an offensive user, just make it so that it takes forever to do anything. They'll assume it's the site, and their offensive post isn't worth the effort, and go away.
Sat 20 Mar | Michael Moser | >I refer to JOS moderation as Gestapo styled. Threads just disappear. No point in discussing the deletions because those threads disappear too. No, this is much more subtle than old style nazis used to be, (you are dealing with the new age of electrons, ideology is no longer an important thing, you know). The best feature of this board, so far, is that if your topic is deleted, you will not quite notice it! You see, the poster of a deleted topic still sees the deleted topic on his listing !!!!! (This trick can be done by tracking the cookie of the poster of a deleted topic, then fake the listing by having his post on it). I think that this in line with I have seen it with my own post, and i was quite amazed. You are controlled, by you won't quite notice it ;-) (now, if this idea gains momentum, than you can get money out of your subjects by selling more prosac and stuff, another revenue generator, I love them.)'
Sat 20 Mar | KayJay | The best feature of this board, so far, is that if your topic is deleted, you will not quite notice it! Not exactly. I've been 'reprimanded' in a similar fashion as well. Using 'cookies' is easily by-passed. I have cookies deleted regularly for JoS, since it is of no value to me to keep expecting an answer for some topic I initiated, when clearly, I am going to get none. And also since only my name & email need to be entered manually, each time I post - without those cookies. Not much additional work. Without a login mechanism, that tactic is of very little effect. On principle, I find this practice wrong. While it is true that regular impertinence and impudence is detrimental to society, it is also true that the administrators of that society ensure that mis-information is not provided. The admins have the right and, I dare say, the duty not to provide _all_ information - I am not suggesting for a moment that Joel should provide a justification for everything that goes on here and have those justifications on record. But it *is* providing mis-information by displaying a deleted thread to the OP and only the OP. Unless of course these boards are not to be considered a society, but private property, in which case, I am sure the above paragraph will be visible only to me, until I clear my browser cache, sometime, tomorrow ;) Regards Kaushik Janardhanan
Sat 20 Mar | VP | Kaushik, Yeah I feel the same way too, since we can't help but take things personally. But in the big scheme of things, it's probably the least painful technique. Think of it as tough love. I agree with you that it is a societ, but in any society, the welfare of the individual is secondary to the group. Some amount of moderation is necessary to keep things healthy. Of course as individuals, it's normal to view ourselves as the center of the world. Whenever we're slighted, we think the whole world is being oppressed. And you're also right about it being private property. I don't pay for the server upkeep or the bandwidth. I didn't have a hand in building it from it's humble beginings. I'm here by invitation only. I think all in all Joel keeps a light hand, since we're allowed to talk about non-SW specific issues. But yeah, it still stings a wee bit whenever we get the smack down. At least it's not a big public humiliation.
Sat 20 Mar | KayJay | Taking things personally is one aspect of it. A valid one, no doubt. And yes, it does feel bad to be slapped on the wrist. But what really is annoying with that practice, is that, one cannot know what issues are considered unworthy or unfavourable. At least not soon enough. I post something. It hangs there until a cookie flush and till then the subject is considered by me to be valid. With a complete deletion, a message is passed to me to the effect of 'stay off that'. A hint that I feel is worth giving. Regards Kaushik Janardhanan
Sat 20 Mar | Aaron F Stanton | I asked a question in the Ask Joel part and got no answer from Joel, so nobody else saw it.  It went away, so I asked it of the general public in the JoS section and people replied.  Much more satisfying.  Joel can respond in JoS if he wants, so I doubt I'll be posting the the Ask Joel section again.
Sun 21 Mar | Dario Vasconcelos | Hi Joel, I was wondering if you see a topic for a new essay here. I'm pretty sure you have some interesting things to say...
Subversion | Thu 18 Mar | Califfo
Anyone uses Subversion for version control? Before to switch from CVS Id like to hear something from you. Thanks
Thu 18 Mar | Brad Wilson | It's amazing. We love it. We switched from CVS. Now, go do your own testing. Don't take our words for it. :-p
Thu 18 Mar | Ken McKinney | You might want to take a look at this thread over on Ask Joel. http://discuss.fogcreek.com/newyork/default.asp?cmd=show&ixPost=3512&ixReplies=18
Thu 18 Mar | Katie Lucas | We've switched to it instead of CVS. Apart from a few peeves regarding tunnelling the protocol and what a pain firewalls are, it works.
Thu 18 Mar | Ian Olsen | Switched from SourceSafe.  Also love it.
Thu 18 Mar | Avrom Finkelstein | The company that I work for is also looking to migrate away from Visual Source Safe. Originally, we were going to switch to CVS but Subversion has been added to the table as a possible candidate. Our main criteria for a new source control system is one that's free and is not VSS. VSS does not support multiple check outs and since from time to time, more than one person needs to check out the same class, we need something that can handle that can handle the subsequent merge with ease (something else that VSS is horrible at). -A.F.
Thu 18 Mar | coresi | Avrom, VSS DOES support multiple check outs.
Thu 18 Mar | Billy Boy | >> VSS DOES support multiple check outs. Support yes, works well no. From past experience, merging in VSS will kill your files. We currently use the single check out rule for VSS. I would prefer to be rid of VSS but we have more pressing things to do -- like write software.
Thu 18 Mar | Brad Wilson | I agree that VSS's support for multiple checkouts is extremely bad... bad enough that I would consider it to simply not have that function, and never turn it on.
Fri 19 Mar | Benji Smith | My company just switched to subversion yesterday. I'm excited. I've been looking forward to this for a while. But I don't have any real world experience with it yet, so my opinion is still purely anticipatory.
Sat 20 Mar | Mr. Analogy | What are the best documents to read to learn Subversion basics? I'm new to CVS systems (some minor VSS experience) and completely new to Subversion. Using it with the Tortoise GUI.
Sun 21 Mar | Brad Wilson | 'Version Control with Subversion', an online book http://svnbook.red-bean.com/
Has anyone used SQLite? | Wed 17 Mar | RN
Ive been looking at a very lightweight Relational database and I came across SQLite. Has anyone used this before? If so, any feedback would be appreciated. Im particularly interested in real performance or obvious gotchas. Thanks!
Wed 17 Mar | FullNameRequired | Its a lovely little database. Im constantly being impressed with how much sql it actually implements..when I first started using it I expected to be hemmed by its limitations to a degree, so far that hasn't happened at _all_ Its pretty quick, very stable when used correctly, overall its a wonderful little database that I would happily recommend to anyone looking for a singleuser/embedded database to use.
Wed 17 Mar | entell | I am interested in using it, too. Is there a GUI interface to it or is it purely from command line?
Wed 17 Mar | TomA | It will be included in the default PHP distribution, so there's probably going to be many more people using it very soon.
Wed 17 Mar | Bob | i've used it in a couple of console PHP applications. i didn't push it very hard, but it was virtually no different than using mysql. as the site says, it's typeless and i believe just stores everything as a string. actually didn't cause me any problems as 95% of data is string/integer. here's a gui that i used. it was fine, got hung on a couple of large imports: http://bobmanc.home.comcast.net/sqlitecc.html
Wed 17 Mar | Lite | It made the 'quote of the week' at http://www.dbdebunk.com
Wed 17 Mar | Matthew Lock | What a curious site. This is a little uptight though: 'Please access/link to this site only via the designated domain name www. db debunk .com' ???
Wed 17 Mar | Stephen Jones | Presumably there have been problems with linking to the site through a redirect. What often happens is that the owner of the site that uses the redirect changes his setup and you find the redirect doesn't work anymore. Both Date and Pascal are purists. Few people could reply to a poster with the words 'Your main problem is that you don't have the least idea of the basic concepts involved' and then go on to explain why in painstaking detail, blithely unaware of the fact that the poster might be a little put out by the admonition. They are however nearly always, if not always right, and I am sure that if any of us had spent thirty years refuting the same old tired misconceptions we too would be a little testy.
Wed 17 Mar | Mike Swieton | Very good experiences with it. The author is extremely responsive to support requests and bug reports. There is a mailing list which is active, polite, and not overwhelmingly busy. There are a number of GUI front ends to SQLite, but no official one. The code is very very clear and readable. Extremely well documented. It is in the public domain as well, so no copyright issues. I find its featureset to be very good; its APIs well thought out. The SQL that it can run is a pretty good subset of what's out there (missing foreign keys and check constraint enforcement, last I checked. But that's minor, like most other missing features). There's a page on the SQLite site that details which features are missing. I cannot recomend this package highly enough. Damn that reads really dryly... Oh well, it is all true.
Wed 17 Mar | Richard Kuo | Pros: very easy and logical to use, embedded and lightweight, open license Cons: Quirky bugs, performance is questionable outside of extremely simple queries. We had to index some things on our own because SQLite behaved slowly when we used it to query out data.
Wed 17 Mar | Tom Vu | I have used it and it's real fast. There's a cool feature that lets you create a database in memory and run SQL against it, never writing to disk. Gotcha: although there are data types they are not enforced.
Wed 17 Mar | Philo | I just realized why the 'untyped column' doesn't sound right - column datatypes document the column. Writing SQL against a database implicitly types the column. By not putting that type on the column itself invites bad data that breaks the existing SQL (and applications), but also puts an onus on someone to indicate what data *should* be in the column. Both Oracle and SQL Server have untyped columns - they're called varchar. You might notice that no respectable developers use tables which are 100% varchars. And it's not force of habit - I've worked on databases that were all varchars (actually all varchar(50) - I'm betting it was ported from Access). The database itself and its attendant applications had some real issues stemming from the lack of column typing. I'd be interested to hear experience to the contrary, but my feeling is that the 'untyped column' isn't a best practice... Philo
Wed 17 Mar | FullNameRequired | 'I'd be interested to hear experience to the contrary, but my feeling is that the 'untyped column' isn't a best practice...' I actually rather like it. SQLite accepts _any_ data type for each column and remembers what you called it, so the documentation side is a non-issue..I still create columns with varchar, integer, double, date etc etc types. the only difference is that in actual fact everything is just stored as bytes. searches on dates and numbers continue to work as I would expect...although Im sure that must fall down somewhere. it all works fine IMO, sqlite is a fast, lovely, simple, stable and reliable database.
Wed 17 Mar | Koz | Philo, The untyped column issue strikes me as just one about static vs dynamic typing. It's just not as important as dogma tells us. However it's certainly a nice safety net.
Thu 18 Mar | Mike Swieton | FullName: You can't quite give it any arbitrary data you want: I believe that the data must always be a c-string, or at least that used to be the case. But there's code in the library already to escape it for you.
Thu 18 Mar | Philo | Koz - there's a difference. With static vs. dynamic typing, for the most part you're writing single-use code. Not necessarily that the app/module/class will only be used once, but rather that it's designed to do a specific thing, so typing can be defined by the coder and designed around. Databases, on the other hand, are general-use. In most cases any database in production *will* be accessed by other code; code outside the control of the original coder. So even though a field is labeled 'int', some moron can come along later, forget a validation on that field, and allow a varchar to be inserted, breaking every single application that touches that field. oops. Philo
Thu 18 Mar | FullNameRequired | 'So even though a field is labeled 'int', some moron can come along later, forget a validation on that field, and allow a varchar to be inserted, breaking every single application that touches that field.' how would it break the application? I assuming that you are thinking about...say...'bugger' being inserted into a field intended for integers? that wont break anything, at some point there has to be a conversion of the values returned in the data cursor to a number anyway, and any even vaguely reasonable conversion will convert 'bugger' to 0
Thu 18 Mar | Matthew Lock | How about if you do some arithmetic on a column, like a database containing products and you SUM all the products in a user's shopping cart? You will surely cause a problem is some bozo entered a non-numeric value in there. For example they put a dollar sign at the start of the field by accident.
Thu 18 Mar | Matthew Lock | On the above example I mean arithmetic in the SQL select statement.
Thu 18 Mar | FullNameRequired | ' You will surely cause a problem is some bozo entered a non-numeric value in there.' not to sound too arrogant, but if there is _anyone_ out there who is sending user input directly to the database without performing _some kind_ of sanity check then I hope to god I never get tricked into employing them :) AFAICS the strong typing of most languages is an advantage here...the input will always have passed through strongly typed formatting before it gets to the database. In my case it goes from input field, to class member, to database. and then back again, from database to class member to display/edit. Certainly Ive had no problems whatsoever in either the area of documentation or badly formed input, and I dont expect to have any. (if I did I wouldn't be willing to touch sqlite with a barge-pole)
Thu 18 Mar | FullNameRequired | hmm...I hadn't considered doing web/perl/php stuff with it, there everything is weakly typed. good point :) The point about validation of the input still stands I guess, but it would become rather more important. interestingly enough Ive never even considered using sqlite for webpages/website backends, I would have expected most sites to require a larger/multiuser database for that scenario. Certainly mySQL or postgreSQL would be my choice there.
Thu 18 Mar | Ignore my ignorance | 'Cons: Quirky bugs, performance is questionable outside of extremely simple queries. We had to index some things on our own because SQLite behaved slowly when we used it to query out data. ' Do you care to elaborate on that
Thu 18 Mar | Matthew Lock | You will see a lot more web sites using SQLite once PHP5 comes out - with SQLite as it's default database.
Thu 18 Mar | FullNameRequired | 'You will see a lot more web sites using SQLite once PHP5 comes out - with SQLite as it's default database.' makes sense in some ways I guess, anyone with experience will know how to install mysql or whatever db they prefer, and anyone just starting out will find sqlite a lot easier to use straight off the bat, theres certainly _no_ config required. Be interesting to see whether they continue with that plan though now that mySQL has added an exception to their license for php, they may decide to bundle both after all. I _still_ dont think that anyone will start using sqlite for websites that are more than trivial, sqlite is a _wonderful_ singleuser database that is ideally designed for embedding in an application, and would work fine for websites with a fairly low amount of traffic, but as the backend for a shopping site it would have...issues....
Thu 18 Mar | i like i | ' I _still_ dont think that anyone will start using sqlite for websites that are more than trivial' that hardly narrows the field down does it? ;-) So is SQLLite is the JET of OSS?
Thu 18 Mar | FullNameRequired | 'So is SQLLite is the JET of OSS?' ummm...I write closed source software if thats what you mean? and Ive not seriously used JET. Valentina was my previous love, thats another _quality_ product.
Thu 18 Mar | MR | The whole point of a DBMS is to ensure that your data is correct so you don't have to. If you don’t care about data consistency and integrity and don’t mind having royally screwed up data in your database then by all means use this product. SQLite is nothing more than a SQL interface to a flat file. There is little/no data management going on. There is no concurrency control (the whole DB is locked when someone wants to change some data) and ZERO integrity constraints. Having typeless attributes in a DBMS is just about the stupidest thing one can imagine. An attribute type defines what operations can and cannot be performed on it and also enforces correctness. As has been mentioned before – how do you do addition on a string? What would the value of ‘ABCD’ mean in the attribute of ‘salary’ for an employee? Further, SQLite has no referential integrity constraints, CHECK constraints, etc: http://www.sqlite.org/omitted.html Given that there are other embeddable DBMS products out there which *do* support constraints and datatypes, I see no reason why anyone should use this product.
Thu 18 Mar | Phillip J. Eby | '''SQLite is nothing more than a SQL interface to a flat file.... I see no reason why anyone should use this product.''' Well, what if you want an SQL interface to a flat file? :) There are plenty of odd jobs that could use this, such as desktop programs that want to store something in a single file, but want SQL. I don't think I'd use SQLite for anything but prototyping, or doing small reporting tasks (e.g. pull various summary data from 'real' DBs and put them into a nice format for graphing, etc.). Certainly not anything with significant multiuser access. But I would prefer using SQLite to MySQL if I had a small enough project, and PostgreSQL to MySQL for anything that was too big for SQLite.
Thu 18 Mar | FullNameRequired | ' If you don’t care about data consistency and integrity and don’t mind having royally screwed up data' wow, thats harsh. I use it a fair bit now for various things and I have _never_ ended up with royally screwed data. what experiences have you had in this regard with sqlite? ' There is little/no data management going on' technically SQLite _is_ ACID compliant. surely that counts for something? 'As has been mentioned before – how do you do addition on a string? ' in some languages doing so concats it with another. but thats not really your question, is it? why _would_ you do additional with a string? I use sqlite and have never done this. How did you end up doing addition with a string? why dont you tell us about your bad experience with sqlite? 'I see no reason why anyone should use this product.' well;, Im glad you cleared that up :)
Thu 18 Mar | gunga | 'SQLite is 'typeless'. This means that you can store any kind of data you want in any column of any table, regardless of the declared datatype of that column. (See the one exception to this rule in section 2.0 below.) This behavior is a feature, not a bug. A database is supposed to store and retrieve data and it should not matter to the database what format that data is in. The strong typing system found in most other SQL engines and codified in the SQL language spec is a misfeature - it is an example of the implementation showing through into the interface.' I only implemented linear searches in the application. All those fancy search algorithms are useless IMHO. They are to complicated and introduce leeching abstractions (read this on a website). Those academical guys like Knuth should go out of their ivory power more often. What do they know about real world programing anyway? FYI I have 2+ years PHP/MySQL development under my belt and I never used my algorithm textbook. Not once!
Thu 18 Mar | MR | > “Well, what if you want an SQL interface to a flat file?” If you are willing to accept the (substantial) risks then by all means use it – although I would prefer you didn’t, for your sake and whoever relies on that data. It could be used as a way to easily create reports (e.g. all selects) but it is not suitable for data management – don’t think it’s at all a replacement or even a substitute for proper DBMS products (of these, MySQL is not one). It lacks critical data-management functionality and is virtually one step up from you coding the file parsing routines yourself. > “I use it a fair bit now for various things and I have _never_ ended up with royally screwed data.” Maybe you’ve been lucky, or extra cautious. SQLite easily allows you to have royally screwed up data precisely because you have to roll your own constraints in application code and thus it is easily circumvented. > “ACID compliant” Well, sure, but there’s more to data management then simply locking the whole DB when you try and update something. > “How did you end up doing addition with a string?” The issue is not why you would attempt addition on a string – that is silly. The issue is that you can put any data in any column even if it violates the datatype constraint. I can, by accident or on purpose, insert the string ‘foo’ into a column which *supposedly* stores information that is of a numeric nature. The example I gave before is salary. What happens when you try and get employees with a certain salary, or sum up all the salary values? Who knows – summation and numeric comparison is undefined on a string. Of course, you could write a datatype check for each and every attribute and check each before you insert it. I’d rather have the DBMS do that for me, like it is supposed to. >“The strong typing system found in most other SQL engines and codified in the SQL language spec is a misfeature - it is an example of the implementation showing through into the interface.” Wow, that is a symptom of knowing just enough information to think you know it all. :) I agree that SQL has many horrible exposures of implementation-specific aspects of the model. Types are, in the general sense, not one of them. Of course, SQL got the ‘domain’ idea completely wrong, so it’s not really saying much.
Thu 18 Mar | Philo | ' If you don’t care about data consistency and integrity and don’t mind having royally screwed up data' wow, thats harsh. I use it a fair bit now for various things and I have _never_ ended up with royally screwed data. what experiences have you had in this regard with sqlite? ****************** FullName, the issue isn't what you do with your pet database - it's what *other* people do with your pet database. SELECT SUM(Items * UnitPrice) FROM Items WHERE CartID=%CartID Works fine until Joe LeetCoder writes an ASP cart that also uses your data store for his app, but doesn't put type checking on the data entry. So some user enters 'Free' in the price as a joke and hits submit... ...breaking every report you produce. *anything* that touches that cell will simply stop working right. Remember that there's a camp championing loose typing in programming languages just as fervently as you're championing loose typing in your database. In my experience, loosely-typed databases (i.e. RDBMS where every field is Varchar(50)) contain crap for data. Period. Philo
Thu 18 Mar | FullNameRequired | 'It lacks critical data-management functionality' maybe you should be more specific here...what 'critical data-manag