last updated:26 Jul 2004 11:35 UK time
Joel On Software Discussion Forum
JOS Statistics - Recent Comments
(Comments added for week ending Sun 25 Jul 2004) | View Other Weeks
Web page size still matters? | Sun 25 Jul | Justin Johnson
MarkTaw made a comment in another thread that his employer likes to shave a few bytes off every web page served. Ive seen pages like this: no indentation, no unnecessary closing tags, no alt tags for images... all to save a couple of K on whats already a minimal download, especially if images are involved. I cant imagine it making that big a difference in downloading time, even over a modem, and I thought that serious, high volume hosting deals dealt with the difference between single and dual T1s, or T3s, not byte transfers. It strikes me as a phantom concern. Or am I missing something?
Sun 25 Jul | Li-fan Chen | There are web events where thousands (if not hundreds of thousands) of hits per second are the norm on a bad day.
Sun 25 Jul | Arron Bates | Thousands of hits per second... only if you're lucky enough to run a very high traffic and most likely profitable website. But the best reason to still be shaving the download size is that most web users still don't have broadband. If you're trying to make a commodity offering that it's important. If you're making an intranet where you know that everyone is on the LAN or broadband link, then it amounts to a complete waste of developer effort.
Book Recommendations on Software Effort Estimation | Sun 25 Jul | developer going to be analyst
I am nearly 4 yrs experienced in this field as a developer. I am going to start estimation for some projects. I have never done this before. any book recommendations on effort estimation for a beginner are helpful.
Sun 25 Jul | www.ChristopherHawkins.com | Well, you can start by reading Joel's articles on the subject. There is a decent article on the subject at my blog. Then you have Steve McConnell's books. Ready...set...go! ;)
Sun 25 Jul | TheGeezer | Search this forum. There are plenty of links relating to this subject. Here's a recent thread: http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=166394&ixReplies=13
What's the best way to create web pages nowadays? | Sun 25 Jul | JWA
Hi All, Back in 98 - 00 or so I wrote a lot of static html and dynamic ASPweb pages for various sites, but havent had to since. I now need to put together a medium size website, but Im not sure where to begin. I pulled out a copy of FrontPage XP to put together tha basic layout, and while t renders perfectly in IE, Mozilla, Netscape, and Safari, it isnt even close to passing any of the validators, and is all straight html with only local css elements. So, what programs do people use to code web pages nowadays, with proper support for css/xhtml, etc? Also, any pointers to a breifing on the current state of the technology and/or any tips would be much appreciated. Thanks, --Josh
Sun 25 Jul | Anonx | I had the same background writing HTML sites.  I recently have had to do a simple web entry db entry form.  I used dreamweaver and I can’t tell you how impressed I am with it.  It scalable with extensions, great support for db work.  From what I have seen so far with it, it has taken about 90% of the grunt work out of writing html pages.
Sun 25 Jul | AnonymousCoward | Dreamweaver MX2004 is the way to go. It had some serious performance issues until a free update came out a few months back. The '2004' version improves the CSS handling over the old 'MX' version. I use it for PHP/MySQL pages, and find it great for building forms/queries/etc, but I tend to tweak and reorganize some of the auto generated code, such as where it stores db connection info. You might also like to look at TopStyle by Nick Bradbury. Haven't used it for anything dynamic, but really easy to use for static content and styling. Inexpensive.
Sun 25 Jul | Wilder | Pretty much like in 1993 : Notepad.exe
Sun 25 Jul | Thom Lawrence | FrontPage 2003 seems to create standards compliant HTML and CSS and stuff for me, but I can't say I care enough to make sure. Every time I've had to update a Dreamweaver site without a copy of Dreamweaver it's been a horror, so bear in mind the people who'll inherit your code (it amazes me the number of people who think it's really important to create valid XHTML 1.0/1.1 when no browser could care less, but who don't mind spewing out crap on the server side). SharpDevelop and Web Matrix are both free and aimed at the .NET side of things, so might be worth a look. To be honest, if you've got a database sorted and you or a colleague have a decent sense of design, the inbetween bits are pretty easy to work out on all but the most complex of sites. Go with whatever interface you feel most productive in, just spare a thought for the next guy. :)
Sun 25 Jul | www.marktaw.com | Dreamweaver.
Sun 25 Jul | Walter Rumsby | TopStyle - http://www.bradsoft.com/topstyle/
Sun 25 Jul | Justin Johnson | I've always used Notepad, NoteTab, TextPad, or more recently Eclipse for JSP, and I've always been typing it in by hand, along with liberal cutting and pasting. It can be as fast as FrontPage or DreamWeaver, but only if you're disciplined about templating and trying to create very logical, strict HTML. Personally, I like that, since it enforces good design discipline on the site.
HW Question - which scanner? | Sun 25 Jul | TomA
I need a good, cheap scanner with quality drivers for WinXP and a simple user interface. What can you folks recommend? I really must stress the simple UI. No more custom pink embossed buttons please. Ive had a Mustek USB scanner for about 2 years and its been nothing but trouble. The drivers suck, non-standard installation crashes, leaves a partial install but uninstall doesnt work etc. Their latest driver update added SOUND EFFECTS to the user interface. Its not even worth for me trying to reinstall Windows because of this. Im throwing it away and need a new one.
Sun 25 Jul | Justin Johnson | I have a cheap HP scanjet that uses the same driver and software as most of their other stuff.  It works very well and consistently.
Sun 25 Jul | r1ch | +1 for the HP ScanJet
Sun 25 Jul | Harry Krishna | Good Cheap You can only pick one.
Sun 25 Jul | Christian Xen | Any HP scanner works. I have an 3970, but even 3500 works greatly. The software is intuitive and lets you configure everything you can think about.
Sun 25 Jul | Chris Tavares | I've got a Canon U1220, and just love the thing. Single push button on the front to bring up the scan software, easily configurable options for various presets, it's only about an inch think, and best of all, no power cord - it's powered directly from the USB cable.
ms after google | Sun 25 Jul |
remember google automated news? now m$ has a similar one, quite a copy, http://uk.newsbot.msn.com/
Sun 25 Jul | TheGeezer | Yeh! Go MS. What an innovator. NOT!
Sun 25 Jul | Roose | I've never had a problem with MS, and use their products very often... But the way they are ripping off Google is just shameless. Wow...
Sun 25 Jul | Uncle Bill | Don't they call this competition?
Sun 25 Jul | TheGeezer | Umm, I'd call it plagiarism. http://dictionary.reference.com/search?r=2&q=plagiarism
Sun 25 Jul | www.marktaw.com | I dunno, does Google do this: ' Newsbot (beta) responds to your reading preferences. Clicking on articles determines what we base your recommendations on.'
Why seek compliance with standards? | Sun 25 Jul |
I work on an intranet site. I know that the company uses IE only. Im wondering if we should validate our Html code, or put effort somewhere else (eg. into a new function). If we see the page correct in the browser in that case it doesnt matter if we forgot to close a tag, or forgot the doctype at the top of the page. So why bother? On the other side I believe that we need to add the extra effort to create correct Html files. If we dont do it now, we probably wont do it correctly in the future. And at some point we need to work with a client where this is a must have. And I know that it will be a pain in the ass. What do you think?
Sun 25 Jul | Justin Johnson | Standards compliance is a long-term investment in your code. Well, not that long term, but you can be guaranteed that if the code sticks around for more than a year or two, at some point you (or someone else) will be cursing the decision to quick-and-dirty it at the start. If there's no pressure to just get the damn thing up an running, I'd do it the standards compliant way first.
Sun 25 Jul | no name | It's a question of time and profitability. Will taking the time to make your site 100% correct HTML increase your profit? If yes then by all means go for it. If no then why bother? Are your customers complaining because they can't view it in Opera or Mozilla? Have you tested it in Opera or Mozilla? (Or that Mac browser Safari I think?) If you tested it in all of the browsers and it displays and functions according to your liking then don't bother investing more time in it. It's your time, your money and your priorities. Do with them as you see fit.
Sun 25 Jul | Eric Debois | Go for compliance. It doesnt have to be 100%, but make sure to do the doctype stuff. Otherwise the browser must guess how to interpret the page, and the next update of IE might well guess differently.
Sun 25 Jul | Justin Johnson | Who was it who coined the phrase "technical debt" to indicate that, when you take shortcuts at the beginning, you're incurring a debt that will later need to be paid off, with interest, because you'll have greater difficulties later on modifying or correcting the code?
Sun 25 Jul | no name | The problem is that it's hard to calculate profitability here. Maybe we get better profit for this particular project, but we know that this project will lead to the next ones. And customers choose based on quality. The question here was not really html compliance, but in general, compliance for quality aspects of your work.
Sun 25 Jul | Egor | Writing compliant HTML requires NO additional effort once you learn the rules. Standard-oriented design is a bitch to learn, but a great time-saver and pleasure to use.
Sun 25 Jul | Michael Ealem | Applications that were originally written for internal use only have a very nasty habit of hanging around for years, and then being snatched up by sales and sold to external customers. Then management starts complaining.... Do it right the first time, then you don't have to worry about it returning to bite you in the tuchis at some future date.
Sun 25 Jul | Peter | After the latest round of IE exploits, the developers where I work switched to FireFox. Sure, IE is embedded deeply inside outlook and .NET studio and things like that, but as we started using Mozilla based browers, we learned how sloppy IE is at rendering, and just how far off of the HTML standard you can get. As an example of the technical debt mentioned above: <asp:panel> tags do not render correctly in Mozilla based browers (or anything that looks for a proper html page). You have to wrap them in html comment tags so that they can be seen by the user. So they should all look like <!--<asp:panel>--> err. i hope that shows up
Sun 25 Jul | Peter | nope. lets try gets replaced with same for closing tags.
Sun 25 Jul | kc | There is little difference between making IE-specific pages and making standards compliant pages. There are dozens of sources online which will layout the differences and the changes required. Once you're doing it for a while, it just comes naturally. If the application is used solely internal to your company, then you have some control over the environment which it it used. Of courcse if you're interacting with any vendors or clients OR you marketing crew decides 'hey this is useful and we can sell it', then you need to be prepared for more environments. DISCLAIMER: Our company makes dozens of apps, some used internally, some externally, some both, and some sold. Prior to me joining in December, they were IE-specific. I'm starting the movement to make them much more robust and flexible.
Sun 25 Jul | T. Norman | If you code to IE you're still coding to standards; you've chosen IE as the standard. Choosing to code to a more portable standard such as the W3C's isn't much harder, it's just that you have to learn that standard instead.
Sun 25 Jul | Simon Lucy | Compliance is not about running in different browsers, its about being able to use web pages under all circumstances. You may use a single browser but what proportion of your users have an eyesight defect, colour blindness, impaired use of one or more limbs that makes using a mouse difficult? Can you, by removing all the styling, read the content or have it translated into voice by another system? Can all the functionality of the site be managed by the user using only the keyboard? Are there alternate navigation methods? And if you have no users with special needs now, how can you be certain you won't in the future?
Sun 25 Jul | Thom Lawrence | The output of HTML to the browser should be the easiest, quickest, most flexible part of your application. Go with standards now, do it later - nobody will notice or care, and if they do, you should be able to change it all in an afternoon. I wouldn't worry too much about it. It's not hard to follow the standards, and frankly I like XHTML because it's nice and anal, but do whatever gets the job done. The browser is the standard, not some document at the W3C.
Sun 25 Jul | RocketJeff | Also, just because your page looks fine with the current version of IE doesn't mean that it'll look fine with the next. If you follow published standards you'll not only have a better shot ogf running on different browsers, but you'll have a better shot of being compatable with different versions of the same browser.
Sun 25 Jul | www.marktaw.com | I used to manage an Intranet, and brought it from 800 pages to 5,000 pages. The standard browser was netscape 4.x for the longest time & I always insisted on something that, if not standards compliant, at least worked on both of the major browsers, even when the company started going over to IE only, up until the point where we were given new computers with only IE & were told not to install any new software on them. (Strange, restrictive company policy for programmers, I know). I also had a no-flash policy because not everyone had flash. My general rule when designing web pages is: KISS - Keep It Simple, Stupid. Given the choice, I won't do anything more complicated than Google (view the source on their page) or Yahoo!
Sun 25 Jul | Walter Rumsby | Google fails a W3C validation check :)
Sun 25 Jul | www.marktaw.com | Google "fails" gracefully. if a browser doesn't support CSS, it still renders the page, just with the default font. That's what I care about, more than actual standards compliance.
Sun 25 Jul | Walter Rumsby | That's what would happen anyway? I'm not sure why it would have to not support the standard to achieve that. Looks to me like there are font tags and unquoted attributes causing most of the validity problems - http://validator.w3.org/check?uri=http%3A%2F%2Fwww.google.com%2F - which shouldn't really be that much of an effort to clean up.
Sun 25 Jul | www.marktaw.com | The the doctype stuff is mostly fluff. It looks like mostly they're non compliant because a) the old stuff just works, and b) they want to shave a few bytes off of every page served.
Fog Creek Affiliate Program | Sun 25 Jul | Matthew Lock
Is the Fog Creek Affiliate program still running? http://www.fogcreek.com/Affiliates.html I cant find the sign up link on the page anywhere.
Sun 25 Jul | www.marktaw.com | Joel mentioned a while back that he was rethinking his strategy, and I believe he said he would get rid of the affiliate program, but still honor anyone who was in it already. I think.
Sun 25 Jul | www.marktaw.com | But a quick peek at the source code turns up this: https://shop.fogcreek.com/affiliate/default.asp?pg=pgSignup
Sun 25 Jul | no name | man, i receive a lot of javascript errors on that page. oh it's joel quality site, yup
Sun 25 Jul | Brad Wilson | Wait, someone scrounged a DEAD LINK to a page, and you're bitching because this page that NOBODY IS SUPPOSED TO EVER BE ABLE TO GO TO happens to be broken? What a flaming asshole you are.
Sun 25 Jul | Joel Spolsky | The administrative effort wasn't worth the benefit, so we stopped accepting new signups.
Sun 25 Jul | no name | maybe i'm a flaming asshole however it doesn't change my view that on the *live* online order form if I enter the letter A into the quantity field (the 'how many' column) then i got a nice error which is clearly that somebody didn't test correctly that page. and we all know that the owner of this site/forum is somebody who likes to rave about quality.
Sun 25 Jul | Eric Debois | >>and we all know that the owner of this site/forum is somebody who likes to rave about quality. We do? Are you sure you are really thinking about this site? AFAICT Joel raves alot more about the cost/benefit thing.
Sun 25 Jul | kc | THUS SAYETH THE JOEL. Wow, I thought he had been abducted by aliens...
Using .NET to develop a $30 Shareware | Sun 25 Jul | Brian Carmack
Im planning to publish through a web site a shareware, the price will be $30 I dont know if I should use Delphi or .NET yet. With .NET I will benefits from nicer API from the Framework but then people who do not have the .NET Framework installed would have to install it. The advantage with Delphi is that it just require a single .EXE file to run What would you guys advise me ?
Sun 25 Jul | Craig | Use Delphi.
Sun 25 Jul | Brian Carmack | Craig : 'For which reasons ?' I'm trying to have an extensive list of pros & cons between the dot net & Delphi. Do you now if Delphi applications will run on Longhorn without problems ? Does 16 bits applications (Windows 3.1) will run on LongHorn ?
Sun 25 Jul | trollop | Distribution economics say Delphi or anything else that zips your distro into less than 2MB. Unless you must have .NET features, (and your post indicates you don't) asking folks to install another 20Mb just to run your thingo won't help you sell it - until all the lemmings have migrated. Another issue is code obfuscation. It's a LOT easier in an .EXE ... Not to say .NET won't happen in time but I'm not in a real rush to convert from CBuilder to .NET yet. I guess that Delphi.NET could provide you with an upgrade path. Don't buy any your development tools until you've made up your mind. Good luck.
Sun 25 Jul | Bored Bystander | Another vote for Delphi. Instead of thinking 'Delphi app' think 'native Win32 app' for perspective. Delphi experience will almost certainly not help you land a full time job or a decent paying contract. But Delphi applications are very easy and reliable to deploy because they have few dependencies upon the computer's operating environment. If you are selling shareware, you must make support of your users as economical to you as possible. This implies distributing something as close to a native Win32 application as possible. The fact that you can compile (VCL) custom controls into the application also eases deployment issues.
Sun 25 Jul | MX | If you think that .NET will give you a better 'framework API' than Delphi you obviously don't have experience with both environments, so you can't compare them. If you make an enterprise application which involves XML, web services, SQL Server, and database access which is heavily cached on the client (ADO .NET does this) then C# and Visual Studio .NET will indeed be better than Delphi. But for the rest of the projects: - Delphi has more GUI components, .NET has a lot less components, also the .NET components are extremely buggy when compared to Delphi's - ADO .NET is a lot harder to use than the database engines (there are several) which are included in Delphi I have done both Delphi and C# development, and I think that for shareware software, or for software that must have a rich user interface, Delphi is a lot better.
Sun 25 Jul | Fred | BTW, the VB5 runtime ships with Windows since 98, so you don't need to ship the runtime, and you can combine any extra file (OCXs, DLLs, etc.) with the EXE using tools like PEBundle, EXEBundle, or Thinstall. And considering that you can still run clean DOS apps under XP, I wouldn't worry about MS killing support for Win32 apps any time soon.
Sun 25 Jul | Li-fan Chen | CityDesk uses a combination of Visual Basic 6 and Visual C++ 6/7--is this still valid?
Sun 25 Jul | anon | Do you have a link to EXEBundle?  Google was no help...
Sun 25 Jul | Max Belugin (http://belugin.newmail.ru) | if you use delphi your app will also - be faster - have less startup time - eat less memory What frameworks are you require? - you have XML support (event pure delphi SAX parser) - free report engine (see freereport at http://www.fastreport.com) - lots of visual components (http://www.torry.ru http://www.delphi-jedi.org/ ) - ports of most APIs header files I think .NET is applicable only when you develop a web or an enterprise appication, targeted to MS Windows only (see amount of .aspx'es today), or a development tool.
Sun 25 Jul | Brad Wilson | There's only one reason you might choose .NET: because you can't afford Delphi. :) You can get the .NET SDK, which includes the command line compilers, for free. You can add a build tool like NAnt or an IDE like #develop for free as well. If you already have Delphi, or can afford to buy it, it's the better choice for stand alone apps today.
Sun 25 Jul | Fred | Do you have a link to EXEBundle? >> http://www.webtoolmaster.com/exeb_e.htm but PEBundle and Thin$tall seem richer.
Sun 25 Jul | RH | I'm curious what tools might have been suggested if the platform was Linux.
Sun 25 Jul | mjwills | Max, if you use delphi your app will also - be faster Good to see you backed up that statement with a study or research proving your assertion. Seeya
Sun 25 Jul | Kalani | >Good to see you backed up that statement with a study >or research proving your assertion. I'm not Max, but I can tell you from a bit of my own research that this is true in some important cases. I made a program that would approximate a Bezier surface, whose control points were varied in a simple way, every 100 msecs. The triangles for the surface would actually be regenerated for every frame and the container class would be cleared and refilled (so clearly it's not the most efficient way of doing it). Finally the triangles would be run through my small software rasterizer and thereby clipped/projected on the screen (the whole surface would undergo rotation and such also). I made this program in Delphi and then I translated it to C#. The Delphi version ran the animation smoothly, never going above 40% CPU usage (and using very little memory). The C# version was pretty choppy and it used 100% of the CPU time (and it used a bit more memory). This probably isn't particularly surprising to most people, and obviously the poorer performance of C# can be overlooked in a huge number of cases, but there's one data point anyway. Actually I think that Delphi is an interesting case. The performance that you can get with it is impressive (even compared to the typical C++ environments where compiler optimization research is put to greatest use), and the facilities that its IDE provides for building nice user interfaces are really pretty good. The only complaint that I have about it is the poverty of language features. I'd like reflection, multiple inheritance, generic types/functions, operator overloading, continuations, etc etc (my list of complaints here is long and I guess to some degree it applies to many modern languages). C# is a good language too, and the libraries that come standard with VS.NET certainly do better than Delphi in a number of areas (a very simple example being regular expressions, which as far as I know STILL requires a third-party library with Delphi).l
Sun 25 Jul | Philo | Kalani - did you look at GDI+ for your rendering? Philo
blogs.msdn.com | Sat 24 Jul | Dennis Forbes
Ive found it highly entertaining seeing the catch all random snippets of Microsoft blogs on the main page of this site (although Im sure Microsoft might rethink this public experiment -- one post that week featured a joke with the punchline two sluts and a fag, whereas another went on an anti-intellectual property tirade, proclaiming the RIAA as all that is evil. How humorous for an employee of Microsoft, or any software company for that matter, to deride IP). Anyhoo, I just browsed there and caught this post - http://blogs.msdn.com/philipsu/archive/2004/07/24/194201.aspx 2001 called, and they want their fear mongering back.
Sat 24 Jul | Michael Ealem | Yes, I found all the "Your Job is Going to India" stuff quite amusing - I remember the time not too many years ago when a company I worked for gave Wipro a *ton* of money to write code for them, almost all of which had to be re-written. Cost the VP of Engineering his job. *chuckle*
Sat 24 Jul | PopCulture | I've been tuned in to msdn blogs very recently. Inappropriate jokes and fear mongering aside, the majority of blogs I have surfed to provided me with valuable insight and thoughts of the people in charge of making the products I deal with on a daily basis. I hope they stay around, though if hosted on ms servers there will no doubt be restrictions made- especially along the lines of the India comment (see 'Microsoft has a long term commitment to India' : http://money.cnn.com/2004/07/23/technology/microsoft_jobs.reut/index.htm?cnn=yes) I hate to hijack a thread, but very much on topic... does anyone else read the msdn blogs, and if so which ones provide the best technical content?
Sun 25 Jul | Tayssir John Gabbour | A good technique bloggers use is to write a firebrand entry, then let commenters write interesting replies. Yesterday I read up on Moleskine notebooks, those somewhat pretentious notebooks I like to buy that are significantly costlier than most. They don't seem to be worried about the proliferation of cheap paper. What normally happens when markets are entered by strong, cheap suppliers? (Problem left to the reader.)
Sun 25 Jul | Modern Cowboy | Are all of the Microsoft blogs on blogs.msdn.com now? I thought I had seen some on the asp.net domain but I can't find those now.
Sun 25 Jul | Prakash S | that's an excellent no BS blog...thanks dennis.
Sun 25 Jul | Rick | http://weblogs.asp.net/ is what you're looking for. There used to be a lot of MS bloggers on GotDotNet, but they were moved to blogs.msdn.com.
Character Set, Encoding and Fonts | Sat 24 Jul | WB
Im wondering what the relationship is between a character set and a character encoding and how they relate to fonts. I always thought that a character set was the actual set of characters from a certain language and character encoding describes how a stream of text from a given character set is encoded into a stream of bytes to be sent over a network, read/written to/from a disk or otherwise interpreted. Now a font comes in to play by providing glyphs for a given character set but it does not have anything to do directly with character encoding? Would someone please explain to me the relationship between these 3 terms?
Sun 25 Jul | Lou | http://www.sidhe.org/~dan/blog/ There are multiple posts covering these topics, I think you'll find that they cover most of the questions you have.
Sun 25 Jul | WB | Thanks Lou.  After reading that and Joel's article I now, finally, think I have a grasp on this stuff.
Sun 25 Jul | no name | So if I created an HTML page in English with a content type of UTF-8 what benefit would it have to a Korean viewing the page?  Isn't the benefit of an encoding only useful if the language it's written in needs that encoding?
Sun 25 Jul | mb | UTF-8 is a useful encoding because it's pretty much universal. For ASCII, it's identical. For extended characters, it's an easy to decode multibyte system. HTML has its own weird encoding (& # number), which is almost but not quite unicode. Plus it has named entitities (& eacute), which are sort of nice but make it hard for, say, XML parsers (which only have 2-4 named entities without external references) later. So if your page might ever have a word of Korean on it, may as well pick the almost-universal UTF-8. I believe the major problem area is the overlap with variants of Chinese characters, where you need to know what language (Simplified Chinese, Traditional Chinese, Japanese, Korean, or Vietnamese (the last two being rare)) is being used to pick the right font. this looks informative: http://www.informit.com/articles/article.asp?p=30893
Universal MSDN or Empower Program | Sat 24 Jul | James Thomas
I dont know where else to ask. Does anyone who has the MSDN Universal Subscription know if it is possible to get older versions of MS Development tools, in particular the Visual Studio 6.0 by signing up to the Empower program (which includes 1 universal subscription). Microsofts website only mentions that the only Visual Studio available is the .NET one.  I am currently trying to find an unused retail license for Visual Studio 6.0 and besides ebay,  nobody on the internet sells MS Studio 6. Ebay is OK, but Id never know if the license was academic/non-retail/oem or whatnot, or at least there would be no guarantee. I am just trying to cover my ass in case I do develop a decent product in VB6 & C++ and only then to  find out that it was done with a nonlegit copy of the MS Studio.
Sat 24 Jul | Christopher Wells | You know that MSVC v7 is able to compile non-.NET software ... MFC and so on?
Sat 24 Jul | James Thomas | Yes, I know that, but it is mostly the Visual Basic 6 that is of main interest to me. I've been developing a nifty application between classes in college, they have Visual Studio 6 on every PC but with the academic license, so now I wish to release the program but can't find a retail copy of VB6 to buy and compile my project in that.
Sat 24 Jul | Jonathan A. | Yes, MSDN Unverisal does include access to Visual Studio 6.0 including VB.  Last time I checked it came on both the DVD and was available for download in the subscription area.
Sat 24 Jul | RocketJeff | You don't need MSDN Universal to get VB6 - I have MSDN Professional (all the company would shell out for) and VB6 is available via MSDN Downloads. It's only the Professional version, if you want VB6 Enterprise you'd probably need an MSDN Enterprise subscription.
Sun 25 Jul | Alex Tronin | Yes, see what I can download via Empower: Visual Studio 6.0 Enterprise Edition Visual Studio 6.0 Professional Edition
Sun 25 Jul | James Thomas | Thanks to everyone for the information.
Sun 25 Jul | RocketJeff | 'I've been developing a nifty application between classes in college, they have Visual Studio 6 on every PC but with the academic license, so now I wish to release the program but can't find a retail copy of VB6 to buy and compile my project in that. ' Find a copy of the License that covers the copies of VB you've been using. If it's Microsoft's standard Academic License then you shouldn't have anything to worry about - it only restricts who's able to buy the Microsoft product, the rest of the license is the standard licence for their product. If you still want your own copy, go ahead and buy an Academic copy (if you're still eligable). Again, the last time I looked, the only addition to the license was who was able to buy the Microsoft product, not what they did with it after they bought it.
Lookout gone | Sat 24 Jul | RT
The microsoft.com Lookout download link no longer works ...
Sat 24 Jul | RT | PS just a quick recap: As of July 19, Microsoft says, 'The existing Lookout product will no longer be available.' As of July 23, Microsoft makes Lookout available through its download center at http://www.microsoft.com/downloads/details.aspx?familyid=09b835ee-16e5-4961-91b8-2200ba31ea37&displaylang=en As of July 24, Lookout disappears (?) from the download center, both at the link above and in a date-sorted list of Outlook downloads: http://www.microsoft.com/downloads/results.aspx?sortCriteria=date&OSID=&productID=50663FD1-DBAD-4705-B915-E4CF683E70FE&CategoryID=&freetext=&DisplayLang=en&DisplayEnglishAlso=
Sat 24 Jul | mb | As July (23?), Lookout is again available from http://www.lookoutsoft.com/Lookout/download.html
Sat 24 Jul | TheGeezer | Yeh, I'm as confused as you are. Begs the question - why are they flip-flopping around with this product
Sat 24 Jul | no name | i told in the prev forums to WatchOut before LookOut
Sat 24 Jul | LannyD | my guess is MS wants to make it available, but doesn't want to support it or have it seen as theirs.
Sun 25 Jul | Chris Altmann | The link 'mb' provided can also be found here: http://sandbox.msn.com/ Kinda like http://labs.google.com/
Why to never use sentinal values | Sat 24 Jul | mb
Or, why null has a special meaning. http://www.delawareonline.com/newsjournal/local/2004/07/22notagtagsbringf.html
Sat 24 Jul | no name | it's funny ... and sad from a sw perspective
Sat 24 Jul | example | Same thing happened to a guy in California a few years ago.  Tried to be clever, and started getting tickets from around the state.
Sat 24 Jul | Almost Anonymous | I think I'm going to get a personalized license plate that just says "NULL".
Sun 25 Jul | L. Ellison | This is hilarious. It is an excellent example of why you hobbyist programmers drawing a salary ought to learn how to use null. DBA's rule!
Conferences as an Independant? | Sat 24 Jul | Brad
Back when I was working for The Man, I attended a fair share of conferences, some more worthwhile than others, but I usually got something out of all of them. The best part, however, was that I wasnt paying. Now, though, Im an independant developer--and loving it. Except that I can only dream about going to some of these conferences. I cant afford to spend $1K to go--nor would I; they arent really worth *that* much in the end. Now I know that some conferences give free passes out like candy. So...how do I get in on that?
Sat 24 Jul | Mark Bessey | Find out what magazines are published by the media company that runs the show, and subscribe to them -Mark (still haven't been able to use my free passes to the Embedded Systems Conference, but someday...)
Sat 24 Jul | sgf | I've gotten many free passes to the Embedded Systems conference - but only the exhibition floor. I don't think there are many passes for the classes and tutorials. :(
Sun 25 Jul | the artist formerly known as prince | Dont forget they are an excellent way to tax deduct vacations
Why is there an extra pseudo-item in a listbox? | Sat 24 Jul | S. Tanna
Create a Windows listbox Make it exactly big enough (or even a few pixels bigger just to be safe) for N items. Fill the list with N items What happens? The scrollbar appears, sized, as if the list contains N+1 items. But when you scroll - there is of course no extra just a blank gap for a potential item after the last actual item. Its almost as if the listbox scrollbar things theres an extra imaginary-item after the last actual item. - Is this is a bug or a feature in Windows? - Is there any good reason why it was designed this way? - Is there any way to make the listbox scrollbar not think theres an extra imaginary-item after the last actual item. (Note: Ive only been tested this thoroughly in certain combinations of Listbox styles, and Windows versions, etc, so the it is possible this bug/feature doesnt always appear or is fixed in later Windows versions)
Sat 24 Jul | Bored Bystander | I had to stare at your question for a few moments to grasp the issue. Sometimes it appears that there is a phantom first item in an unpopulated list box, but this is probably just so that the listbox has something to display in its interior and is not really a list item. You seem to really be asking about the scroll bar behavior. Scroll bars are a separate Windows control. In fact there is a scroll bar available in Windows that can be placed by itself. The scrollbar control is parameterized with a minimum and maximum data value (range) and a current position ,as well as values for line and page stepping (the amount by which the scroll moves if you click on an end button or on the interior of the scroller outside the slider button.) My guess is that unless the client area of the listbox is an exact integer multiple of the list item height, then the scrollbar will always be programmed to have a range of lines one greater than the visible count of lines. Why: so that the final item is always accessible by the scroll bar.
Sat 24 Jul | Bored Bystander | >> scrollbar will always be programmed to have a range of lines one greater That is, the scroller is PROGRAMMED to GENERATE data values that are one greater than... yatta yatta...
Sat 24 Jul | Alex | Scrollbars are sometimes not implemented as distinct child controls: http://weblogs.asp.net/oldnewthing/archive/2004/05/10/129068.aspx
Sat 24 Jul | VPC | I had another issue with listboxes. They seem to try to adjust their size so that even number of items is completely visible. I tried to create a listbox and a simple pushbutton next to it and they both had to align at the bottom. But it didn't work. List was always below or above the button until I started calculating these positions myself and adjusted both controls to align nicely. There must be a rule about it I suppose but I couldn't find it documented.
Sat 24 Jul | S. Tanna | In this particular case, the scrollbar is not a separate control but triggered by a style associated with the listbox. The range of the scrollbar is, in this case, set by Windows itself, in whatever code in Windows handles the listbox. And it is this that I am questioning, as I can't find rhyme nor reason to the range it chooses. However, after some experimenting I have hit on a combination of other style settings and sizing, that seems to eliminate the problem. (Whcih solves my immediate issue). That said, it's still an open question for me, as pure intellectual one.
Sun 25 Jul | Raymond Chen | LBS_NOINTEGRALHEIGHT
Sun 25 Jul | VPC | Thanks, LBS_NOINTEGRALHEIGHT magically appeared in MSDN, Win32.hlp by Borland and in several books I have. I can swear it wasn't there before;)
Hidden license information | Sat 24 Jul | Jenny Svensson
Theres been discussion and speculation lately in the forum regarding lookout beeing aquired by microsoft as a result of the original developer beeing cought of using pirated development tools. Big IT also tells tales about how his company aquired assets of others in similar cases. How were these compaines actually cought? Is the license information hidden inside the executables produced by the compilers? Does microsoft development tools hide this kind of information?
Sat 24 Jul | no name | That explanation is complete crap. Microsoft does not buy companies by catching them using tools without licences. For a start, most of them are so cosy with Microsoft developer relations they've got licences to tools coming out of their ears. Don't believe every little rumour you hear.
Sat 24 Jul | Tayssir John Gabbour | I assumed it was a troll/joke. But I'm sure I have the advantage of being mostly detached from the Microsoft dev world. If it turns out to be true, I'll take the movie 'Antitrust' more seriously.
Sat 24 Jul | Gill Bates | I really doubt Microsoft's lawyers advised them to engage in criminal racketeering, just to get the assets of some little company.
Sat 24 Jul | Jenny Svensson | Why would it be criminal to include such information (license key) in, for example, a executable?
Sat 24 Jul | James Thomas | After reading "I, Cringely" articles on Microsoft and their competitive strategies, I tend to side with the belief that they will go to any lengths to get rid of competition.
Sat 24 Jul | no name | I, Cringely, would know, wouldn't he.
Sat 24 Jul | Observer | Sometimes there is info about licensee in generated files whether they be executables or spreadsheet documents. More commonly, there is global user and machine ID information embedded in executables and documents. Even if the person has not registered and thinks themselves anonymous, they are likely to have at some point used their machine to generate a document or executable that includes identifying information. These facts are used by the fbi and others when tracking down suspects. But it can also be used, to locate and people companies that are using unlicensed software. Usually its not worth going after them. But if they have desirable assets, then it is worth going after them. Racketeering has nothing to do with this: it is a long established legal tactic that if you are going to bother going after someone its best to choose someone with assets.
Sat 24 Jul | Mr. O | 'More commonly, there is global user and machine ID information embedded in executables and documents' Prove it.
Sat 24 Jul | Observer | It's not like this is even a big secret - it was even in plain text for a while and readily viewable. But you believe what you like, Mr. Ononymous.
Sat 24 Jul | Observer | I guess as proof, why don't you download any one of the numerous programs that offer to scrub this information and review the documentation.
Sun 25 Jul | Mr. O | How about I just compile on two different computers with two different licenses and see that the exe's are exactly identical?
Sun 25 Jul | Peter | >More commonly, there is global user and machine ID information embedded in executables and documents. That is how the guy who wrote the Melissa virus was caught. MS Word 2k, by default, includes a UUID in every document. The algorithm for creating GUID/UUIDs includes the MAC address off your ethernet card.
Sun 25 Jul | mb | 'The algorithm for creating GUID/UUIDs includes the MAC address off your ethernet card. ' Not really now. There are two algorithms, and they switched to the 'random number' algorithm by default after that. You can still use the 'MAC address' algorithm with an API call, useful if you want to generate a series of IIDs or similar.
Google's Picasa | Sat 24 Jul | janonymous
Can anyone tell me why Google went into this: http://www.picasa.com/google/ ? Picasa. Everything you need to enjoy your digital photos in a single software product. Are they trying to fortify their position against microsoft?
Sat 24 Jul | janonymous | D'oh. Link problem crap bug thing. http://www.picasa.com/google
Sat 24 Jul | GinG | It is always very 'funny' to see people try to explain software companies strategies only by their 'need to fortify their position against Microsoft'? IMHO, Google is trying to make more money. Picasa can be their trojan for an all-Internet digital photo service including archiving (1GB is more than enough for a family album), printing, sharing, and more. They'll put some ads here and there, and the project will be a commercial success. Later, when image recognition techniques will be available, they will show you ads according to the photos you have stored. But I guess that I am doing too much SciFi here :-)
Sat 24 Jul | Thom Lawrence | Some more sci-fi digital photo stuff: http://channel9.msdn.com/ShowPost.aspx?PostID=14275
Sat 24 Jul | Berlin Brown | I am still trying to figure out how great technology companies, take Apple for example, who, some argue has the best OS and produces high-quality computer hardware, markets stuff like iTunes and the iPod as if it is their only product.  I could be wrong, but I just dont see how a fancy music thingy is step towards advancing computing technology.
Sat 24 Jul | www.marktaw.com | Because the iPod is outselling the iMac & G5 put together?
Sat 24 Jul | Berlin Brown | Sellouts
Sat 24 Jul | Berlin Brown | but then again, you do what you have to do to survive
Sat 24 Jul | NotABlogger | They are also using this software at http://www.blogger.com - to upload photos to the site. If you want to upload photos to your blog they tell you that the best way is to download this tool.
Sun 25 Jul | Yukon | If you look at companies that stand the test of time many are doing things now that are very different than when they started.  As one columnist recently observed, Apple will be regarded as a music company and not a computer company in a few years.
Sun 25 Jul | Jon Hendry | 'If you look at companies that stand the test of time many are doing things now that are very different than when they started. As one columnist recently observed, Apple will be regarded as a music company and not a computer company in a few years.' Kinda like how General Electric is known as a TV company. Er, no. Apple *may* end up a 'music' company, but then again, Microsoft isn't known as a 'cable news' company just because of MSNBC. It depends on what happens with Apple's other businesses in the next few years. I doubt they could really run their business on just the iTunes music store and iPods. iPods are probably a time-limited market niche, which could disappear in 5-10 years, or become just generally unprofitable. (Kinda like the PDA.) They don't really make any money on the store, either. Apple would have to start up their own music publishing unit, and sign bands directly, in order to get a larger chunk of the revenue from the iTunes store. And that's unlikely because they already have enough trouble from Apple Corps, the old Beatles label, which has sued Apple Computer for getting into the music biz.
Sun 25 Jul | Yanwoo | Nobidy mention that Picasa is actually a damn good piece of software? Much better than the rubbish that gets packaged with digital cameras.
Inquirer/Register:Whats with these British papers? | Sat 24 Jul | karthik
http://www.theinquirer.net/?article=17382 Whom are they owned by?. Some of their punches are really . A few of them quite stale. But why are they so anti-microsoft?. Any real reasons?. You can understand about linux cowboys wanting to overthrow microsoft. But why does a newspaper feel the need to be so pro-linux? Here is one example. --------------------------------------------------------------- A MAN has claimed that the Microsoft browser is the best browser in the world. Scott Stearns, IE Test Manager at Microsoft makes the astonishing claim on the IE Blog. Stearns says: I really love browsing with IE. He continues: I realize that statement will cause some people to chuckle based on current press on security issues and perceived lack of innovation, but that is my job. Isnt it our job to make people chuckle, Scott?
Sat 24 Jul | karthik | Some of their punches are really good---> Thats the complete sentence
Sat 24 Jul | Eric Debois | Perhaps their writers just dont like MS for their own personal reasons. MS has been known to have that effect on people so I dont think a conspiracy theory is required.
Sat 24 Jul | www.marktaw.com | What do you expect from a "paper" whose tagline is "News, Reviews, Facts, and Friction" ???
Sat 24 Jul | www.marktaw.com | And has a "Flame Editor" link on every page.
Sat 24 Jul | www.marktaw.com | Maybe you just don't get British Humor. They had to do something to get back at America for inventing Slashdot.
Sat 24 Jul | www.marktaw.com | Another useless post.
Sat 24 Jul | matt | I think you'll find there's the odd sarcastic dig at linux obsessives in there too ;-)
Sat 24 Jul | Iago | Answer: they aren't newspapers, they're websites.  You might as well ask why the Onion never prints anything serious...
Sat 24 Jul | tree | There's your answer. They're not professional papers with journalists who worry about facts, accuracy and balance.
Sat 24 Jul | Brad Wilson | 'Answer: they aren't newspapers, they're websites. You might as well ask why the Onion never prints anything serious...' The Onion is an actual paper, and they do print serious articles. So much for that analogy! :)
Sat 24 Jul | Bored Bystander | Serious news, like: 'Denny's introduces 'Just a Humongous Bucket of Eggs and Meat'? or 'Tenth Circle Added to Rapidly Growing Hell'? Yes, the Onion is my choice for information in a confusing world...
Sat 24 Jul | Brad Wilson | As an example: http://www.theonionavclub.com/ There's one of these in every issue.
Sun 25 Jul | Stephen Jones | There is a long British tradition in this respect. 'Private Eye' is the best known. And 'Private Eye' was the first paper to publish many of the British corruption scandals of the seventies and eighties. One reason for the sarcasm and irony is British libel law. Being satirical gives you some degree of protection. 'The Inquirier' was founded by one of the founders of 'The Register'. Most consider it to be slightly more reliable. 'The Register' has certainly gone down since the split. 'The Register' is no more anti-MS than it is anti-IBM or anti-Intel ('Chipzilla').
Sun 25 Jul | Neil Hewitt | The Reg doesn't really have one editorial voice - it has several. Each of the major reporters has a bias and an agenda, and is not usually too worried about keeping it out of articles. None of them are particularly pro-Microsoft, but only one or two of them are really emphatically anti-MS and pro-Linux; indeed, since half the regulars defected to The Inquirer, The Reg has become somewhat less vitriolic. I used to be a tech journalist back in the day, and I know most of the Reg staffers (particularly the longer-standing ones). One thing that's as true today as it was then is that British tech journalism does not take itself seriously the way that US tech journalism does. This is probably because most of the UK journos came out of the hobbyist/microcomputing background and have weird ideas about community; most are trained techies and not trained journalists. My experience is that many (although not all) US tech journos think of themselves as real journalists in the mould of those you'd find writing for the New York Times. One incident I recall with particular amusement is when Microsoft UK paid to ship about 25 UK tech journos (myself and at least one of The Reg's current writers included) to Seattle for the launch of Visual Studio 97. There was one big product launch press conference with UK and US journalists asking questions. Many pointed questions where asked by the UK contingent about the product's failings and omissions (such as the still-as-yet unrectified tendency for the HTML editor to reformat your code without asking). The US journos looked on, horrified, as we refused to ask the 'right' questions and write down the soundbites that emerged. The speakers (most of them fairly serious big shots at MS these days) were distinctly nonplussed, and ended up refusing to answer our questions and insisting we had to tackle them 'offline'. In other words, we had derailed a carefully planned spectacle in which the US journalists were, seemingly, happy to participate. After the briefing, I was asked several times why we Brits found it necessary to be 'rude' to the 'important' people from Microsoft. Needless to say, the next time an event of this type occurred, there were separate press conferences for US and UK press, with specially briefed speakers from Microsoft who had been told all about us 'difficult' Brits. Simply put, the UK and the US - in the tech space at least - have fundamentally different journalistic traditions, and while The Reg is certainly a little 'out there' and the Inquirer is definitely 'way out there', it's definitely a feature and not a bug.
Sun 25 Jul | Dennis Atkins | Neil, that's extremely interesting. Thanks. If it really went down as you say, then it is you guys that are the real journalists and the eweek people who are the talentless devotees to yellow journalism.
Sun 25 Jul | karthik | Thanks Neil. That was a fascinating post !.
Sun 25 Jul | www.marktaw.com | I don't think this is limited to tech journalism. Do you think a difficult reporter will get invited back to the White House?
Sun 25 Jul | The other side | I'm a former journalist too. There is another way of interpreting what Neil describes. It is likely that in the late 90's the US tech media were more familiar with the important directions in software development. Visual Studio 97 was an important release and lots of readers were interested in knowing what it was about, not just about the problems. Industry execs also wanted this information, because it affects how well the product will do, and what effect it will have in the market. As history has shown, quibbles with Visual Studio 97 were pretty much irrelevant. The product went from strength to strength and captured whole new swatches of developer users. I would say the US journalists provided the better coverage. Also, to this day, UK tech media often take their leads and stories from the US tech media.
Sun 25 Jul | a cynic writes... | Mark - over here one of our most famous BBC journalists a guy called Jeremy Paxman* once asked a government minister the same question 14 times - and his career florished. It really is a matter of different traditions. *Supposedly he asks himself ‘why is this lying bastard lying to me’
MSDN magazine doublethink. | Fri 23 Jul | christopher (baus.net)
Today I was waiting for a meeting to start. A copy of the August 2004 MSDN magazine was in front of me, and I mindlessly started thumbing through it. The Editorial starts: Back around 1996 it was big news. People suddenly realized that with just a telephone line and Internet Explorer, they could go shopping without ever leaving the comfort of their own home! I dont know anybody in 1996 that used IE. It was Netscape all the way. The fact that MSDN (and Microsoft in general) refuses to admit that the rest of the industry exists drives me nuts. There arent great new ways of thinking in these magazines. There are Microsoft ways of thinking. MSDN mag seems like the developer brainwashing department. Do developers really fall for this stuff? BTW, I think the Sears catalog came out before 1996.
Fri 23 Jul | AMS | Just typical marketing drivel. I like advert I saw on www.technewsworld.com: 'Older PCs may be more vulnerable to viruses. Don’t get caught with your guard down. Upgrade to a new HP Business Desktop dc 5000 featuring the Intel® Pentium® 4 Processor with HT Technology today.' Yes, we all know that P4s are have inherent immunity to viruses, unlike older x86 processors. Sad thing is, some people probably believe it.
Fri 23 Jul | Me and the view out the window | I used IE in 1996. (As well as Netscape.)
Fri 23 Jul | Dennis Forbes | While I've been critical of MSDN Magazine for being a little too forward thinking at times (focusing entire issues exclusively on products that aren't even in beta), I do think it's fair that they present the world from Microsoft's perspective, just as a Mac magazine would word the same historical observation as if we were all sitting in front of our Mac IIIfx or whatever back in 96. I don't know the economics behind the MSDN Magazine empire, but I suspect there is substantial Microsoft subsidies given that they freely put their content online, with minimal advertising, shortly after hitting newstands. In their defense, as an aside, I wrote an article for them that featured a technology that wasn't in Microsoft's strategic interest, I included references to leveraging Java applications as well as open source projects, and promoted the idea of supporting all browsers. None of this was disuaded or diluted to push the Microsoft line.
Sat 24 Jul | free(malloc(-1)) | 'Back around 1996 it was big news. People suddenly realized that with just a telephone line and Internet Explorer, they could go shopping without ever leaving the comfort of their own home!' Obviously this was not edited for technical errors before publishing. It should read: 'Back around 1996 it was big news. People suddenly realized that with Internet Explorer, they had to reboot every 5 minutes!'
Sat 24 Jul | TheGeezer | They're trying to re-write history. If I recall rightly, Internet Exploiter wasn't even in the game until late 1997. Up until then it was Nutscrape all the way.  ;-)
Sat 24 Jul | Humbug | You're memory's fading Geezer. I was developing web-application (not websites) for IE 3.0 using ISAPI DLLs and <gasp> ActiveXForms in 1996.
Sat 24 Jul | Me and the view out the window | And I was making Java be compatible with IE as well as Netscape back then, in 1996. Ah, what fun.
Sat 24 Jul | christopher (baus.net) | Ok so maybe the question is when was IE 3 released?
Sat 24 Jul | christopher (baus.net) | Ok according to this: http://support.microsoft.com/default.aspx?id=fh;%5Bln%5D;lifeprodi IE 3 was released in August 1996. I know exactly where I was then. I was interning at Adobe in San Jose. In my memory IE was not the dominate browser.
Sat 24 Jul | Dennis Forbes | The Plus! pack for Windows 95, which came out in concert with Windows 95, included IE (presumably 1.0). Mind you it was a rather spartan browser (basically mosaic), but they did have a browser out.
Sat 24 Jul | Me and the view out the window | IE was not the dominant browser in 1996. All the experts insisted Netscape would rule and IE would never be more than a tiny niche. These days they've gone on to open source.
Sun 25 Jul | Hub Dublin | I went from Mosaic to IE, and never used Netscape until later when I was creating web pages and needed compatability testing.  I know others who did the same.
Non compete prior to knowing the client? | Fri 23 Jul | Bored Bystander
I have had a spirited debate with some contractor acquaintances over the following agreement. Basically, the contract agency/broker would not disclose the identity of the client that they wanted to submit me to w/o my signature on the following pile of dreck. My contention is that only an idiot would sign a piece of paper without knowing who the subject of the agreement is. I know the job & contract market are rough, but I let this one go, to the tune of some acquaintances tsk-tsking my obviously poor judgement. ---------- This is an agreement entered into as of the 7/23/2004 between Obviously Curried Web, Inc., referred to as OCWI, an Ohio based company with it’s principle place of business at 1183 E Screwems Road, Dacron, Ohio 45499 and Bored Bystander, residing at Contractor Address, hereby referred to as Contractor. OCWI agrees to submit Bored Bystander to its client company. Upon the establishment of an interview (phone, face to face, video, or other) the Contractor agrees that they will represent themselves as an associate of Curried Web, Inc. and will not represent themselves as an independent associate nor to be represented by an affiliated company of Contractor or another firm doing, or seeking to do business with Interviewing Manager/Division for a period of 1 year after establishment and/or completion of an initial interview. This agreement will not apply to any full time position taken with the client company. Contractor agrees that it will not provide any compensation information, contract negotiations or otherwise information that could be harmful to the OCWI and OCWI’s end client relationship. Nor will the Contractor provide any service to OCWI end client to which it has been introduced. For purposes of this paragraph the term “client” implies any location, division or group to which Contractor has been introduced. --- etc etc
Fri 23 Jul | Bored Bystander | And FYI, here is the response of the crooter to my refusal to sign as is, typically as all recruiters do - elevating their moral position to a level with The Almighty, and insulting and condescending in that it makes me seem defective to even articulate an objection: ----------- ... it is standard policy whether you are an independent or sub contractor that we do not release the name of our clients without a signed Interview Agreement in place. We understand that you are in business for yourself, and that you would not be able to turn over this client with a single meeting. But it still remains that our contracts are in place to protect OCWI's reputation and relationship with our clients. I have never had an Independent Contractor have a problem with this part of our contract in the past, so it is a bit of a surprise to hear that this is an issue for you.
Fri 23 Jul | Peter | All these weasel words mean is that they want their comission for steering you to the client. Worry not, grasshopper.
Fri 23 Jul | Kyralessa | Anything that is "standard" that "no one else has an issue" with _always_ causes me to worry.
Fri 23 Jul | Dino | The only phrase which bothers me is 'Nor will the Contractor provide any service to OCWI end client to which it has been introduced. ' There's no time limit to this - most probably would be short lived in court, but that doesn't make it right. When brokers don't want to disclose their client's name, I just tell them I have submitted my resume to a bunch of other places through other brokers - most probably a true statement - and therefore we risk to be disqualified due to multiple representation. If they still refuse to disclose their client's name, then that's a good indication something's not kosher or they're just a bunch of idiots. Either way, it's time to say goodbye. The brokers I work with do not have a problem telling me who their client is.
Fri 23 Jul | T. Norman | They really expect that agreement to hold up in court, when the only consideration they are giving is an *interview*?
Fri 23 Jul | Dennis Atkins | First, accolades to BB for posting teh actual text. This is so helpful to see what we are talking about. Agreed that this particular one looks pretty standard and not much of a problem - they do need you to sign a commision agreement before the intro. I'd ask for the definition of 'introduced' to be clarified, and also to put a time limit on it. Maybe specify that its only the particular location of the firm they introduce you to that stuff applies to.
Fri 23 Jul | www.marktaw.com | I can see your issues, but I can also understand how the company wants to protect their best interest. If they introduce you to the client before you sign this contract, you can make a separate bid.
Fri 23 Jul | Inside Job | The problem is that the recruiter requires the candidate to surrender something without any definite compensation. The undertaking the recruiter is imposing is similar to that imposed on an employee, but clearly the candidate is not receiving the benefits of an employee at this stage and might never do so. The worst thing is that this contract just makes explicit something that happens anyway. Even if the candidate doesn't sign something like this, the recruiter still applies this restriction via a contract with the employer. The candidate has no say in this. It is wrong. In this particular case, it's likely the employer refused to sign the recruiter's restrictive contract, and hence the recruiter is trying to make the candidate sign something that will be rougly equivalent. Recruiters prefer that it's the employer they lock up, because employers don't fight threats of lawsuits from recruiters, and they can easily find a new candidate.
Fri 23 Jul | Bored Bystander | The impression I got was that this 'bork' (broker) agency was absolutely non negotiable as to non compete terms. The contract was such a pile of crap that my attitude was basically f'em. Re: protection of their interest in the client, I have dealt with many agencies that do identify the client before demanding a signature. As pointed out, this is an unfair demand because you may be disqualifying yourself from a company that you were going to approach anyway. I'm not asking the agency to extend unwarranted trust. But the agency's position seems to be that they automatically distrust the candidate or they feel that their position with the client is so weak that they feel that the opportunity could be stolen easily. In either case, I had no interest in dealing with them.
Sat 24 Jul | Clay Dowling | The thing to keep in mind is that all recruiters are weasels at heart. If they were good upstanding people, they'd have jobs that actually produced something, rather than spending their days pestering HR managers with resumes that have the names blacked out. In truth, there probably are recruiters out there who aren't weasels. I just haven't had any professional dealings with them. Fortunately, we keep a cat that aces weasels in her spare time, so I don't have to deal with the normal variety of recruiter either.
Sun 25 Jul | Peter | Oh, my favorite weasel dealing with job placement agencies goes like this.... CompanyA hires some people through AgencyM (including PersonX). AgencyN finds out when they contact one of the people that had been hired to offer them another interview. That person tells them that they were hired by CompanyA thru AgencyM. AgencyN flips out and has a mismanager go to CompanyA to tell them that they should be paying the commission to AgencyN, not AgencyM; even though the job that PersonX is doing has nothing to do with the resume that AgencyN sent in 8 months prior. Attorneys for CompanyA say 'not to fight it, this is what we can do...' 3 (or was it 6) months later, the tail on the contract for PersonX expires, so he is hired to work at CompanyA. AgencyN is not notified, since they no longer get a big commission if PersonX is hired directly. Over the next 2 months, when there are layoffs, people hired through AgencyN are let go ahead of anyone else. When the last person represented by AgencyN departs, AgencyN is notified that they will never be getting business from CompanyA again, so they should stop calling and sending resumes. Heads roll at AgencyN, but one shortsighted mismanager blew more than $100k/year in fees with a company over job placement. too bad.
Sun 25 Jul | www.marktaw.com | Awesome. Speak quietly & carry a big stick. And just take your business somewhere else.
Daylight Saving Time | Fri 23 Jul | Minh
I am working on a project that requires converting UTC time to various time zones. To my surprises, the Daylight Saving Time (DST) is being used in many countries, not only in US. This site has much information: http://webexhibits.org/daylightsaving/g.html The rules seem complicated. It may take days to write a good accurate conversions. Can any one give me a suggestion/tip to reduce this pain? It is nice to have an extra hour of daylight in summer evenings. But when it comes to coding, I wish all countries follow Japanese (they dont have DST). Thank you.
Fri 23 Jul | Christopher Wells | Windows is able to make this conversion for various places: which it does using information in the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation section of the registry.
Fri 23 Jul | it's been done | There's gotta be existing OS calls or libraries that already do this sort of thing.  What language are you using?
Fri 23 Jul | Code Monkey | Have a look at Olsen data at ftp://elsie.nci.nih.gov/pub . I think there are many libraries especially on Unix which use this to make general timezone calculations based on daylight savings. BTW Japan is the only industralized country which does not have DST.
Fri 23 Jul | Minh | I write for mobile devices, include CE and Symbian in C++. That was why I am trying to write some thing that not OS dependent. Anyway is the Windows API for time zones realiable? I mean does it work with the date before and after EU DTS law changed?
Fri 23 Jul | mb | dst is incrediablly dumb... but anyway, this looks like a good link: http://www.twinsun.com/tz/tz-link.htm the zoneinfo database goes back for a very long time. and thus is quite large. is singapore an industrialized nation? do they have dst?
Fri 23 Jul | mb | oh, and phoenix and indianapolis.
Fri 23 Jul | muppet | DST is not dumb in situations where your employer doesn't believe in Flex Time. In occupations like that, it can be invaluable.
Fri 23 Jul | Code Monkey | Singapore does not have DST but I do not think it is classified as 'Industralized' although it probably should be. From what I know the list of 'Industralized' nations is : Denmark, Sweden, Norway, Netherlands, France, Luxembourg, Belgium, Finland, Canada, Germany, Switzerland, Australia, Ireland, United Kingdom, Austria, New Zealand, Portugal, Spain, Italy, Japan, and ofcourse the United States
Fri 23 Jul | Dave Benson | What a bizarre list. Singapore is certainly industrialized. They are not just outsourcing (I could see if you want to say that if they only do outsourced manufacturing they are not fully industrialized), but do a lot of their own design and development work as well. Taiwan obviously belongs on the list too. Probably a lot of countries. Mexico, Brazil, Chile. I guess since the revolution Argentina would not be on the list any more. How come some of teh euro states are listed more than once? If we do that, we should list California, Texas and Washington all as separate industrialized nations.
Fri 23 Jul | Dave Benson | Since Germany and Switzerland are no longer nations, the list should be tightened up to be: Europe, Canada, Australia, Japan and the US.
Fri 23 Jul | Almost Anonymous | Use OS functions...  I'm sure both Symbian and Windows CE have functions for handling time and date conversions.  If you want cross platform -- wrap these with own functions and use those.
Fri 23 Jul | Dave Benson | I wouldn't include New Zealand on the list. They have some factories but certainly fewer than Mexico, Swaziland or South Africa.
Fri 23 Jul | kc | Ha! For all of our applications (which span multiple timezones, countires, *and* continents), we decided to punt local time and just use Zulu (Greenwich Mean Time) for everything. Sure, it takes some getting used to, but for a bunch of math-strong people who know that they are at -5 and some other people are at +2, it's not too bad.
Fri 23 Jul | - former car owner in Queens | ' dst is incrediablly dumb... ' I used to think so too, until I read the rationale behind it. In short: enables more outdoor activity during summertime evenings; saves energy (1-3.5%); reduces car crashes. http://webexhibits.org/daylightsaving/c.html
Fri 23 Jul | Lou | I believe Raymond Chen talked about problems with converting UTC to local time.  There are many problems with historical conversion (some countries/areas didn't use DST during certain years (WWII), etc), but for current time it shouldn't be too much of a problem - there must be tested libraries for that.
Fri 23 Jul | John C. | Beware that your problem may not be solvable in an entirely algorithmic fashion. At least one country (Israel) converts to daylight saving time depending on the ruling of a local board of religious experts. As I understand it, the date is not reliably predictable in advance. Other countries have tweaked daylight saving time in an ad-hoc fashion in the past as a result of special situations -- including, IIRC, the presence of the Olympic Games and in wartime.
Fri 23 Jul | Yo | Theres also Indiana (US), which most of the state observes DST but parts don't.
Fri 23 Jul | Oren Miller | Jordan uses DST all year.
Fri 23 Jul | Oren Miller | Actually, in Indiana, most of the does *not* observer DST, while parts do. http://www.timetemperature.com/tzus/indiana_time_zone.shtml
Fri 23 Jul | Mongo | I don't know how much this is going to help, but you need to be aware that John C. is correct, and the problem is worse than you think. There is _no_ canonical source for determining worldwide observance of DST. Period. I work with airlines, and we we can at least cheat; there _is_ a canonical source for DST at all airports. If it's practical to correlate to the nearest airport, you can use GMT and apply the airport offset c/w DST offset. You can download the raw data from the Digital Aeronautical Flight Information Files (DAFIF) for free, but working with it is no fun. I don't have the url for the DAFIF files immediately in front of me, but you should be able to Google for them. Good luck, you'lll need it.
Fri 23 Jul | Roland Kaufmann | A few observations: (1) Daylight saving time (DST) does not magically give you any more daylight. There would be exactly as much daylight no matter what you set your watch to. At best, DST gives you a tradeoff between daylight in the morning and in the evening. If your employer simply said 'tomorrow you can come from 9 o'clock instead of 8 o'clock', you wouldn't have to run around and change the time on all your VCRs. (2) There is no mapping between a geographical longitude to a timezone or to a DST scheme. You have bizarre situations like the Arizona being in the Mountain time zone but, unlike Utah, not observing DST, except for the Navaho nation, which does. (3) There is no one-to-one mapping from a local time (observing DST) to UTC (although there is the other way around). This stems from the fact that there is an hour in local time that comes twice in the shift after the autumnal equinox and you don't know in which of these you are without extra information. http://www.standardtime.com/ 'Nuff said.
Fri 23 Jul | Code Monkey | >What a bizarre list Well if it is good enough for UNICEF I guess it is good enough for me. http://www.unicef.org/pon98/indust7.htm But your point about why Taiwan and Singapore is not on the list is a valid one and the reason I guess is that Taiwan is technically not a country and Singapore probably does not have the GDP but then how Luxembourg got on the list is a mystery!
Fri 23 Jul | ian | Dave: What Euro states are listed more than once? I don't see any duplication in Code Monkey's list.
Fri 23 Jul | Code Monkey | >Since Germany and Switzerland are no longer nations, Huh? That is news to me. Ofcourse they are nations...if they have a domain they are a nation :-) >the list should be tightened up to be: Europe, Canada, Australia, Japan and the US. I do not think that nations like Serbia, Croatia, Albania etc can be classified as Industralized inspite of being in Europe. Also if you include Taiwan you have to include South Korea too!
Fri 23 Jul | AMS | There are also a handful of time zones that are 30 minute offset instead of an hour. I agree with the earlier comment -- convert everything to GMT on input, and convert back to local time on display, using locale info on the local machine. Do all behind-the-scenes computation using the GMT values.
Fri 23 Jul | Minh | Thank you all for your input. This is what I'm going to do: 1. Export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones in my XP box to an array of TIME_ZONE_INFORMATION then embed this in my code. 2. Write my own logic to do the conversion using the time zone data. This approach may not cover all past time span, but will work for current time as good as Windows ;-). And it is platform independent. The database from http://www.twinsun.com/tz/tz-link.htm is comprehensive but too overkilled for my scope.
Fri 23 Jul | Kyralessa | I like Daylight Saving Time.  What I hate is going _off_ Daylight Saving Time.  I'd rather have it be dark when I go to work and light when I go home.  Actually, they did that one year; does anybody remember?  I think it was when I was in junior high, about '88 or '89...
Fri 23 Jul | mb | why not just convert on the local machine? of course you're assuming the time/timezone is set right, but is that an issue? basically, always send either GMT, or local time + local offset, to the server, and always send GMT to the client, which can then convert before display.
Fri 23 Jul | always amazed by pure ignorance | 'To my surprises, the Daylight Saving Time (DST) is being used in many countries, not only in US.' Brace yourself; English is spoken outside of America too.
Fri 23 Jul | Ankur | When I was working in Mexico, the company I was at didn't honor the local DST rules for their servers because the dates that DST changed over was different for Mexico than for the U.S. It hindered their ability to work with the U.S. It was a pain in the buttocks for me because I would authenticate on their servers and my clock would change by an hour because my computer was set to have DST when theirs did not, and then I couldn't log on remotely to my home server in the U.S. because my clock was off by an hour and the server didn't like that.
Fri 23 Jul | AMS | Server clocks should always be synched to GMT.  Set the locale so that it shows local time properly, but the clock should be GMT.
Sat 24 Jul | Minh | 'Brace yourself; English is spoken outside of America too. ' Pls excuse my ignorance. I am from a culture that never has DST. 'why not just convert on the local machine? of course you're assuming the time/timezone is set right, but is that an issue?' The module is to convert the GMT time to multiple international time zones not set in the system level. So the machine's local time zone has no use here.
Sat 24 Jul | Michael Aldred | Just to let people know.  Not all of Australia has DST.  Here is Western Australia we don't have it, but most of Australia does.
Sat 24 Jul | mb | If you just want current offsets, not history, I believe Windows has this all built in, no need to export from your 'clients'. I dug up someone's .NET class to do this a month or two ago for someone who needed it, look on the gotdotnet messageboard (I think) for a discussion with multiple solutions, one of which is the one you want. It's just a short wrapper for Win32 calls, so even if you're not using .NET it's a useful hint on where to dig in the docs.
Sat 24 Jul | mb | ah, a quick search for 'timezone gotdotnet' turned this up. Wonder if adding 'gotdotnet' is always a good idea? http://forums.asp.net/Forums/PrintPost.aspx?PostID=453373
Sat 24 Jul | John | Often the list of 'industrialized countries' is equated to the members of the OECD (Organisation for Economic Co-operation and Development). OECD now has 30 members. It includes all of the counties in 'code monkey's list, plus a few more: Turkey (in OECD from its start in 1961) and eastern European countries joining in the 1990s. Singapore is not a member. Not being in the OECD does not mean that a country is not industrialized, but it does mean that it will often be omitted from the list. List of OECD members: http://www.oecd.org/document/58/0,2340,en_2649_201185_1889402_1_1_1_1,00.html
Sun 25 Jul | Stephen Jones | Singapore doesn't have DST because it's a tropical country and there is almost no difference between 'summer' and 'winter' (also applies to temperature - this month in Sri Lanka has been incredibly cool and I 've often not even bothered to turn the fan on). ---'There are also a handful of time zones that are 30 minute offset instead of an hour.'---- Sri Lanka used to be one of them until a few years back. Arthur C. Clarke spent thirty years complaining.
Sun 25 Jul | Ori Berger | Israel's DST time is a political decision, often influenced by religious parties; Now that the ultra-religious are not part of the government, it seems like we'll have indefinite DST in Israel. Indefinite until they do enter the government once more .....
I'm wrong EJBs are not allowed to access files | Fri 23 Jul | Name withheld out of cowardice
In an earlier thread I had a discussion with a dickhead about whether not using local files with EJBs was a restriction or a recommendation.  Upon deeper reading of the EJB spec, I see I was wrong.  Although the J2EE spec says the container should grant read write file permissions, the EJB spec says it should not.  Even though JBoss seems to allow the Berkeley DB JE classes to access local files, this doesnt mean that it meets the spec.
Fri 23 Jul | ITECS | Threading is handled by the EJB container. Therefore the EJB can not know or make any attempt to know about threading. By accessing files you are force the EJB to consider and manage the possible co-current access to the file, taking that control away from the container.
Fri 23 Jul | Noname | J2EE != EJB.  Servlets are part of J2EE, and they are allowed to do things that EJB's shouldn't or can't.
Fri 23 Jul | Name withheld out of cowardice | No name, you are quite right. ITECS- I'm not sure that is the reason. I think it's more that they want the Container to have flexibility when clustering. They think it's not appropriate to use the local file system. Anyway the file access is being done by berkeley DB Java edition which handles the concurrent file access issue, I think, by using the nio package. Since I am abusing EJBs just to avoid doing some of the work of RMI, it isn't so much a problem for me.
Fri 23 Jul | ITECS | The point is conceded - I never though of clustering .However I believe it might just be another aspect of the core concept of EJBs which is that they are managed by an third party. Anything that allows the EJB to break out of their containers is bad. One aspect on treading is that the tread may be running on another machine (clustering). Although it possible to make the file appear on other machine it takes control away from the container -all containers are no longer equal. Thus the container does not have freedom to tread your EJB as container/application manager sees fix (by for example running it else where).
Sat 24 Jul | Berlin Brown | Use mbeans
Sun 25 Jul | Dino | UNIX uses file descriptors for a number of types of resources - not just files. And different resources behave in different ways ... some block on io, some don't. In Win32 it's even worse. Any kernel resource can be handle - which is either an int or a void*. And again each resource type has its own specifics on io. I guess the container can't guess what's behind a particular file descriptor or handle and therefore cannot predict if the next call is blocking or not. But I don't see any problem working with files if there is no concurent access to the file and the io is non-blocking. More: one may ues JavaSpaces for resolving concurency on external resources - even in a clustered environment. For non-blocking io, one can try and use nio, but that may be a challenge - maybe easier with message beans.
Lookout owner speaks... | Fri 23 Jul | Blah
http://www.softwarereality.com/soapbox/lookout.jsp#id1
Fri 23 Jul | Neat Chi | Telling... he basically admits that they sold out because they were afraid Microsoft would put them out of business with a free product. What self-respecting coder in his right mind would pull a great product like this after a buyout unless forced to? This shows how much Microsoft has poisoned its own well by scaring away developers from the Windows platform due to the threat of being torn down if you're successful. There isn't a single investor in the business anymore that will fund an ISV developing Windows software. All those potential Windows coders who could be making a living writing interesting Windows apps are instead doing something else in a boring job and coding Linux apps in their spare time. I can't think of a more perfect example of long-term corporate suicide than what we are seeing from Microsoft today.
Fri 23 Jul | Formerly someone else | Isn't it possible that their are ISV's that also hope to make a successful product AND hope that someday Microsoft buys them out.
Fri 23 Jul | Neat Chi | Lol I just saw that Microsoft has been shamed into offering Lookout as a free download again. Undoubtedly this wouldn't have happened without Joel's article. If only all developers had his influence...
Fri 23 Jul | Neat Chi | The number of software shops that Microsoft has bought for more than pocket change can be counted on one hand. Good luck!
Fri 23 Jul | mb | See also here: http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=164880 (you'll have to scroll down a bit.)
Fri 23 Jul | Yes. | Any details regarding the deal? I wonder how much they sold out for?
Fri 23 Jul | IT Giant | Sold out for a pittance - MS caught him with some pirated develoopment tools and it was sell out or see the inside of prison for a while and watch helplessly as the world's wealthiest lawyers come by once a year to explain why you should not make parole.
Fri 23 Jul | Bored Bystander | >> Sold out for a pittance - MS caught him with some pirated develoopment tools How do you know that?
Fri 23 Jul | Yes. | >> Sold out for a pittance - MS caught him with some pirated develoopment tools >How do you know that? Yeah, how do you know that?
Fri 23 Jul | Bored Bystander | That is pretty interesting because a lot of developers think they will use pirated copies of dev languages from their workplace while they try to get customers for their product and THEN buy a licensed version...
Fri 23 Jul | Jon Hendry | 'That is pretty interesting because a lot of developers think they will use pirated copies of dev languages from their workplace while they try to get customers for their product and THEN buy a licensed version...' Mac developers don't need to worry about that, 'cause the dev tools are free with the OS. At least, it's not a problem if they're using the released OS and not an unreleased, pirated beta OS they downloaded from bittorrent. On the downside, there's that 'trying to get customers' part...
Fri 23 Jul | Christopher Hester | Whoever thinks MS had to offer up that download b/c this board has a bloated perception of this small community.  Hate to burst your bubble.
Fri 23 Jul | Harry Krishna | 'he basically admits that they sold out because they were afraid Microsoft would put them out of business with a free product.' That's the part I don't get. I don't mean this as Microsoft bashing -- I'm just trying to understand what the heck is going on. If Microsoft crushes all the other web browsers and everyone switches to Internet Explorer, the increase in revenue for Microsoft is exactly zero, (since IE is included with Windows at no extra charge.) So why attack Netscape so vigorously? If people buy Lookout to use with Outlook, how does that hurt Microsoft? If Microsoft comes out with a new version of Outlook that includes all the functionality of Lookout, and as a result, puts Lookout out of business, what's the benefit for Microsoft? Go Corp developes a pen-based platform. Microsoft announces their own version, eveyone says 'OK, we'll pass on this new company and wait for the product from big established company'. This drives Go of business. 3 months after Go folds, Microsoft kills their product. Why? Other than killing Go, what did they accomplish? Is there a startegy behnd Microsoft's bunsiness methods? Or is it just pure ego -- crushing other companies just because they can?
Fri 23 Jul | igor | Fire and motion, baby
Fri 23 Jul | Neat Chi | Netscape was attacked because the browser was seen (rightly or wrongly) to be of strategic importance as a potential platform replacement, i.e. (pun intended) an end-run around the Windows OS monopoly. When making these decisions, money is not the immediate concern for Microsoft. The money comes from the Windows OS monopoly, and anything seen to benefit that monopoliy is a strategy to be pursued by Microsoft. What they want is control not only of the ecosystem (the platform), but of all the organisms in it (the apps). Any bit of control that anyone else has over anything to do with Windows is a threat to to them. At heart, Microsoft is an autistic organization (I wouldn't go so far as to say psychopathic because their failing is more of a failing of amorality than immorality).
Fri 23 Jul | www.marktaw.com | It said in the post why MS wanted to put this plugin into Outlook - so people wouldn't go in to other email programs. Sheesh. Don't you people read?
Fri 23 Jul | Mr. Analogy | 'Go Corp developes a pen-based platform. Microsoft announces their own version, eveyone says 'OK, we'll pass on this new company and wait for the product from big established company'. ' Hmmm... Microsoft announced this back in,what, 1990 or something? And they came out with something 10 years or so later? I think Microsoftware deliberately does this (they invented vaporware, practically) to stifle competition. Look at what happened to ECCO PRO. That is the BEST PIM I've ever seen (and I've looked at dozens). They close up shop b/c they heard MS was developing a PIM. Ok, it's now about 7 years later and Microsoft is still working the bugs out of (One Note?). There's nothing really ILLEGAL about MS's actions,but it realy ends up hurting the customer. The rest of the business community needs to wizen up. Or at least read the Innovator's Solution. (Wow! good book).
Fri 23 Jul | Mr. Analogy | 'At heart, Microsoft is an autistic organization' What's interesting is that Bill Gates exhibits a lot of the symptoms of Autism: rythmic swaying when he's concentrating, poor empathy, emotional outbursts. If you just looked at him when he was hunched over rocking back and forth, you'd swear he was autistic. (True, we all exhibit those at one time or another.)
Fri 23 Jul | Neat Chi | He has Asperger's syndrome, a mild form of autism. Organizations with a strong leader often take on the personality of that leader, of course. Microsoft is at the point where it is so powerful that it does not need to behave in an ethical manner to survive. This situation is exceptional in the life of any organization, and is why Microsoft will not survive in the long run. They rose quickly, and will fall just as quickly with the world cheering the flames. Who can name a more hated corporation in the high-tech industry?
Fri 23 Jul | . | Neat Chi, maybe the world inside your head will be cheering if Microsoft falls, but I sincerely doubt the rest of the world will be, given the effect it would have on the IT industry and the world economy as a result. You are either a troll, or a very stunted individual.
Fri 23 Jul | Mongo | Neat Chi: ' ... I wouldn't go so far as to say psychopathic because their failing is more of a failing of amorality than immorality).' A tangent to your main point, perhaps, but psychopath (now more commonly sociopath) is defined as amoral behavior and the lack of a conscience, amongst other things.
Sat 24 Jul | Neat Chi | Thanks for the clarification Mongo... I had though that psycopathy necessarily involved actively immoral behavior, but more accurately is described by this paragraph: 'The psychopath is one of the most fascinating and distressing problems of human experience. For the most part, a psychopath never remains attached to anyone or anything. They live a 'predatory' lifestyle. They feel little or no regret, and little or no remorse - except when they are caught. They need relationships, but see people as obstacles to overcome and be eliminated.' That comes from this URL: http://www.oregoncounseling.org/Handouts/PsychopathicPersonality.htm My God, this fits Microsoft to a T, doesn't it?
Sat 24 Jul | Zahid | Thanks, Neat, that last post clarified that you are just making shit up. I'm unable to find anything on the web that indicates Gates has AS, though I found lots of speculation. AS and psychopathy are both clinical diagnoses. Unless you a) are professionally qualified to make such diagnoses and b) have personally interviewed Gates to determine if he meets the criteria, you should, as a matter of personal ethics, refrain from 'diagnosing' him.
Sat 24 Jul | Dave Bartleby | A corporation technically can't be psychopathic, psych diagnoses are for people and not fictions. But as far as Gates having mild Asperbergers that is certainly true. You don't need a psych evaluation to determine when someone is autistic, nor when they are schitzophrenic. Some afflictions actually manifest physical symptoms. Shoot, most people can even tell when someone is having a heart attack! Even people who are not trained heart surgeons!
Sat 24 Jul | Philo | 'Shoot, most people can even tell when someone is having a heart attack! Even people who are not trained heart surgeons!' And if it turns out to be a bad case of gas, maybe you shouldn't have grabbed a table knife and cut their chest open... First of all, corporations in and of themselves must be, by law, amoral. The law dictates that a corporation must act a) in compliance with the law b) in the best interests of its shareholders Period. Nothing in the law about 'corporations must be good citizens' or 'corporations must do good works.' Of course, 'compliance with the law' includes complying with various consumer protection laws, but that comes under the 'only if you get caught' thing. Thus the behavior you see from many companies. IMHO, strong, savvy CEO's recognize that companies that treat their customers well tend to be more successful - thus generous return policies, good customer service, corporate citizenship, etc. Maybe MS had some 'issues' with this idea in the past; I'm not in a position to comment. What I can tell you is that in the present security, arguing with facts instead of FUD, and customer satisfaction are serious directives from the top down. We are all evaluated on customer satisfaction (and those evaluations can affect our pay). I can also tell you that in my experience in almost a dozen companies, I've never seen more sincerity from management about taking these things seriously. Philo [Microsoft]
Sat 24 Jul | Mongo | Philo, you said: ==================================== First of all, corporations in and of themselves must be, by law, amoral. The law dictates that a corporation must act a) in compliance with the law b) in the best interests of its shareholders Period. Nothing in the law about 'corporations must be good citizens' or 'corporations must do good works.' Of course, 'compliance with the law' includes complying with various consumer protection laws, but that comes under the 'only if you get caught' thing.': ==================================== Philo, I don't understand your reasoning here. You're apparently claiming that because the law does not demand that corporations be moral, the law therefore demands they be amoral? Alternatively, are you perhaps claiming that from complying with your condition b), corporations cannot simutaneously act both morally and in the best interests of their shareholders? This seems dubious. Surely, under the law, corporations can do whatever they choose, including actiing morally, barring actions contrary to your points a) and b).
Sat 24 Jul | Mongo | I probably should have said: 'b) corporations cannot simultaneously choose to act both morally and in the best interests of their shareholders?'
Sat 24 Jul | Neat Chi | A psychopathic personality can justify any twisted scheme as necessary to advance his own survival. Since when do the 'interest of the shareholders' mean only monetary gain and preclude any interest in the maintainence of a civil, moral society? Are you beginning to see why so many people see Microsoft as an example of how not to be a good citizen, Philo? But if the only type of argument that Microsoft understands is one of self-interest, let's look at it that way. In a completely objective and amoral way, Microsoft is acting against its own self-interest by enforcing monoculture within their own ecosystem (Windows). Make any sort of profit with a Windows product and Gates will be after you with a knife. How does this encourage a healthy ecosystem? Ask any biologist what the eventual outcome will be.
Sat 24 Jul | Ward | Philo >>> What I can tell you is that in the present security, arguing with facts instead of FUD, and customer satisfaction are serious directives from the top down. We are all evaluated on customer satisfaction (and those evaluations can affect our pay). A counter-example to this that comes to mind is the new license programs (software assurance, etc.) I don't know if that was too far back to be included in 'the present,' but whoever was responsible for those should be getting negative pay... FUD per se wasn't a problem, but the facts about the new programs were too convoluted for anyone to really make heads or tails of, and customers certainly weren't very satisfied.
Sat 24 Jul | Philo | 'Since when do the 'interest of the shareholders' mean only monetary gain and preclude any interest in the maintainence of a civil, moral society?' Actually, according to the law, that's exactly what it means. Let's say BillG and Steve decided to take that $50B and pour it into 'fixing' NT4. They spend the whole chunk on getting the NT4 code base modernized and bug fixed as well as providing OS-level support for USB, DVD, SATA, and modern chipsets, as well as the API support necessary to run all our modern server products. That way, nobody really needs to buy Windows 2003. These fixes are offered as service packs for free. Money spent in the good-hearted interest of people who bought software from us five years ago. Of course, both revenues and the stock price would take a massive hit. Go look up 'shareholder derivative lawsuit' and see if you can figure out what would happen next. A sole proprietor can spend his money any way he wants - he can give all his profits to the church of his choice, he can mail it off to maintain a russian mail-order bride business. It's his money. But a publically-traded corporation has shareholders to answer to, and any major monetary or strategic action had better have either a profit or stock price motivation behind it, or the officers and the board of directors will have some explaining to do. Now generally directors are given a lot of leeway, and shareholders can't sue over every single decision (because companies would never get anything done); but major snafus that show a serious screwup in judgement can really bring the walls down. Corporations, in and of themselves, are, by law, amoral. A strong vision at the helm can avert this natural disaster by giving direction that *does* include the welfare of both its customers and the citizenry. Philo
Sat 24 Jul | Albert D. Kallal | >This shows how much Microsoft has poisoned its own well by scaring away developers from the Windows platform due to the threat of being torn down if you're successful. There isn't a single investor in the business anymore that will fund an ISV developing Windows software. All those potential Windows coders who could be making a living writing interesting Windows apps are instead doing something else in a boring job and coding Linux apps in their spare time. I can't think of a more perfect example of long-term corporate suicide than what we are seeing from Microsoft today. Huh? You mean a guy writes a little utility (he started in May 2003), gives the utility away for free, and then MS comes along and purchase his software? Contrast the above with Motorola: They wont purchase the palm platform for their phones, since some terrible software developers (or company) will get some royalties and make money (oh, gee that is so terrible!) Contrast the above with IBM: They don’t want to pay for OS software, so they use Linux. (after all, you do need to save a few extra million a year (nothing to them) for big corporate bonuses to the head guys…right!) I know of tons of small little software companies that used to get bought out by companies like Motorola or IBM. Thus, there was a time when these corporate companies did support small business. Sure, maybe these little companies only got a million or so, but today, companies like IBM or Motorola are obsessed with saving a million in royalty payments. I mean, why pay for software when you can use open source? > I can't think of a more perfect example of long-term corporate suicide than what we are seeing from Microsoft today. You mean instead of paying for this software, they should have hired their own developers, created the same thing, stole the idea, and said the hell with this guy? (just like IBM and Motorola?...lets just open source it…why pay?). Look, MS purchased a program, and DID NOT put some guy out of business. Further, that software was a FREE download. How on earth could you come with a BETER example of corporate responsibility in this case? MS did not come up with a competing product MS did not steal the idea, and make their own. MS paid this guy good money that he did on his spare time, and NEVER got any money in the first place? Tell, me, if you created a free software package and MS comes along and purchases it (gives YOU MONEY), are you not going to jump for joy? I mean, sure if MS comes up with a cheap low cost web content system that puts Joel out of business (his city desk product), then you would have SOMEWHAT of a better example, but this sure as the hell is not one! However, if MS comes along and purchases Citydesk from Joel, you tell me that is bad? Hell, I though the whole idea in the software business WAS TO GET purchased by a larger company? How can anyone with a functioning brain say this is a bad example of corporate behavior? You sure as the heck would not get this behavior from IBM, or Sun. Companies like IBM, Sun, Motorola have VERY quickly learned that you should NOT pay royalties to ANYONE for something like software! I mean, why is it so evil to pay royalties on software to developers? At least MS wants to do this…can’t say the same for the other players… Albert D. Kallal Edmonton, Alberta Canada kallal@msn.com http://www.attcanada.net/~kallal.msn
Sun 25 Jul | Stephen Jones | Philo knows of course that there is a big difference between being immoral and amoral, but one or two of the other posters seem less clear. There is, however, a lot that a company can do in the public interest that can be passed off as bettering the company's image and/or increasing its visibility. With regard to IBM, it is at present spending a load of money on software development. The payback of course is that it is breaking the companies dependance on sole supplier.
Sun 25 Jul | Zahid | '...as far as Gates having mild Asperbergers that is certainly true .... You don't need a psych evaluation to determine when someone is autistic, nor when they are schitzophrenic. Some afflictions actually manifest physical symptoms.' - Dave Bartleby Ummm, actually, you do. You might be surprised to know that some afflictions actually manifest the same physical symptoms as other afflictions. As a result, the minimal clinical requirements for a diagnosis of Asperger's go beyond the physical manifestations. And oh, by the way, it's 'Asperger's', not 'Asperbergers'. Thanks for playing anyway.
Sun 25 Jul | Mongo | Philo, I presume your response to my question would be simply that corporations are not recognized under law as moral agents, then?
Sun 25 Jul | TheWeasel | Bill Gates was described as being very good at poker in a bio I read a while ago (Accidental Empires? Can't remember). Being good at poker requires you to understand whats going on inside someone elses head. Autism/Aspergers relates to NOT being able to understand whats going on inside someones head...
Sun 25 Jul | GD | Autism / Asperger is about understanding the emotional reactions, not the logical ones, and poker is played with logic...
Challenge:Being contacted by prospect sight-unseen | Fri 23 Jul | Bored Bystander
Here is the scenario. I have a resume posted online at a (free) site that is specifically for Delphi developers. A company has been in contact with me for the past week after seeing this posted resume. The company sells a certain type of data analysis application suite, written in Delphi. I first got a call from (I guess) a lead engineer at this place last week. Basically, the gist appears to be that they lost their Delphi developer, and they need some user interface work done on contract. He asked my rate, and I quoted it. I am operating at a slight disadvantage in terms of pricing structure, because unlike many contract developers I actually have a healthy sense of self esteem and I know what real ability to do the work is worth. So I quoted a modest but realistic hourly rate. I then get contacted by an executive from the place. He says the owner is balking at my rate, as they have in hand multiple offers (from offshore people, natch) to work at 1/2 to 1/3 my quoted rate. So today I speak with the lead engineer again. He is wanting examples of my past UI work in Delphi. (Delphi, btw, is 1/20 of my career; being an EE, having done copious amounts of realtime, C++, etc etc). So wearily I give him: two references for past Delphi work, each a client of 5+ years; copies of letters of reference from these guys; and a pile of screen shots. It seems to me that they have no in-house development expertise to assess a candidates technical skill. I strongly suggested today that they release a small pilot project to me if they were uncertain. This just feels like the client is totally cheap and they are also clueless enough to try to weigh an intangible quality, that is, worth of a contract person, by asking for as much hard evidence as possible. My guess is that they see the screen shots I supplied and then they demand more. I dont even know if I want this work. I am thinking not, if cost of a piddly amount of work is a major driver. Can anyone suggest a tactic for moving these people off of dead center, or do you think its even worth doing?
Fri 23 Jul | bah_humbug | My tactic with jobs that seem like they might be a pain in the ass is to charge a premium, explain why, and not move. Eiither they go with you, in which case they might be a pain (first impressions like this are often right), but at east your getting a decent rate to compensate. Alternatively they walk away, and you've not lost anything because you didn't really want the work. I've never regeretted doing this, and quite often a far better job has turned up 23.5 seconds after the other lot finally shoot themselves in the foot.
Fri 23 Jul | Sam Livingston-Gray | If you don't want the job, lowering your rate is clearly not an option. I like the pilot project idea: give them an estimate to do their most-needed change at your standard rate, come in right on the nose, and let them figure out how much easier it is to work with you than to try to communicate with someone offshore. If they don't get it, you don't need to waste any more time on them. At least, not until they call you six months from now. Then you can quote them a higher rate. ;>
Fri 23 Jul | Jihn | Obviously, they would prefer you to do the work than the offshore groups or they would not have called back.  To get them off the dime you could offer a discount if they decide in the next day or so (Limited time offer, Buy Now!!!!). But I agree with the other poster, tell them a rate you would be happy to do the work for and let them know that they can take it or leave it. 
Fri 23 Jul | Dennis Atkins | Look, the y told you right off that they don't want to pay even 1/2 to 1/3 a fair rate. There is NO room for negotiation when you are THAT far off. I wouldn't waste ten seconds gathering work examples for them because there is NO chance of getting a contract. Tell them good luck with the offshore grunts and if they ever decide to grow up you'll be happy to talk to them, but from now on your rate for THEM is twice what you quoted because you don't like to be insulted and have your time wasted.
Fri 23 Jul | Dennis Atkins | Here's a rule that will serve you well ONE HUNDRED PERCENT of the time. Ready for it? Here goes... Any potential client who is shopping on price is NOT worth it. I am not kidding. Really. If price becomes a big problem when selling consulting services or contract work, move on. In the case of contracts, most of the time you won't make a penny. Do NOT take on bargain shoppers for clients. DON'T. Listen to me here, I am not shitting you my man, you don't want these people for clients. The least important criteria in hiring a developer is price.
Fri 23 Jul | Inside Job | Bored, my reading of this situation is that you might have a good opportunity. As Jihn points out, they called you back. They obviously like you, but they're trying to reconcile your 'high' price. What you have to do is arrange a meeting where you effectively reassure them that they're going to get fantastic work from you, and none of the problems they would get from offshored. I think you will kill it in. Regarding them being a cheapskate, what typically happens is that once they get over the initial shock, the system flows, and you get paid, and you've helped educate another company into what quality is all about.
Fri 23 Jul | trollop | Never drop your rate (pants). You'll lose more than money. If you *are* getting hungry, consider taking a lower rate, but from someone else. Stare back. They'll either blink or walk away.
Fri 23 Jul | Nemesis | I'm with Dennis on this one. Taking a job from someone who is desperate to hire the cheapest possible resource is bound to turn out bad. Probably many of us have been there (I have), and most will have regretted it (I did).
Fri 23 Jul | no name | > Any potential client who is shopping on price is NOT worth it Next time you think of buying a car please let me know. I'll get you exactly what you want. It will just cost you twice what you could get away with paying.
Fri 23 Jul | Dennis Atkins | So you always buy a Yugo or a Prabst or whatever that Russian car is called? Really?
Fri 23 Jul | Steven | 'Next time you think of buying a car please let me know. I'll get you exactly what you want. It will just cost you twice what you could get away with paying. ' I bet the salesman would rather have a customer that is going to pay the asking price and not just for money reasons either. The customer is likely to be easier to deal with. Not too much of a deal when you're selling cars I guess. However, when it's working with the customer then it does make a difference. A certain amount of negotiation is fine, but if price point is the main concern then they're never going to be happy. They will always feel ripped off.
Fri 23 Jul | Dennis Atkins | Exactly. I negotiate on new cars and used. Although price is a factor, say between dealer a and dealer b, it is not the main thing I am looking at - I am mainly looking at the car that fits my needs best. The employer in the described scenario is directly comparing work that he would do on site with an alleged price of some guys overseas. Who knows what additional costs are involved or even if the numbers are correct or represent a real deal he has going (unlikely). Fact is his only concern is price. If I go to the Porche dealer and look at 911s, and then tell the dealer that I can get a Trabant for $2000, he is not going to suffer me for long. He is not going to spend time to put together charts to show that Porche has better quality than Trabant. Such a buyer shows himself a fool and is not worth bothering with. It would be a different matter if I am negotiating on price and package with his dealership vs the one across the street. If the employer wants to hire overseas people at 1/3 a normal rate, let him do so by all means. But he can not possibly expect you to show up on site and talk to him in english face to face for the same amount. Tell him you'll take the job but you'll send him emails in broken english, you'll be completely unavailable for site visits or phone calls, and that if you steal his secrets, he will have no legal recourse because you live overseas. These things are all risks that he takes when he chooses to go overseas and that is fine, you save some money by being willing to take these risks. To compare it to an on site worker though is ridiculous and insulting.
Fri 23 Jul | Unfocused Focused | I'm curious - can you say at least where this company is located?  I know of a company going through these iterations but the chances it's yours are pretty minute.
Fri 23 Jul | Simon Lucy | Its not uncommon. One of the problems is that they are stuck but they refuse to revalue the work, or the result of delay in not getting the work done and at the same time don't seem to understand amortising development over the life of the product. If they do go with you, you'll likely have to manage them hard, both in terms of the project and in contractual terms. They can work out well, but if they start out with the attitude they've been shafted (and of course they aren't being), the slightest blockage will assume leviathan proportions.
Fri 23 Jul | Clay Dowling | Don't budge an inch. If they really have these cut rate offers, and they're really more concerned about price than quality, they wouldn't have talked to you at all. You've got them by the balls and they know it. They mention the lower prices at all because they're trying to get you to release your grip. If you release your grip it's a given that they'll put you in a harder grip with a lower price. You're working from a position of strength. Squeezing harder would be a bad idea, but if you let it be known that your rates are firm, and they should call you if they want to go with your services, you have a pretty decent chance of getting the contract. The very important thing to remember is not to compromise your position of strength. Negotiating tells them that your position isn't so firm.
Fri 23 Jul | Mr. Analogy | If they were convinced you : 1. Could deliver the work on time, on budget, etc. 2. Are easy to work with. 3. Will be around for future work. Would price still be an option? The problem is that, from a resume and a web page, all developers look the same. As an employer, I really have nothing to go on but price. The trick is to convince me of the above 3. The pilot project sounds like a great way to do it.
Fri 23 Jul | www.xndev.com (Formerly Matt H.) | 1) Stop competing on price per hour - start competing on (or at least, selling) delivered value for total price. For offshore, you have no way of _verifying_ that the work took as long as billed. So they could be double or triple billing, and total price would be more than you. Seriously. So you sell them on delivered value for total cost. If management can't get this, then they have a problem. More likely, they are just trying to get you to decrease the cost for leverage. 2) Give concessions that don't cost you much. Offer to sell your time in blocks for a 10% discount - if they pay up front. Offer a 2% discount if check they send you is dated within 10 days of your invoice. Say 'I give a two net ten discount.' 3) Read a couplea books on negotiation and percieved-value pricing. I would recommend 'The mcgraw-hill 36 hour negotiation course' and 'Million Dollar Consulting' by Alan Weiss. Weiss is awesome. Regards,
Fri 23 Jul | Bored Bystander | Guys: First of all, I've been contracting for 11+ years and I don't intend to give one inch on my rate. FWIW, it's north of $50/hr corp to corp and much less than $100. It's quite reasonable for someone with a track record of released commercial applications. Absolutely agreed that the price shopping up front as a centerpiece of their selection criteria indicates a bad client. In fact, I think one could make a valid point that if they lost their only Delphi developer and nobody at the place has enough technical background to evaluate me in a phone screen, they are probably too clueless to bother with. Also, 'the company left high and dry because one key technical guy left so we need his replacement for this instance' profile fits ALL of the worst clients I've had. You have to ask what drove him out. They aren't saying, but I get the vibe of '!@%&* back stabbing self serving programmer who just looks out for himself found another job' - boo hoo. :-) A face to face meeting for a 10-20 hour pilot project is out of the question. The company is about 400 mi from my home. I just think they will never arrive at a point where they have enough info in hand that they will indicate any confidence in my abilities that result in money changing hands. I bet it comes back to price. If they're reading this... heh heh... well, I'm screwed, or maybe not. So be it. I will check in with further results.
Fri 23 Jul | Unfocused Focused | Bored, Much less than $100/hr for quality Delphi? Especially with these risks? You're giving them a break, not being expensive.
Fri 23 Jul | Dennis Atkins | Bored says its 1/20 of his experience and he has 11 years experience, so maybe he is saying he has 6 months delphi experience. Probably someone with a bit more would be better, but they are beggars and they can't be choosers. Even so, Bored's rate, especially for such a short term contract, is extremely reasonable. Another factor is that there is no chance whatsoever that they found a overseas shop with Delphi expertise that charges a total of $16/hr for top guys. In fact, I would say that the best thing bored could do is congratulate them for finding such a deal overseas and tell them that you think that's a fantastic rate and they should go with it. A week later, he'll get a call saying that it didn't quite work out with the phantom body shop. At that tmie he sholud say he's got a stable year long contract about to be signed for $120/hr but if they want to offer him $160 given that it's short term, he'd consider it.
Fri 23 Jul | Bored Bystander | Actually, I have almost 25 yrs industry experience, 11 of it contracting, and about 8 of the total around Delphi. My '1/20th' proportion is exaggerated in the downward direction just to emphasize the non-professionalism of someone carping on one language when I can show just as many accomplishments in many other tools.... kind of like treating Stephen Hawking like a 7th grade algebra teacher. Re: rate: I pegged the rate in the range stated knowing the rate pressure prevalent in contracting. At some level (probably $70-80) many clients automatically disqualify candidates. I should be asking more but it's a compromise in order to reel in the work. Any less than what I am asking and I would feel ripped off. Any more and I know companies will not even bother.
Sat 24 Jul | Dennis Atkins | Yeah i totally agree with the rate you are asking as a sort of sweet spot, particularly for online stuff where there may be trepidation on their part. If it's a case where they heard of you through the grapevine the initial rate can be higher. The $120 and up I am just saying if you decide to walk away and be done with them and if it turns out that they come back and want you  si nsce their $16 connection is having some problems with followthrough, I would punish and toy with them by insisting on a dramatically higher rate. The purpose of this would be to train them not to screw with professional contractors in the future. Many professionals do this. If you irritate an attorney, architect or famous painter, the next time you seek his services, his rate is going to be much higher. That's how the game of life works.
Sun 25 Jul | Stephen Jones | Looks to me like there's somebody at the company who knows outsourcing is risky, and he's got to try and persuade somebody who's higher up. Stick to the price. You're not in competition with the outsourcers. You go down to $50 you still seem expensive.
MCSD revisited | Thu 22 Jul | Brent
speaking of the MCSD, and leaving aside ressentiment for people with credentials (dubious as said credentials might be), Ive been thinking of studying up and taking the MCAD/MCSD exams as a way of spinning up on .NET and maybe getting my foot in the door on a .NET project. Have any of you done this? Is the exam prep material from Microsoft useful towards that kind of goal? Does anyone whos any good take the MCSD/MCAD seriously or is it the kiss of death?
Thu 22 Jul | BW | I read the Kalani books and passed the tests up to MCAD while unemployed, learning quite a bit along the way.  I think the proper way to think of the MS certifications is as extra motivation to learn material that you aren't already working with and you want to get into.  But as merely an addition to one's resume, I don't think it is worth it.  Sometimes it will help your resume get noticed, but most technical people realize that there are too many knuckleheads who can pass the test but can't create good software.  Experience will always be king, in the interview and on the job.  And keep in mind that people cheat on these tests everyday, it's very easy to do, so hiring managers are probably wise to give them little consideration.
Thu 22 Jul | Kalani | The what books?
Fri 23 Jul | example | It's not the kiss of death, but it's also not the first thing I look for in a candidate. I'm more interested in seeing if they have 'the spark' -- that is, a desire to learn and do good work. I also look for someone who has suffered through a lot of development pain (taught them what *not* to do!) Heard a good one the other day from a friend who used to be a consultant. Everyone knows these acronyms: MCSD -- Microsoft Certified Solution Developer CCSP -- Cisco Certified Security Professional CNE -- Certified NetWare Engineer There's a new one, especially designed for those who have done extensive reading on the subject matter, but haven't yet actually written any production code: BNE -- Barnes & Noble Engineer
Fri 23 Jul | BW | Kalani wrote the most popular MCAD.NET study books: http://www.amazon.com/exec/obidos/tg/guides/guide-display/-/2VJ0RA1Q8QCK8/qid=1090595242/sr=18-1/ref=sr_18_1/103-8597128-7193410
Fri 23 Jul | Kyralessa | 'It's not the kiss of death, but it's also not the first thing I look for in a candidate. I'm more interested in seeing if they have 'the spark' -- that is, a desire to learn and do good work.' Out of curiosity, why would having the initiative and tenacity to study and pass the MCSD tests not indicate a desire to learn and do good work?
Fri 23 Jul | Brent | BNE. Heh. I haven't come across the type yet; of my past colleagues I'm probably the worst 'offender' in that area: when I'm working full-time my amazon bills, I've been told, would support a modest-but-full-blown cocaine habit. I've personally seen more flailing around from 'not-invented-here'-based refusal to do basic background research on a new-to-that-engineer problem than I have from lack of experience writing 'production' code. That could very well have more to do with the hiring practices at my past employers than anything else... As an aside, some years ago, between real jobs in an economically depressed part of the country, I was making ends meet by sprucing up Access databases, turning ad hoc lists in Excel into Access databases, doing a bit of client-server database stuff when it came up, etc. One job I had, when I first talked to them, they told me: 'The last guy was supposed to be this expert with all this experience, and he showed up with a BOOK!!!' That gig, I kept my reference materials in the car!
Sat 24 Jul | blargle | I spoke to one of our HR people about the value of MCSD recently. We're a consultancy/outsourcing type of place. She said ond of the first things clients ask is how many MCSD's the company employs. Recently I was put forward for a position with a client - the Project Director wanted the MCSD displayed a bit more prominently on my company CV as it's a pure MS based project. Seems clients at least like to see it ...
Sun 25 Jul | Stephen Jones | ----'One job I had, when I first talked to them, they told me: 'The last guy was supposed to be this expert with all this experience, and he showed up with a BOOK!!!' That gig, I kept my reference materials in the car! '------ LOL. Luckily with the internet you can look things up and they'll be none the wiser.
My resume any way to save $ via snail mail? | Thu 22 Jul | TruthSeeker
I plan on sending a cover letter and resume out to various local businesses, consulting firms, and body shops. Some of my cover letters and resumes will be personalized others wont be. I would like to save some money by reducing the cost of postage. While I plan on visiting the U.S. Postal Services web site, I am hoping that some JOS readers have recently mass mailed their resume via snail mail and can briefly explain to me how it actually works nowadays. I have been told that the U.S. Postal Service changed the way it deals with small-sized bulk mailings several years ago and that I can no longer qualify for a decent discount rate by following a simple set of regulations. What I have been told is that before I can receive a decent discount rate, I must pre-pay the Post Office some money for a bulk mailing account. My memory sucks, but I believe the simple post office regulations I spoke about used to go something like this: - A minimum of 200 envelopes must be sent to qualify for a bulk rate - All envelopes must weigh the same - All envelopes must be pre-sorted by zip code and bundled up with rubber bands By following these simple rules the Post Office would charge me at the reduced Third Class postage rate. The person I was talking with told me that he believes that the regulations I spoke of havent changed but the discount rate has (First Class rate instead of a Third Class rate) and that it isnt worth the effort for me to attempt to qualify for the discount being offered.
Thu 22 Jul | Kevin | Do you really want a potential employer receiving your resume as bulk mail, and knowing that you sent it to more than 200 places?
Thu 22 Jul | Mr. Analogy | Kevin, took the words right out of my mouth! ...err... off my fingers.
Thu 22 Jul | Bored Bystander | Truth seeker, the way I've read it described is this: most business people sort their mail by standing over a trash can. All of the bulk mail and junk that the person isn't interested in goes into the can. Which is almost all marketing and sales related stuff. The book 'The Ultimate Sales Letter' by Dan Kennedy describes how you can prepare your mailing to be likely to be read. A bulk mail imprint lowers your chances significantly because it looks like all the other crap. The most plausible way to do this on a small scale and with limited budget is to make each letter look like it was sent only to the recipient. This generally means a first class stamp (not even a postage meter), typing the recipient's address directly on the envelope (no labels), or even addressing it by hand.
Thu 22 Jul | John C. | Why not spend your time focusing and developing real relationships with these people instead of spamming... er, shotgunning your resume out to people who probably couldn't care less?
Thu 22 Jul | genius | Hmm I've been working in software industry for 7 years (currently in my 3rd job not counting college internships). I don're recall ever snail-mailing a resume... Doesn't every software company have a website with job openings and recruiting contact info by now? Or do you guys think that mailing a resume gets you better results than emailing it? I don't see why it would...
Thu 22 Jul | Jason | If you're sending out so many that paying $0.37 each is too much, then you're doing something wrong. Even sending 100 (which seems like way too many) would set you back less than $50. So what's the problem? I just finished a job search, and the vast majority of companies I looked at made it clear that they did not accept resumes that were not submitted for a specific listed opening. I probably submitted 50 resumes over 3 months, every one of them electronically.
Thu 22 Jul | TruthSeeker | The following is why I want to mail all of my letters out at the same time. Btw, I plan on sending my resume out to companies that are within a 100 miles or so of my apartment My plan is to spam the local body shops since these companies typically stick your qualifications into a database. It has been my experience that unless you are applying for a legit advertised position on one of the online job boards it doesn't really matter how you approach them. Most of my so called personalized letters will be going to HR droids at places where I have no idea if the company is hiring or not. These companies wound up in my contact database because at one time or another they advertised for someone who has experience with programming language X or technology Y. While I am sure that many HR droids do pay attention to the type of postage stamp being used, I do want to point out that I am not applying for advertised positions. I am hoping that some of these HR droids will stick me in their database and eventually contact me the next time they play buzzword bingo. I know my success rate will be very low that is why I want to keep my costs down.
Thu 22 Jul | Chris | You do realise though, that because you are mailing it, unless you include a floppy disk with a word doc of your resume it will be too much effort for them to 'stick you in their database'. I would have thought if you sent it to more than 5-6 within a 2 week period you will lose track of who is calling you though. This won't leave a good impression if they call you and you have to fumble through your diary / crm package to figure out what coverletter etc you sent them.
Thu 22 Jul | Philo | Yeah, that was always a pain in the ass - answer the phone and get 'Hello, this is Frank at Penetrobe - you sent us your resume, do you have time to talk?' So then I'm sitting there trying to nurse details out of the caller so I can remember exactly which company this was and what they do. Philo
Thu 22 Jul | Code Monkey | You could achieve the better results talking to a good independent recruiter. They know the people inside the organisations, know the positions and know whether you stand a chance or not -- they have to -- their earnings depend on knowing this. Shotgunning your resume to everyone is a stupid idea even in situations where it does not cost you much like at a recruitment fair.
Thu 22 Jul | AllanL5 | 1. Mass mailing your resume is penny-wise, pound foolish. 2. Your resume is golden to you. At least, you should treat it that way. 3. When you mail your resume to a company, it is the first thing that company sees about you. You want to make a good impression. You don't really want to advertise that they are merely one of 100 or 200 places you've applied to. If they pick-up on your resume, and call you, they want to feel that you'll come to work for them, all other things being equal. If they are merely 1 of 100, that makes them feel you are not taking THEM seriously. I know, it takes a lot of resumes mailed to get a few contacts. Even so, you need to be serious about each resume mailed. 4. Better ways to make serious contacts: 4.1 Attend a job fair. Make personal connections. Yes you still need to give them your resume. This is also an excellent way to research what people are really doing out there -- which also makes the experience of all those 'we'll call you's ' much easier to bear. 4.2 Network (if possible). Have people who know you, who you've gone to school with, whom you've worked for, family members, tell you about positions they know about. Have THEM submit your resume. #4 is the only way I've successfully gotten jobs. Note that timing helps also. It helps to do the #4 things at a time when people are actually hiring. That time does seem to be now, in the Washington D.C. area, anyway.
Fri 23 Jul | Mark S | Why not just rent a billboard that's easily viewable on a major interstate if you want to reach hundreds or thousands of people.
Fri 23 Jul | tapiwa | I play hardball with my resume. Especially with recruiters. Unless I am happy with the role they are describing, they don't get my resume. Spamming does not really work. You are better off making 100 local calls, and they like what you are offering, they might invite you to send a CV. If you like what you hear on the other end, you might actually send it in. Follow it up with a phonecall a few days later. Much better than to spam people. Take the $50, and spend it on a copy of What Colour is your Parachute.
Fri 23 Jul | Bill Carlson | Get elected to the U.S. Congress.  They are allowed to mail whatever they want for free, even if blatently self-promotional...
Sun 25 Jul | Stephen Jones | Would you really want to work for a software company that prefers resumes sent by mail? At the very least email them (and don't use bcc or cc) and tell them you are also sending a copy in the post.
What are the most underrated tech products? | Thu 22 Jul | Mongo
You know, the ones that you use and love, or see being used, and wonder to yourself Why the heck isnt everyone using that? For me, its my Vonage VOIP phone and Infocus X1 video projector (for, ahem, business presentations, not watching T2 Extreme Edition), for example.
Thu 22 Jul | Code Monkey | * Firefox * 3x5 index cards and a pencil * Brain :-)
Thu 22 Jul | hoser | 'pencil' True. I prefer a Pentel with 0.5 mm HB lead. And an eraser and that funky green graph paper.
Thu 22 Jul | Scott | Yes, pen and paper notebook. Prefer notebooks lined in gridpaper but they can be hard to find.
Thu 22 Jul | JWA | My Palm Tungsten 3 (the one with the built-in keyboard) has really changed how I use PDAs and notepads.
Thu 22 Jul | Kent | FogBUGZ and CityDesk !  :)
Thu 22 Jul | Mr. Analogy | EMAIL
Thu 22 Jul | Ward | Fisher Space Pens www.spacepen.com You've probably heard of them, the whole writes in space, under water, saved Apollo 11 thing. But their crucial feature is that you can carry them in your pocket and they won't explode. This makes them easy to carry everywhere you go - the bullet pens are short and blunt so you can put them in any pocket comfortably. But stay away from the ones with a PDA stylus - I tried them twice and the plastic point kept breaking.
Thu 22 Jul | Norrick | 'You've probably heard of them, the whole writes in space, under water, saved Apollo 11 thing.' Heh. The U.S. spent millions to develop the Space Pen. The Soviet Union gave a pack of Ticonderogas to their astronauts. Sometimes you really DON'T need high-tech to solve a problem. :P
Thu 22 Jul | AllanL5 | A number 2 mechanical pencil, with a nice Staedtler circle template, for drawing DFD's. Visio, because it can draw almost anything, and yet the automation model it exposes is so clunky no-one has done much with it.
Thu 22 Jul | Ward | Norrick: that's an urban legand.  "The US" didn't develop the space pen, Fisher did it all on his own.  All astronauts used pencils before the space, pen, then they all (US and Soviet) switched to the pens.
Thu 22 Jul | Karthik  | MS BOB
Thu 22 Jul | killerwhale | condom
Thu 22 Jul | John C. | source control automated unit tests admittedly, not 'products' per se...
Fri 23 Jul | Mark S | Coffee Grinder
Fri 23 Jul | . | >> What are the most underrated tech products? Our products.
Fri 23 Jul | Clutch Cargo | Kimono Microthins.
Fri 23 Jul | Nemesis | Notepad. Either pencil and paper kind, or Notepad.exe kind. Both are invaluable.
Fri 23 Jul | Szász Attila | Miranda IM
Fri 23 Jul | www.marktaw.com | I like the 'Brain' answer. 'Book' is good too. Lots of good books out there, but an amazing percentage of people simply don't read. Growing up I was always amzed if I went to a friend's house & they didn't have a dictionary. I have a Fisher Space Pen. It's pretty cool, got it as a gift. Not the bullet style though.
Fri 23 Jul | no name | pussy shaver
Fri 23 Jul | schmoe | Beyond Compare 4NT People who are experts with the tools they use the most.
Fri 23 Jul | Christopher Wells | Cell phone. Public transport. Tai Chi. Banking automation. Windows, fans (as opposed to air conditioning). Mouthwash.
Fri 23 Jul | x | Borland Delphi :) Fantastic development environment, equivalent with VS .NET, but without 'lots of bugs everywhere'!
Fri 23 Jul | Kyralessa | Combined PDA/cell phone. (VisorPhone/Visor Prism in my case.) Electronic piano. (Not a crappy 'keyboard', but a real electronic piano: keys feel real, never needs tuning, and way more portable than a real piano.)
Fri 23 Jul | www.marktaw.com | 'Windows, fans (as opposed to air conditioning).' Wow, I was thinking of posting that one too. REAL AIR(tm) is awesome.
Fri 23 Jul | Nix | optical mouse
Sat 24 Jul | Berlin Brown | http://www.jdistro.com/ http://www.jcraft.com/weirdx/ http://sourceforge.net/projects/jsh/ http://jdx.sourceforge.net/
Sun 25 Jul | Tom | The US avoided giving their astronauts pencils because the small shavings emitted by using them could float around the cabin and short out circuits. Or so I heard. The space pens do come recommended on account of their being usable everywhere and being rather attractive. However, they aren't all that comfortable for very long periods -- they are a bit thin, made out of two parts and thus half hollow when joined together (not quite as solid or balanced as having a single unit), and the ink doesn't flow as freely as even some disposable ballpoints. For day to day use I recommend the clear Bic ones, at 20p or so each.
What source code are you reading? | Wed 21 Jul | Source Code Reader
I find it interesting to read and study source code from various projects. Im currently reading and studying the source code to : AbiWord Jagged Alliance (game) Mozilla/FireBird Does anyone have any recommended source code to read or study?
Wed 21 Jul | RP | Want my first professional project? It'll keep you glued for years to come....
Wed 21 Jul | sid6581 | I probably read the Windows source code the most (I have legal access to it). Lots of nuggets in there.
Wed 21 Jul | Ori Berger | Python FLTK The Linux Kernel QEMU QEmacs tcc (Tiny C compiler) lcc (local? C compiler) http://sourceforge.net is your friend - find a project you find interesting, and starting reading the source.
Wed 21 Jul | Mr.Fancypants | Reading source code is not particularly useful, particularly the crappy source code the makes up the vast majority of OSS projects. Are you guys just really fucking bored?
Wed 21 Jul | Bleh | To be fair, the vast majority of closed source projects also consist of crappy code.
Wed 21 Jul | anon | I am looking at GMail's JavaScript :)
Wed 21 Jul | Li-fan Chen | I personally enjoy reading kernel, web server, network stacks, and proxy server sources. Apache was commented on. Minix and Linux was commented on. Linux net stack was commented on. Forgot the name of the publisher. It's easier to read in print and with a little bit of help. If you can handle huge softwares that's great, but generally I stick to the little things (small web servers or web accelerators) still in alpha to keep the reading to a minimum.
Wed 21 Jul | Li-fan Chen | Another fun thing to do to keep the reading to a minimum is reading libraries written in Javascript or some other high level scripting language. You learn a lot about a concept or the plumbing without getting all wet. Things worth reading include XML-RPC server and client libraries, encryption libraries, device drivers, thunking/wrapper software (software that translate your javascript into calls to c).
Thu 22 Jul | christopher (baus.net) | Li-fan, What proxy servers have you looked at? I've written a HTTP proxy server from scratch, and I have admit it was far more work than I ever imagined, although it has some characteristics that I didn't find in any OpenSource servers. Squid is pretty neat, but somehow the configuration seems overly complicated. It was also orginally written as a level-triggered server, and while there are hacks to make it work edge-triggered with sys_epoll(), I'm not totally convinced I would trust them in production.
Thu 22 Jul | Li-fan Chen | Re: squid
Thu 22 Jul | christopher (baus.net) | Squid is interesting in that it uses a single threaded model.  Another interesting http server is thttpd.  The whole thing is like 5 C files. 
Thu 22 Jul | Ori Berger | Mr. Fancypants - I understand you grasp all useful techniques and coding issues from the ether, but some of us don't have the capability -- and we improve ourselves by learning from others. You know, like writers read other writers' books every once in a while. The projects I listed above have high quality source. If you ever bothered to read code, you might have known that.
Thu 22 Jul | Nemesis | I am working my way through the .NET framework at the moment. Some of the code does seem very naïve, but I guess that's probably the optimiser, rather than the MS guys ;-)
Thu 22 Jul | Ged Byrne | How do you read source code? I'd like to know. I can think of nothing more baffling than encountering a code base for the first time, especiall C++ stuff. What do you take as you starting point? How do you go about figuring out templates and other preprocessor stuff. Any good tips. Donald Knuth says that he takes a set of random pages and gets to know them really well. Anybody else try this? Do you find OO code easier to read or functional?
Thu 22 Jul | Ori Berger | Procedural is usually easiest to read; Nothing inherent, I think, but that's my experience. I usually read a few random .h files with interesting names, then a few random .c files with interesting names. I take notes (usually with a pencil) while I do that, and then start the quest with resolving my notes. You might find running Doxygen in it's 'collect every info' mode useful, and browse through it (you can also print, although it will require a forest or two). Or you can browse the documented Doxygen online. Or maybe RedHat's SourceNavigator (which also works on Windows), which is also a good source reading tool. But essentially, 'less' or 'notepad' should be sufficient after you've grown the habit.
Thu 22 Jul | Nemesis | Ged: It helps when you have a pretty good idea how something works, then you're just checking your understanding, though still with the occassional suprise, of course. I've spent quite a while looking at the .NET code and I have to say that Reflector does a good job in presenting it in an easy to use way. I normally view the code in C#-equivalent, but you can view it in IL, VB.NET or Delphi too.
Thu 22 Jul | TomA | Golgotha & Abuse, the games from Crack.com (C++, lisp) Half-Life 2 (very rich sound effect library, btw; C++) Quake2 (C) K3d, modelling software (C++, nice scripting API) Qt (C++) By the way, I have yet to find a PHP source code I'd call beautiful and easy to read.
Thu 22 Jul | sir_flexalot | I usually start with the highest level and go down, i.e. I start with the GUI (if there is one), move down to the next highest-function set, and go from there, looking up the code for functions as I encounter them, until I get to the "bottom".  It's easy to make a diagram of how the code works from this, if you have a big sheet of paper or visio, or some other tool like visio (preferred to do it electronically, or your diagram is going to have a LOT of overlapping lines, unless you're superman at predicting entanglements, and if you are, sweet!)
Thu 22 Jul | Source Code Reader | Thanks for the replies guys. Thought I would add some more: Povray (C) Fractint (C; Still a DOS program I believe unless run under X-Windows;)
Thu 22 Jul | Source Code Reader | Ohh yea... and I normally identity a feature the program has (by using it) that I would like to know how it works and then I try to find the appropriate source code.  (Sorry, that sentence is wordy heh.)
Thu 22 Jul | Peter | >How do you read source code? I'd like to know. >I can think of nothing more baffling than encountering a code base for the first time, especially C++ stuff. I would like to recommend the following book: http://www.amazon.com/exec/obidos/tg/detail/-/0201799405/ The book covers your questions, and then some. It is also helpful if you 'inherit' some huge codebase. What code am I looking at this time? FOP Batik PDF-lib
Thu 22 Jul | Hey | I prefer developing to reading other peoples' source code. In fact, I can't think of anything I less enjoy than reading other peoples' code. I've never been a maintenance programmer and never will be.
Thu 22 Jul | AllanL5 | I tend to use 'Understand for C', by www.scitools.com to read other people's code. You feed this tool a list of subdirectories containing source code. It traverses the subdirs, building a database of all calls, references, objects, etc. You can then easily generate navigable structure charts of the code, a class diagram of each object, find the 'main' routine (or routines). You can right-click on a 'call' and immediately go to the definition of the call. When given a mess of several hundred thousand lines of code, spread over 20 different directories, this tool lets me navigate it in a focussed way. I don't work for the company by the way, I just really-really like this tool. It costs around $500.00 for a single license, too, so its not outrageously expensive.
Thu 22 Jul | Cecilia Loureiro | AllanL5 isn’t that called reverse engineering? You generate design diagrams from the code. I think that is useful to understand how an application has been programmed and designed.  But if you need to change the design can you use the tool to rebuild the code again? Have anyone had any experience with these kind of tools? How is the quality of the code generated? Is it readable?
Thu 22 Jul | AllanL5 | Why yes, I believe that IS called 'reverse engineering'. I seem to do it an awful lot -- except I'm only reverse engineering what others have authorized me to reverse engineer. The 'Understand for C' product basically provides you with a smart editor, with syntax highlighting and multi-file/multi-subdirectory navigation. I find the smart navigation very useful, and the 'graphic display' of my program also gives me an overview. If you change the text, you can 're-parse' the set of files, and the change will then be reflected in the graphics it generates. Unfortunately, its graphics are not really suitable for publishing in a document (yet). Now, UMLStudio (a different product) does both 'forward' and 'reverse' engineering. In 'forward' engineering, you draw your classes and hit 'generate'. It then generates a set of .H and .CPP files to instantiate your classes. You still have to write the class bodies. 'Reverse' engineering works also. You give it a subdirectory, and it will generate diagrams based on the .H files class descriptions. The problem with this 'forward' and 'reverse' engineering approach is that UML does not (yet) have enough detail to unambiguosly specify what code to generate. So the full 'round-trip' engineering process seems to lose some detail sometimes.
Thu 22 Jul | Justin Johnson | Apache Struts, because the documentation has some frustrating holes in it.
Fri 23 Jul | MacSqueeb | I'm just getting into TDD, so any tutorials / examples of that. I'm not a mature enough programmer to tackle reading a major product (i.e. Apache or Mozilla) and grok it. I think once I grasped one section it would fall out of my brain as soon as I pushed another one in. Any recommendations on a small but complete project I could start out with, preferably in something higher level than C/C++? And yes, as an employed PHP programmer and PHP lover, I can agree, there is no large PHP project whose code is less than insane. But hey, at least it's not Perl.
Sun 25 Jul | Christopher Diggins | For getting to know C++ techniques a bit better I recommend reading the Boost libraries. The MFC C++ library is good reading, and if you are into Delphi try the VCL (Visual component library). The VCL is actually easily read.
Programmer Performance | Mon 19 Jul | Ken
The business folks at my company want to start tracking performance in all departments. Ideally, theyd like concrete, non-subjective, metrics to compute this. I.E., actual time of completion vs. estimate; actual time of delivery vs. estimate; number of billable hours, etc. Im looking for others, and maybe some good/bad reasons for using them. Are there industry best practices for programmer performance?
Mon 19 Jul | kc | Hahaha. You're screwed. LoC (Lines of code) are normally a terrible idea. ROI (Return on Investiment) is a nightmare to establish. Your best bet is to get your users/clients to vouch for you. You want your users/clients to ask for you on their projects. I have 3 groups within this company that have specificly asked for me. It's hard for a boss to dispute anything when the client knows that you'll communicate with them, work to clarify things, and deliver a solid system.
Mon 19 Jul | kc | Sorry, I didn't mean that to come out quite that way... it was initial reflex.
Mon 19 Jul | Christopher Wells | > Ideally, they'd like concrete, non-subjective, metrics to 'compute' this. I.E., actual time of completion vs. estimate Is this to this measure the output of the programmer, or the accuracy of the estimate?
Mon 19 Jul | sgf | Start looking for a new job.
Mon 19 Jul | Peter | Did those estimates come from the developer or from the PHB? Most of my grief has come from supervisors pulling numbers out of the backside of their underpants. The person controlling the estimates has life or death control over you. An example of why estimate vs delivery is a real bad metric: The Denver Airport baggage handling system. The development managers said it would take 4 years to build. The sales team said 'the airport would be finished in 2 years, and that's when the handling system is being promised for completion: you have 2 years to do it in.' The handling system was finished 4 years after it started. Was the handling system finished on time, or 2 years late? Most managers think it was 2 years late, because some sales idiot promised it in half the time it could be finished in, and that is the number that was widely published and what they all remember. What ever you decide to measure is what you are going to get. If you measure billable hours, you will see folks acting like lawyers: billing for time in meetings, billing for lunch, etc. What do you really want to measure? What does it mean when you say 'a programmer is productive?'
Mon 19 Jul | Mr. Analogy | 'What ever you decide to measure is what you are going to get.' And you'll get NOTHING else. These sorts of extrinsic measurements (and rewards based thereon) cause you to be less focused on your work and more on the extrinsic measurements. You'll be thinking 'how many hours did I bill today' instead of 'what button name is going to be clearest to the customer -resulting in fewer tech support calls, happier customers, and higher net revenue'.
Mon 19 Jul | AllanL5 | 'Industry Best Practices for Programmer Performance' -- unfortunately, the 'Industry' is evolving so fast, and it has so many different niches (web development, C++ Dev, Java Dev, Windows Dev, Unix Dev, Linux Dev, Database Dev, DOD2167 vs DOD 498 vs IEEE 12207 vs CMM, DFD vs RUP vs AM vs XP) that there are so many 'Practices' that there is very little consensus about which ones are 'Best'. The SLOC (SourceLinesOfCode) metric is concrete, but means little across different platforms and languages, and probably measures 'the wrong thing'. In other words, is it better to crank out 200 lines of grubby code, or spend the same amount of time to do the same function in 20 lines of code? And if today I 'clean-up' and remove 180 lines of grubby code, is my productivity negative? The first hurdle is trying to measure ANYTHING. The next hurdle is how to use those metrics. From what I've seen of 'Business Types', they need to use metrics in a very simplistic way. The best use of metrics is 'predicted versus actual', so we can predict how much more time is needed to complete the project. These would be predicted versus actual for: Number of objects created, Number of objects needed, 'Function Points' created and needed, etc. The worst use is 'he is better than the other guy', as this creates and rewards metric creep. And, of course, if you are going to USE 'predicted versus actual', the sales guys and managers MUST keep their hands off the 'predicted'! It is hard enough to try to come up with some realistic 'blue-sky' prediction on code size and functionality. To then have a manager or sales guy tell you that it should take half that time is very demeaning and demotivating. Also, be aware, in software the 'Actual' rate of completion of code is very non-linear. Lots of time up-front in design (no code). Lots of code in the middle (we're Coding!). Lots of time at the end integrating, testing and fixing (not much code, in fact we may be removing code).
Mon 19 Jul | derek | As much as possible, use metrics that balance each other out, such as time-to-market and customer satisfaction.
Mon 19 Jul | Dino | After using SLOC, POPs and all sort of adhoc metrics I found out that ... hmmm ... software metrics alone are not that useful. 'How long does it take to implement X feature?' does not have a simple answer, no matter how much the upper management wants one. Building up a historical database of software development records won't help to much either. The amount of information that needs to be collected and analyzed is huge (and creates a proportional overhead).
Mon 19 Jul | Wayne | Ken, I implore you to take some of these comments to the decision maker of this new policy and present it to them in a polite but forceful manner. I've done this a few times with threads that were about issues we have at work and the outcome has been good. The smart people on this forum can usually express their point of view better than I can. Personally, I think that measuring estimate vs. actual time and customer satisfaction are two good ways of doing it.
Mon 19 Jul | Management Material | Ken's neither a programmer not someone about to be affected by this type of performance assessment. He seems to know zilch. He's probably an analyst from some IT industry 'research' outfit trying to learn the basics for a report they will eventually sell for $4,000 a pop.
Tue 20 Jul | Egor | Keep in mind, Ken, that any metrics only make sense when the tasks that compared programmers are working on are also well comparable. That is, you can't hope to objectively compare performance of two guys while one is working on UI and another on DB interaction.
Tue 20 Jul | Dave Hallett | Don't use KLOCs to compare one coder's performance with another. Better coders may well write fewer KLOCs. But given that each coder' style is fairly constant, measuring the output of the whole group of coders over a longish time frame (a month, or a quarter) may give you an idea of how productive the group is being. It's probably more important to measure defects in the code produced, however. Check out Tom Gilb, who has plenty to say on the subject,
Tue 20 Jul | no name | Guys, guys, Ken doesn't give a stuff what you think.
Tue 20 Jul | i like i | Measure bugs. Empower your customers to fill in bug reports. Typically, empowered users aren't actually going to fill in bug reports. Hence low bug counts.
Tue 20 Jul | Ken | ...Your best bet is to get your users/clients to vouch for you. You want your users/clients to ask for you on their projects. I'm trying to implement a situation where we have chief programmers that will choose from the staff who will work on their projects. I figure this will at least give me the opportunity to weed out the dead wood. ...Did those estimates come from the developer or from the PHB?... Typically, the programmer doing the coding will provide the estimate. In the case of new, less experienced programmers, the senior programmer on the team will estimate, and then multiply by the 'newbie factor.' ...'What ever you decide to measure is what you are going to get.' And you'll get NOTHING else. Agreed. The metrics we've had up to now have put the sloppiest, least elegant programmer in the department above all others. That's why I want to change the way we do things. ...Ken, I implore you to take some of these comments to the decision maker of this new policy and present it to them in a polite but forceful manner. I'm the decision maker of the department, but the guy pushing for the measures is the CEO. He wants to be able compare the 'productivity' of one department (say SD), to another (CS). ...Ken's neither a programmer not someone about to be affected by this type of performance assessment. He seems to know zilch. Programming for 12 years, managing for 5. My staff, who I actually care about, will be affected, and through them, so will I. I'd love to speak more to you about your apparent clairvoyance, but since I know nothing, I guess I'd better get back off to kindergarten. ...Guys, guys, Ken doesn't give a stuff what you think. Not all managers are like you. The way I typically judge performance is based on the elegance of the code, and the logical way in which the various pieces, or even a single algorithm, is put together. Unfortunately, these tend to be more subjective than objective. One of the desires for the objective measures is for when a charge of favoritism is made. Concrete measures can't be argued with. Anyway, thanks for all the feedback.
Tue 20 Jul | Will Gayther | Ken - That's cool, it's nice when someone tries improve the performance measuring process. But...'but the guy pushing for the measures is the CEO. He wants to be able compare the 'productivity' of one department (say SD), to another (CS).' Good luck with that part. Comparing different programmers is difficult, but you're at least you're comparing apples to apples. Comparing the 'productivity' of software development to customer service is like asking whether your car or your house is performing better. I liked the other things you said, it's just this particular one that's
Tue 20 Jul | Noname | The only way to compare objectively is to give multiple programmers the same task, and then you can compare them based on the time taken, bugs, LOC (fewer=better). Anything else will result in distorting behavior to optimize whatever is being measured.
Tue 20 Jul | Noname | Of course, I'm sure your CEO didn't reach his position as a result of performing well to objective metrics.
Tue 20 Jul | Dave Hallett | I disagree with the 'only objective way' proposed by NoName. Shorter code is not better if no-one but the author can make sense of it. Completing a task rapidly is only of value if the code is readable and works. If you want some code that doesn't work, I can do any job instantly. I would say, give all the programmers the same task to complete within a reasonable time limit, and score them on the number of defects in the code they write. Hopefully you have a QA dept that could do this. What else really matters?
Tue 20 Jul | Kobi | In Tom DeMarco's book "Why Does Software Cost So Much" there's an excellent essay, "Mad about measurement", exactly on this topic.
Tue 20 Jul | Dave Hallett | Rereading more carefully, I see that NoName did actually mention bugs. My apologies. I still think that's the most important measure, though.
Tue 20 Jul | Kalani | >I would say, give all the programmers the same task to >complete within a reasonable time limit, and score them >on the number of defects in the code they write. Hopefully >you have a QA dept that could do this. What else really >matters? The issue here is that you've got to create a set of tasks that test all knowledge/skills that are important to the organization's goals. If you give your programmers the task of implementing a programming language then the ones with prior experience doing this will destroy the others. But if you sell video games and you need language designers, graphics/geometry programmers, physics programmers, 'AI' programmers, and so on, then the language test will not be particularly useful. Making a test for each type of activity is a good step (or a 'better' step anyway). But comparing test scores between departments can be extremely problematic. If you have two students and one gets high marks in sciences and the other gets high marks in language arts, which is the 'better' student? It's not a meaningful question. But what is it that you really want with this testing? Is the purpose to identify your top performers and reward them, to provide them with even more incentive to do excellent work? If so, there might be other methods of doing this, appropriate to your business. For example, if small teams develop products then give each team some percentage of the profits on the product. Mix up the team compositions over the course of a few projects to make sure that hangers-on have some chance to fall off. After you've done that a while (and everybody has had a chance to get a feel for everybody else), let the programmers vote on who they'd like on their teams. This might make the importance of particular people (and particular pairings of people) very clear.
Tue 20 Jul | Noname | I should have also added Performance to the list of objective criteria. Still, no matter how much you try to obtain objective metrics there will be subjective things that cannot be quantified, such as readability. Just as with an athlete although there are objective measurements such as points scored, there are still subjective elements involved with evaluating their ability. As long as the LOC is properly defined to minimize artificial manipulation (e.g. chained method calls such as x.y().z().q() should be counted as multiple lines), less LOC will almost always be better in the subjective measures such as readability.
Tue 20 Jul | Mark S | Ken the Original Poster asked: > Are there 'industry best practices' for programmer performance? Go read the book 'Peopleware' by Lister and DeMarco. http://www.amazon.com/exec/obidos/tg/detail/-/0932633439/qid=1090337268/sr=8-1/ref=pd_ka_1/104-6268678-1326361?v=glance&s=books&n=507846
Tue 20 Jul | Dino | Ken, what you want to create is a productive, fun-to-be-in environment. Yes, people work, better and harder when they are happy and work is fun. One depressed guy can take down his whole team in no time. Don't create a bureaucracy; better off, look at agile development methodologies. The overall development process will be more efficient and you'll get what you want without alienating all your programmers. Remember, your people are the ones getting the work done and when things hit the fan, they are the ones that will get you out of trouble – one way or the other :-)
Tue 20 Jul | Ken | ...Don't create a bureaucracy; better off, look at agile development methodologies. That's one of the things I'm trying to do too: http://mkennethclark.blogspot.com My position has always been that good programmers on an energetic team will produce good software. The measurement of their success has always been subjective, based on my 'opinion' of their skills. Anyway - thanks for all the good feedback.
Tue 20 Jul | Ken | mmorpg leveling efficiency?
Tue 20 Jul | Mike | Google for "heisenberg"
Wed 21 Jul | Sam Livingston-Gray | I'm trying to implement a situation where we have chief programmers that will choose from the staff who will work on their projects. I figure this will at least give me the opportunity to weed out the dead wood. This is fine, if your objective is simply to axe programmers who don't make the grade. (Kinda reminds me of the demon Crowley in _Good Omens_, who heard that talking to plants would make them grow better, so every few weeks he'd pick up a plant, walk it around to all the other plants saying, 'this one couldn't hack it; say goodbye,' and then toss it in the dumpster.) Now, there may very well be people on your team who'll never be good developers (using Eric Sink's distinction). If they're really never going to improve, sure -- give them an invitation to the world. But for everybody else, what about something like the XP process of pair programming with frequent pair switching? Speaking as a solo developer, the one thing I miss most about working on a team is the opportunity to work (and swap ideas and skills) with other bright people who are good at things I'm not as good at. Try that for a little while (say, 3-6 months) before moving to your 'lead developers pick their staff.' Then you'll at least have people making their team selections based on actual one-on-one knowledge of how the other team members work. Add in summary reviews of coding sessions and you might not even want to move to your other plan, since with everyone working with everyone else, your 'dead wood' won't get a positive review from anybody. ...'What ever you decide to measure is what you are going to get.' And you'll get NOTHING else. Agreed. The metrics we've had up to now have put the sloppiest, least elegant programmer in the department above all others. That's why I want to change the way we do things. ...and you think using different metrics is the way to make things *better*? See: http://www.joelonsoftware.com/news/20030115.html and more importantly: http://www.joelonsoftware.com/articles/fog0000000070.html (Oh, wait, you didn't say you wanted things better, did you? You just want them to be different. Carry on, then. ;> )
Sun 25 Jul | Chris Niswander, http://bitboost.com | When trying to find things to measure, don't forget 'has a good or at least non-negative influence on the work of the other programmers.' :-) Suppose that: Developer A helps fellow developers to be more efficient/effective and to improve their own skills. Developer A happily spends a few minutes of time to save someone else many hours or days of frustration. Developer A's help to others produces significant beneficial effects on the whole group's aggregate work. Developer B helps no one, but plays loud, obnoxious music, and distracts fellow developers with porn spams. At all developer-only meetings, Developer B wipes nose-pickings onto every document within arm's reach, and continually contributes stupid, insulting suggestions, so that other people hardly have a chance to be heard. Many of Developer B's co-workers are so distracted with frustration and rage that it impairs their performance on most every metric measured. Developer B has the highest *individual* productivity in Developer B's whole group! Developer A is rather good, but did not measure up to Developer B in individual productivity, being 'worse' by 0.0001 units. I wonder which one should be promoted to a managerial position?
MORE IQ | Mon 19 Jul | Dr. Real PC
If youre sick of reading about IQ, then why did you click on this message?? You often hear the old saying that the brain is like a muscle and it improves with exercise. Well this old saying might be true, but our educational system acts like IQ is carved in stone. As someone mentioned earlier, you dont expect kids who watch TV all day to be good athletes, no matter what their DNA is like. Of course exercise cant make you taller, but it can drastically increase your strength and agility. This is obvious, but we seldom think of intelligence in this way. I know I increased my IQ by a whole lot between high school and 20 years later, just by getting interested in certain subjects and reading and thinkinb about them. Im not sure, but it could have gone from 130 to 160 or more. Another point is that I notice people where I work who think they are great geniuses, but as soon as they become stressed out and over-worked they forget things and become irrational.
Mon 19 Jul | Aaron F Stanton | I had a friend who used to comment that 'Anyone can go from genius to idiot in 1 second.' It's the other direction that's really hard.
Mon 19 Jul | muppet | you know.. posting the same topic over and over may be a sign that you're a bit obsessive and most likely psychotic.
Mon 19 Jul | DJ | 'Another point is that I notice people where I work who think they are great geniuses, but as soon as they become stressed out and over-worked they forget things and become irrational.' So what is your point? Don't you ever get stressed, tired or emotional? Or are you not human? These things naturally have a negative effect on anyone's thinking patterns.
Mon 19 Jul | MilesArcher | The first time through, I read the message as 'getting high in school' rather than 'in high school'. Must be flashbacks.
Mon 19 Jul | Name withheld out of cowardice | You know you increased your IQ but you don't know from what to what? I assume then you didn't verify this with an actual IQ test. If not then how the heck to you know? What is your basis for stating that one can increase one's IQ by working out his brain? I thought that was the point of IQ as opposed to knowledge or skill; it stays fairly constant after childhood. I have read that childhood nutrition can have an effect on IQ but never that, for example, going to school and studying real hard, does. Be honest with yourself. Aren't you just making things up? Aren't you just stating your feelings and prejudices as established facts? Aren't you really not a doctor but really wish you were? Aren't you just a little obsessed with this whole IQ thing? You should go read steve sailor. That'll get you good and pissed (angry to our UK friends. Not drunk)
Mon 19 Jul | Troll Detector | Dr. Real PC is a troll. A very subtle one.
Mon 19 Jul | MX | In my opinion, you can increase your IQ, as measured by the tests. The tests test certain operations. If you train, you can train those operations. Just my humble opinion. :)
Mon 19 Jul | Dr. Real PC | [You know you increased your IQ but you don't know from what to what? I assume then you didn't verify this with an actual IQ test.] I never had an IQ test, or else never was told what it was. I'm going by SAT and GRE scores, which you can translate into IQ. (Yes, SAT and GRE are IQ tests, just with different scoring.)
Mon 19 Jul | Dr. Real PC | [So what is your point? Don't you ever get stressed, tired or emotional? Or are you not human? These things naturally have a negative effect on anyone's thinking patterns.] This is more evidence that IQ is mostly mental, not mostly physical. The people I am referring to are very arrogant and superior-acting. But their superior intelligence is mostly the result of concentration. As soon as they are over-whelmed it goes out the window.
Mon 19 Jul | JWA | The SAT is too based on knowledge and learned skills (math, verbal) to accurately equate to IQ.
Mon 19 Jul | JWA | And man, for something you seem so fixated on, you'd think that you'd at least go and take one of the tests. Have you read The Bell Curve? Sounds like it would be very interesting to you.
Mon 19 Jul | Tom H | At my first job out of college there was a guy who was very proud of being in Mensa. He spent most of his time reading science fiction instead of doing his work. But I remember him most for getting drunk at the office Christmas party and wetting his pants.
Mon 19 Jul | Dr. Real PC | What I'm trying to show is that guys in IT who think they are better than everyone because they have learned some things and are interested (or obsessed), are not really as different as everyone thinks they are. That's my opinion anyway. I have been thinking about it because I'm sick and tired of their attitude. I don't act smart and superior, even though I could.
Mon 19 Jul | Dr. Real PC | I was not referring to anyone here, although I guess I could have been. I'm talking about the ones I know.
Mon 19 Jul | Real PC's IT department | d00d, I read your email. You're that dimwit seated over by that guy who plays his music too loud.
Mon 19 Jul | no name | 'I never had an IQ test, or else never was told what it was. I'm going by SAT and GRE scores, which you can translate into IQ. (Yes, SAT and GRE are IQ tests, just with different scoring.)' Haven't most standardized tests, like the SAT, ACT, GRE, etc. been largely discredited as accurate measures of intelligence? Isn't that why they're no longer accepted for admission to Mensa (not to mention being completely ignored by people that study this sort of thing)? You really ought to get a *real* IQ test before you start making recurring threads about your own exceptional IQ.
Mon 19 Jul | badabing | Doc, I'm getting a sense across your posts that you don't have much education, and you're feeling really inadequate about that, and that you're angry with the people at work because they don't respect you as much as you presume they ought to, and you blame that on your educational circumstance, so you crave external validation to dismiss their opinion of you. How close am I?
Mon 19 Jul | Supergenius | I increased my IQ from 74 to 208 by taking vitamins, eating right and getting enough exercise. You can too. No joke! It was actually tested and then verified by three independent auditors!
Mon 19 Jul | www.marktaw.com | The actual defintion for IQ is: a measure of a person's intelligence as indicated by an intelligence test; the ratio of a person's mental age to their chronological age (multiplied by 100) 115 starts the 'No restrictions on learning' category. 160 actually starts the 'exceptionally gifted' category. I'm guessing the odds of you moving from 130 to 160 are extremely slim. In any case, you definately have issues involving this number. It's not like this is the difference between happiness and misery in life. IMHO all measuring - horsepower in a car, IQ, RAM, etc. is a phallic thing. Perhaps you're compensating for something by claiming a high IQ? Sources: http://www.geocities.com/rnseitz/Definition_of_IQ.html http://www.hoagiesgifted.org/we_have_learned.htm
Mon 19 Jul | Dave Thomas | Mark is incorrect. It was once a ratio, about 75 years ago, but it is now an indication of standard deviations from the normal. 15 points on most tests is 1SD, on the more reputable Stanford-Binet, it is 17 pts.
Mon 19 Jul | Tony Maxwell | Mark, that first link ha some racist shit about blacks being less smart than whites. I'm sure you didn't catch that stuff yourself before posting it but I just want to confirm that you don't believe in that racist stuff.  Thanks.
Mon 19 Jul | www.marktaw.com | Oh. I just skipped ahead to the charts. My bad.
Mon 19 Jul | Kyralessa | I used to think being smart was a big deal. Then one day I was smart enough to do some math. Say I'm in the 99th percentile of smartness by some imaginary standardized measurement. That means I'm smarter than 99% of the population. The population of the U.S. is about 300 million people, which means I'm smarter than 297 million people there, and the population of the world is 6 billion people, which means I'm smarter than 5.94 billion of them. But it also means that there are 3 million people in the U.S., and 60 million people in the world, roughly as smart as me. Heck, there'd be ten million of them in India alone, which explains why our jobs are going there. :( Which means that while being smart is better than not being smart, joining Mensa ain't really all that special; 60 million people in the world would qualify. (Actually 120 million, since they take the top 2%, not just the top 1%.) It also means that being smart doesn't guarantee success in itself, because even if companies did hire the smartest people first, there are enough of them around for there to be competition for the best jobs. In a way it's a bit depressing that it's not really that easy, but if this is how the world is, better to know it than not to.
Mon 19 Jul | www.marktaw.com | I never did know what 1 SD was in IQ tests, and it seems that as long as we're measuring things you really ought to know. Does anyone have a RELIABLE (apparently Google didn't help me this time) source of information about this kind of thing?
Mon 19 Jul | Cognitive Dissonance | 'I know I increased my IQ by a whole lot between high school and 20 years later, just by getting interested in certain subjects and reading and thinkinb about them. I'm not sure, but it could have gone from 130 to 160 or more.' I know I got a lot taller between high school and twenty years later, mostly by thinking tall thoughts.
Mon 19 Jul | www.marktaw.com | Nothing in this world can take the place of persistence. Talent will not; nothing is more common than unsuccessful people with talent. Genius will not; unrewarded genius is almost a proverb. Education will not; the world is full of educated derelicts. Persistence and determination alone are omnipotent. The slogan 'press on' has solved and always will solve the problems of the human race. - Calvin Coolidge (1872 - 1933)
Mon 19 Jul | muppet | Well in that case, let's just compare dicks.
Mon 19 Jul | Rather B. Dumber | I know I would gladly give IQ points to have better social skills.....
Mon 19 Jul | Dave Thomas | Standard deviation is a statistical thing. The general definition is as follows: (SD) A measure of the range of values in a set of numbers. Standard deviation is a statistic used as a measure of the dispersion or variation in a distribution, equal to the square root of the arithmetic mean of the squares of the deviations from the arithmetic mean. The standard deviation of a random variable or list of numbers (the lowercase greek sigma) is the square of the variance. The standard deviation of the list x1, x2, x3...xn is given by the formula: sigma = sqrt(((x1-(avg(x)))^2 + (x1-(avg(x)))^2 + ... + (xn(avg(x)))^2)/n) The formula is used when all of the values in the population are known. If the values x1...xn are a random sample chosen from the population, then the sample Standard Deviation is calculated with same formula, except that (n-1) is used as the denominator. -- On a normalized bell curve with the total area under the curve adding up to 1, 1sd, 2sd, 3sd for normal etc all fall at certain places on the x axis.
Mon 19 Jul | Dave Thomas | 'there are 3 million people in the U.S., and 60 million people in the world, roughly as smart as me. Heck, there'd be ten million of them in India alone, which explains why our jobs are going there.' Actually, the average IQ in India is one standard deviation below that of the US. This shifts the curve somewhat and as a result there is about the same number of people of your intelligence in India as in the US.
Mon 19 Jul | Dave Thomas | Here is some info about it including a graph of black vs white iq distribution in the US: http://www.lagriffedulion.f2s.com/retard.htm Note that almost no blacks are gifted (59 times less likely), but 6 times as many blacks are retarded as whites. Some ascribe a genetic component to these measurements. That has never been proven. Diet, prenatal care and a stimulating environment have much to do with IQ and blacks are shortchanged in these areas.
Mon 19 Jul | Tony Maxwell | What's interesting about that page is its analysis and conclusion that shows that counties with a high rate of mentally retardation are much more likely to be republican.
Mon 19 Jul | . | Great ad hominem Tony! Yee haa! Stick it to 'em! You rock!
Tue 20 Jul | JWA | 'What's interesting about that page is its analysis and conclusion that shows that counties with a high rate of mentally retardation are much more likely to be republican.' I'd have to assume that's because people who actually know less advantaged people realize that you can only help them help themselves.
Tue 20 Jul | Name withheld out of cowardice | Tony: Why is saying that blacks average IQ is consistently a standard D below white 'Racist Shit'? Have you really thought about this or is it just a knee-jerk response, i.e. you know it can't be true and therefore writing it must be motivated by racism? Attitudes like this really shut down debate and discussion and, IMHO, prevent a lot of important issues from be addressed in a manner likely to solve them.
Tue 20 Jul | Tony Maxwell | Dear withheld/aka David Duke wannabe, These claims boil down to saying that blacks have a lower IQ than whites. That saying that blacks are not as smart as whites. White people have been saying this for centuries but it isn' t true - blacks are just as smart as whites. People who say otherwise are racists. The only way they can get these IQ tests to show blacks are dumb is by 'adjusting' the numbers and playing games like that. Also, it is widely know that these tests, also the SATs and so forth, are highly based on cultural context. The reason that the tests are made this way to make blacks look stupid is because that is what the white man wants the black man to look like. It is racism at its most despicable - manipulating the results so blacks look bad.
Tue 20 Jul | Tony Maxwell | And if you want proof what I say you look no  farther than the fact that a high IQ does not equate with success in life. If a smart person can not be a success in life, given that he has a fair shake, I don't see how he could be so smart.
Tue 20 Jul | Aaron F Stanton | 'If a smart person can not be a success in life, given that he has a fair shake, I don't see how he could be so smart.' He could be lazy. A lack of will, not one of ability.
Tue 20 Jul | Will | Or doesn't have much concern for *your* measure of success.  The word success has no meaning except as indicating whether a particular aim has been reached.  Are you dim enough to think we all have the same aims and concerns?
Tue 20 Jul | T. Norman | Those studies that show blacks as being worse than whites in IQ/life expectancy/obesity/whatever make a serious mistake whenever they try to use statistics gathered about blacks in the United States and extrapolate that to blacks in general. As soon as you start looking outside the United States and examine predominantly black countries (except for the severely impoverished ones like many in Africa), those statistics fall flat on their face. For example, Barbados has a higher literacy rate than the United States, and males in Jamaica have a life expectancy higher than white males in the US, which is in turn 8 years more than black US males (full stats can be found at http://www.natinmaster.com and http://www.cdc.gov/nchs/express.htm ). Living in America sucks the life and health out of a black man.
Wed 21 Jul | Dr. Real PC | As I said, it's mostly confidence and motivation, not genetics. There are genetic factors but the mind can overcome them, to a large extent. Living in the US could be very de-moralizing for the average black person. Some social programs have made it worse, I think. Women also suffer from lack of confidence, causing them to be less successful, in general. There is no IQ difference between males and females, as far as I know, that would account for this.
Sun 25 Jul | anonymous | I have been a member of Mensa, but I don't talk about it much. Why don't I? Because it seems to me that many discussions of IQ develop a very high signal-to-noise ratio. I think the high signal-to-noise ratio is partly because many people feel that scores on some test are more important than they might really be. They invest these test scores with the sum total of the test-taker's intellectual 'worth'; with all their emotional concerns about whether they are (or might not be) mentally 'superior' to other people, even that their own group must be 'smarter', etc. If you feel this way, maybe you should forget about what your IQ is! Even about other people's! Maybe people should think more about other issues, like how you use your own time and effort. If you take the trouble to make good use of your mind, eventually you will find you have something that no IQ test can take away from you (unless you let the test intimidate you into giving up.) And if you use your mind poorly, your IQ will not make so much practical difference as you might hope. 'Dr. Real PC' might be using IQ numbers in a bogus way, but if he exercises his brain to develop the knowledge and skills that he desires, then he is doing something right. It's interesting how people can do something sensible, and then undermine their statements about their sensible act by using inflammatory language (mentioning IQ.) Personally, if I want to develop some skill or area of knowledge and become good at applying it...become good at mathematics, or become good at explaining things, or become a good businessman, or whatever, I would rather study the subject and practice the skills and see if I can become any good at it, not sit around worrying about my IQ score! IQ won't tell you whether you have the specific talents, desire, and drive to become what you want to be, whether that's a programmer, or a linguist, or a comedian, or an obnoxious arguer, etc. You need to find out whether you have the specific talents and desires necessary. Richard Feynman liked to tell the story about his having taken an IQ test and finding out he was in the low 120's, officially not a genius. But he had already found that in practice, he happened to be very good at math and physics, so he became a genius physicist anyway. He used his strengths and did not rely so much on his weak areas, like not being good at taking IQ tests. :-) Maybe his average intelligence really was 'bright normal'; I don't know. But the important thing is that he had enough talent and interest *in physics* to be a genius, so he did physics. Since I have such a high IQ that I 'must' be such a genius, you should take my advice not to worry much about your IQ. :-) And although it might be very difficult, try not to worry too much about other people's either. :-) If you are worrying about black people's IQs, or Democrats'/Republicans' IQs, it's more important that each and every person have the proper opportunities and encouragement for each person to figure out what the *individual* is good at and wants to do, and to do that, than what the median (or individual) score is on some IQ test.
LookOut | Sat 24 Jul | Just testing
LookOut might search your mail fast, but my Outlook 2000 now takes 20 times longer to start.
Sat 24 Jul | no name | next time WatchOut before LookOut
Sat 24 Jul | Just testing | yeah, get it out
Sat 24 Jul | Dennis Forbes | I'd say my startup speed is around the same, however I've had several Outlook crashes since (prior to this installation Outlook virtually never crashed).
Sat 24 Jul | Liam | That might be why Microsoft bough it --  to ensure stabilty of Outlook ....
Sat 24 Jul | no name | liam, what a naive guy
Link to a DUN connection in a web page? | Sat 24 Jul |
Does anyone know how to create a link in an html document to a DUN connection on the same machine? In case anyone thinks Im up to anything dodgy, what I want to do is create an html doc on my PC with a table of possible connections with notes on what times they are cheapest for (like http://www.holpert.de/christian/internet-by-call/Internet-by-Call.shtml but with links to the actual connections), that way I can just look at my watch and click whichever link is appropriate to start a connection.
Sat 24 Jul | Ward | The first thing I tried was: Create a shortcut to your DUN connection and save it somewhere. Use a file: link link text Seems to work.
Sat 24 Jul | no name | Actually I did that and it didn't work. After you suggested it did I went back and fiddled. I still can't get it to work in Mozilla but it is fine in IE. Thanks. That's step 1 out of the way.
Sat 24 Jul | Ward | You're right... I use Mozilla, but this isn't my usual computer so I didn't change the default browser.  When I saved my test html file and then opened it, it came up in IE, where the link worked.  But in Mozilla it wants me to save the lnk file, which isn't so useful.
Frameworks - Still relevant? | Fri 23 Jul | RedHat
Browsing through various C++ source code compilations one can identify the various frameworks that are built to support the application. There are base classes and hierarchies and widgets and what nots and whos. Now move to a VB 6.0 application. There arent many frameworks built with VB 6.0. Maybe a data access library here and there but no real frameworks that build up the application. (I know VB 6.0 is not fullly OO.) Now move to .NET. Obviously there isnt much .NET source code out there to view but it would seem to me that building a frameworks for .NET would be A Waste of Time (TM). So Im looking for examples of frameworks that people have built using VB 6.0, Delphi, and .NET. What prompted you to make these frameworks and what do the frameworks support or do for you?
Fri 23 Jul | Ewan's Dad | Try this site for a .Net framework: http://www.lhotka.net/ArticleIndex.aspx?area=CSLA%20.NET
Fri 23 Jul | Almost Anonymous | Java has alot of frameworks... .NET is slow to game, but it'll get there, eventually. (Note: I don't necessarily think this is good thing)
Fri 23 Jul | PopCulture | no need for frameworks in .NET I use application blocks. the first google I could find points me to here: http://cyberforge.com/weblog/aniltj/articles/217.aspx one for data access, one for exception handling, one for UI, one for smart updating, many many more. integrate as many as you need and just focus on your business logic. These are provided/written by microsoft, represent industry standard best practices, and have been thouroughly tested. cheers...
Fri 23 Jul | Justin Johnson | This is a guess, but the explosion of frameworks for Java didn't start until about five years after Java's introduction.  Frameworks are a sign of a mature technology--people have been relying on it for long enough to start building extra layers for efficiency.  .NET will see the same thing in about 3-4 years, when people use it and understand it enough to start pushing it down a level or two.
Fri 23 Jul | Kalani | I agree with Justin.  You'll need to develop frameworks where the set of assumptions you can make about *your* typical problem domain is larger than the set of assumptions you can make about all problem domains in general.
Fri 23 Jul | LannyD | There is an argument in the java community that the frameworks grew out of boredom.
Fri 23 Jul | Mitch & Murray (from downtown) | If you are as old, crusty, and have been around the block as many times as I have, then certainly you know there is always a new framework looking for a new sucker. C'mon you kids, move along, nothing to see here ...
Sat 24 Jul | John Rusk | To a large extent, 'the' .NET framework is the only one many people will need. (i.e. the classes written by MS that ship with .NET). When I worked in Delphi we never really needed any commercial framework, other than the classes that shipped with the product. Yes, we'd use a few 3-rd party controls here and there, but nothing that you'd call a 'framework'. MS's .NET framework is more powerful and extensive than the Delphi one, so I don't really see much call for significant 3rd party frameworks. Instead, I think 3rd party offerings will be a bit more targeted: specialised user interface controls perhaps, classes to solve common problems (e.g. we're developing a nice set of classes for validation on my current project, but I'm not sure its worthy of the title 'framework', at least not in the sense of an all-encompasing structure in which a system is developed).
Sat 24 Jul | Max Belugin (http://belugin.newmail.ru) | there are lots ports of Java frameworks and tools to С#: NUnit, NAnt, Hybernate, and so on (look at http://sf.net by language C#)
no respect... | Fri 23 Jul | joebloe
I was browsing through a book, and hes talking about testers vs. developers: http://books.iuniverse.com/viewbooks.asp?isbn=0595161286&page=64 I agree with him -- people involved in testing are very touchy about being told their not real developers (especialy at microsoft where they seem to insist the hardest that testers are developers). Is this in fact true, are developers and testers equaly good at development. In fact I dont believe this, if your good at development then a company will hire you as a developer. Why would they hire you to test somebody elses code. Just like if your a good chef, they arent going to hire you as a waiter. But this is not to say that testers arent important. Their vitally important, but I dont understand why Microsoft and others pretend that testers are as good at software development.
Fri 23 Jul | Oh this is rich | A Good Tester is a Developer. A Good Developer is a Tester. You can't be one without the other and still be good. To categorize these as two separate things is just plain stupid. I always image people writing code and not testing it. I just can't believe that it's true. I test every line of code I write. I test the applications I write. I test the UI's I write. I test everything. There are no developers out there worth their weight that blindly write code.
Fri 23 Jul | muppet | I always figured that when people say developers don't test code, they mean they don't unit test, or don't test properly. Are you saying that there are developers out there who write, compile, and submit code without once ever executing it? My code has nearly as many debug lines as executable ones, sometimes.
Fri 23 Jul | Testy Tester | joebloe, they're not real... not 'their not real' if you're good at... not 'if your good at' if you're a good chef... not 'if your a good chef'
Fri 23 Jul | Lou | Chef/Waiter is a bad parallel; perhaps a better one is Writer/Editor.  Any writer should edit their own work, but an editor can look at the bigger picture and with a different frame of refence to ensure that the writer is saying what they intended, clearly and cleanly.
Fri 23 Jul | Kenny | Maybe more like Chef/Food critic. One is not greater or proficient than the other. The two jobs require different sets of skills, although some do cross over.
Fri 23 Jul | Christopher Wells | > Are you saying that there are developers out there who write, compile, and submit code without once ever executing it? It's called 'cleanroom development': write and submit code without executing (or even compiling) it.
Fri 23 Jul | Dennis Forbes | 'I test every line of code I write. I test the applications I write. I test the UI's I write. I test everything. There are no developers out there worth their weight that blindly write code.' There is a breed of programmer, big about a decade ago, that roughly throws a bunch of code into a compiler, hits build, and then they go through all of the errors and warnings, fixing it up until the compiler is happy with it. When the code compiles they call it a success - surely their code is good. I suspect the same issue is happening with the testing realm nowadays - build a couple of test cases and then throw together a class. If it passed the tests (and developers usually delude themselves into thinking their tests have total coverage, which is hilariously laughable in all but the most trivial xunit sample cases), well then you're a studious, impressive programmer that clearly builds perfect code. It's a crutch that allows for sloppy programming, because once all the little test nodes are green you're sure you made great code. I am not saying developer testing is either bad or good, but this nonsensical, furrowed brow righteousness that extensive self-testing makes you a great programmer is laughable.
Fri 23 Jul | hoser | 'Rich' is absolutely correct. Our testers write automation tests using RMI methods on the client and server. It is stinking awesome. It is the only way to make things work, IMO. Unfortunately, this is not the norm. Many companies view testing as 'running through the UI'. Both the testers that get hired as such and the managers that do this type of hiring ought to be spanked. I would probably put this 'mentaility' as a litmus test for F'd companies. Just one developer's opinion.
Fri 23 Jul | muppet | When I'm developing code, I generally add in lines to give me a very detailed debug log for auditing every last step of the process. If you take a look at my current project at http://test.madebymonkeys.net , you'll see that at the bottom of the page is a pretty extensive play-by-play of everything the code did on its way to generating the page. The log gets even longer if you submit a registration form (even if you submit it empty.) This is the approach I take to most of my projects, now. As I go, I'll be adding even more logging to this project. Of course, once I hit v1.0 and put the code into 'production', I'll flip the debug switch to 'off' and the little red box goes away. But while working on the codebase, the detailed log of execution is invaluable.
Fri 23 Jul | yet another anon | Testy Tester, You missed: They're vitally important... not 'Their vitally important' Maybe you should seek a job as a developer since you're obviously not cut out for work as a tester. :-)
Fri 23 Jul | Testy Tester | Arrrggghhhhh!!!! And, I also missed the lack of a question mark at the end of a sentence that was actually a question and not a statement. 'Is this in fact true, are developers and testers equaly good at development.' Oh well, VBA here I come.
Fri 23 Jul | Code Monkey | A good developer is a good tester.....true! A good tester is a good developer.....hmmm....kinda true but not in the sense you mean.. A good tester will know how to develop good test scripts and test cases using the tools at hand (JUnit, Winrunner...) but that does not mean he is as good as developing the main body of code and I will even go out on a limb and say that it is a problem. If I develop something in C++ I do not want the damn tester to read my code and try and find bugs....I have peer code reviews for that. I want the tester to develop good test cases and automated scripts which will exercise the functionality and confirm it is according to spec. I know it is seems nice to have a tester who can tell you the bug and also tell you it is because you did a if ( i = 3 ) instead of if ( i == 3 ) but believe me in the long run these kind of testers are big headaches to a development team. It takes a special kind of person to write code and it takes a special kind of person to test it. You can call both of them 'developers' but rarely there is a person who is good at both
Fri 23 Jul | Dave Benson | "if ( i == 3 )" is an immediate no-hire.
Fri 23 Jul | hoser | The dumbest fucking thing I've ever heard.
Fri 23 Jul | muppet | +++'if ( i == 3 )' is an immediate no-hire. +++ Why, exactly, is that? Who says he's talking about C? Granted, I hardly have occasion to compare variables to literal integers (and have a hard time coming up with a scenario where you'd want to), but why an immediate no hire?
Fri 23 Jul | hoser | And I do mean it. The most despicable least common denominator pile of stinking shit ever to grace the halls of software. I mean PHB braindead stupidity. Lameass ought to be horse whipped and gutted mind-numbing stupid. Damn stupid.
Fri 23 Jul | muppet | hoser - care to clarify what you're remarking on? :)
Fri 23 Jul | hoser | What he means (and I guess he wouldn't hire Dennis Ritchie) is that some dumbass 'might' write if( i = 3 ) instead of if( i == 3 ). Never mind that the compiler checks the syntax for you and gives a warning. Nope, you're going to get a lamer set of 'coding rules' at this man's company. You're going to be a 'resource' here, not an engineer. Lemme tell ya something. I had some great coding questions during the last 4 weeks on the interview trail. Here was a list of the best questions asked: . Write a sorted tree struct with add and ascending print functions. . The pirates problem http://www.physicsforums.com/showthread.php?p=197403#post197403 . Write a card deck class and optimal shuffle (minimum calls to rand()) method. No one gave a flying F whether you used if( i == 3 ) or if( 3 == i ) MF'ing stupid ass PHB Lamer.
Fri 23 Jul | Greg Hurlman | Ok hoser- if (i != 3) { ... } happy?
Fri 23 Jul | hoser | Oh, yes another really good interview question: Design a DMA engine for handing MPEG motion vectors. And others: Design a restaraunt reservation system. What are the functons of a boot loader? A players hire A's. B hires C's. C's have their heads up their collective asses.
Fri 23 Jul | hoser | yes, much happier.
Fri 23 Jul | Dave Benson | Sorry hoser, no hire. We also don't hire little potty mouths. THe clients don't appreciate it. 'if ( i == 3 )' Has several problems with it. First, anyone with a modicum of experience would write: if (3==i) ...instead. The first version shows one has little practical development experience. Second, we don't like to see magic numbers. No. Hire.
Fri 23 Jul | Dave Benson | 'Never mind that the compiler checks the syntax for you and gives a warning.' Sloppy thinking. Poor development skills. No... Hire.
Fri 23 Jul | hoser | Good engineers think, they do not obey. Go hire your pathetic 'team'.
Fri 23 Jul | Dave Benson | Already did. Great products. Profitable company. Pay in the 90th percentile. Happening city. It's groovy all around.
Fri 23 Jul | hoser | Oh, yeah, I'm a deluxe contractor with money coming out the wazoo and the Queen of Sheba to boot. You wouldn't Hire K&R.
Fri 23 Jul | Dave Benson | I've spoken to Dennis and he uses the 'if (NAME == x)' idiom as well. Any reputable developer with a modicum of experience does as well. Glad you are doing with with, Sheba is it now? Sounds like a fun place - we have dress up days a couple times a year as well. There is Halloween of course but in June we have a masked ball. Everyone has a great time.
Fri 23 Jul | Jon Lindbo | I think it depends on the type of testing being done.  I am doing an internship with a QA group at a large company and have spent a fair amount of my time developing test case code to simulate the customer interaction the internal APIs of a product.  All of our tests are implemented in an automated test package that is used for both new feature and regression testing.  I read feature specs and write test specs which are approved along with the feature spec.  I would consider this development work.
Fri 23 Jul | Moron spotter | Dave, you're not as good as you believe. There are legitimate arguments against the structure that places the constant value first in equivalence tests. For a start, it breaks the logical appearance of the code. It does this in order to overcome a weakness of the language. Whether this is valid is a judgement call, not a hard and fast rule. I see also that you use caps for your constant names. Dave, that's an old fashioned concept. Please explain why constants need to be named upper case. Your claims about income don't mean much. Enron made heaps too.
Fri 23 Jul | ronk! | Gotta say, I've coded in C and C++ day in and day out for 5+ years, and the assignment vs. comparison thing just isn't a problem. It's just not. Maybe it's a problem at the places you've work, but not where I've worked. The 'no magic numbers' thing I agree with, even for numbers that you know will never ever change. The biggest reason is it makes it hard to grep the code for those for the value, making maintainance much harder and error prone. And also, sometimes those numbers you thought would never ever change, do change and its damn hard to search the 100k lines of source code for '3' without getting a zillion wrong hits. But even then I wouldn't say 'NO HIRE' like some geeked out Soup Nazi. I would be suspicious of the candidate's other coding practices, but it wouldn't put me off. If any hire you make can consistently writes working robust code, then you are half way to a great engineer.
Fri 23 Jul | no name | You're all morons and you're all fired!
Fri 23 Jul | Code Monkey | >'if ( i == 3 )' >Has several problems with it. >First, anyone with a modicum of experience would write: >if (3==i) Bull that is just a matter of choice. The problem is that you are syntax zealot. I am sure you will not hire someone because they do not put braces as per your style >.instead. The first version shows one has little practical development experience. Nope it shows how little code you have practically seen. >Second, we don't like to see magic numbers. Really...once again without knowing the context to say this is a mark of a fanatic. In some cases it is perfectly OK to use magic numbers rather than having to hunt one hundred files to find the #define or const. The trick is when you are using the same magic number multiple times in the same context it is better pulled out and defined. I would take if ( !i ) anyday over over protective diaherria crap like #define COUNT_OF_ZERO 0 if ( i == COUNT_OF_ZERO ) But then Engineers understand that Also there are cases like if ( sizeof(int) == 4 ) where it is perfectly ok to use 'magic numbers' precisely because it is a magic number! (infact one should always use 0 and 1 as magic numbers) No. Hire.
Fri 23 Jul | sgf | 'First, anyone with a modicum of experience would write: if (3==i)' Not quite. I've 20 years of experience and never saw that technique until 2-3 years ago. It's *not* a universal thing. But then, I use lint, so I don't waste time worrying about crap like that. (And writing code that reads counterintuitively [is that a word?]). Basing hire vs. no-hire on *any* one technique or issue is ludicrous. None of us knows everything.
Sat 24 Jul | Tayssir John Gabbour | Ideally one could have a situation like American football, one person plays defense while the other tries to score a goal. The defender probes the weaknesses of the code, and the other takes that feedback and reacts. Then the sides at some point can switch; play against others. Unfortunately, this can of course get really stupid, if you have just one unreasonable person.. but in personal projects with someone, I can approximate it. Comes down to being able to choose the person you engage. There are companies who seem to have this at a good level, such as IBM's Black Team described in Peopleware.
Sat 24 Jul | Tayssir John Gabbour | Incidentally, there can be problems... like if one person likes to get things right immediately, while the other likes to write voluminous code and make it pretty later. It's a real burnout sometimes. This is why my favorite mode is to play this game alone, attacking my previous day's ideas or whatever, with tests where I really twist the screws on corner cases. Incidentally, the if( 3 == i ) thing... for bare, unlovin' languages like C, you get idioms. You start seeing idioms clustering at the limits of a language. It's important to realize that. I neither agree nor disagree with a No Hire; I have sarcastic thoughts about both sides. But whatever, people hire who they hire, just like people marry who they marry. This myth of the General Hiring Practice needs to be put to rest.
Sat 24 Jul | Firebug | Dave Benson - get off your high horse. Plenty of excellent C/C++ coders disagree with you on this point. It's a judgment call, plain and simple. If you prefer it one way, fine. If you want that to be the coding standard for your shop, fine. But a no hire because he disagrees with you on a marginal issue? Give me a break. Now, asking him _why_ he codes it this way and then judging the quality of his answer would be fine. If he hasn't even heard of the other style, or can't give any reason why he prefers one to the other, then I can see that being a negative. But if he knows both styles and is willing to follow your standards while working on your code (even if he prefers the other style on his own) then who cares? Hard-and-fast coding rules are a bad idea. 'Magic numbers'? Try to avoid, sure - but it's also not nice to have a million #defines at the start of a file or in a header and then have to hunt around for them. If a number is used once, a comment saying what it's for should be sufficient. Agreed a #define should be used if the same constant is sprinkled through the code. Likewise, global variables are *usually* a bad idea - but if not using a global would make your code twice as complicated, it's silly not to. Likewise with gotos - if you can replace a 10-level nested if statement (nearly impossible to read) with a couple of gotos, then do it. (Of course, in C++ rather than vanilla C, you could probably use a try/throw/catch construct instead.) Frankly, Dave, when you make these posts it sounds like you have a stick up your ass. I suggest you consider how your workplace sounds to prospective employees who read this board. No programmer wants to be treated as a code monkey. And no programmer wants to work in a stiff and formal environment. You may have coders now, but if the job market ever picks up, you're going to have trouble finding them.
Sat 24 Jul | trollop | *attention developers* Testers nowadays read and crit the functional spec alongside coders and gain signoff based on test rigs developed in their own sweatshops. Testers are approvers who speak managerese and work equally well with internal, outsourced or expatriate developers. They don't care much about code syntax - it's performance that matters. My advice? learn to test & starve the buggers. Respect them? Tough ask. They do save your bacon at the price of your pride (and I can be induced to go on at length about the good old days when testers were called clients). Different skillset? Nah. Set a thief to catch one. Dissing another coder's external user experience is actually fun but coding internals are irrelevant. Testers actually don't need your respect as testing is ramping and coding is walking out the door. Time to make the move?
Sat 24 Jul | trollop | I forgot to ask - how far OT can a thread get? There's more pin-dancing angel-counting Titanic deckchair rearranging spouts above than I've seen since gosh. It's not rpm or cubic inches boys, it's how fast from A to B (and get paid).
Sat 24 Jul | brrrrrr, cold | What?? You don't care about whitespace and which side of the equality the constant goes? No soup for you.
Sat 24 Jul | matt | Dave - what makes you think anyone'd want to work for someone that anal retentive? Jeez. if (i==3) vs (3==i) has never been an issue for me. If I found it caused me problems I'd probably bother writing it the other way round, but believe it or not it doesn't. I can tell == from = and have had few if any errors from this in the last few years. If I worked for someone who demanded this I'd probably write a script to parse and convert all my code into the 'acceptable' format for them. And I'd make it fucking obvious that I was using a script to do this just to make a point of how ridiculously small-minded and irritating the demands were. Heh. If you treat people like code monkeys all you'll get are code monkeys. Smart people like to look at the big picture and can recognise that matters of style are just personal preference. If something really bugs them they write a fricking macro to reformat the code for them
Sat 24 Jul | Moron spotter | Dave's probably top code monkey at an accounting firm where accountants tell him how to do his development. The only bits he has control over are coding standards. Go Dave.
Sat 24 Jul | Dave Benson | Would *somebody* hand me the freaking net already!!
You *can* download Lookout | Fri 23 Jul | Albert D. Kallal
As usual, the reason why MS bought LookOut is so they can include it with Outlook. So, as far as theory goes, the answer is simply they wanted to provide a new feature for Outlook, and there was one available that had been battle tested. Rather simple answer here (and, even for MS, most of the time as to why they do things is rather simple..and not come conspiracy theory here). Here is the download: http://www.microsoft.com/downloads/details.aspx?familyid=09b835ee-16e5-4961-91b8-2200ba31ea37&displaylang=en Albert D. Kallal Edmonton, Alberta Canada kallal@msn.com http://www.attcanada.net/~kallal.msn
Fri 23 Jul | someone beat ya to it | http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=166612&ixReplies=7
Fri 23 Jul | Dennis Forbes | See the thread 'joel: lookout is now available to download'. In any case, would you entertain the idea that Microsoft decided to make it available for download (in a remote corner of MSDN downloads) specifically because there was a lot of outrage about it? The fact that the Lookout page - you know the place you'd expect to be the be-all-and-end-all about this product - originally stated that the product was being withdrawn to be integrated (BS, but anyways) into some future version of MSN is rather telling.
Fri 23 Jul | Albert D. Kallal | Actually, if you REALLY want my 2 cents on this one? Well, it does require the clr, and simply giving away cool free software that REQURIES the CLR does kind of toot the horn about .net, and does “encourage” people to install the .net framework…. Albert D. Kallal Edmonton, Alberta Canada kallal@msn.com http://www.attcanada.net/~kallal.msn
Fri 23 Jul | Formerly someone else | Darn it.  I just downloaded it and saw it was under a mb and thought wow, MS is getting it, then I read your post about requiring .net.
Fri 23 Jul | John K. | I saw the file from MS Download is 7k larger, than the one I downloaded a few days ago from the original download site. Did they change anything or is it just the digital signature they apparently added?
Fri 23 Jul | Catatonic | That link seems to be broken now, but you can now download it directly from http://www.lookoutsoft.com/
Sat 24 Jul | trollop | These guys have been doing this stuff since CP/M and Wordstar and by now have got the bugs out http://www.isysusa.com/products/desktop/index.html No, I don't work for them.
Thinking outside the box | Fri 23 Jul | Natty
Im a junior developer that has had several code walk-throughs with a more senior (and brilliant) staff member over the two years Ive spent at this company. Oftentimes, he comes up with an alternate algorithm that is simple, elegant, and, well, better than mine. Does anyone have suggestions on how I can train myself to think outside the box when creating an algorithm? For example, are there specific questions you ask yourself while in the process?
Fri 23 Jul | Nemesis | There are many resources (online and books) that discuss algorithms and design patterns. However, be careful to avoid the trap of 'premature optimization', however tempting it may seem.
Fri 23 Jul | Should be working | He's not 'thinking outside the box'. It's just that his box is way bigger than yours because he has more experience and skills. One thing you can do is get some mentoring time with him. Ask him questions or pick his brain over lunch, go through design sessions with him, sit down with him and do some pair programming. Whatever it takes. The idea being to learn to think more like he does and to absorb some of the wisdom he's accumulated over the years.
Fri 23 Jul | Brian | Practice, Practice, Practice! If I look at code I wrote 2 years ago (or even six months ago), I'm often appalled. On more than one occasion, I've even stood up and said, 'Who wrote method XYZ? It's complete crap.' Only to sheepishly slink away when I found out that the moron who wrote it was an unenlightend me.
Fri 23 Jul | Tom H | A lot of it is attitude. Some people look at a problem, try to think how they've solved a similar problem before, and charge forward (the old, 'we've always done it this way').
Fri 23 Jul | Greg Hurlman | I also tend to find that when working on (personal) project n, project n-2 and earlier suddenly appear to have egregious architecture problems.  I don't have a problem with that though... it just means that I'm still picking things up.  When my projects start to plateau in their level of quality, then I'll start to worry.
Fri 23 Jul | muppet | Greg, I do the same thing except halfway through personal project n, I look back at the early portions of my code and see egregious architectural problems, so I go back and fix them. Then, the second half appears to have egregious problems relative to the now corrected first half. I continue this cycle for years, getting nothing done. :) It's only recently that I finally decided to write something first that 'just works' and then modularly replace bits of the code at a time with better, more solid code. http://test.madebymonkeys.net
Fri 23 Jul | Clay Dowling | One of the big tricks is to perform your own code reviews. Look at bits of code and try to think of ways to do it better.  You can't usually do it right away, but when a little time is past you can look at the code with fresh eyes and see better ways.
Fri 23 Jul | jz | +1 to looking at your old code and cringing. My old code suffers from wanting to look 'scientific' with lots of inappropriate abstraction and patterns going on. I guess I wanted it to look like other people's code, without grasping the reasons for their design choices (or stupidly copying their bad ideas).
Fri 23 Jul | Senior Staff Member | 'Oftentimes, he comes up with an alternate algorithm that is simple, elegant, and, well, better than mine.' He's just a better programmer than you. He acts polite about it, but at night he comes to these boards and rants about the idiots he has to work with...
Fri 23 Jul | Mike G | Phew, it's not just me then.
Fri 23 Jul | Philip Dickerson | First, I think it's very positive and encouraging that a) the senior developer can suggest alternatives with an attitude that helps (rather than the 'what were you thinking?' attitude that is all too common in these situations) and b) that you want to learn from these experiences. In addition to the previous advice (ignoring the comment about ranting about idiots), I would suggest that you ask the senior developer's advice earlier in the process (rather than when the code is all written) - such as when you are starting to write a new block of code and you have thought about how you will do it or you have written an outline of the code or the first 20% of the code (depending on your individual approach), then explain to the developer the approach you are taking and ask for suggestions for alternatives. Also, when you do a code walk-through (or earlier in the process), ask the senior developer not to completely explain or propose any new algorithms to you, but to ask you some questions and give you a few hints towards finding the new algorithms partially on your own - this will help you to learn more and help you to find new ways of thinking about these issues. Note that this may take a little more time, and not every mentor is comfortable with this less directed approach.
Fri 23 Jul | Phillip J. Eby | '''He's just a better programmer than you. He acts polite about it, but at night he comes to these boards and rants about the idiots he has to work with...''' Nonsense. An idiot wouldn't be able to recognize that his solutions was *better*. Ergo, the OP is not an idiot, he's a sharp programmer who's looking to improve his skills. Now to answer the OP's question, by proposing some *specific* strategies for algorithm development: 1) Loop invariants. This is a concept that helped me learn to write simpler algorithms. A loop invariant is a condition that should be applicable at the end of each iteration of the loop. For example, 'Each floobnitz in the output list has been thingamajigged'. You then write code to ensure that this condition is trivially met when the loop starts (e.g. by setting up a zero-length output list), and then write the loop to maintain the condition. Now, that may sound kind of obvious, but I know that I personally kind of floundered around figuring out how to write algorithms for things before I learned that concept about 15 years ago. And, it *is* obvious, but only for simple algorithms. In complicated algorithms, you may have half a dozen loop invariants in one loop, and that's where thinking about them explicitly will help you. 2) Test-driven Development. Learn it, use it. Specifically, TDD lets you design an algorithm incrementally, starting with trivial special cases like an empty list, then generalizing to other cases. I've found that when I do TDD, I often end up with even cleaner algorithms than I would have guessed existed. Get Kent Beck's book, 'Test-Driven Development by Example'. 3) Unrolling. If you have a loop invariant like 'foo==i*bar' where 'i' is a loop counter, you can simplify this by adding 'bar' to 'foo' on each iteration, after setting an initial value for 'foo' at the beginning of the loop. Even if you have something like 'foo==i*bar-12', you can handle that by taking the constant part and applying it to the initial pre-loop value (e.g. -12). This is basically like differentiation in calculus. Anyway, it usually speeds up the execution as well as simplifying the algorithm.
Fri 23 Jul | Name withheld out of cowardice | Natty: Depending on what kind of projects you are working on I would suggest that you not worry about how elegant your individual algorithms are. You should be concerned with an over-all more elegant design. Only after you have things working and you can profile your application should you worry about how elegant individual blocks of code are. It is possibl that the changes you make are a waste of time - with respect to the quality of the final product, not your education, obviously.
Fri 23 Jul | Jeff | Natty, If possible take the senior guy out to lunch or something. Ask him where he thinks you might want to look or what you might want to do to build up your skills in the areas you are concerned about. Ask him about his career and how he got to where he is now, that may help the two of you talk about what things brought him to a higher mastery. If he has two years of experiance at looking at your code he might have some ideas on what you can do.
Fri 23 Jul | AllanL5 | In general, it is much easier to tweak an existing solution than to create the solution out of whole cloth in the first place. Thus, your 'smart developer' is finding the 'low-hanging fruit' that can be improved by small local tweaks. His experience of algorithm development helps, of course. I second the suggestion about being careful of pre-mature optimization. Often a relatively simple, brute-force approach toward solving a problem is much more easily maintained than an intricately crafted approach. And, what you are going through is HOW you gain the experience needed, so next time you'll apply the clever approach the first time. I also recommend the works of P.J.Plauger. He has a collection of articles from Software Development that go in to how to develop clever algorithms at a very detailed level.
Fri 23 Jul | hoser | 'He's just a better programmer than you. He acts polite about it, but at night he comes to these boards and rants about the idiots he has to work with...' Awesome!
Fri 23 Jul | CWallach | Don't bother trying to think outside the box, just get a bigger box.  English comp. teachers stress rewriting as a road to improvement.  So, why be satified with the first barely-working version of some piece of code?  Practice rewriting a function.  Consider it as a puzzle...  try to write the fastest possible version, the smallest, the minimal data, using the fewest "if" statements, etc.  Challenge yourself.
Sat 24 Jul | trollop | Knuth: The Art of Computer Programming, Volume 1: Fundamental Algorithms Addison Wesley 1972 Kernighan & Plauger:Software Tools - Addison Wesley 1976 Aho, HopCroft & Ullman: The Design and Analysis of Computer Algorithms - Addison Wesley 1974 (Funny, I'd not noticed the publishing congruence before) These books tackle algorithms from different directions - if pressed I'd recommend Knuth to come to grips with stacks, lists, queues and impressively efficient data structures; K+J to appreciate how to lay a code foundation and AHC to recognize complexity. Let's face it, these days a lot of this stuff is wrapped up behind APIs and none of the above address network issues but we are simply trying to develop your commonsense. Isaac Newton said that if he had seen further, it was because he had stood on the shoulders of those who had preceded him. I think that in order to do so he still had to climb up there for himself like an Aussie Rules football player to take the mark. So as always, watch and learn, practice, practice, practice, and if you are given the opportunity, teach the young.
Sat 24 Jul | Bored Bystander | >> He's not 'thinking outside the box'. It's just that his box is way bigger than yours because he has more experience and skills. Excellent points made, but when I was much younger and saw highly experienced people leap tall buildings at a single bound (intellectually speaking) I was never able to train myself to see what they saw in a design. All I could do each time something like this occurred was to understand the shortcut or optimization they suggested. My point being that what are commonly called 'design patterns' are generally learned by dint of working on many different projects across a broad array of technologies. And that 'just' takes --- years and years of experience. There is no way to force this kind of insight.
Sat 24 Jul | James Thomas | Isaac Newton said: "If I have seen further it is by standing on the shoulders of giants" in a letter he wrote to a "rival" scientist Robert Hooke. BTW, Hooke was a short man, so even back then hackers wanted to outdo each other, sarcastically speaking.
Gmail | Fri 23 Jul | X-ray Tango
Ive had a Gmail account since June 27, and since then I have not had the ability to invite others. 1. Has anyone else here had a Gmail account no later than the above date? 2. Have you been able to send invites?
Fri 23 Jul | muppet | I've had mine just slightly longer than you, and I was only ever given one invite to give out.  Maybe they've reached a threshhold for now?
Fri 23 Jul | Rammalamma Dingdong | If everybody has one, then you are no longer 3L33T
Fri 23 Jul | anon | I have had my Gmail account since June 10th. And I have sent out 9 invites so far. But I haven't received any new invites to give out recently. It looks like Google has all the beta testers it needs and have stopped giving invites for time being.
Fri 23 Jul | Simon Lucy | After everybody has one, I shall not.  This shall make me truly pleased.
Fri 23 Jul | kc | I got mine in mid June and I got 6 invites almost immediately. I haven't gotten any more since then.
Fri 23 Jul | Kyralessa | I've only gotten one, which I gave to my wife. Maybe my wife doesn't use her account enough, so I'm being punished by not getting any more.
Fri 23 Jul | www.ChristopherHawkins.com | I have 13 invitations just sitting around.  I haven't felt like giving them to anyone.
Sat 24 Jul | Beggars Belief | Give me one, Christopher, on the basis that I have never offended you in any way.
What kind of (paper)notepad do you use? | Fri 23 Jul | Phil Crompton
For meeting, scribbling notes, etc, etc. with or without line?
Fri 23 Jul | James U-S | With line. But even better is a Tablet PC with MS OneNote :) I was able to borrow one a while back and it was fantastic in that kind of environment. It's weakness, however, was that it was too slow with other applications so I haven't bought one yet.
Fri 23 Jul | www.marktaw.com | With.
Fri 23 Jul | Harvey Pengwyn | Where I work hardback notebooks (lined) are popular. I used to have a Palm Pilot that I used as the backing for a small stack of post-it notes. It was the best ever use I found for it.
Fri 23 Jul | Len Holgate | Without. So I can use the paper in landscape or portrait without worrying and because I just tend to use wads of copier paper for notes and scribbles. I don't tend to keep these notes and diagrams, they last as long as they need to and then get binned.
Fri 23 Jul | kc | I use a legal pad. And I seem to be the only one in meetings who actually takes any notes...
Fri 23 Jul | Steve Barbour | Whatever kind I can snag. If I'm awake enough to think ahead, I bring along a legal pad of some sort (whatever was in the supply closet). If I'm slacking, then I use the little moleskine notebook I always carry around with me. BTW, I've found that little notebook, with its built in pocket much more useful than any PDA I've ever owned. Plus it's nice to have a source of paper that you can rip off and give to someone else if needed. http://www.moleskine.it/eng/default.htm
Fri 23 Jul | Brian | I have one of each.  When I'm doing design work (psuedo UML type stuff) I draw on the unlined with colored pencils.  When I'm doing my coding / tracking down problems, I prefer lines because the keep me organized, especially when making lists.
Fri 23 Jul | www.marktaw.com | Moleskines rock.
Fri 23 Jul | mackinac | - 8.5' x 11' lined yellow notepads - 5' x 7' lined yellow notepads - 11' x 14' white computer printer paper, I use the blank unlined side.
Fri 23 Jul | Peter | 8.5' x 11' white lined note pad for most notes. steno pad for notes that need to last more than a week.
Fri 23 Jul | Formerly someone else | Greenbar.  We have boxes and boxes since we switched to laser printers
Fri 23 Jul | Simon Lucy | I may doodle, sometimes a diagram, sometimes some gnomic set of letters I never understand afterwards and usually its on unlined paper.
Fri 23 Jul | EAW | Mead wirebound graph paper. http://tinyurl.com/4e3du (Office Max) It has the advantages of both blank and lined paper: - because the lines go both directions, you can use it either landscape or portrait. - the vertical lines allow you to line up outline items or draw boxes more easily - The page feels more open with lines in both directions. I've used them since my last year of college, after trying every type of legal pad I could find, and I'd never go back.
Fri 23 Jul | Tayssir John Gabbour | Unlined. More formal notes are in little notebooks inside a Moleskine accordion folder. Less formal ones are on found paper. I like unlined since it's nice to come to a blank page.
Fri 23 Jul | AllanL5 | I really like those green 'Engineers Pads', with graph paper on the back. When writing, you can see the lines through the page, so your stuff stays straight. Then, if you xerox it, the grid lines don't come through, so your accuracy looks magical. Also, since it is light green, it is clearly different from yellow pads or white pads. This means a page with a diagram drawn on it shows up in a document, when viewed edge-on. Also, you can use it portrait or landscape, since the lines run both ways. However, it is a little pricey ($5.00 per pad) so for 'normal' text work I try to find yellow or white college ruled pads, preferably micro-perfed at the top.
Fri 23 Jul | Ward | Second the engineering pads... The grid on the back allows you to do accurate sketches or graphs, but doesn't get in the way. The ones I've used have a few faint boxes on the top for a title, page number, date.
Fri 23 Jul | Ros | Pagine Bianche, by Fabriano. And a moleskine, of course. I love white sheets.
Fri 23 Jul | Devin | No lines preferred, largest paper size possible. I like to draw pictures: http://www.devinmoore.com/artwork/drawings/index.htm I always wanted to carve my notes onto stone tablets, then go into a meeting, carrying one on each arm, and do the ol' Moses routine.
Fri 23 Jul | cabby | MarkTAW is right on. Moleskine are super. I always keep one of the bigger size in my bag to explore longer trains of thought. The littler ones are nice too, and great for traveling light, but I sometimes get a bit agitated having to wrap and flip so much, and I find my posture gets really fetal when writing on something that small. Physical agitation isn't a good state for thinking. Now Moleskine sell 3 packs with fewer pages each and a flimsier cover. (Maybe they always have, but I've only just discovered them.) I've actually started to like the littler size of these a lot to keep in my pocket all the time. I now scribble small notes, book titles, to-do lists, and other throwaway things on these instead of notecards. With the Fisher bullet pen somebody mentioned in the gizmos thread this week, I'm hardly ever without a means to jot. As for meetings, I rarely take notes in meetings, but occasionally carry a legal pad to doodle on -- in a leather folder if it's a client meeting, to help sell the delusion that I'm more proper than I am. The electronic stuff isn't worth the bother when stumbling around town. Fear of falling in a lake, charging of batteries, all that stuff... phooey. But with a 12' PowerBook usually in the bookbag on more serious days, I suppose neo-luddite posturing must be a bit unconvincing.
Fri 23 Jul | Code Monkey | I like the bound ones with numbered pages. Learnt the hard way in a patent dispute long time back that it is important to have your ideas noted and dated in one.
Fri 23 Jul | Jon Hendry | I like smaller ones, that sit comfortably next to the keyboard. I've long wanted something but never found one to buy - a sturdy little platform which would hold a notepad over my mouse and the numeric keypad of the keyboard, but with enough room underneath that I'd be able to use the mouse comfortably. I find that I want my notepad and my mouse to be in the same spot. Putting the mouse beside the notepad puts it that much farther away from the keyboard, and it's kind of uncomfortable. If the notepad could go *over* the mousepad, it'd be ideal.
Fri 23 Jul | ian | Well I never. All my life I have never heard of Moleskine notebooks. Does anybody know where you can find them retail in the USA (Southern California)? When I Google, I only seem to turn up mail order outlets, and I like to look before I buy things.
Fri 23 Jul | www.marktaw.com | These stores in California carry products by their USA distributer: http://www.kikkerland.com/cali.htm
Sat 24 Jul | Michael Chansky | I also vote for engineering pad, mainly because being forced to use it in college has made it a habbit.  One thing that hasn't been mentioned, the lines are 0.2" apart, which is smaller than regular lines paper.  It's large enough to write on every one if you do it neatly, or you can write on every other line if you're writing fast and sloppy.  And you can easily use it as a ruler in a pinch since every fifth line is thicker.
Sat 24 Jul | Karan | Non-ruled paper to draw mind maps. i've found it to be the most effective way of recording thoughts during a meeting. Always prefer a laptop and mind-mapping tool over paper though.
joel: lookout is now available to download | Fri 23 Jul |
lookout v1.2 is now available to download from microsoft
Fri 23 Jul | Ged Byrne | Do you have a link?
Fri 23 Jul | SC | Here's the link which the OP forgot to post: http://www.microsoft.com/downloads/details.aspx?FamilyID=09b835ee-16e5-4961-91b8-2200ba31ea37&DisplayLang=en
Fri 23 Jul | OP | what is an OP?
Fri 23 Jul | WYSIWYG | Original Poster
Fri 23 Jul | Colin | Thanks. I was just starting to think that I had found a really useful tool just as it was withdrawn.
Fri 23 Jul | tapiwa | What You See Is What You Get! Have not seen that in long time. Remember when that was all the rage.
Fri 23 Jul | D. Jackson | I dig that the installer uses Nullsoft's install program.
Fri 23 Jul | christopher (baus.net) | No way.  Nullsoft's installer is Open Source.  Microsoft can't use Open Source.  Heresy.  What is this world coming to.
Sat 24 Jul | Giles Gregg | The link doesn't work... page not found...
IE Dungeon Gets Internet Connection? | Thu 22 Jul | anon
http://blogs.msdn.com/ie
Thu 22 Jul | muppet | ok.. all I want to know is how they're doing the shaded links dealie (where you don't have to click on the text to trigger the hyperlink) under "My Links".  There's no client side script in the page source.
Thu 22 Jul | mb | should be pretty easy to figure that one out... it's a layout issue, not an event issue, so why would they use script?
Thu 22 Jul | Joe | Did you look at the CSS muppet? :) #leftmenu a:active, #leftmenu a:visited, #leftmenu a:link { display : block; color : #000; text-decoration : none; margin-right : 0px; padding : 2px; } #leftmenu a:hover { background-color : #CCD5E0; }
Thu 22 Jul | AllanL5 | Ooh, CSS has a good purpose!
Thu 22 Jul | boogs | 'Ooh, CSS has a good purpose! ' :: sigh ::
Thu 22 Jul | muppet | display : block; aha! that's what I was looking for! thanks
Thu 22 Jul | AllanL5 | Ok, ok, I was too eager. Still, I thought it was a cool application of CSS. I don't tend to adopt a technology, until I can see some benefit from using it. In other words, I don't use 'bleeding' edge technologies.
Thu 22 Jul | muppet | you consider CSS a bleeding edge technology? If you don't see immediate benefit in CSS, then you most definitely have not used it to style an entire site. HUGE time savings when changing the look/feel of a site, or better, providing the user with alternate 'skins'.
Fri 23 Jul | kc | Back in the day, CSS was widely (mis-)interpretted by various browsers and caused all kinds of problems. Now that it and the browsers have had a chance to mature, CSS provides some amazing capabilities. For our web app development, we always use a 'BaseStykes.css' to provide some sort of standardization across all of our apps. Then we use an app-specific css in order to tweak the application according to the client's tastes. This makes deployment for many of our customers take minutes to hours as opposed to days or weeks.
Fri 23 Jul | Hub Dublin | This has been used for years by IE developers and it worked fine without 'display: block' at all. I only recently finally stumbled over using that additional attribute myself, allowing the effect to work properly in non-IE browsers later than Netscape 4.x finally. Perhaps the need for this extra touch of CSS kept this technique from being as widely known for browser compatability reasons? Though it seems obvious now in hindsight, it sure took me an absurd amount of time to work it out on my own.
Fri 23 Jul | muppet | OK, so IE handled CSS for years (still does) in a non-standard way which breaks compatability (if I get a different result than most other browsers, it's broken), and that's a good thing? ehh?
Sat 24 Jul | Ankur | The basic thing that IE gets wrong is the box model width, which basically means that you can't hardcode width into your stylesheet. And you can use IE-specific hacks to get around the problem until a future version of IE fixes the problem.
pet projects that fill a need | Thu 22 Jul | Dennis Atkins
Was reading the history of php, which is now beating VB for the 4th most popular language in use: http://www.kuro5hin.org/story/2004/7/14/232752/474 PHP was put together by some college student to assist maintaining his home page. C was created in order to implement a portable unix. Unix was created so some guys could play lunar lander during their free time on an abandoned minicomputer in a basement. I could go on, but I see a pattern - many of the most successful inventions were developed around practically solving a particular problem. I suggest that languages and OSs have an uphill battle when they are artificially created in a sort of fiat, as opposed to growing over time to solve real problems. The organic inventions have a better chance of being successful.
Thu 22 Jul | Almost Anonymous | Java was designed to run the firmware of washing machines so I guess it passes. I agree with this statement although, oddly enough, we complain loudest about languages and OS's that are organically evolved. For PHP, people complain about it's inconsistent function naming, strange object model (now fixed), and other weirdnesses that have evolved over time. If PHP was engineered in lab, it would not have any of these ugly stains but it also probably wouldn't be used at all.
Thu 22 Jul | Brent | Java wasn't implemented to run the actual firmware of an actual washing machine,  and was a solution in search of a problem for a while.
Thu 22 Jul | AllanL5 | Personally, I like Pascal -- but 'Standard Pascal' had really clunky I/O, and no assembly interface. The Turbo Pascal 3.0 variant (with memory arrays, ability to call software interrupts, variable-length string types, much better interface to the file system) was very nice. And as it evolved into Object Pascal, and then Delphi, it maintained its efficiency and readability. Now, the Pascal language was created to be a teaching language -- and as such the 'pure' language had some faults. I think Turbo Pascal was created in order to have an inexpensive ($50.00) relatively simple compiled language that would run on the early PCs. As such, its extensions to the 'pure' language made sense. It's major faults (if any) was that it was NOT the 'pure' language (not a problem for me) and that it wasn't C, and that it only had one level of 'include' supported. I'm not sure if I've proved or disproved your point here. I did raise another example, though.
Thu 22 Jul | AllanL5 | VBA was created to provide an incrementally compiled scripting language for Microsoft Office products, that ran fast enough and had a small 'footprint'.  Worked great for Office 97 and 2000.
Thu 22 Jul | RP | The origin of Unix is a bit more complex than that, I think.
Thu 22 Jul | Simon Lucy | Yes, Unix was invented so that the word 'plugh' could be used. And the phrase 'twisty passages all alike'.
Thu 22 Jul | ian | I have the impression that PHP syntax is almost, but not quite, entirely unlike Perl. How can it have been good to reinvent something that did not need reinventing?
Thu 22 Jul | trollop | syntax != model
Thu 22 Jul | Tom Vu | >>Unix was created so some guys could play lunar lander during their free time on an abandoned minicomputer in a basement. Popular myth
Thu 22 Jul | yet another anon | 'C was created in order to implement a portable unix' That's a *pet* project?
Thu 22 Jul | Dennis Atkins | Tom, Richie, Thompson and Bell Labs all disagree with you: http://www.bell-labs.com/history/unix/pdp7.html You guys and your claims that everything is an urban myth while you are talking out of your ass!
Fri 23 Jul | Nemesis | The idea that all interesting nuggets of information are urban myths is itself an urban myth.
Fri 23 Jul | Herr Herr | Please stop with your sweeping generalisations. Everybody knows that all sweeping generalisations are false.
Fri 23 Jul | Tom H | 'I suggest that languages and OS's have an uphill battle when they are artificially created in a sort of fiat' Best example I can thing of to support this statement: Ada
Fri 23 Jul | AllanL5 | Ohhh, I really LIKED Ada. As far as I could tell, the main problem with Ada was there was never a Microsoft (or Borland) compiler for it. The Purpose behind Ada was the Defense Departement had different computer languages (Jovial was one) for each service -- Army, Navy, Air Force. Thus the maintenance was becoming difficult. So, they wanted to create a nice, scaleable (to millions of lines of code) language. In true DOD fashion, they did it by committee. And then mandated that EVERY DOD project use Ada. What really killed it though was the requirement that DOD owned the 'Ada' name, and to be titled 'Ada' your compiler had to jump through A LOT of testing hoops. This included a real-time multi-tasking construct, BUILT IN TO THE LANGUAGE. It COULD NOT be 'customized', or you would lose the 'Ada' name. As a result, there were only a few companies that created an Ada compiler (Janus? Meridian was one) and they tended to be a little buggy around the edges. Really productive DOD projects used C, and then C++, which were evolving rapidly. In the late Nineties, DOD finally unbent enough to allow new projects to be built with C or C++, and that was the death of Ada.
Fri 23 Jul | a cynic writes... | '... is almost, but not quite, entirely unlike...' Have you noticed how easy it is to spot a Hitchhikers fan. Completely off topic, I know. I'll shut up now.
Fri 23 Jul | Kyralessa | I thought Java was invented to run set-top boxes.  (Whatever the hell those are.)
Sat 24 Jul | matt | >>'PHP was put together by some college student to assist maintaining his home page.' And it shows ;)
Quiet workplace: how important? | Thu 22 Jul | .
Im going to curtail this rant, but this morning some sales guys were absolutely yammering in the lunch room which is 5 feet from my cube, and I nearly blew a gasket. I remarked to our office manager, Queen Perky and was told that I was Mr. Negative and I should turn my frown upside down. For a while now Ive been considering leaning on my boss for a quiet spot (we are down in the business area). So : #1 - how important is quiet when you are trying to write code? #2 - is anyone really that perky or is this the effects of prozac? Oh, and just to get this out of the way: you insufferable petty bastard, there are people starving and this is what you complain about you should be happy to have a job
Thu 22 Jul | Greg Hurlman | loud workplace > no workplace. I doubt that they'll be willing to give you an office, or move your group somewhere else to accomodate you. If you can't get a pair of headphones and an mp3 player or handle it otherwise, then find a new job. BTW: 'you should be happy to have a job' = 'We can fire you w/o missing a beat.' They might be wrong about that, but it won't stop them from realizing it until after you're gone.
Thu 22 Jul | Max Belugin (http://belugin.newmail.ru) | see Peopleware http://www.amazon.com/exec/obidos/tg/detail/-/0932633439/qid=1090517000/sr=8-1/ref=sr_8_xs_ap_i1_xgl14/102-0893367-5708135?v=glance&s=books&n=507846 there are lots of research results abour workspace organizing
Thu 22 Jul | . | I actually do rock the headphones but at 8AM it's kinda painful.
Thu 22 Jul | Max Belugin (http://belugin.newmail.ru) | >If you can't get a pair of headphones and an mp3 player or handle it otherwise, then find a new job from Peopleware: you can only do routine work with music music. Effectiveness of creative work will be sufficiently decreased
Thu 22 Jul | AnonAnonAnon | It is totally psychological. While some studies show that lower noise level, even a private office improve productivity in the short term, most software was developed in neither of those environments. Years ago I worked for a company that sent you through 5 weeks of developer training where you did not learn to code, you learned to code in 'uncomfortable' environments. This was done as many clients were manufacturing and you worked either near assembly lines or on the raised floor. Neither of which was quiet and the temperature varied by as much as 60 degrees during the day. It's a focus issue. You can learn to do it. Now should you? Well, that's a different issue. Most people find environmental noise easy to overcome, its the sudden transit of two people in a conversation, the vending machine Thud-thud-clank-click-ca-ching that happens at odd intervals or the guy who insists on using a speaker phone rather than a head set, that is difficult to overcome. If you are up to it, ask to be moved to a quieter area. Another option is music/headphones or ear plugs. I personally like the ear plugs, as everything becomes a droning noise which is easier to block out, but I can still hear the phone ring or talk to someone who walks up.
Thu 22 Jul | . | 'Most people find environmental noise easy to overcome, its the sudden transit of two people in a conversation, the vending machine' This is exactly my problem - I don't have a problem with the din, but it's the sudden, unexpected stuff that drives me nuts.
Thu 22 Jul | David Burch | How about using a Bose QuietComfort™ Acoustic Noise Cancelling® Headset?
Thu 22 Jul | . | have you tried it?  does it work?
Thu 22 Jul | Anotheranon | '...most software was developed in neither of those environments...' And most software is also crap. While I know this isn't the only reason, there's a good chance it's a contributing factor, if for no other reason than to scare away some of the more effective developers.
Thu 22 Jul | Peter | I share an office with a guy who talks a lot. So much, that if you tied his mouth shut, his head would explode. If I brought in noise cancelling headphones, I would get a tap on my shoulder about every other minute. I'm sure you know the sort, he knows everything, has done everything, you are always wrong and it was worse in his day and time. I need to learn to be ruder to him. Quiet is important. The above mentioned book, Peopleware, mentions some studies proving it.
Thu 22 Jul | Kalani | Yes, having quiet is very important, although it depends on what you're working on. The amount of time it takes to solve a problem is generally proportional to its complexity and, depending on the problem, may or may not be separable (meaning that you can't just spend 5 chunks of 10 minutes on a 50 minute inseparable problem). So if you're working on a 5 minute inseparable problem and at minute 4 there's a phone call, you've got to start back at minute 0. Examples of such problems are deciding how a particular problem will be decomposed into independent functions or planning a strategy for actually implementing one of those functions. Once you've got the strategy worked out, actually writing the code is probably an interruptible activity for the most part (exceptions apply of course). Where noise really costs a business is when it interrupts high value thinking time -- and if you've got a problem that could take a day or two to really think through then you probably should do it outside of the office (if you haven't got some kind of personal space there). I work in a place that's fairly noisy at times (although nowhere near as noisy as a manufacturing plant). Luckily for me, the people who run the company don't mind that I take brief walks now and then to get away from the noise long enough to think through a hairy design issue.
Thu 22 Jul | Tom H | Regarding #2, you might try this: http://www.sun-sentinel.com/news/local/florida/sfl-fgator17jul17,0,2835598.story?coll=sfla-news-florida
Thu 22 Jul | Kenny | i think joel wrote a blog about office space a while back on this topic... basically, quiet is important to programmers because we work more efficiently when we reach a high level of concentration. said concentration can easily be broken by abrupt loud noises, forcing you to build it up again. have you tried wearing earphones and listening to music? you might want to remind your manager that you're fine with the current situation if she is. but if she wants to get better efficiency from you, she better change the noise ante...
Thu 22 Jul | anon-88 | >> from Peopleware: >> you can only do routine work with music music. Effectiveness of creative work will be sufficiently decreased DOH. And I just ordered an ipod, the 'old' 20 GB with all the cool stuff for the same price as the 'new' one :) Oh well, the foo has never failed me before.
Thu 22 Jul | AllanL5 | I once did a small research project that tried to justify purchase of cloth-covered cubicle walls, over the legacy hard-metal cubicles we were using. It was uphill work in the early 80's. But that was before 'Peopleware'. Really, Peopleware has some of the best justifications. Having said that, some managers are willing to take the performance hit, instead of purchasing the best hardware for their developers, and providing the best environment to work in. Since in theory that comes out of overhead, which can't be billed. Your inefficiency, on the other hand, can be directly charged to the project, (as long as it's not too large). Having said ALL that -- a quiet workplace can give you an order of magnitude performance improvement -- IF other interruptions are also kept low. Other people's voices are the hardest thing to ignore.
Thu 22 Jul | Dennis Forbes | You know there are extremes either way - I have worked with the obnoxious oaf that checks his voicemail on superloud speakerphone and raises his voice in hallway conversations (in a mistaken belief that people are interested). On the other end I have worked in an environment (in a large corporation) where the floor was virtually silent, with nothing more than the padded-cube wall muted clicking of keystrokes, and the gentle motherly hum of the HVAC. The pervasive email-culture prevented voice communication either in person or by phone. Regardless of how interested in my work I was, this environment absolutely put me to sleep, and to use an overworked cliche, I found the silence deafening. Maybe there's a medium of nature sounds or something. As a sidenote, why does every CD of nature sounds take the beautiful sounds of nature and layer some craptacular disposable soft-synth garbage on it? All I generally want is for someone to get a high quality recording of a babbling brook, oceanfront, or rainforest, I don't need the new age garbage.
Thu 22 Jul | Joe | I actually left my last job for pretty much this reason.  We had a CFO who was like a bull in a china shop.  And kindly (yes, I do mean genuinely kindly) asking her to keep the noise level down did nothing but make her offended at my audacity.  It was an "interesting" culture, and one I'm glad to be rid of.  The issue there wasn't just the noise, but also the lack of respect for others' working environment that it represented and brought into the open.
Thu 22 Jul | TheGeezer | Given a choice, I'd always go for a quiet office over cubilcle-ville. Case in point: this morning I get into work and I'm having to try and shut-out 4 different conversations with morons yelling at each other across the room. It's like trying to write code on a futures trading floor. In my last gig we had 2 people per office and it was a damn sight easier to get into the 'zone' than it is in my current job. Might have to look at getting some of those noise cancelling headphones...
Thu 22 Jul | Dr. Real PC | I like to hear people talking when I work, and when working at home I leave the TV news on. I don't mind hearing the AC from the computer room, or anything monotonous like that. What I can't stand to hear is the faint rhythmical sound of rock music turned down low or spilling over someone's headphones. Fortunately the guy next door only does this once in a while, and I moved away from the guy who won't use headphones. I don't know why I like hearing conversations or talk shows while I work. I can tune it out completely if I have to concentrate. It's too quiet where I work now, but I can't listen to music when I work. It has to be conversations or news or talk shows. I can't get any radio stations here -- I should try to get a talk station on a web site.
Thu 22 Jul | Data Miner | Over the years I have learned to block out almost all kinds of background noise. However, there is one noise that seems to penetrate even my headphones and drives me nuts: the sound of my cube-mate slurping his tea or coffee. I don't know why, but people slurping drinks drive me to the edge. I just want to scream at them 'learn some manners, you pig!' And the constant swigging from water bottles in meetings is rather annoying, too. Am I the only one?
Thu 22 Jul | Brent | If I'm having any other difficulty concentrating (gee, I won't be getting commissions on my billable hours, and my new salary is going to be maybe 15% more than I was making in a part of the country where a year's salary can buy a house? Thanks boss!), noise is a killer. Advice: Earplugs (I used to get mine at Walgreen's but they stopped carrying the brand (conical, dense foam) I like, when I'm out of the current jar I'll order from http://www.labsafety.com Focus. Practice sitting meditation in the evenings if you have to. Get more exercise to work the internal chattering out. And polish your resume. I work at home now. Things are ok.
Thu 22 Jul | Tom | Be careful with headphones. Make sure you buy the right sort. I'm not sure what the right sort might be, but I've found some require higher volume to block out a given level of noise. I didn't really notice this until I started getting ringing in my ears. Wearing headphones can help a bit, though, even if you don't play music. People are less likely to bother you. If you half hear someone maybe mentioning your name, you can ignore it without any possibility of seeming rude. And sounds are generally blotted out a little bit too. Minor points all three, but I've found them to help. (I've been meaning to investigate this phenomenon further, hoping to get to the stage of not having to wear headphones at all, but I think it will take practice. One of the people I work with is distractingly loud, and it will have to wait until he's away for a week or two.)
Thu 22 Jul | Tom | Oh, and if you want nature sounds without the synths, you might be able to come up with something using this: http://www.eblong.com/zarf/boodler/ It was my intention to use this to generate a nature soundscape (wind, frogs, birds, trees, etc.) and a spaceship soundscape (clanks, bangs, gurgles, general repetitive throbbing), both infinitely repeating, for use on the headphones at work. I never got round to actually doing this, but the program itself looks pretty cool. Requires some faffing (which you probably won't even notice yourself having to do if you're used to unix).
Thu 22 Jul | boogs | Sony ear-buds (the one with the ruber ends that make a loving seal with your ear canal) - http://store.wholesaler-depot-2.com/mdr-ex51lp.html - are about as good as any noise-cancelling earphones I've tried, and have the side-effect of being good for other things too. They also have excellent bass response (if you're into that sort of thing). On the subject of nature noises and deafening silence, a friend of mine swears by 'pink noise' - http://blackholemedia.com/noise/. And he's a pretty smart chap, so you might want to try it. Not sure if there's a similar app for PC.
Thu 22 Jul | Li-fan Chen | It is, it isn't. If you don't have concrete partitions, get over it. Don't bother your staff with micromanagement--if you need to do it maybe your hired professionals aren't as professional as you think.
Fri 23 Jul | Woodentongue | "hey guys, get a room . . . do some work . . . shut the @@@@ up" all work for me.
Fri 23 Jul | Katie Lucas | It could be worse. A bank I worked at piped music into the dev floor. Not the developer's choice of music, mind, someone else's. As I was leaving, they were talking about banning headphones/personal stereo gear. On the basis that the call centre staff aren't allowed them, so why should the developers... They positively encouraged speaker-phone use and made sure meetings disturbed people by not having any meeting rooms... Brrr. They're going to go bust eventually. BTW -- prozac doesn't work like that. It doesn't make you 'perky'. It'd actually be better for you than for the HR person -- once you're on it, you just sort of stop caring as much. You won't be able to work any better, but you just won't care. So you don't get depressed by it. It's less of a 'happy pill' and more of an 'immunisation from the world's irritation pill'. That and the feeling sick at odd times. And it gave me joint pains all over.
Fri 23 Jul | Cecilia Loureiro | I can use headphones to block out background noise… but what I can’t stand is bad smells… smelly sweaty feet/armpits :((((  My nose can tell when someone has arrived  :(((
Fri 23 Jul | no name | > A bank I worked at (snip story) Start with an L? In a city also starting with L? Or B and P? There was no music there when I was at either of those two places, but the rest sounds familiar.
Fri 23 Jul | Fothy | The difference for me is night and day. I waited till my company had agreed to a huge load of database work (of which i am the only programmer doing) and told them it will take 8 months to do - but if i am forced to sit in the same area as the sales people who constantly talk about all sorts of rubbish and the phone is constantly ringing then it would take 12 months to do. The then would be losing 4 months worth of money so they got an office built for me but until that was built i moved to the boardroom. My speed improved dramatically and i started to enjoy the job again.
Fri 23 Jul | DB | > from Peopleware: > you can only do routine work with music music. Effectiveness > of creative work will be sufficiently decreased Guess there's a typo there but was the original quote saying you can only do routine work with any sort of music? Because I can barely manage any work without it, and creative work is infinitely easier with music going...
Fri 23 Jul | Mr Jack | Go tell the fat cunts to shut up. If they don't listen, shit in their tea cups. If they're going to act like they work on building site, so should you.
Fri 23 Jul | The Wanderer | This all describes my workplace to a 'T'. We have one long hallway that onnects most of the building. People shout up and down the hallway, hold conversations outside of offices. I have been told that I cannot shut my office door, because it sends the message to others 'that I do not want to be a part of the company'. Total crap. I am the only developer here. With the exception of 4 people that do publishing/printing tasks, we are all sales and marketing. They have absilutely no respect for other peoples workspace, but the second your speak in their 'area' a memo is sent by their department head asking everyone else to be professional. Total crap. [quote] The issue there wasn't just the noise, but also the lack of respect for others' working environment that it represented and brought into the open. [\quote] I think this is the key to it all. My attitude at work has been worsened due to the constant distractions, and it is harder to get my job done. Thus ends my rant.
Fri 23 Jul | Air Condo Victim | I'm sitting hear trying to work with resonances from the cheap air conditioning drilling a hole in my head and making my stomach vibrate. The snag is, everybody else has a macho attitude to the office environment. (Their jobs don't involve much abstratc thought, so they're OK.)
Fri 23 Jul | Diego Madrid | 'tell the fat cunts to shut up. If they don't listen, shit in their tea cups. If they're going to act like they work on building site, so should you.' This is sound advise. Listen to Mr. Jack.
Fri 23 Jul | Milton Waddams | I was told I could listen to the radio at a reasonable volume from 9 to 11.
Fri 23 Jul | mackinac | Humans can be quite adaptable. Management could turn off the A/C but leave the fans running so the office could be hot and noisy and it would still be possible to get some work done. OTOH, people can't completely turn off parts of their brain. The noise and other distractions will take their toll in stress and reduced productivity. I used to work for a company that provided its developers with quiet private offices. It was a great place to work. Talented people did high quality work, there was low turn over and the company was always profitable. Unforunately, the owners eventually decided to sell the company and it doesn't exist any more. There are quite a number of posters to this forum that complain about the quality of their work space, but never do much about it. On forums like this developers should be able to discuss the quality of various companies and help each other find better environments. There is a lot of discussion but not much happens. Examples of better work places include Microsoft and Fog Creek, and maybe SAS. But that is as far as we get. Maybe there just aren't other good places to work. Some posters claim they work in a good environment, but won't tell us where.
Fri 23 Jul | www.marktaw.com | Pink noise is much more natural than white noise. It's the difference between the sound of traffic of the ocean surf and a television tuned to a dead channel. I could generate some pink noise & make an mp3 which you could loop indefinately, but you might be better off with a 'nature sounds' CD. Rather than active noise cancelling headphones, headphones that are designed to black the outside world simply by putting lots of layers of foam between your eardrums & the ouside work much better & are much cheaper, but I would argue they work TOO good and you could miss the fire alarm as a result. The problem with earplugs is they reduce everything by an equal amount. If the ambient office noise level is 30db and it reduces it by 15 db to 15db, the 60db noisy co-worker will still be 45db, just as loud relative to the silence behind your earplugs. Here's an idea. Keep an extremely bright lamp at your desk. The clip on kind used in construction work with a 150-200 watt bulb. When someone is talking too loud, shine this light on them. It's the visual equivelant of what they're doing to your ears. Clear out your desk because you won't last long.
Fri 23 Jul | mackinac | >>> headphones that are designed to black the outside world simply by putting lots of layers of foam between your eardrums & the ouside work much better & are much cheaper, but I would argue they work TOO good<<< What brand? I've tried David-Clark hearing protectors. They can be helpful in a lab with a lot of fan (white) noise. But it's like having a big C-clamp around my head. It exchanges one irritation for another. And they still let the annoying sounds, like talking, through. >>>The problem with earplugs is they reduce everything by an equal amount. <<< True. Sometimes they make the annoying sounds more annoying when the background noise are attenuated. Like the headphones, they can help in certain situations. >>>Here's an idea.<<< Here's an even better idea: When you are searching for your next job, make working conditions a significant factor in your selection criteria. If you talk to recruiters make it clear that you're looking for a company dedicated to quality and one indication is the work environment.
Sat 24 Jul | www.marktaw.com | Koss makes some decent sealed headphones, as does Sony. Any 'closed' style headphones should have some noise attenuating factor, but how much & how comfortable is something I really don't know. One of my old work buddies had these great cheap Sony headphones that were light weight & blocked out a LOT of noise, but I don't recall what model.
Sat 24 Jul | www.marktaw.com | 'sound of traffic of the ocean surf ' should be 'sound of traffic or the ocean surf '
Sat 24 Jul | Management Material | "Shit, the pin fell out," used to work well in the Army, while you held up the grenade.
I want to start my own business because... | Wed 21 Jul | Herr Herr
...then _I_ can have the final word in the argument on indentation style ...then _I_ can get my machine upgraded to 1 Gig without having to convince anyone else Contributions welcome.
Wed 21 Jul | muppet | I want to start my own business because I want my own goddamn parking spot.  I'm sick of being relegated to a "waiting list" where particular salary grades float miraculously to the top.
Wed 21 Jul | Wisea** | I want to have (and keep) my very own red Swingline stapler.
Wed 21 Jul | Aaron F Stanton | I want to be the devil other people sell their souls to.
Wed 21 Jul | :) | Aaron, I think the devil already is the devil, and being the immortal that it is, I don't think you will be getting its job any time soon unless you can somehow convince it to retire to a remote dungeon hell hole. :)
Wed 21 Jul | Fernanda Stickpot | I want to start my own business because I will not then be told that the most valuable contribution I can make is to keep my desk tidy.
Wed 21 Jul | Fernanda Stickpot | My previous post is true, by the way, not exaggeration.
Wed 21 Jul | Once you go red, you never go back | I have two red Swingline stapler's. :-)
Wed 21 Jul | aku beg | I would only employ people who had Quake 3 and other online gaming experience on there Resume's.
Wed 21 Jul | PopCulture | because ... I'd like to get properly compensated (either monetarily, mentally, spiritually, or all the above) for all the long hours, weekends, etc. that I spend writing software, keeping up with the latest techs and trends, etc. because ... I need to get out of this cubicle and monkey suit, ditch the 1 hour commute, be my own boss, and stop being a tiny cog in a multi-million dollar machine. because ... you'll never get rich working for someone else because ... I want to be a unique snowflake.
Wed 21 Jul | Ewan's Dad | Someone else stated it better than I can, so here's the quote and the reference: 'For me, the bottom line was I wanted to feel the pain of starting a company. I wanted to pay my dues, and I wanted to pay them now. Yes, I wanted to go into debt, have my ego crushed, and experience firsthand the thrill of working like a dog for months on end without a paycheck in sight. I wanted a battle, I wanted a chance to win a war.' http://www.mousedriver.com/book/book.htm
Wed 21 Jul | a cynic writes... | I hate getting up at some ungodly hour of the morning, driving through bloody roadworks before being herded into an overcrowded cattle truck, then out into another one to face a day of tedium before going back through another 1 1/2 hours of it (assuming they whole bloody mess doesn't break down yet again) in the evening. For the next 30 years. I'm not having a good day.
Wed 21 Jul | Dr. Real PC | So I can have a door to close and not worry someone will walk by and see me posting on a forum. So I can fantasize about what a great boss I am and how my employees all love me (because they only complain about me when they know I can't hear). So I can make enough money fast enough to quit the rat race before I die.
Wed 21 Jul | Mark S | I've one URL for all of you... http://www.despair.com/indem.html
Wed 21 Jul | What are you lookin' at? | Heaps of money.
Wed 21 Jul | patrick | i want software developed the right way.
Wed 21 Jul | Egor | Because I want someone else to do the boring part of the work.
Wed 21 Jul | Bruce Johnson | It seemed like a good idea at the time.....
Wed 21 Jul | Sgt. Sausage | I've been 'independent' -- doing my own thing, since 1995. Both in IT and other domains (spent a previous life as an independent claims adjuster). Let me be the gloom and doom guy and shatter all your dreams: ==> ...then _I_ can have the final word in the argument on indentation style Until you work for a client/customer that has their own coding standards, and you're contractually obligated to conform to those standards. ==> ...then _I_ can get my machine upgraded to 1 Gig without having to convince anyone else But only after convincing your deadbeat clients/customers to finally release their payables so you actually have the cash to make the purchase. ==> I want to start my own business because I want my own goddamn parking spot. Fair enough, but when you spend 4 out of 5 days out at client sites, it doesn't do you very much good to have your own parking spot at your location. ==> I want to have (and keep) my very own red Swingline stapler. Have you completed your TPS reports yet? ==> because ... I'd like to get properly compensated (either monetarily, mentally, spiritually, or all the above) for all the long hours, weekends, etc. that I spend writing software, keeping up with the latest techs and trends, etc. This doesn't happen automagically, just because you start a business. In fact, I'll go the other way -- once you start your own gig, you're even *less* properly compensated for the work you do. There's a lot more to running a busines than tech skills alone. ==> because ... I need to get out of this cubicle and monkey suit, ditch the 1 hour commute, be my own boss, and stop being a tiny cog in a multi-million dollar machine. You'll still be a tiny cog -- in your client's machine. ==> because ... you'll never get rich working for someone else True -- but you'll *rarely* get rich running a business. It's not an automatic trip to wealth. In fact, it is (for most startups) a quick trip to the bankruptcy courts. The statistics on new businesses failing are widely available on the web. Look 'em up. Be amazed. ==> because ... I want to be a unique snowflake. ==> 'For me, the bottom line was I wanted to feel the pain of starting a company. I wanted to pay my dues, and I wanted to pay them now. Yes, I wanted to go into debt, have my ego crushed, and experience firsthand the thrill of working like a dog for months on end without a paycheck in sight. I wanted a battle, I wanted a chance to win a war.' So true. If only more folks realized this. (a) You *will* feel pain. Heaps of it. (b) You *will* pay your dues -- with the more than likely possibility of no return (c) You *will* have sleepless nights wondering about your debt load and how to pay it back. (d) You *will* work like a dog (e) You *will* have missed paychecks (f) All with the likelihood that you won't even win the first battle, let alone the war. ==> I hate getting up at some ungodly hour of the morning, driving through bloody roadworks before being herded into an overcrowded cattle truck, then out into another one to face a day of tedium before going back through another 1 1/2 hours of it (assuming they whole bloody mess doesn't break down yet again) in the evening. For the next 30 years. You'll do the same with your own business. Clients will schedule a 7:00 AM meeting, someplace way across town where you've got 30 miles of congested, road-construction delays, and face just as many (if not more) days of tedium. ==> So I can have a door to close and not worry someone will walk by and see me posting on a forum. This is actually a benefit! Hell, I don't even close the door. I own the place so who's gonna say anything to me? ==> So I can fantasize about what a great boss I am and how my employees all love me (because they only complain about me when they know I can't hear). You're right. It's a fantasy. ==> So I can make enough money fast enough to quit the rat race before I die. See above. Most new businesses go under -- and a large fraction thereof lead their founders to the personal bankruptcy courts. ==> Heaps of money. You're dreaming. ==> i want software developed the right way. Until your clients/customers/market decide they don't want to wait long enough, or pay enough money to do it the 'right way'. ==> Because I want someone else to do the boring part of the work. You'll be doing it yourself for a long time before you can afford to hire help to do the boring stuff. You'd be surprised how much boring stuff your current management, HR department, accounting department, legal department, compliance, clerks, and all the other folks that are currently doing the 'boring stuff'. When you start out, you get to do all the boring stuff. ==> It seemed like a good idea at the time..... It sure did didn't it. I guess that's where I am now. It really did seem like a good idea. The point I'm trying to make is that it ain't the dream most think it is. Less than 5% of you/us out there who attempt it, will still be in the same business in 10 years. Most folks simply don't have what it takes. I'm not sure I do. My current business is almost 7 years old and I'm suffering severe burn out. Not sure. If I can make it another 10.
Wed 21 Jul | Kenny | ...I could steal great ideas from my co-workers and get credit for it...
Wed 21 Jul | Wisea** | ...I could get all the Marketing dept. putang I want ?
Wed 21 Jul | Lawrence | Two chicks at the same time man.
Wed 21 Jul | Dennis Atkins | I totally agree with Sgt. Sausage. If you want to start your own business to make lots of money, be able to boss others around, or get the recognition you deserve, save yourself the bother. The one good reason I saw was 'So I can develop software the right way.' I disagree with Sausage that you can't do this for clients - you can. You just have to explain it to them. As the owner, you will now be able to explain that to them face to face and have your decision be the final word in the matter. You are a professional and you have the right and responsibility to let your own experience and judgement trump that of the client. In the end, it is only you who are responsible for software that is either slipshop drek that you blame on the client's shifting requirements that you were unable to manage, or a finely crafted piece of art that delights the client and which you can be proud of.
Wed 21 Jul | KS | ... So I can get rich ...So I cannot get Laid-off by somebody else
Wed 21 Jul | Sgt. Sausage | ==>The one good reason I saw was 'So I can develop software the right way.' I disagree with Sausage that you can't do this for clients - you can. You just have to explain it to them. As the owner, you will now be able to explain that to them face to face and have your decision be the final word in the matter. You are a professional and you have the right and responsibility to let your own experience and judgement trump that of the client. In the end, it is only you who are responsible for software that is either slipshop drek that you blame on the client's shifting requirements that you were unable to manage, or a finely crafted piece of art that delights the client and which you can be proud of. Agreed, we all want something we can be proud of -- but, that doesn't change the fact that if they don't have the time or the money to 'do it right' -- if you stick to your guns and insist on doing it 'right', you're not going to keep them as a client. Sometimes there's simply not enough resources for the 'right' thing to be done. And, it's not your call. You can be professional and explain it but you *never* get to 'trump' the client. If they don't have the money or the time (or other resources), your trump card is useless and they'll find someone else who can hack it together with the available resources. It's your choice whether or not you want to work for the client under those conditions (limited resources), but it's the clients choice of hack -vs- 'right'. Reference Joels writings on perfectionism. Business owners (your clients) make these decisions daily. Slipshod may be perfectly AOK with the client. If it's a choice of 'right' -vs- staying in business, you can be certain which way the client's going to go. The real question is: do you want to go there with them?
Wed 21 Jul | aku beg | how comes my point about having LAN gaming skills on potential emplyees RESUMES as a requirement didnt get a comment?
Wed 21 Jul | Doing it Well | Sgt. Sausage is doing something wrong. I have been independent since 2000, took 10 weeks of vacation last year, make money there I ever did working for anyone (by a factor of 4 and growing) and wouldn't trade it for anything. I would guess, based on the people I know, that being self employed is like anything else- some do it well, some fail miserably, most are in the middle where it usually resembles any other job but just with different rules. If you think you can do it well, I say nothing beats it.
Wed 21 Jul | Simple Truth | Employees are defacto slaves.
Wed 21 Jul | Jim Rankin | 'Agreed, we all want something we can be proud of -- but, that doesn't change the fact that if they don't have the time or the money to 'do it right' -- if you stick to your guns and insist on doing it 'right', you're not going to keep them as a client' But if you are developing shrink wrap software, you can develop it the right way, then see if the market accepts it. I suppose the problem there is if someone does it the 'quick and dirty' way and beats you to market. But on the third hand, sometimes its better to let someone else get the pioneer arrows in the back first, anyway.
Wed 21 Jul | www.marktaw.com | Sarcastic answer: Because I really, truly, believe that not enough people are exploited in this world & I want every opportunity to exploit as many people as possible, Real answer: Because I'm a stubborn iconoclast who clashes with authority figures & likes to do things my own way & in my own time (typically faster than corporate schedules anyway). And like the mouse book quoted above, because I want to be responsible for my own successes & failures in this life.
Wed 21 Jul | killerwhale | I can select my own secretary and receptionist.
Wed 21 Jul | Bored Bystander | After 11 pretty good years as a consultant, I MAY be about to hang it up. The decent contracts have been too far and few between since 2000, the contract agencies ('brokers') are scum sucking greedy morons whose selected role is to get in the way of meeting a client, and many clients in the general support arena are cheap inbred dumbasses who deserve to have screwed up PCs and networks because they won't pay anything for quality service. Another factor is that the IT world is truly changing and not for the better. Each of us is regarded as more of a commodity than I have ever observed in my 20+ year career. When I started contracting in 1993, a software development contractor could get a rate that was a modest premium above the hourly 'salaried rate' for a given position. This 'risk premium' for contracting peaked in the late 90s - $100/hr was a standard median rate for contract software work whereas the equivalent permanent job would pay perhaps $65-80K. At present, the permanent job I am currently entertaining actually pays MORE per hour than comparable short term contract positions. The point is, IT contracting is looking very much like industrial temp labor - low prestige, abused workers, paid less than a permanent worker. I know of Sgt. Sausage's business, we've spoken, and his experience is really close to mine. It's typical for an IT service business. You conform to whatever the client demands or that client simply won't have the work done by you. Most clients will do without rather than compromise with a contractor. A lot of it is small client pride and arrogance - 'no vendor is gonna push us around.' Also, about working with small business, the typical clientele of a consultant: they're VERY lowbrow - they usually don't appreciate a smart person, esp a vendor. My take is that really small businesses, and even some substantial small businesses, were started by owners who had to go into business for themselves because they lacked a degree that would have enabled them to get a 'good corporate job'. A person who builds a business on their own labor & sweat is self educated and often resents those who have specialized knowledge or a professional degree. In fact there may be some resentment directed toward the consultant. Also, the fact that you're kowtowing to a client's whims in addition to having to meet stringent performance requirements in order to get paid means that not only is job satisfaction a lot less, but you also have to worry about basic economic survival even as you're helping a client despite themselves. The fact is, contractors and consultants are in fact if not legally 'virtual employees'. There is no escape from this 'virtual employee' role other than developing and selling a standardized product.
Wed 21 Jul | Laying the groundwork | I want to start my own business because... I want the amount of my compensation decoupled from the hours of effort I put in. WHile the start-up phase may be pure hell, if you make it through to being a business you get paid based on the quality/popularity of your product - not how many hours you put in. There's an upper limit of hours you can work, but there is no such limit on how popular your product can be. What to you think BillG makes per hour? Obvoiusly, I don't consider consulting/contract work to be 'having a business' - it is being self-employed, which is a different animal.
Wed 21 Jul | www.ChristopherHawkins.com | Sadly, Bored Bystander is more right than he is wrong - at least when you're talking about servicing the SMB (small/medium business) market. SMB client's don't always understand the business benefit, or even that there IS a business benefit. They tend to take on technology projects because they feel they have to. Servicing Fortune 500 clients is much different. You're dealing by and large with people who understand exactly what the business benefit of your service is. A large part of my SMB work goes like this: A client will request a proposal. I provide a proposal. They claim I'm too expensive. They hire some kid who's been in the industry less than a year, because he works for $25 an hour. Four months later, with the project hopelessly off track, over budget, and no functional software in sight, they call me in to fix the project, which takes orders of magnutude more effort and money than if they had simply showed a little faith and let me build it right the first time. I don't take it personally, and I don't get mad. They don't know how software projects work - how could they? They run body shops and real estate brokerages and mobile home dealerships. They should no more be expected to understand how a software project should work than I should be expected to understand how to run a body shop, real estate brokerage or mobile home dealership. Once they've made the initial costly mistake, they realize that you really can't get the same level service from a 1-year guy that you can get from a 10-year guy. And once they see that a) I'm not out to take advantage of them, and b) I can deliver results, they don't question me anymore, and they don't try to undercut me anymore. They eventually learn what kind of business benefit a good professional can provide. The larger clients are much, much easier to deal with on the front end because they know the business benefit of what they're asking for before they even pick up the phone to call you. Plus they have sufficient resources that once they've cvommitted to a project, it gets done. But the SMB market is vital, and they need services. Tougher to deal with? Sure. But if you've got the patience to form some relationships and teach SMB clients why things need to be done a certain way, you can build a business entirely around them. And I think that is pretty cool.
Thu 22 Jul | Bored Bystander | Christopher, you make a very interesting point. Given patience and time I am sure that I could crack the SMB market. Here is one conceptual issue, though. SMBs are often where they are in size because their owners avoid making the kind of wise decisions that would favor working with an experienced professional. They want their employees to be as cheap as possible, they look for the cheapest vendor, etc. IE: if they didn't pettily nickel and dime every decision, they wouldn't be small. This short term type thinking, IMO, combined with the paranoia and pettyness of some small biz owners, makes them the least desirable type of customer that I can imagine. So I guess it's a numbers game. Market to enough small businesses that you can choose the best customers and not have to work with the idiots.
Thu 22 Jul | www.ChristopherHawkins.com | The phrase you're looking for is 'stepping over dollars to pick up dimes' and yes, unfortunately a lot of small businesses do have that kind of modus operandi. I try to avoid the ones who 100% will look for the lowest price without weighing any other factors. If a prospect is at least interested in doing a project in such a way that it will end up being effective and impacting the bottom line positively, I'm willing to work with them - even if they only come around after making the costly mistake of hiring an amateur first. To be honest, I'd spend all my time with my Fortune 500 clients if I could - I just don't have enough of them. They tend to do things in big pops and then lie dormant for a while, whereas the SMB clients provide constant, but small trickles of work. It's not a bad balance if you can strike it. Nobody ever said it would be easy. ;)
Thu 22 Jul | Unovoid Vijay Saki | Anyone interested in doing marketing for a Software and web development company 'Unovoid Softwares and Web developement hosting and custom applications' www.unovoid.com. Visit the site www.unovoid.com and contact the CEO Vijay Saki Unovoid Softwares and Web Developers
Thu 22 Jul | Unovoid Vijay Saki | Anyone interested in doing marketing for a Software and web development company 'UNOVOID Softwares and Web Development hosting and custom applications' www.unovoid.com. Visit the site UNOVOID Softwares and Web Development and contact the CEO Vijay Saki UNOVOID Softwares and Web Development
Thu 22 Jul | Aaron F Stanton | Why is that in this thread?
Thu 22 Jul | Norrick | Can I gt some eggs and coffee to go with that SPAM?
Fri 23 Jul | Bored Bystander | Unovoid's web site looks like typical SPAM bullshit with 'bla bla bla bla we are bla bla bla experts in ', except that it provides the following intriguing pair of contact addresses: 509, Ridge View Dr, Nicholasville, KY,USA. Plot No.1, Bharani Colony, Diwakar Street, Saligramam, Chennai - 600 093, India. I have no problem with someone trying to get ahead but c'mon. This is like selling ice cube makers to eskimos.
Sat 24 Jul | Vijay Saki | Its not a spam I am sorry if this message disturbed your forum. But that was a connection problem.! Thank You Vijay Saki Unovoid Softwares
An IDE 'itch' | Wed 21 Jul | Edward
Just a general comment. When I look at code that my co-workers have written, the comment formatting is often out of whack. Specifically, the folks using 5 point fonts have loooong comment strings (prefixed with // in C++/Java) that fall off the right side of my monitor. What Id love is for my IDE (MS Studio or Eclipse) to recognize these comments strings, and format them so that they fit my editor width. Im not talking about changing the code, but just visually fixing the layout. I dont think this would be too difficult for them to do, has this been tried?
Wed 21 Jul | sid6581 | That's something I've seen MS been asked, and they said they had considered that. It didn't sound like they were going to implement it for sure, though.
Wed 21 Jul | Andrew Cherry | you could call it word wrap.
Wed 21 Jul | MugsGame | Haven't seen this in a code editor, but Opera reformats lines and quotes (>) to minimise line count when viewing e-mails.
Wed 21 Jul | muppet | You're one of those old farts who codes in 24 pt font because you're half blind, aren't you?
Wed 21 Jul | muppet | I bet you use Comic Sans, too.
Wed 21 Jul | no name | Once again, muppet's contribution is to insult someone with a different opinion.  Thanks, muppet.
Wed 21 Jul | Greg Hurlman | If you're so self-rightous, why hide behind a blank? Maybe it's just me, but I read muppet's comments with an implied ;) We're not all deadpan serious here, boys and girls.
Wed 21 Jul | Frustrated Maintenance Programmer | I though Eclipse gave you a nice word-wrapped version in a pop up when you hovered over.  I'll have to check at home.
Wed 21 Jul | anti-muppet | 'Maybe it's just me...' Yes, it is just you.
Wed 21 Jul | Steamrolla | word wrap sticks the comment into the middle of the code your trying to read: if (x==1) { y=5; // This must be done first because of some other problem z=6; } what would be nice is a wrap like this: if (x==1) { y=5; // This must be done first because of some other problem z=6; }
Wed 21 Jul | Sandy Mallorca | The free XCode IDE that comes with OS X does this softwrapping of long comments, but it's not really so exciting a feature. I, er, am one of those small-fonters myself so it doesn't affect me as a problem.
Wed 21 Jul | christopher (baus.net) | Emacs can be set up to behave like the first example.  I personally don't like it and turn that feature off.
Wed 21 Jul | null fame | /* make everyone comment like this */
Thu 22 Jul | Jussi Jumppanen | Or like this: if (x==1) { // This must be done first because of some other problem y=5; z=6; }
Thu 22 Jul | JT | Don't ever write a line longer than 80 characters. Use an IDE that draws a line at the 80 character point, and make it a rule to never write past it. Delphi does this. I'm not sure about Visual Studio, but as of VS6, it did not.
Thu 22 Jul | AllanL5 | I agree, but you didn't say why stay less than 80 columns. The reason I agree is because printed listings work so much better this way. Also, I do work on Unix systems where a Telnet session with vi is used, and 80 columns works better in this environment. Buy why did you say this?
Fri 23 Jul | JT | 80 columns is an accepted standard that goes back to those telnet terminals of which you speak.  You'll still find that a standard command prompt, text printout, and a lot of other things that deal with plain text, will assume an 80 column line width.  Is one of those standards that is really quite historical, and in today's technology, arbitrary.  It's what the FAA calls a "concensus" standard.  It's 80 because everyone says it is.
Sat 24 Jul | AllanL5 | Thank you for the extended illustration, that's exactly what I wanted to know. Also, the original punch card was 80 columns. However, just because it is historical, doesn't make it wrong. Doesn't make it right, either, my Commodore 64 only had a 40 column wide screen, and I STILL find 40 columns to be too short. 80 columns seems to be a good comprimise between space on the screen, amount of text allowed, and where to word-wrap. 132 columns is also good -- but not as flexible as 80 columns.
What exactly is Joel trying to say? | Mon 19 Jul | Steve Jones (UK)
Okay, so I must be really thick today. Ive read Joels little piece today a couple of times and I cant really see what he has trying to say: http://www.joelonsoftware.com/items/2004/07/19.html Is he saying that searching email is good, thereby attempting to increase the value of his Google shares (GMail does searching) ? Is he saying Microsoft are the evil empire (again), because theyve bought up an ISV (again) and may just sit on it, rather than incorporating it into their own products ? Is he saying Microsoft are the evil empire (again), because they didnt want to buy his ISV ? No doubt this will be deleted, as it doesnt toe the party line, but I do wonder what he was on about.
Mon 19 Jul | Peter Monsson | I think he is simply saying that Lookout and Microsoft both are stupid. Microsoft did a stupid move by removing a good plugin for Outlook. Lookout did a stupid move by removing a good product. That's about it.
Mon 19 Jul | Lou | It sounds like Joel is upset that a useful product is no longer available, and that rather than integrating it with future versions out Outlook, Microsoft has decided to use the technology in MSN. Think of it this way: You find pencils to be useful, but you always run out of erasers, so you buy those extra eraser blocks. They aren't critical, but it makes a big difference to your experience. Suddenly Bic buys the eraser block makers and takes them off the market. When you ask what's going on, Bic says, 'We're busy working to integrate eraser blocks into our new highlighters'. Lookout's technology might make sense in MSN, but it also made sense in Outlook. The question is, why is it now unavailable for it's originally intended purpose?
Mon 19 Jul | Peter | The product they are incorporating it into is incompatable with Outlook: it is MSN. It used to provide for better searching inside large .pst files than the built in features in Outlook. But you cannot get the product anymore. Competing against GMail is fine and dandy, but removing a useful product from the market is not. To give an idea of why its bad to incorporate this into MSN, do yourself a simple test. Go to MSN, and your favorite search engines. Put in the terms 'linux' and see what you get on both sites. Put in the terms 'open source' and see what you get in both sites. MSN search seems to be turning into a propaganda engine for MS, and less a gateway to knowledge.
Mon 19 Jul | Dennis Forbes | I think he's just expressing a bit of frustration about what looks like an absurd business transaction (the kind that no rational, normal business model can withstand). -Buy technology that enhances your own product (Outlook) and increases user satisfaction -Immediately cease sales and service of said technology -Promise some future date integration into a completely different, money losing product (MSN) Additionally, and I'm putting on my conspiratorial hat, I find it enormously dubious that Microsoft is really acquiring any credible search technology here (Microsoft has been working on search for over a decade, with a lot of people on it. If Microsoft is really buying 'technology' here then I think MS shareholders just be irritated about the billions they're pissing in a well each year) - it's a simple email indexing utility (the kind that Outlook should have had since day one. Funny that the people who pushed Findfast and its son Fast.exe onto every PC can only search by scanning the entire corpus of emails). It does seem much more credible that they perceive this product as threatening some future product (the joys of only worrying about competing against your own product).
Mon 19 Jul | . | Steve Jones (UK), sometimes you come about a well heeled man, and at times likes these you sound like an utter arsehole. Do you abuse any substances? Joel made a technological point about a piece of corporate news. No hint of anything to the contrary.
Mon 19 Jul | Greg Hurlman | Heard off in the Pacific Northwest... Buy 'em out, boys.
Mon 19 Jul | Steve Willer | Technology wise: Lookout is pretty neat, because it integrates with MAPI (hard), has a reasonable UI (not too hard), and integrates with a search engine (probably easy). But a quick perusal of the Lookout directory shows that it's just using Lucene.NET for its searching and indexing. That's an open source project through the Apache foundation. I don't know what technology there is to buy for MSN. Lookout is just an Outlook interface.
Mon 19 Jul | dmart | So does anyone have a link where we can still get lookout or has MS successfully removed it from the web completely?
Mon 19 Jul | MilesArcher | Look, there were two guys. One now works for Microsoft. They told him to concentrate on his new job. Why in the heck they took down the old software is the puzzle. They could/should have left it up. I suspect it has to do with lawyers getting involved.
Mon 19 Jul | anon | If you missed out on downloading Lookout, here is a link for it : http://www.lookoutsoft.com/Lookout/HDL8827/Lookout120.exe
Mon 19 Jul | Bored Bystander | My gut feeling: Lookout's presence is an indication that Outlook lacks a very basic feature that works credibly well. So MS bought the company out in order to eliminate the appearance of anything lacking. I just tried Outlook 2002's 'find' feature on a small, <500 message inbox. It took something like 8 sec. to complete on a fast 2+ ghz XP system with a gig of ram. I was amazed by its slowness. Pathetic. And a good thing to cover up.
Mon 19 Jul | Aaron F Stanton | 'If you missed out on downloading Lookout...' Now that's just amusing, the fact that it's still there. Thanks. Got it before they pulled it. :)
Mon 19 Jul | Bored Bystander | "cover up" ==> dis-acknowledge, obscure, etc...
Mon 19 Jul | Aaron F Stanton | Oddly enough, www.lookoutsoft.com is not on the WayBack machine.  Hm.  They must have blocked spiders.
Mon 19 Jul | JD | Dennis, MSN is no longer money loosing unit. Check http://www.nytimes.com/2004/07/19/technology/19msn.html JD
Mon 19 Jul | Bored Bystander | It's easy to block the wayback machine. You add an entry to robots.txt on your site to exclude their spider, then you fill out a form on their site that notifies them that such a change is pending. Apparently they then schedule the site you specify for a checkup and when they find the robots file all of your site's entries are flushed. I did this for one site I owned. Wayback 'forgot' my site within a few hours after I filled out their form.
Mon 19 Jul | Aaron F Stanton | Yeah, I know it's easy to block them. I just mentioned it because it means that when MS removes that binary, it's gone for good. There is some interesting stuff on WayBack, even binaries that some companies pulled from their websites. It's sometimes tricky to find, but it's there.
Mon 19 Jul | www.xndev.com (Formerly Matt H.) | >But a quick perusal of the Lookout directory >shows that it's just using Lucene.NET >for its searching and indexing. That's >an open source project through the >Apache foundation. A ha! It looks like Lucene is distributed under a license that covers derivative works. Microsofts 'No Open Source' policy would mean that they have to shut the technology down and plug in a different search/index engine. http://www.apache.org/licenses/LICENSE-2.0 I answered joel's question; do I get a prize or something?
Mon 19 Jul | Walt | Perhaps I am mad, but I don't read into their Q&A that the product will be forever discontinued and killed. They explicitly state they are interested in it for MSN. They explicitly state that the *existing* product is no longer available. But I fail to read that they will not offer a future version for Outlook. We don't always tip our full hand when doing product announcements, not to mention that rarely are business decisions final. Who's to say they won't reconsider in a few months? It happens everywhere, all the time.
Mon 19 Jul | lumberjack | Best answer yet. Good job xndev And your prize... http://jovan.ru/pics/award.jpg
Mon 19 Jul | dmart | Thanks for the link anon.
Mon 19 Jul | Dennis Forbes | 'They explicitly state they are interested in it for MSN. ' The whole thing is built around an open source, Apache project index/search engine (as referenced previously). What the heck is left to use within MSN? That's just marketing nonsense.
Mon 19 Jul | Michael Chermside | > I answered joel's question; do I get a prize or something? Well, you might, except that I think you're misreading the liscense. It requires that a copy of the liscense itself and copyright notices be distributed with derivative works, but makes no requirement that the derivative itself be open source. However, I still suspect that this is what Microsoft is concerned about.
Mon 19 Jul | anon | You are welcome. :)
Mon 19 Jul | Will | Actually, the Apache license is a business-friendly license that explicitly allows commercial derivative works. The only requirements are documentation-oriented. (read the license for details). I myself sell commercial, proprietary software that contains components licensed under the Apache license. This type of license is in sharp contrast to the viral Gnu Public License (GPL) which requires that any derivative works themselves need to be covered under the GPL. Despite this, it's entirely possible that Microsoft did hesitate at using open source technology. Or maybe they just didn't want to support it. ISV's take note -- this may be a new niche to fill!
Mon 19 Jul | Balaji | thanks Anon.
Mon 19 Jul | Dennis Forbes | I think a prior poster got the true motive - this company doesn't even appear on the Microsoft radar. They simply wanted to hire someone who had some namespace within the search sphere, and for legal reasons and completeness they 'bought out' the product and discarded it. Regarding whether they will use or not use the software, why would they bother going through this acquisition when they could just go to Sourceforge and download it themselves? Ultimately I can't help but imagine some Microsoft HR drone scanning through the newsgroups looking for mentions to search wizards to make some high profile hires in the upcoming battle with Google, and they came across Lookout. 'This thing is great,' they say. 'We gotta hire this search wizard!' They get the guy onboard, only to realize it's a thin wrapper around an Apache open source project. Bwahaha.
Mon 19 Jul | Aaron F Stanton | Uh...since it's pretty obvious what the product does and the technology it uses, what's stopping someone from cloning it, besides time?  Just asking.
Mon 19 Jul | kc | Absolutely nothing... If you're *really* interested in document indexing, check out DocSearcher on Sourceforge. It index html, txt, doc, pdf, xls, rtf, and a few other types of documents. *I'm totally biased here as a friend is the lead developer.
Mon 19 Jul | Lisa | Joel seems to have bought xndev's argument: >>Update: They figured it out on the discussion group. Lookout is using an open-source component for searching, which Microsoft can't redistribute. The only part of Lookout that Microsoft allegedly cares about, the search engine, is released under the Apache license. The only part of Lookout which Microsoft can use is the Outlook integration, and they don't seem to care about that. Methinks this is one of those 'HR Acquisitions,' wherein Microsoft buys a company for a few bucks because it's the only way to hire someone they want. << But, other posters are disputing this in ways that sound reasonable. Is there a lawyer in the house? :) I don't have a deep philosophy about open-source, but if an open-source project comes up with a really killer implementation, and a commercial company would be forbidden to incorporate it into an app where it fits and is needed -- well, how exactly is that making the world a better place?
Mon 19 Jul | Alexandru COSTIN | Forget about Lookout - get X1 indeed www.x1.com I am a VERY happy user of X1, and I've bought it to manage my 5 Gigs of Outlook mail that are not usable other way And for more information on indexing tools for your PC, check this link http://slashdot.org/article.pl?sid=04/05/19/186257&tid=217&tid=185&tid=201 Alexandru
Mon 19 Jul | patrick | I was told in an email from someone at Lookout that the file will be gone by Tuesday at 12PM PST, so get it quick! For the record, the link that was sent to me was http://www.lookoutsoft.com/Lookout/HDL9382/Lookout120.exe -- slightly different than the one posted by Anon, but I downloaded them both and they match bit-for-bit. So, maybe some download tracking is going on here or something.
Mon 19 Jul | Stéphane Lajoie | The first link doesn't work for me. Patrick's link works. I suppose this is only a trial version though. What happens after expiration? Another theory why they took it off the market: maybe it just isn't up to their standards in some fashion. I'm not dissing the product here: it could be something as simple as missing translations. Outlook is available in *many* languages, maybe they have rules that say they can't release an Outlook tool that has UI if it isn't translated into all these languages.
Mon 19 Jul | mb | after they bought some drawing program recently, they released it for free. well, free for 'existing users' (http://www.microsoft.com/products/expression/) then again, after they bought visio they have cut features form every subsequent version. according to lookout's web site, you can keep using the new 1.2 version (released Friday, pulled Monday?!) as long as you want. a new feature is that the nag screens are gone. i tried it starting about a week ago, just before the buyout. don't really like it all that much, x1 (or maybe the open source project listed here) will be the next app to try.
Mon 19 Jul | David Gillespie (CTO - 80-20) | ... without any bias whatsoever ;) , if you really like doing what Lookout did and you really like its intense Outlook integration and even want to take that further into every Office toolbar ... then you could try out the granddaddy of them all (since 1999) .... 80-20 Retriever (PC Mag's Editors choice) .... info here: http://www.80-20.com/products/personal_email_search.asp
Mon 19 Jul | christopher (baus.net) | Hey Joel, Microsoft certainly CAN release software that is developed under Apache. They have done this in the past. The orginal TCP/IP stack in NT is based on BSD which is Open Source. The Apache license is a derivative of BSD. Or help->about in IE Based on NCSA Mosaic. NCSA Mosaic(TM); was developed at the National Center for Supercomputing Applications at the University of Illinois at Urbana-Champaign. Apache doesn't require that source modifications be released like GPL. It only requires an acknowledgement.
Mon 19 Jul | Rohan Verghese | MS probably picked up Lookout Software for the employees and maybe some IP. They probably saw that Lookout was based on open source and decided to pull it. They'll probably run it by their lawyers, and if their lawyers give the okay, they'll put it back up or integrate it into Outlook. After all, as pointed out, MS does use BSD-license software. I think they're just being a bit cautious, rather than malicious or stupid.
Mon 19 Jul | matt | I'll try to say this in the politest possible way, but may fail miserably. You'd think that someone with the interest that Joel has in software and the software industry would have better sense than to add those license claims to his entry. He should have known that a) Apache license is a more complex derivative of BSD licenses, b) the Apache license does allow derivatives to be closed source as long as the copyright notice is maintained (aren't there closed source implementations of Apache httpd?), and c) MS already includes BSD licensed code in their products and possibly others. Instead he's read the first comment about licenses from an open source clown and reiterated those claims in his entry. (Probably a GPL clown given his insistence that open source products can not be used in closed source derivatives) Microsoft might have some other concern about the license, but it's certainly not that they can't distribute the application without source.
Tue 20 Jul | Mike Belshe | Since we pulled it, people talk about Lookout as though it could have buttered your bread for you. While I'm happy to be the beneficiary of such kind words, I wonder if Lookout is being glorified for the sole purpose of beating someone else up? Love this thread.
Tue 20 Jul | christopher (baus.net) | This brings up a whole other point. I think there is an advantage to be had by ISVs such as Lookout that integrate open source into commercial applications. ESR thinks that this will result in failure (ie the OpenSource projects will beat you). I disagree. I think the result is one-uping the competition with fewer resources. BTW, Unix services for Windows certainly contains BSD code: http://www.microsoft.com/windows/sfu/default.asp As far as I can tell it is a straight BSD port to Microsoft's HAL.
Tue 20 Jul | anon | So Mike, Whats the deal with Lookout and Microsoft? Give us the inside scoop :)
Tue 20 Jul | . | Mike's got a retirment plan? Pretty good reason to anything under the sun, imo.
Tue 20 Jul | RichB | Did the 'version.xml' file always say the following, or is this new since the aquisition? Lookout from Microsoft. No more tell-a-friend reminders; new advanced search UI.
Tue 20 Jul | mb | Mike: It's pretty simple. Your company made a pretty cool piece of software. No it didn't butter bread, and it had competitors. Then you got bought out. (Congratulations!). Then you released a new version, but on the same day the product disapeared and was replaced with weasel text from Waggener Edstrom. Now there's lots of valid reasons why this might have happened, but don't be surprised when people speculate and dream up crazy ideas. Especially since it's actually quite common across many industries that the dominant player with a mediocre product buys out an upstart and then kills off the upstart, leaving only the mediocrity. Which is always frustrating to the fans of the upstart.
Tue 20 Jul | non | Steve and muppet should hookup. Let these malcontents attempt to procreate. While they're working it out they at least won't be around a keyboard. Sathyaish is worlds better than these two. At least his crap is positive crap, or at least non-negative crap.
Tue 20 Jul | Mike Belshe | What I can say is that it was very important to us at Lookout and also to the guys at Microsoft that the existing users didn't get left in the dark. For this reason, all existing users got free copies of a new version that removed all nagware from the product, added a couple of features, and they can use it as long as they like. We didn't take it away from them. So, for the 'fans of the upstart' - you should still have a perfectly functioning lookout. And when there is new stuff available, you'll get that too. It is true, obviously, that new users aren't being picked up right now. We made that decision because we thought it made the most sense. I apologize to all those folks that wished they had gotten Lookout earlier; if so, you'd now have a free copy. But, don't feel blue, if it hadn't been for the press release last week about this whole thing, you probably wouldn't know about little Lookout anyway :-) (I know thats not much consolation!) And for me and Eric personally, we'd feel pretty bad if we thought users weren't ever going to get anything in the future. We're both builders - we like to see new stuff (especially that which we've poured so much of our souls into) get pushed out. Its unlikely either of us would sell if we thought the purpose was to make us go away. You've probably seen the quotes from both of us that this is an opportunity to distribute much more widely, not less. Regarding the 'Version.xml' - that particular comment was new, but the comment field has always existed... Each release has a small comment that shows up in a popup window when the upgrade is available. We wanted users to get a sense of what they were getting before they clicked 'yes'. All this said, I do hear you about how its a disappointment to have the downloads down. I feel it a little too - I have pride in that Lookout thing, of course! But, disagree or not, it wasn't without a lot of thought, and it wasn't Microsoft 'killing the little guy' or ignoring their users. To the contrary, its Microsoft trying to listen to their customers and get started on some very needed new stuff. For a period of time, it does leave a gap. Good things come to those who wait? or A bird in the hand is worth two in the bush? :-)
Tue 20 Jul | Thomas Pluempe | 'Update: They figured it out on the discussion group. Lookout is using an open-source component for searching, which Microsoft can't redistribute.' --> http://www.joelonsoftware.com/items/2004/07/19.html What do you mean? For all I know the Apache licence does allow redistribution.
Tue 20 Jul | Steve Jones (UK) | Thanks for the personal comments 'non' and '.', it's always nice to be appreciated ;-) Actually, I wasn't trying to be controversial or negative in asking my question. I genuinely didn't get the point, that's all. And for the record, just because not everyone agrees with everything I say, doesn't mean I'm always negative. In fact, I see myself as a very positive person. Okay, so I do sometimes point out holes in people's logic, or problems with their website ('g'), but that is not intended to be negative. It is intended to be helpful, although sometimes the recipient's ego is too large to allow it to be accepted in the manner it was offered. When I pointed out a minor problem with the www.microsoft.com home page do you think they questioned my mental state and told me not to be a perfectionist ?
Tue 20 Jul | Daniel Daranas | For some reason, I don't use third party tools. I like great products, but I don't like the philosophy of third party tools altogether. Will they be compatible when the next update of the product comes out? Won't they break anything? Do I really need them at all? And who wants to use Microsoft Outlook anyway? It's never been a very good product.
Tue 20 Jul | bobby | Don't Microsoft just want to buy the name "Lookout" and don't really care about the technology etc.
Tue 20 Jul | Dennis Forbes | I don't know specifically what Joel was implying in his update, but I think it is fair to say that Microsoft would shut it down because it is largely (the seemingly innovative portion) based upon open source- -How would it looking in the coming war if Microsoft's search strategy was presumed to be backed by a Sourceforge project? This would be presumed to be a major weakness. -What unique technological advantage does it provide Microsoft, given that anyone can download it and implement it in their product.
Tue 20 Jul | Ryan | I put Linux and Open Source into both google and MSN, and the results were more or less identical--with a little advertising above the results in MSN. The best Outlook search tool (in my opinion), is X1. www.x1.com Rocks
Tue 20 Jul | matt | RE: Dennis Forbes 1. Inclusion of Sourceforge based technology would look no worse than BSD, Mosaic, Indeo, Java etc technology 2. Microsoft rarely relies on technological advantage, preferring to rely on ease of use for end users. They more often than not get that right, and part of there success even on the server (IIS, Windows Server itself, Exchange, ISA Server) is based on that. In short, Microsoft hasn't been shy about using open source products before and it's not as compelling an argument to make as some people here seem to believe. They might be trying to replace Lucene.NET with their own technology(and they've had full text search for years now), but it's a real stretch to state they are with the authority that some do here. They might have pulled it to work on the interface, distribute it through their own channels or do a security audit the code for all we know. Anything we say on this forum is speculation, and rabbiting on about open source licenses (especially a fairly unrestricted one) borders on conspiracy theory.
Tue 20 Jul | Dennis Forbes | Firstly, to respond to your final point: 'Anything we say on this forum is speculation, and rabbiting on about open source licenses (especially a fairly unrestricted one) borders on conspiracy theory.' Of course we're speculating. However if you think I'm `rabbiting' about the open source licenses, you've painfully missed the point. My point was that the search technology of the product in question is unrelated open source (it's not even that the product itself is open source, but rather that the core of it uses a separate open source project), so from a search technology perspective they've effectively acquired nothing. It's like buying a company that sells air or the colour blue. '1. Inclusion of Sourceforge based technology would look no worse than BSD, Mosaic, Indeo, Java etc technology' Indeo and Java were both added via technology partnerships - they're hardly open source. BSD and Mosaic are particularly humorous because Microsoft has endured endless black-eyes over these two points (even when people misunderstand what a 'BSD socket' is). Joe Blow building a product around a Sourceforge project can get away with it, but I _GUARANTEE_ you that Microsoft would endure endless harping from its critics if they did (Mosaic has about as much to do with IE 6 as Visipad does, but it's amazing how frequently that one is rehashed). We're not talking about notepad v2.0 here, we're talking about search, and if you're missed the importance of search in the battle royale over the next couple of years then this won't be clear.
Tue 20 Jul | Kostas Triantafillou | Somebody mentioned Lookout in collision course with another Microsoft technology available in the future and I think he is right ( and I also think that it was Dennis Forbes). So, we have Outlook and Word. These two applications with massive penetration on the desktop. Microsoft plans to change the way the file system is organized and searched and spends tons of money to develop Longhorn. The new file system WinFS would do most of the job (with some metadata) and luckily for Microsoft anyone needing an enhanced search facility would upgrade to some derivative of Longhorn. Now let's see the other scenario. Lookout with massive penetration on the desktop everyone loving to use it, Longhorn arrives and nobody wants to upgrade. Microsoft might end up losing a lot of money. Take a peek at what Apple is doing with its 'Tiger'. Not changing the filesystem just using search technology with adaptors for different content sources and types. I hate to make predictions but I think Microsoft is going to buy all companies with similar activities and remove their products from the market. But surely nothing stops anyone from building an indexing engine on Outlook.
Tue 20 Jul | christopher (baus.net) | > They more often than not get that right, and part of there success even on the server I totally disagree with that statement.
Tue 20 Jul | Peter Horadan | I think everyone is missing it. Search is moving to the desktop. Both Google and MSN Search (and every other search firm) realize that the next step in search is to take the Google experience and extend it to searching your own PC. X1 does the desktop search pretty well today (although X1's UI needs plenty of work). Google already has a skunkworks to do what X1 does. It's not hard to imagine an experience where you type your search into Google, and one more tab along the top (images, news, etc) is 'my pc'. Microsoft needs to match, which explains why Lookout went to the MSN (Search) group. Be on the lookout for Lookout-like functionality to show up as part of MSN Search in the future. - Pete PS: Just wanted to get in another jab at Outlook for still using GREP as your search technology in 2004. I guess you could chock it up to 'leaving room for ISVs to expand the platform.' ;)
Tue 20 Jul | Dennis Forbes | 'Microsoft needs to match, which explains why Lookout went to the MSN (Search) group.' Microsoft has had desktop search technology for a long, long time now (they first distributed it with Office, recall findfast.exe and find.exe), and there is a long list of software products are indexing/searching on your desktop. In the corporate sphere Google has sold a search appliance for at least a couple of years now. Anyway, as mentioned the search algorithms in Lookout are stock, fairly simple search algorithms from an open source product. There is nothing there for Microsoft to learn from, and even if there was they could have just hit Sourceforge. I'm fairly sure Microsoft is world's beyond the simple indexing in Lookout (see full-text indexing in SQL Server).
Tue 20 Jul | Peter Horadan | Sure, and there were the search features built into Platinum. Ok, but Microsoft still didn't have anything that really worked or that anyone used. Lookout worked ...
Tue 20 Jul | David Gillespie | 'Microsoft still didn't have anything that really worked ...' There is this little gem at Microsoft Research ... slideware: http://www2.cs.washington.edu/nsf2003/presentations/Dumais-SIS-IDMSept2003.ppt or for the more academically inclined: http://research.microsoft.com/~sdumais/SISCore-SIGIR2003-Final.pdf
Tue 20 Jul | Eduardo | I think they add lookout to the MSN team because they can bring a product faster than waiting for the next Office service pack.
Tue 20 Jul | matt | 'Joe Blow building a product around a Sourceforge project can get away with it, but I _GUARANTEE_ you that Microsoft would endure endless harping from its critics if they did (Mosaic has about as much to do with IE 6 as Visipad does, but it's amazing how frequently that one is rehashed). We're not talking about notepad v2.0 here, we're talking about search, and if you're missed the importance of search in the battle royale over the next couple of years then this won't be clear.' Microsoft endure endless harping from it's critics any way. Why would the reaction be that much worse than the one Apple got when it used various open source products in Mac OSX and Safari? The answer is it wouldn't be from MS users, only from those with a pre-existing vendetta against MS (those tend to be the more rabid open source, especially GPL, advocates)
Tue 20 Jul | matt | And to the (forgotten) point about search. It might be the battle royale over the next few years, but MS have plenty of their own technology already. Admittedly they're not up to google in the 4 billion web page stakes but they have some very good desktop and corporate database search technology. If we look at Microsoft's current products we find: 1) They do have search technology as good as Lookout's 2) They do use open source when the license permits them to, as the Apache license certainly does Neither fact support the arguments that they've pulled the product for either reason.
Tue 20 Jul | Bloomba User | Why use Outlook at all?

Bloomba

Regards.

Wed 21 Jul | srw | I don't know if MSFT decided not to integrate Lookout into Outlook Express because of the open source licence or not, but it is certainly the case that the world has changed over the last couple of years. The largest companies such as MSFT and IBM pay more attention to where source is coming from these days to the point of reviewing those decisions with partners. For example, if you had a company who became part of the VSIP program at MSFT and had used a GPL piece of code, that might imply that all of Visual Studio would become GPL'd. For many different reasons, large companies have become more worried about this. The other side of the coin is that some companies may restrict your ability to do sponsored work for that compnay on an open source project if you've seen or worked on the closed source counterpart recently. I know that the Apache licence isn't GPL, but I know that some of the same concerns exist in the mind of lawyers.
Wed 21 Jul | mr KK | Btw in my old linux box (i use primarily winxp and webmail now) all email was stored as plain ascii; grepping through it was as simple and as fast as it gets, no need for fancy special utilities..
Wed 21 Jul | Andy Wintersteiger | Maybe you want to give 'Synopsis' ( http://www.mind-breeze.com/de/buytry.html ) a try - it's more than Lookout - it's a whole personal knowledge management suite - in it's kernel it's simply a local search engine (we did fully on our own, and i think search is hard). It's completely written in .net and it sells from €29.99 With our home edition you can search local files, e-mails and notes from outlook, rss-feeds and your own memos you made with it. you can even publish them again as your own weblog including rss. Well there's only one drop of bitterness right now: at moment we only ship german versions, but hey, it's really intuitive to use. If anybody want's I'll provide a short english manual. We ship the next version in October with dramatic performance improvements and in english, spanish and french. www.mind-breeze.com
Wed 21 Jul | In the future, everything will be free | The only bit that is a little confusing is why was Lookout pulled. However I imagine that even if Lookout had remained independant they would have charged for it eventually. Now Microsoft have bought them, I guess the Lookout technology will become part of some product that Microsoft will charge for in the future. So it would make sense to stop giving it away for free today.... right?
Wed 21 Jul | Rick Hull | -- QUOTE -- I don't have a deep philosophy about open-source, but if an open-source project comes up with a really killer implementation, and a commercial company would be forbidden to incorporate it into an app where it fits and is needed -- well, how exactly is that making the world a better place? Lisa Monday, July 19, 2004 -- ENDQUOTE -- In the case of the GPL, it is a license for anybody to do just about anything with the code. The only constraint is that IF you decide to distribute the code or a derivative work, then you MUST license the distributed work under the GPL, thereby granting everyone downstream the same rights that you enjoyed. Nobody is forbidden to do anything. If you take from the GPL pot, you are expected to put back into it. At least it's there as an option. Often, open source software is higher quality because MS is constrained by budgets and man-hours. Some things go unattended as resources get stretched. Of course, many if not most open source projects are stretched for the same resources, but there is no upper bound in the open source world, so the major projects are formidable.
Wed 21 Jul | Rick Hull | -- QUOTE -- For example, if you had a company who became part of the VSIP program at MSFT and had used a GPL piece of code, that might imply that all of Visual Studio would become GPL'd. For many different reasons, large companies have become more worried about this. srw Wednesday, July 21, 2004 -- ENDQUOTE -- Actually, if GPL'd code were inadvertently distributed as part of a closed source project, then the closed source project would have violated the GPL. This does not mean that the closed source project must be GPL'd. It means that the closed source project no longer has a license to use the GPL'd code. As soon as this information is known to the closed source project, it would have to stop distributing its product under a closed source license. Non-GPL'd distribution could continue when the GPL'd code is replaced by non-GPL'd code.
Wed 21 Jul | mishoo | I'd never need a mail indexer unless I'd use Outlook (happily I don't). Any other mail client I've seen has decent mail indexing (i.e. Evolution shows instant results searching through thousands of messages; even VM/Emacs is acceptably fast). So OutLook is the primary reason why applications like LookOut exist. The same can be said about email antivirus programs--would you really need one if you wouldn't use OutLook? And let's remember--Microsoft acquired RAV which was a very good antivirus and it's no longer shipped thereafter. Same question: why? It was a good program that any Windows user could have benefit, why shutting it down? Maybe Microsoft just can't afford to let others fix their stuff up...
Wed 21 Jul | Tialaramex | Ignore the rhetoric from people like Gates and Ballmer who don't actually create products. It's not aimed at technical people, it's aimed at PHBs and, more importantly, shareholders. Microsoft uses, modifies, and sells/ distributes the GNU toolchain and other utilities licensed under the GNU GPL and has done for quite some time. They obey all the terms of the license as far as anyone can see, and are good Open Source citizens in that they make the source code available on their FTP site to non-customers even though they could legally dodge that. With future versions of Windows Server the GNU toolchain will probably be included as an optional component, under the Services for Unix banner. At that point Microsoft is no different from any number of UNIX vendors who include the GNU code. Just another distributor for the Free Software Foundation.
Thu 22 Jul | Phil Greenway | Microsoft don't want you to use Outlook on it's own. They want you to use it with Exchange and rely on the searching in Exchange. Using Outlook standalone - the searching is pointless as you say, but I find that when using it with Exchange (and even better when running on a Terminal Server) that searching is quick.
Thu 22 Jul | Devon Grey | I don't agree that the open-source thing is the reason why microsoft is holding this back. Search is easy. Any competent CS grad could write a replacement search structure for this thing, based on TST or whatever. Microsoft certainly could emulate the core functionality of this program with a team of say, three people working for about six months (caution: figures made up on the spur of the moment). I suspect that either microsoft doesn't *want* this functionality available for outlook (because it doesn't fit their overall vision of how outlook is supposed to fit into office/exchange/windows/whatever prepackaged, one-size-fits-nobody user 'experience' they're trying to push this microsecond), or it's an 'HR acquisition', and they just couldn't care less about the actual software.
Thu 22 Jul | John Gardner | Another outlook search option is Neo Pro: http://www.caelo.com/products/index.php , which i use DAILY. I recently had to reinstall some stuff on xp and lost my key, so i had to go a whole day without it. that sucked! Since it sits on top of outlook, you still have all of outlooks features, but it indexes and does all that stuff everyone wants. It isn't free though, so all of you cheapskates will have to continue using something else :)
Thu 22 Jul | Ilya Haykinson | Alright, you conspiracy theorists. Prepare to be debunked :) Download Lookout from Microsoft directly. http://www.microsoft.com/downloads/details.aspx?familyid=09b835ee-16e5-4961-91b8-2200ba31ea37&displaylang=en
Fri 23 Jul | Annon | I ditched outlook 2003 for Bloomba (http://www.statalabs.com) and haven't looked back. Can't imagine how I survived so long without it. It is gmail on your machine check it out. Awesome. Plus it integrates a RSS newsfeed aggregator. Cheers
Fri 23 Jul | Craig Randall | http://craigrandall.home.comcast.net/archives/2004/07/index.htm#040723b Here I say thanks to Joel and everyone else here for motivating the download link Microsoft now has for Lookout (already listed above). My contribution to this discussion is to share how to configure Lookout to run for multiple Outlook/Windows users on a single machine. Cheers!
Sat 24 Jul | Chris Wionzek | Well, that download is already gone. Amazing... I don't personally use Outlook (too many non-useful features for purist email-users like me) but I can understand the frustration of having a useful plugin stolen like this.
Philip and Alex's Guide to Web Publishing | Fri 23 Jul | Mtl_Dev
re: http://philip.greenspun.com/panda/index.html I was fascinated by this account of Phils journey into create an ecommerce website. Still, some of the info in there is pretty dated, e.g. creating a site using Netscape server. Does anyone know if there exist a similar account, using todays technologies?
Fri 23 Jul | MT Heart | Try this. http://philip.greenspun.com/seia/
Fri 23 Jul | Li-fan Chen | Well a modern treatment would be about the same. Except for some simplifications: * Back in the days, Philip & Co had smart clients who just weren't really clued in to the complexity of e-com. So Philip was the entire IT Dept Savvy With All This Web Stuff stack for them so all the clients saw was a stack of contract and a stack of email requests/replies. That meant they took care of everything and had a lot more to bill and manage than today's web master or i.t. outsourcing firm. You aren't going to find that kind of companies today, there are only so many brick and morter stores completely clueless about some the basic leverages of the net. So a modern book would probably spend some time talking about edge technologies emerging and connecting these technologies to problems still affecting current companies. * They didn't have ASP.Net, Windows 2003, SQL Server 2000 and Commerce Server back then. They had HP/UX, Tcl, AOLServer and Oracle. So they get to do things 5000 times more efficiently than you would do it today. Giving them a lot of time to start universities, drive fast cars, make up for all the things we take for granted today (like analytics and warehousing that comes free in SS, the session management, security, html manage, and event model of ASP.Net, the analytics, ecommerce and caching of ASP of Commerce Server). So a modern book would just talk about how to borrow tons of money from the bank so you can start a Microsoft Partner shop. * Philips had the right network and right talent pool. We don't. So I think a lot of treatment of a modern book would be on how to make up for that inescapable gap.
MSSQL Procedure Request | Fri 23 Jul | Wayne
I am in need of a stored procedure that allows me to schedule a one-step, one-time only SQL Server Agent job and checks if the SQL Server Agent is running and starts it if its not, on the target server. Do any of you SQL gurus know of something like this? Basically, I would like the call to look something like this: exec spScheduleJob @statement=update tbl set fld=0, @time=7/22/2004 11:59 PM, @checkService=1 Thanks!
Fri 23 Jul | Formerly someone else | Homework?
Fri 23 Jul | Wayne | Well, I'm working at home today but no, this is not homework. The reason I need this is because often times I need to modify the database with a simple DDL statement, but I can't do it while people are working and it would save me many steps to create it manually. Anyway, I found a good way to get the code to schedule the job, basically you manually create what you want in Enterprise Manager and then right-click the job and click Generate SQL Script under All Tasks. This gave me the SQL that I needed to create the job, and I can parameterize it and make it a procedure. Now all I need is a way to see if SQL Server Agent is running from Transact-SQL.
Fri 23 Jul | sir_flexalot | google?
Fri 23 Jul | RH | On approach: Figure out how, from the command line, to see if the service is running. You want a command that will never prompt you, just return some sort of text. There is probably something in the NT resource kit. Next, create a table with with two columns, and int and a varchar(256). Set the int column to be an identity column. Then run: INSERT tableyoucreated(varcharcolumnname) EXEC master..xp_cmdshell 'cmd to test service running' You an now query the table to see the results from the command. The int column that is an identity will let you make sure of the sequence. To start the service you should be able to use: EXEC master..xp_cmdshell 'NET START servicename' Good luck!
Fri 23 Jul | Wayne | OK RH, thank you. I did google for this, but there are so many results to sift through, I thought someone might know. I ended up just doing it myself (as usual :)
Fri 23 Jul | Espen Antonsen | you might find some good info at http://www.sqlteam.com ---- http://sleepyhead81.blogspot.com
Larry Osterman reminisces | Fri 23 Jul | Sathyaish Chakravarthy
A blog entry from Larry Osterman about his interview at Microsoft 20 years back that was convened by Steve Ballmer. http://blogs.msdn.com/larryosterman/archive/2004/07/22/191612.aspx
Fri 23 Jul | Simon Lucy | Each to their own but I think I'd have refused the offer of playing the game on basic principles similar to 'You don't play with their deck'. But then this is common sense rather than understanding in any way the mathematical rules behind partitioning.
Fri 23 Jul | robtwister | Interviews in general are tough, some are fair, some are not, most are subjective and dumb luck. Best thing to do is be as prepared as possible, and project your true self, the rest is close to a crapshoot. Important thing is to not let unsuccessful interviews affect your ego too much.
A keyboard curious question | Fri 23 Jul | S.C.
I have probably never used the Print Screen / Sys Rq and the Scroll Lock Keys. What are they for? And do applications still use them? Sometimes they are like two strangers among friends.
Fri 23 Jul | James U-S | Print screen puts a picture of the screen on the clipboard for you to use as a screenshot. I believe Scroll Lock was used in the old days of DOS when you could pause a scrolling eg directory list which would ordinarily scroll straight past you on the screen, and if it was long you wouldn't be able to read it all. Could be wrong on that though. And I have no idea what Sys Rq was for! I recently came across a program that reassigns keys. So for those and other similarly useless keys, I reassigned them to more useful things. So, my right-hand windows key (the one that brings up the context menu) now moves to the next track in winamp, etc. URL is http://www.randyrants.com/rr/sharpkeys.asp if anyone is interested.
Fri 23 Jul | Ged Byrne | Scroll lock is still handy in Excel. If you hit scroll lock and then use the cursor key's scroll the whole sheet rather than just moving the cursor.
Fri 23 Jul | a cynic writes... | Helpfully, alt - Print Screen does a screenshot of the active window (ideal for bug reports).
Fri 23 Jul | A.T. | In DOS, PrtScrn dumped the contents of the screen directly to the printer. In many spreadsheets, Scroll lock changed from moving the cursor around a fixed screen to moving the screen around a fixed cursor. I've heard that SysRq was something to do with IBM mainframes.
Fri 23 Jul | Harvey Pengwyn | Scroll lock is also useful to scroll round SVG pictures in Adobe's awful SVG plugin
Fri 23 Jul | a cynic writes... | Funnily enough a charity I used to work for had a research director who took against the caps lock key in no uncertain fashion. Being an old lefty (well an old Stalinist, who thought that Brezhnev was a sell out) he took direct action and prized the thing out before e-mailing everyone a how-to.
Fri 23 Jul | KeY | http://www.fact-index.com/s/sy/sysrq.html
Fri 23 Jul | Brian | On IBM AS/400s, the SysRq function is used to bring up a menu that operates outside of your normal mainframe job.  In our environment it is most often used to spawn a second, parallel terminal session from the same physical terminal.  The user can then toggle between the two sessions.
Fri 23 Jul | Tom H | 'So for those and other similarly useless keys, I reassigned them to more useful things.' The first key to reassign is Caps Lock. I hate hitting that one by mistake; make it the same as lEFT sHIFT.
Fri 23 Jul | muppet | I like my caps lock just fine. It's not my problem if you're a clumsy typist. Typing out all my constants in code would be an enormous PITA w/o caps lock.
Fri 23 Jul | Some Ranting Idiot | As someone else said, scroll lock is used in many apps such as Excel to scroll the whole window with the arrow keys instead of just moving the cursor location. Otherwise, to scroll the window with the keyboard you'd first have to move the cursor all the way to the edge and only then would further presses scroll the window. Also, it keeps your cursor position. It's actually really handy if you want stay where you are but see a little more data on one side. I don't think scroll lock was used to pause a scrolling text screen in DOS. Pause was the key for that. The idea for SysRq was that it would be this super key that bypasses the keyboard cue and directly calls the operating system. I remember specifically reading back in the stone age that when we got multitasking operating systems it would be used to bring up things like task management functions that could kill locked-up processes. But when the multitasking operating systems came, for some reason reason SysRq was never summoned to this duty that it had been patiently waiting to perform for so long. Probably yet another case of planning ahead but overlooking something important.
Fri 23 Jul | EAW | Scroll Lock is also a great 'is the computer awake?' light. It toggles the LED, showing activity, but you can be confident that it won't adversely affect a program. I use it to bring the system back from Standby, as the Any key, or to determine whether a frozen machine is just thinking hard (it's frozen but the LED will still toggle), or crashed (no LED toggle).
Fri 23 Jul | jdm | Gadwin Systems has a freeware ScreenShot grabber that can be activated by just about any otherwise useless key, including prt scr/sysrq: http://www.gadwin.com/printscreen/?prnscr
Fri 23 Jul | muppet | Double tapping the scroll lock key on my keyboard activates my KVM switch.
Fri 23 Jul | derek | We need to add keyboard keys to toggle Bold, Italics, and Underline. And a pair of keys (or a wheel or something) to switch windows (replacing Alt-Tab).
Fri 23 Jul | kc | Yeah, my KVM is double Scroll Lock activated too.
Fri 23 Jul | JWA | In WinXP, the accessibility options have a setting where a sound is played whenever you turn on or off Caps Lock and Num Lock. It's literally the first thing I do to a new XP install. Check it out. - And I still don't understand why the Caps Lock key doesn't toggle the case of selected text in Word and other word processing programs.
Fri 23 Jul | mb | muppet-- there's this thing called auto-complete (or intellisense). who needs to try and match/remember the case of some token? printscreen- alt-printscreen is also useful in windows, it'll just capture the active window instead of the entire screen. capslock- i would find it intensly strange if capslock, or shift, or other key *modifiers* had an effect on data (e.g. changing thecase). then again, i learned to type on a typewriter, and they had shift lock which actually shifted the carriage and locked it.
Fri 23 Jul | muppet | +++muppet-- there's this thing called auto-complete (or intellisense). who needs to try and match/remember the case of some token?+++ That's for people who use smart IDE's to code. I do not. Autocomplete is a bug factory, for all that it's supposed to be the opposite.
Fri 23 Jul | JD | muppet, I thought we'd established that you *do* use a smart editor/IDE. Big Time! The auto-completin'-spell-checkin'-syntax-highligthin'- bracket-matchin'-project-makin'-autocompletin'-autocorrectin'- unlimited-undoin'-scriptin'-templatin'-auto-indentin'-smart-pastin'- error-parsin' editor that is.... Syn! Just that you turn everything off 'cos you're too smart. Right! :-)
Politics in a startup | Fri 23 Jul | anonymous
I recently started working in a startup. Were small, just went national, and VC funded. There are about 40 corporate employees. Understandably, things are very loose and chaotic, as youd expect in a startup. What Im utterly shocked at is the amount of politics I seem to have walked in on. Marketing is constantly fighting with tech to design features that will bring in revenue. Marketing: We need business! We need these features Tech: We already designed xxxx and it works fine, were also swamped so we cant devote time to your desires. Theres a lot of NIH syndrome and a lot of were engineers, youre marketing feelings going around. Meanwhile, business is not nearly where it should be--but this is hard to notice because there are almost NO tracking mechanisms in place to judge sales, conversions, etc. I love startups, dont get me wrong. And there is a lot to be said for the chaotic nature of a startup, which lets me do what I want and push it through. But that last mile, when youre trying to improve a process that will ultimately improve the company and its bottom line...its unbelievable how much politics influences moving forward.
Fri 23 Jul | James U-S | It sounds a lot like your management should be getting a better handle on what is going on. The most crucial aspect of any business is a good management team IMO, especially a small business, and if they're not tracking sales, or seeing that the programmers make the features that would bring in the most new sales, then political issues are inevitable.
Fri 23 Jul | Craig | Dont let marketing talk to tech. Marketing should only talk to the project managers and let them fight the fights. Of course you need a project manager who understands software development or else it wont help at all.
Fri 23 Jul | Simon Lucy | Errr, you just have too many people. If all 40 are involved in making and implementing decisions work out the combinatorial mechanics in that. Startups require flexibility and a lack of borders between tasks and an overarching view of the goal in hand. With 40 people you're going to have a lot of conflicting agendas.
Fri 23 Jul | EAW | In my experience, 40 people is critical mass for really hairy politics to appear. It's enough people that there can be three or more substantial factions (greater than 10 people each), and enough wildcards and civilians to get in the way. As someone said above, good management is critical to keeping it all running smoothly. Remember, everyone wants to feel important.
Fri 23 Jul | David Clayworth | Forming, Storming, Norming, Performing. You appear to be at stage 2.  Unless of course chaos is your norm, in which case you are at stage 3.
Fri 23 Jul | BW | Is upper management gun shy to fire people?  If so it may stay bad or get worse until eventually the VCs fire upper management.  Been there, done that.  I'm a firm believer in the power of strategically replacing people, the sooner the better.
Fri 23 Jul | old_timer | It could be the VCs fault. He wants his payback in a big hurry, so he no doubt hand picked the marketing team and your technical management probably had no say in it. The dichotomy is that the VC wants to make a fast buck but the founders have a long-term dream. These two ideals are diametrically opposed. So the VC gets Mkt guys who tell him that it will take this and that feature to sell a lot in a short time and time to market is critical. All without regard to engineering feasibility or programmer productivity. Then the costs get out of control and his fast buck starts to go with it. He then blames engineering for not delivering and tries to replace them with the people who tell him what he wants to hear. The founders then revolt because the VC is ruining their dream and they make a counter plan for both engineering and marketing which pulls everyone on two directions. Keep your eyes on where the red swingline stapler goes.
Fri 23 Jul | Brent | EAW has an interesting insight there: it concurs with my experience that around 35-45 people, the character of a company totally changes.
Possible to view .ASP pages? | Thu 22 Jul | Mr. Analogy
Is it possible to view the code in an ASP page? (I seem to remember that it is). Im working on a web-based activation key system. I was considering having it done in .asp, but I think someone could View the Source. I assume a CGI script would be more secure?
Thu 22 Jul | Sassy | huh? No.
Thu 22 Jul | Li-fan Chen | Client side code are, server side code aren't. VBScript that gets interpreted by the client side (the browser) will be visible.
Thu 22 Jul | as | It used to be possible, but probably isn't on an up-to-date system. The following is from http://philip.greenspun.com/panda/server-programming.html Fortunately, Microsoft set up Windows/IIS/ASP back in the mid-1990s such that if you were curious to see the source code behind http://foobar.com/yow.asp, you had only to type 'http://foobar.com/yow.asp.' (note the trailing period) into your browser and the foreign server would deliver the source code right to your desktop. This was a great convenience for people trying to learn ASP; however, it presented something of a security problem for Web publishers, because they would often have their database or system administration passwords in the source code. It seems that Microsoft's intention was not to make public all of its customers' source code and hence they eventually released a security patch to change this behavior. However, a few months later people learned that requesting 'http://foobar.com/yow.asp::$DATA' (note the trailing '::$DATA') would also get them the source code. A nice collection of ASP examples at http://philip.greenspun.com/books/panda/aspharvest/ was harvested in just a couple of hours of surfing one night in July 1998.
Fri 23 Jul | Mr.Fancypants | You make it sound like Microsoft put the '.' thing in there on purpose when it was obviously a bug that was never intended.
Fri 23 Jul | as | 'You make it sound like Microsoft put the '.' thing in there on purpose when it was obviously a bug that was never intended.' I'm not sure if Philip Greenspun reads this board. Perhaps you should mail him directly with your comments.
Fri 23 Jul | Andrew Cherry | One thing I would advise is not storing things like passwords and config in .inc files - if someone types in the address of these, most servers will serve them as plain text... Just stick with .asp If you want to be classic(ish) use name.inc.asp
Fri 23 Jul | Peter | Pick up a couple of books on hacking. Read them. They will give you enough ideas to mitigate things like adding ::$DATA to the end of a url and why that worked in the first place (you had read permissions set wrong on the directory, and ::$DATA is the explicit name for the default "stream" in an ntfs file).
Fri 23 Jul | matt | No, you can't view the source of an ASP script over the web, unless the server's badly misconfigured. It runs the script and the output gets sent to the browser, not the source code. What did you think happened, it runs the script and then sends the source code to the browser? what would be the point of running it in that case? Or maybe you were confusing it with some kind of client-side VBScript thing?
Fri 23 Jul | mb | or as people mention above, there are ways to get the asp pages. they're just supposed to all be disabled. (these mechanisms are typically used by toos like frontpage.)
Fri 23 Jul | Espen Antonsen | your script is only as secure as your server is set up to be. i don't think there are any nasty bugs with IIS 5 or 6 that will show the source code. IIS 4 did have a bug where you could view the source code, so if you are using Windows NT server then patch it - but you should do that anyway.
Confidentiality/Non-Compete III | Thu 22 Jul | Anony Moose
Part 1 http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=155610 Part 2 http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=158933 Ive been pushing back on this agreement for a long time & have been reading up on my rights. He keeps trying to get my comments on the agreement so he can pretend to revise it and ask me to sign it again. Every time I do I get caught up either in hating the agreement so my comments all end up derogatory and inflammatory, or reading up on contract law. Either way, I dont bring in the revisions the next day (lazy me, I know). He told me Im taking this thing too seriously, and anywhere I go Ill be asked to sign the same agreement. I read up, approximately 30% of employers are asking their employees to sign such an agreement now, and 50% are asking their employees to sign a confidentiality agreement. Hes also given me 3 different reasons now for wanting me to sign this contract, and I told him so. He assures me that the final reason he gave me is the real reason, but Im still waiting for reason 4. Some intersting information turned up on the web at these websites: A 1 year old NY State Supreme Court Case that threw out a non-compete because they couldnt prove the employee was using trade secrets at his new job. http://www.nycourts.gov/comdiv/Law%20Report%20Files/October%202003/East%20Coast.htm An article in Forbes magazine defending non-competes: http://www.keepmedia.com/Register.do?oliID=225 (free registration required) I disagree with this article because a non-compete can also cause your employeer to pay you less over time, because its harder for you to jump ship operate in a free market & earn free market wages. Deciphering the Nonsense In Noncompete Agreements http://www.careerjournal.com/jobhunting/jungle/20040609-jungle.html (from the WSJ) The FAQ at MyEmploymentLawyer.com http://www.myemploymentlawyer.com/non-compete-covenant-FAQs.htm And lastly http://www.breakyournoncompete.com/ To summarize my learnings, non competes are invalid in some states, like California, and likely to be turned down in court my state (New York) if its too general, as mine is, or if the employer cant prove that Im using their trade secrets at my new job - the burden of proof is on them that Im actually damaging their business. Perhaps asking him to make the non compete more specific could make the contract more valid in court. Asking me to sign a non-compete after I started working for him could also cause it to be thrown out of court. I should be asked either prior to employment, or in exchange for extra compensation, but not as a condition of my employment once Id already joined the company. However, that doesnt prevent them from sueing me, and causing me to lose work and lose money to legal fees. Just look at the case that went to the NY supreme court! That sounds like a lot of legal fees to me. I should push back & ask for compensation during the non compete period as long as I wasnt terminated for cause, or left voluntarily, if its so important to them, they should pay me. Lots of people sign such agreements gambling that the employer would never pursue legal action, but thats a big risk & its better to push back & get an agreement thats more amenable to your needs. I definately need to talk to a lawyer experienced in employment law.
Thu 22 Jul | Dan Lisbon | You have some good links. I agree with the FAQ you posted: Q: I am in the process of negotiating a non-competition agreement. What should I ask for? A: First, you should ask to limit the agreement to that which is necessary to protect the employer. Second, if it is necessary to prevent you from working for a period of time in a highly specialized industry or occupation, ask for severance payment in the event of an involuntary termination that is not for cause. If the employer really needs this protection, it can pay for it. Q: What if the employer is not reasonable? A: Consider working elsewhere. Before you sign away your freedom to find other work, make sure that you receive fair compensation, such as training and new contacts or severance pay. If the exchange for the restriction on your right to compete is not fair, find other employment. However, you are being a bit negligent by not providing your list of complaints to the employer as he requested. I know it is frustrating, but just bit the bullet and do it. Invite a friend over for dinner and let him review it for tone. It's also unclear to be if you are working for him right now. I thought you were not, but you sound like you are. If this is something that has been an issue since you were hired though you can't really claim he is asking you to do it after your employment.
Thu 22 Jul | Dan Lisbon | Moose, I notice that you provide a link to 'breakyorcompte,com' (deliberately misspelled for reasons to be obvious). On their site, they state that by simply visiting their site, you are agreeing to a legal contract that states in part: > You are permitted to provide links to this site provided that you notify us before you activate such link by completing the comment form and in no way obscure or remove the page headers, the copyright notice, the Visitor Agreement, or any other notices herein. You also agree to discontinue linking to this site if we so notify you. By linking to them, without complying in advance with their requirements, they state you are in contractual default with them and liable for damages. Of course any legitimate attorney will tell you that that is absolute bullshi and makes a strang case for avoiding both their site with its crackpot legal advise as well as the sites of anyone recommending or linking to them, such as the faq site. I am not a lawyer and this is not legal advise.
Thu 22 Jul | Jacob Bartleby | I just don't understand why you are continuing to post on this situation. Yes, I want to see the post where you tell us what you decided and how it worked out. But you keep posting minor updates on this situation during with nothing happens. It's like Waiting for Godot. It's pretty obvious that if you are still having problems with this guy you need to stop wasting your time and get on with your life. There's nothing more to be decided, nothing more to be negotiated. Disconnect your answering machine and move on. Good luck.
Thu 22 Jul | Peter | If he wants a non-compete in a highly specialized field, I would ask for severance to cover the period you can't work. No matter what the cause of dismissal. Or, bite the bullet and tell him you don't want to sign such a thing. It sounds like he won't give up on this issue, so its time to poop or get off the pot.
Thu 22 Jul | Mr. Analogy | I always thought that an agreement was valid only if there was CONSIDERATION given to both sides. I.e., he asks you to give up a right, he should be giving YOU something, like a bonus or the above mentioned severence. I'm not a lawyer but I've seen one on TV.
Thu 22 Jul | TheGeezer | In relation to the issues you are facing, I've said it before and I'll say it again. If you're having to go through this much aggravation prior to actually working for this crowd would it not set alarm bells ringing very loudly? There must are other gigs out there that you can chase which won't make your hair fall out or cause you to lose sleep because of NDAs. Apologies if this isn't what you want to hear.
Thu 22 Jul | Phillip J. Eby | A short list of complaints you can give the guy: * You're not negotiating in good faith, so I don't see any reason to keep giving you counteroffers, any more than I'd counteroffer if you bid $1 to buy my house. Call me when you're serious about doing business. Then *walk away*. Don't call, e-mail, write, or talk to the guy again, unless he contacts you with something that shows he's serious about the deal. No other course of action is going to move this forward. So long as you show willingness to be 'reasonable', he will use your interest to wear you down, and you will eventually give in more than you mean to. (I'm assuming, of course, that you've already told him what would be a satisfactory arrangement for you, and he hasn't moved on it. If you *haven't* given him a proposal for what would satisfy you, then this is all *your* fault right now. :)
Thu 22 Jul | Norrick | I'd have walked away by now. I admire your efforts at working out an agreement you both can live with, but this looks to be going way, way too far. In my experience, when someone puts forth a significant amount of effort to lock you down, they generally have an ulterior motive - one that they want you powerless to object to. Is this the only iron you have in the fire? If not, just walk away and see if he becomes more reasonable.
Thu 22 Jul | Inside Job | It sounds like you might be on the wrong side of a power relationship. Your employer/customer sees you as an inferior and refuses to recognise your right to change things. There is only one way to fix these situations. Tell him it's over until he sorts things out and then leave. Go do something else. It sounds like he needs or wants you, so it's up to him to respect your requests. He will be astonished, but it's a way of making him understand.
Fri 23 Jul | Mr.Fancypants | My advice would be to punch this prick in the face and then take a piss on the non-compete contract.
Fri 23 Jul | Nemesis | You have to ask yourself why this is taking so long. If you both wanted this agreement it would have happened by now. For whatever reason, it hasn't happened. Back off for a while. There will be other deals, go and find them. Who knows, maybe you'll find something bigger and better. This guy is not the only show in town.
We were WRONG about SUN Microsystems | Thu 22 Jul | Karthik 
http://seattlepi.nwsource.com/business/aptech_story.asp?category=1700&slug=Earns%20Sun%20Microsystems Life would have been dull without these folks. There may not be a return to Microsoft is a menace days. But a sober, profiting SUN is good for the industry. Linux/Openoffice is growing stronger by the day and it needs Suns support via Java/OpenOffice. The death of SUN would mean the death of a lot of things. Server unit volume growth jumped 46 percent from the fourth quarter of last year, McNealy said. During that time, Sun released systems based on its new UltraSparc IV as well as Advanced Micro Devices Inc.s Opteron processor. It all appears to have come together, said Caris & Co. analyst Mark Stahlman, referring to Suns strategy of using its own chip as well as others.
Thu 22 Jul | Karthik  | By "We", i mean a few trolls (Yours truly included) who used to post about SUN's clownish behaviour
Thu 22 Jul | Almost Anonymous | Soem choice quotes from said article: 'saw sales jump for the first time in three years' 'For the three months ended June 30, Sun earned $795 million' -- 'compared with a loss of $1.04 billion... in the same period last year' -- 'The results, however, were boosted by Sun's $1.95 billion settlement with Microsoft' 'Excluding one-time items like the settlement and restructuring charges, Sun lost $169 million' -- 'compared with a profit of $24 million, or 1 cent per share, in the same period last year.' Despite the sale growth, it does't seem that Sun is actually very health. Profits are now loses, the numbers look good only when compared with Microsoft settlement. Sun definately does clown around. They are seriously focused on Microsoft and IBM (what did Joel say about focusing on your customer and not your competition).
Thu 22 Jul | Eric Sink | 'This is a company that's in control,' said Scott McNealy, Sun's chief executive. No, this is a company which should not exist. The only reason it does is because Microsoft needs it to exist. Java deserves better than Sun.
Thu 22 Jul | Greg Hurlman | Microsoft helped Apple limp along during its lean yars as well, for the same basic reasons - the need for at least one competitor to stay alive. I expect that Sun will be with us for a good long while, or until MS no longer has a use for them - whichever comes first.
Thu 22 Jul | Prakash S | +1 to what Eric has to say.
Thu 22 Jul | Karthik  | I  knew about the resettlement. But the unit sales increased
Thu 22 Jul | anony coward | 'For the year, Sun lost $376 million, or 11 cents per share, on sales of $11.19 billion, compared with a loss of $3.43 billion, or $1.07 per share, on sales of $11.43 billion, in fiscal 2003.' I'm confused, how does this indicate an increase in sales? Had a good quarter I guess, and they lost a billion less that last year (excluding the settlement).
Thu 22 Jul | TruthSeeker | Imo, SUN is in a difficult position. The hardware and operating systems they produce are becoming low-value commodities and they appear to be having a hard time profiting from Java like other companies have.
Thu 22 Jul | Code Monkey | Rumors of Sun's demise are around since the time HP brought Apollo. They have competed against HP, SGI, IBM, Microsoft, DEC even DELL and won many battles. Even Microsoft's products are being commoditized...and they have only software (discounting the fact that it also makes mice and keyboards!). Sun has both hardware and software and just like people understand that there is a time and place to use a high priced Oracle database v/s Mysql similarly there are people who understand the value of buying Sun rather than the Microsoft blue screen machines or Linux. That does not mean that Sun does not have problems. Once they get their headcount down to a reasonable level and figure out that letting Java go free is in their longterm interests they will get back on their legs
Thu 22 Jul | Philo | 'rather than the Microsoft blue screen machines' Just can't let it go, can you? Seriously - I've seen two blue screens in the last three years (both the result of a failing hard drive). Why no epithet about linux? We'll try again - use a negative epithet or an ad hominem or some overused negative stereotype and all you accomplish is getting your own argument discredited wholesale. For example, no matter how valid your analysis here, as soon as I got to 'Microsoft blue screen machines' then I figured it was all worthless rationalization. Just MHO Philo
Fri 23 Jul | karthik | Welcome back Philo. I had not noticed you here for sometime.  We are lost without our Boswell.
Fri 23 Jul | Almost Anonymous | 'Sun has both hardware and software and just like people understand that...' However, people are now discovering that you don't need an expensive Sun machine. Remember, Sun was a workstation provider. Do they even compete with PC workstations anymore? For servers, you can get 2 or 3 PC servers, with SCSI and RAID, for a fraction of the cost. If one dies, you just replace it.
Fri 23 Jul | Formerly someone else | 'Just can't let it go, can you? ' Who's the one not letting it go? Maybe you haven't seen a bsod recently Philo, but let me tell you as one person still doing a lot of work in the NT trenches, there are still bsod's applenty. If fact, I have extra's if you need some;) The mantra that 'well, most bsod's are driver issues' while probably true, does not help me. 'However, people are now discovering that you don't need an expensive Sun machine' There really isn't a need for Sun's hardware at the low end. But when you want/need to scale up, Dell sure isn't going to be there. About the only x86 manufacturer with scale up would be Unisys. If you want 72 procs in a box you need Sun or some other vendor with high end (non-commodity) hardware.
Fri 23 Jul | Philo | 'but let me tell you as one person still doing a lot of work in the NT trenches, there are still bsod's applenty. ' I'm just trying to imagine what would happen if I went on /. and bitched about linux because the 2.0 kernel sucks so bad... Philo
Fri 23 Jul | Code Monkey | Philo wrote: >Seriously - I've seen two blue screens in the last three years (both the result of a failing hard drive). Why no epithet about linux? Well it is true that there are not too many blue screens per se but the I have seem windows machines (Win2K & XP Professional) freezing solid that a hardboot was required. Solution...to have a power strip which could be turned on/off remotely! As far as Linux goes....yes it happens sometimes too but not as frequently. But you miss the point...Microsoft charges for their OS and generally (atleast to the normal population) does not provide source code so there is nothing one can do about it..contrast that to Linux and you will see the point I was trying to make. The normal excuse I get from Windows apologists is that it is not the OS fault but the drivers...fine but I don't give a damn...I just want the whole thing to work and if not atleast tell me what the problem is. But I digress....the reason why Sun will be around is that they have a much stable OS (Solaris), much better multiprocessor implementation, much better level of premium support. Most people do not realize is that in some situations it is not really about what the damn box cost initially....Sun might cost double...but if you are paying for Oracle it makes sense to pay extra for reliable hardware/software on which to run it.
Fri 23 Jul | Formerly someone else | 'I'm just trying to imagine what would happen if I went on /. and bitched about linux because the 2.0 kernel sucks so bad...' You can get a newer version of Linux for free. You can't get a newer version of Windows for free. Not all necessary business apps run on newer versions of Windows - yes I know that's not Microsoft's fault per se, but that does not help me. You get to use new Microsoft technologies - good. The new ones are better - agreed. What probably gives a lot of people a bad taste is how much Microsoft hyped NT - the UNIX killer (ha ha, what a joke). My company switched from Novell to NT, looking back they regret it. They would have been much better waiting for 2000 or later if they were going to migrate. Oh well, going forward there is enough competition that Microsoft can't afford to put out junk and hype it, or even if there isn't enough competition in some arenas, people are much more skeptical of the pie in the sky claims coming from Redmond.
Resource Allocation Software | Thu 22 Jul | igor
Im looking for pointers to papers or existing software that does resource allocation with constraints. Basically, I have a limited set of processors that I want to perform jobs. Each job requires between 1 and 5 processors and have varying durations. I know what each type of job requires, but I dont know when and for how long the jobs will be requested. At a minimum, Id like to be able to allocate the jobs among the processors. When there are more jobs than processors, Id like to be able to stop excecution of the lowest priority job(s) and re-assign the processors. To make things more interesting, there are other resources that I would like to be able to optimize on. For example, two processors may run on the same machine, so they share a limited memory and CPU power. Also, Id like to be able to make optimizations based on affinity of jobs to particular machine that runs more than one processor. For instance, if a job last ran on a given machine, its cheaper to run it on the same machine, again. This sounds like a problem thats been solved many times before. I would like to be able to actually look at how they did it, not just use existing software. Thanks,
Thu 22 Jul | Christopher Wells | It's a big field. http://www.eil.utoronto.ca/profiles/chris/chris.papers.html is just one example.
Thu 22 Jul | Dino | I'm not sure it's been entirely solved. It's complexity is at least np-complete. Search for topological sorting.
Thu 22 Jul | Lou | It's a multi-variable multi-equation maximization/minimization problem.  You can use Excel's Solver to model the scenarios (and play with the equations).  Unfortunately there aren't any short ways to solve the equations, and iterative methods seem to dominate the field.
Thu 22 Jul | Edward | Sounds like a Job Shop problem.
Fri 23 Jul | Peter | Igor, you are describing an operating system. They do what you are describing, plus a whole lot more. It is an NP hard task to efficiently do what you want. At a past company, I built something very crude that does something similar. I called it the 'redundant array of inexpensive computers' because it used a pile of undepreciated pentium 75/100s. The code had to be migrated from Access97 really fast (some of the managers wanted to use Office2k which broke a lot of tables, and all the code, in Access97). Also the daily processing was creaping up to 20 hours of crunching on a 700mhz p3 to handle 24 hours of data. All of the jobs were refactored into DCOM/ActiveX dlls, or NT services (who just woke up every 5 min to see if it was time to make the donuts). Whichever made more sense for that task. With NT, createobject can take 2 parameters, one is the machine. The scheduler used a scoreboard (table in sql server) that kept track of when JobX was supposed to run, and which of the array of cheapies was able to run JobX. When it was time to run JobX, it also recorded who was running the job. Was this too much detail? Not enough? Wrong subject?
Estimating Development Time... | Thu 22 Jul | zigzag
I am wondering what stratagies you all use to determine a projects timeline. Im not talking about large ERP like projects, nor am I talking about small queries or reports. The projects I am having problems estimating are in the middle. Something like a new document management section for the company intranet, or a searchable contact management web interface. While I have improved, Im still usually 2-3 times off the actual lenght of time it takes. My current system follows a few simple rules... #1 - Dont give the boss an estimate before you have gathered all the requirements. #2 - Dont give the estimate before you have spent a decent amount of time on research and architecture. The problem I most recently ran into involved #2. I came across an interface between an object and codebehind (asp.net) that I completely missed while designing. Im currently scrambling to find the best way to implement it. I guess I have started to answer my question. I need a better research and architecture/design phase. However, I would still like others input. Does anyone out there use UML on the medium sized projects mentioned above? I think something like UML would be beneficial, and I have recently purchased several books on the subject. I will probably be increasing the architecture/design time component of my projects as a result of this most recent event.
Thu 22 Jul | Christopher Wells | If you missed an interface then I'd say that what you had was not a detailed design. I like to give time estimates as follows: * Research phase: '... depends ...' * High-level design phase: '... not too long ...' * Detailed design phase: '... estimate for this phase depends on guess as to size of the project (but having finished the high-level design, at least by this stage I know the scope of the project) ...' * Coding/implementation phase: '... estimate for this phase isn't available until after the detailed design is complete ...' The last time I tried this (because my manager required an accurate estimate) I spent as much time on the detailed design as I did on the subsequent coding of it.
Thu 22 Jul | zigzag | Christopher Wells  - What phases, prior to coding, do you break down to?
Thu 22 Jul | Christopher Wells | It depends on who I'm working for: the manager might have their own Process for me to follow. In the instance I mentioned, it was: Phase 1 - Get hired (sign HR papers, get a computer, read company documents re coding policy, inspect some of their source, meet coworkers, etc) Phase 2 - Define requirements (specify which components I will be writing the glue for to interconnect, and specify what functionality will be provided by the new external-components-plus-my-glue system) Phase 3 - High-level design (high-level architecture for my glue), to be approved by the company's chieft technologist/architect - Write a whitepaper (a marketing-level document describing the product, for QA, managers, and potential customers) - Initial project schedule (in this case my estimate was that there was too much work for me to complete it before the marking deadline, so I used the estimate to justify being assigned one or two junior programmers in Phase 5) Phase 4 - Detailed design: name all my classes, describe the interfaces between my classes (the interfaces between my classes and external components was already specified, in Phase 3) which includes defining any network protocol between classes, describe the threading used, describe state transitions - Write test cases: needed by QA Phase 5 Coding and unit testing. Phase 6 Hand-over to QA. Add to the above: getting test equipment; coordinating with other developers (e.g. code-reviewing new interfaces they developed); revising the schedule; coordinating with managers (e.g. sales and QA, for tests and demos). It was fairly waterfall. Presently I avoid the issue by having a manager who trusts me and who knows we're in a long-term development project: so instead of estimating what I'll do during the next 4 months, I just say what I'm going to do in the next day or week or two, and do that (and then repeat).
Thu 22 Jul | AllanL5 | 1. Typically, you have to estimate a project long before detailed design. If you are IN detailed design, then the project must have been approved (from your estimates) some time much earlier. 2. I usually create a 'strawman' high-level design (created from using the SOW (Statement Of Work) or initial requirements. I do this mostly so I can focus myself on what pieces need to exist, and to get a rough idea of where they could fit. This could be tossed later, but I do like to have a high-level approach that my boss approves of that I can estimate with. Note it takes a day or two, at the most, to read the SOW and draw the straw-man. This includes identifying 'interfaces' (who needs to know what, and when do they need to know it? What info is available from users? Who are the users?) 3. Having done #2, I now assign approximate 'sizes' to the pieces I've identified. This database interface piece is simple, so it has around 1500 lines of code or less, and can be done in 160 hours or so. This business logic piece is large, so it has around 20,000 lines of code or more, and will probably take around 3 months. 4. Having my sizes of pieces, I now add time for requirements clarification, high level design, low level design, proof-of-concept, coding, and low-level testing (aka unit testing) of each piece. 5. Now I add elements ( and time ) for integration of pieces, system level testing, one or two cycles of feature addition (when the user wants stuff added/fixed/moved around), creation of documents (Requirements, Design, User Guide, Maintenance Guide). 6. Now I try to add some 'uncertainty factors' to the design, to try to cope with places my estimates for number of pieces and complexity turn out to be wildly out of reality. I prefer using Data Flow Diagrams (DFD) for the system level view. I use UML for software if using C++ or Java (or Ada or VB, for that matter). (UMLStudio from PragSoft is VERY nice, flexible, and not too expensive. Rational Rose works OK. Visual Modeler from Visual Studio Enterprise works OK, also). Note the UML I find most useful tends to be the Sequence Diagram (shows object communication), tied to the Class Diagram (shows object methods and data).
Thu 22 Jul | TheGeezer | Yes, estimation is a tricky process so I searched this forum and found another good link: http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=12774&ixReplies=20 Basically, my feeling is that irrespective of how much time you put into the estimation process you'll generally fall wide of the mark because of nasty 'gotchas' which were never forseen. I like the idea that when you arrive at the final figure, you should double it then add another 10% to the timeframe. YMMV of course.
Thu 22 Jul | TheGeezer | I should add - never, never, never give a time estimate to a project manager if he asks for one of the spot. It's more than likely it'll come back to bite you on the ass.
Thu 22 Jul | kc | Check out McConnel's Rapid Development. He covers this sort of thing in dept. THe best thing that I've found is using converging estimates. For your first estimate, come up with a high and a low for a reasonable range. Then, as the system is being developed and implemented, revise the estimate on a regular basis to narrow down the range. I've used it with pretty good success so far.
Thu 22 Jul | BW | Agree with KC. Never give a date, always give a range. 50% margin of error is probably realistic for me, whether or not it's acceptable. In an interview a few months ago they described what they wanted done for about 45 minutes, then asked me how long it would take, and how large a team we'd need. This was for a perm job; I've never had such a question during an interview. Was it a trick question? Cause only a dufus would make such a wild-ass speculation, right? I think I said '3 to 9 months' with the straightest face I could muster. Turns out the 'right' answer was 3 months, because that was their schedule. Heh, I didn't get the job anyway.
Thu 22 Jul | www.ChristopherHawkins.com | Learning to give a good estimate takes time and experience. If you're being asked to estimate something that you've never done before - look out! You'll at least need to take the counsel of someone who has. It's pretty scary. It took me about 6 years to learn to produce an accurate estimate. There is definitely an art to it.
Thu 22 Jul | www.ChristopherHawkins.com | P.S. I hate to do this, but I recently wrote an article on what to NOT do when creating an estimate. Apologies to Joel for spammage, but it's relevant to the discussion: www.christopherhawkins.com/06-01-2004.htm
Fri 23 Jul | sid6581 | Take your best estimate and multiply it by pi. Also works for budgets.
Fri 23 Jul | zigzag | To take a quote from ChristopherHawkins.com's article (see post above)... 'That is the secret weapon of estimating - the more small chunks you can reduce the requirements to, the more accurate your resulting estimate will be. But most people are lazy. Analyzing requirements is almost as difficult as gathering them, and again - very few people want to do it. Those that do will consistently deliver more successful projects than those who do not.' I think this distills the problem I originally posted. On medium sized projects I'm always eager to get moving thinking, 'Well this isn't a big project, I can probably wing some of this...'. I definately need to take the time to fully analyze the requirements on ALL projects. I guess this is the 'green' in me showing. I've only been at this (professionally) for about 3 years. Thanks for all of your posts!
Fri 23 Jul | John Rusk | >Does anyone out there use UML on the medium sized projects mentioned above? I think something like UML would be beneficial, and I have recently purchased several books on the subject. >I will probably be increasing the architecture/design time component of my projects as a result of this most recent event. At the risk of sounding like a broken record (I mention this every few weeks in this forum :-) check out the soon-to-be-released book on the Crystal Clear methodology, especially the section on 'What about UML and architecture?'. It breaks down various things -- 'thinking time', how long to spend 'thinking' before cutting code, UML, drawing tools etc -- which often get lumped together under the 'UML' umbrella. If you split them up, you can re-combine them in more useful and flexible combinations. See http://homepages.paradise.net.nz/jjrusk/tech/crystal_clear.htm for links re Crystal Clear.
Change management for small teams | Thu 22 Jul | Ron Porter
Ive been working solo for nearly 30 years and all of my projects have been pretty small stuff. Now Im working on larger projects (but still pretty small, really) and there is another person involved. Failure to proprerly coordinate our activities is merely an annoyance now, but is likely to prove disastrous if not dealt with quickly. I dont think that this is as simple as using a version control system, but I could be wrong. I work on all but one of our systems and am having good luck keeping everything I do under control using SourceSafe and Visible Developer. So far anyway :) The other person works on the other system (AutoCAD drawing management, bills of material, etc.). Weve now reached the point where were starting to consume each others data so we need to put processes (and software?) in place to deal with this. (For example, a few days ago, one person dropped a field, which broke the other persons import routine, which led to a whole class of reports failing.) I have a pretty good idea of what kinds of things need to be done: Neither of us should make a change without consulting the other; both of us should keep track of what fields, etc. were using and where, and probably other stuff, too. Obviously there are processes used by those who manage large-scale systems that apply even to the lightweight stuff were doing. The problem, as I see it, is that these processes look heavier than our project(s). Weve got stuff in Access, Excel, and SQLServer, but everything will eventually be in just SQLServer. We use everything from VBA to .NET, but are trying get as much as possible moved to .NET. I suspect that life will be easier once all the migration is complete, but right now it looks like all the dependency tracking has to take place outside the systems. Any tips or pointers are appreciated, including terms so that I can actually go search for something.
Thu 22 Jul | Cecilia Loureiro | In my previous job we had a "data administrator". Every time we wanted to add, delete or modify a field we had to ask him before the dba executed the changes. This person knew all the applications that we were developing and was aware of the side-effects that a change in the database may cause.  It was annoying at the beginning as we had to queue (sometimes for days) for our changes to be approved. We changed our minds soon as we realised that it helped us avoid the kind of situations you described.
Thu 22 Jul | Dino | You can try use BugZilla as problem queue.
Thu 22 Jul | Simon Lucy | We keep the ddl scripts for generating the database in source control as well as everything else. Yes, sometimes we trip over one another but we can generate a ddl script from the database if we've added fields, tables, indices etc directly. True this is usually Visual Fox rather than SQL Server but we can do the same for that. We use NG3Source because we work remotely from each other and about the only thing I'd really like is to be able to cancel a checkout for her (or her for me). We also use MSN messenger constantly and IssueTracker for handling everything that needs raising, whether its bugs, feature requests or support. In designing we use Plone to manage all the documents. We had a slight event with Plone in that all the online documents went walkabout, but I pretty much recovered everything.
Thu 22 Jul | AnonAnonAnon | I am with Cecilia, we had the same arrangement. One of you has to own the data. 'Shared' means no one does. I will also include it is not an envious job as it results in plenty of headaches as you keep track of what fields are used by who. If there are only two of you then you could share a document that contains what fields are used by what application. As you grow (you do hope to grow right?), then it can become a position. The other thing that is helpful is crosstraining. Everyone claims they do it but most are lying or deluding themselves. Cross training is going through the code with your designated backup. It benefits everyone if you do because one of you may go to lunch and never come back. That is not the time to figure it out. I would also suggest code reviews. Not because you need them, but because everyone does. Don't make them painful, just a walk through any changes to see if I missed something (like dropping a field). You will still miss half the stuff but you will also catch half. Also, always check working code in so the other person does not have to find it. It always seems to happen when the developer is on vacation we are looking for 'X' they said was working. I am sure there are plenty more but this is a good start. I also recommend 'Code Complete' http://www.amazon.com/exec/obidos/tg/detail/-/1556154844/102-3115173-4703363?v=glance and look at extreme programming http://www.extremeprogramming.org/ not because you choose to use it, but the concepts you are referring to are easily extracted from it.
Thu 22 Jul | Greg Hurlman | Whatever you do, just stay away from "Project InVision" as a purchased solution... <shudder>
Thu 22 Jul | Ron Porter | Thank-you to all for the suggestions. I'll be investigating the suggested tools (and finally stop procrastinating on Code Complete!). I think that the 'data administrator' job suggested by Cecilia is probably the key to the whole thing right now. Since I'm likely to end up with that task along with everything else, I guess I'd better focus on coming up to speed on the other guy's work and why it exists. Along the way, I'd better start doing some kind of documentation so that my successor has something to start with. Believe it or not, I'm actually quite excited about transforming first myself, then the process.
Thu 22 Jul | Simon Lucy | One of the large projects I managed, long, long ago had between 4 and 6 developers all working generally on separate parts of the application suite but there was no source control whatsoever. So I suggested the big red book, whenever someone needed to work on a module they wrote down the files they had to take in the book with the date and their signature and then write in when they'd finished with them. It didn't solve everything, but it helped and at least they knew who to blame.
Fri 23 Jul | rowan | Code Complete second edition is now available ...
Fri 23 Jul | Evolution and me | Keeping a log of changes on the databases/fields could be useful. This can go at the beginning of each programme as documentation or providing inputs on a small change log database. Interesting to document on this database why a change is required (with more reasons that it is just the developer's own style). Definitely as Cecilia says someone has to own the data.
Software piracy | Thu 22 Jul | Concerned friend
Hello, I have a friend who is starting a business selling inhouse developed shrinkwrap software. My friend cant afford buying the necessary development tools, so he used illegal copies which he found on the internet. My friend *wants* to pay for the development tools, but does not have enough money, not until he sells the first copies of the software he developed using these tools. What should my friend do? Do you think its OK develop software using pirated software if the intention is to buy development tool licenses once the software is out? My friend knows that it is illegal to use software not paid for but he feels he has no choice.
Thu 22 Jul | no name | Your "friend", eh?  Uh huh...right.
Thu 22 Jul | Piracy hurts the little guys most | There is plenty of free / open source development software out there, your friend doesn't have to steal it.
Thu 22 Jul | Kalani | The companies who make the tools probably won't care much unless he actually has enough money to fairly compensate them.  If you asked any of them, they might say that they'd rather have the money upfront (and maybe this is part of the push for 'software as a [low cost, ongoing] service'), but when it comes to actually prosecuting these cases, commercial software advocacy groups go after the thief with money.
Thu 22 Jul | Adrian | Could you ... uh, your friend ... get a bank loan? It might help force you ... sorry, your friend ... to think carefully about the business plan, realistic company viability etc. Alternatively, use free-to-download tools for your first version? Or try to get cheap deals? If you're developing on MS platforms, MS have a deal where, if you've got a company with a serious business plan to develop software, they'll sell you MSDN licenses (which include the development tools) very cheaply. But you do need to have a company, it's not available to individuals. Good luck to your friend, tell us what you/he decided!
Thu 22 Jul | Piracy hurts the little guys most | This is a good point, if your friend has no money to buy tools how is he going to afford to market his products. Software doesn't get up and sell itself, it costs money to promote.
Thu 22 Jul | Simon Lucy | If its reliant on MS development tools then get an Empower subscription.
Thu 22 Jul | JT | I'm going to start a pizza delivery service, but I can't afford a car yet. I WANT to buy the car, but I won't be able to afford it until the business gets going. Do you guys think it would be OK for me to steal the car until the business gets going? Obviously, software and cars are different economies, but here is the rule of thumb when it comes to piracy: In all cases where you are contemplating software piracy, replace 'software' with 'car,' and see if it still sounds ethical and legal. If so, go for it.
Thu 22 Jul | Chris Peacock | If you can make a copy of someones car and their original is left untouched then I wouldn't mind 'copying' their car. The car analogy will only take you so far. My advice is to continue developing with the illegal software, as soon as you make enough to pay for the proper tools then do so, then everyone will be happy...
Thu 22 Jul | Goba | If the option is not to develop the software at all (and hence nobody gets paid), he should keep using the illegal software until he can pay. Nobody benefits if he walks away.
Thu 22 Jul | JT | 'If you can make a copy of someones car and their original is left untouched then I wouldn't mind 'copying' their car.' This is why the software economy is different. However, I did say that in matters of software piracy, the analogy should apply. Stealing software is just as illegal as stealing a car, although it is easier, and doesn't hurt the person from who you are stealing nearly as much.... but it is still illegal.
Thu 22 Jul | Goba | You could copy my formula-one car, go win a race, pay me from the price money any time. I have everything to gain, nothing to lose. This is about ethics. We all know it is illegal, the question is is it *right*?
Thu 22 Jul | Chris Peacock | Goba, of course it's not right but when stealing is easy and there are rarely any consequences to the stealer then a vast number of people will continue to do it.  It's human nature...
Thu 22 Jul | Ironchef Sakai | Sure. Go ahead. Would your friend mind if I pirated their software once it is written and published? I pay them back once I started making money off it. Honest. Seriously, though. People have provided many other solutions. Piracy should not be one of them.
Thu 22 Jul | Caffeinated | This is a classic (and laughable) example of situational ethics. If you pirate software, you're a *damn thief*, no matter what your justification. Go look somewhere else for validation of your weak (and possibly missing) moral backbone. You won't find it here.
Thu 22 Jul | Li-fan Chen | I think Microsoft has already made tool pricing a non-issue with the help of 1-2 year discounts through their recent special offers to small developers. I think though if you are really serious about your business, you'll realize the cost is so immense that you'll have much more to worry about: * Networking, this is how you bring in customers (major ones). Sure, you can give presentations to a bunch of guys at Your Local Friendly Linux User Group and some of these might be decision-makers but generally it isn't the most ideal network. This is also how you create your old-boy network. You need a lot of referrals to get people to like your product. Maybe you have to write a chapter for a WROX book to get your products plugged (and even that requires a lot of negotiation I am sure). Maybe you have to offer free web space to get some famous writer to mention you (see JOS's Cohost). All of this is time, if not pure cost. * Store front or ecommerce chain. If you run a commerce store. A merchant account and a customer relationship department will run you serious money anyway. Full time staff to answer practically free support calls even when you don't have a lot of deep-pocketed customers is a requisite. A store front is a $400 a month operation plus the IKea tax at the bare minimum. Half of one month rent would easily pay for Microsoft tools. * Etc etc, I rest my case. So think about your business first, if you have to gurella develop/market it at first--great--eventually I am sure you can support your business, and the licenses. Just realize you want to minimize intentional usage of unlicensed software.
Thu 22 Jul | Phillip J. Eby | copying != stealing && copyrightInfringement != theft If you don't believe me, ask the judge who told the RIAA attorneys to stop calling copyright infringement theft in his courtroom. Oh, and piracy==robbingPeopleAtSea, and using inflammatory analogies == demagoguery and assholism. :) (P.S. All that having been said, tell your friend to use open source wherever practical, rather than disrespecting the authors of for-pay stuff.)
Thu 22 Jul | Simon Lucy | Copyright may not be theft in the same sense that hitting someone over the head with a pickaxe is murder and recklessly driving a car may not be. Copyright violations are, however, illegal in many jurisdictions. In British cinemas there are now infrared cameras and security within the audience of highly popular films and they're there attempting to catch videoers. Whether this does anything more than raise awareness I'm not sure. There is a peculiarity about people in that they'd almost rather have a two quid rip off of Spiderman II on DVD than go watch it in a cinema. Now, people might also argue that software is an entirely different thing to music and video . They might also argue that if the contents of their wallet was copied that there'd be no resultant inflation. However, they'd be wrong on both counts. When you copy something that is easy to copy but difficult to create you inflate the price the consumer is going to pay. This is without considering the cost that may ensue because a copy was used rather than a legitimate product. A client of mine is just now realising that.
Thu 22 Jul | John Murray | To answer your question, may I ask one? My 'friend' wants to start a business, but can't afford the 'shrink wrap' software that you sell. He figures if he pirates a copy, then 'pays you later', that might be acceptable to you. Well, is it?
Thu 22 Jul | Michael Kale | It's a question of morality. None of us know you or your situation enough to properly discuss morality, and you, from the anonymous nick with no email, are probably not in a position to listen even if we were. It sounds like you've made your decision already and are just looking for people to support it. Do what you feel is right. With either choice, there are consequences, benefits, and everything in between. We can't hold your hand here, all we can do is condemn or condone whatever choice you make, but even that is of limited value. I'm not trying to berate you, honestly. I just think that at the end of the day you have to decide for yourself, based on what you feel is right.
Thu 22 Jul | Big IT | I work for a big company that makes productivity software and development tools. I recommend you steal all of our software you can get and then use it to build your product. This works well for us. If your company is successful, we will approach you with proof of your felonies and offer you an out-of-court settlement. This settlement will basically include you transferring all assets of your company to us. This is a good plan because it helps us build our business and also serves to get criminals off the street.
Thu 22 Jul | Tom Daniels | Simon, your inflation analogy is profoundly apt. Its very similar to the government printing more money. It technically doesn't take cash away from any one, it just dilutes the value of them and increases the chance teh currency will collapse.
Thu 22 Jul | TheGeezer | No offence buster, but put the shoe on the other foot. How would you feel if after having invested years of time developing a software product you found that you were losing sales to people who were pirating your product? Surely this would be galling if you'd been in the position of living hand-to-mouth eating lentil soup day-in, day-out. Anyway, what technology platform are you using? Assuming you're not using MS technologies, you can get Java, Eclipse, mySQL, JUnit pretty much for free. No dilemma there...
Thu 22 Jul | Aaron F Stanton | I have to agree with what several others here have already said: There are plenty of free development tools out there. Use them until you/your friend can afford the expensive ones. It's a high stakes poker game. Ante up.
Thu 22 Jul | Joe | Even if you're tied to the MS platform, there are still options.  You can use MSDE for a DB server and then easily move up to full SQL Server when you have the cash.  You can use WebMatrix (web stuff only) or SharpDevelop (more all-purpose, but still in development) for an IDE.  Heck, you can even download the framework and compilers for free and code with notepad if you're that hard-up...
Thu 22 Jul | Goba | 'How would you feel if after having invested years of time developing a software product you found that you were losing sales to people who were pirating your product?' This is not the case here... The guy says he will pay a soon as he can.
Thu 22 Jul | Aaron F Stanton | 'The guy says he will pay a soon as he can.' Yes, but it's funny how low priority tasks get put on the bottom of the stack, and bills you don't feel like paying get lost, and my dog ate my homework, and and and... Ante up. (Read up on your Latin: Ante - before.)
Thu 22 Jul | kc | Why would you expect to be able to sell your software (or your friend's) if you are (or he is) not willing to pay for the tools he requires?
Thu 22 Jul | Tom | Your friend can cut corners if he likes, and for whatever it's worth he can have my full blessing. In fact, I suggest he download everything _again_, just to make a point. If I were running his business for him, though, I would consider this a risk. This kind of thing could get reported by a visitor or disgruntled employee. I guess requirements for licenced software (and checks for same) could end up in a contract, too, but with no requirement for the other party to pay up front for this. (I suspect that in practice companies want your $$$ more than they want the hassle, so it would more be more a question of lost reputation than lost money if you were caught. This assumes that your reputation is unimportant.)
Thu 22 Jul | Tom | Hm, I should add that you should not infer from my post that I don't believe there is a moral dimension. However, there are plenty of potential legal and practical pitfalls to get past before your friend can rest easy and consider such higher matters :)
Fri 23 Jul | Dan Clarke | Your friend would probably not be happy if everyone used his programs without paying for them. If he is a good enough programmer to make a living at it, he should be able to make salable software using the TONS of free open source development tools available. If he already has a client lined up who requires the use of proprietary tools, then he can ask the client to pay for those tools. There is no task that cannot be done with free software, with a tiny bit more effort. Since there is no NEED to infringe on someone's copyright, because there is always a freeware that is almost as good, then there is also no moral justification for doing it. In the classic dilemma of the magic cure for a disease that a father has to steal for their sick child, if it is being given away for free, the moral justification is gone.
Fri 23 Jul | no name | Actually Simon under British law "theft" means that you intend to permanently deprive someone of whatever it is you steal. I could steal the CD but copying the contents would not count (because the original owner still has the CD). That's why it is not theft.
Fri 23 Jul | Mr Jack | Sure. It's not legal and it's not entirely ethical. But, quite frankly, Microsoft can afford the lost interest payments and you get to live your dream.
Fri 23 Jul | llcj | > Actually Simon under British law 'theft' means that you > intend to permanently deprive someone of whatever it is > you steal. I could steal the CD but copying the contents > would not count (because the original owner still has the > CD). That's why it is not theft. It's not theft... It is copyright infringement.
Fri 23 Jul | MikeG | Who are you kidding??? The money will never be paid back because there will always be the excuse, 'I dont have the $$$ right now- I'll pay it when I can...' Mike
Fri 23 Jul | Clay Dowling | Some of you trying to use analogies with the recording industry are way off the point. It's legal to copy a recording that you own under the fair use clause of the copyright law. You can copy it in its entirety for archival purposes, for instance, provided you don't start handing those copies out to friends. Likewise, you can quote bits of the recording for reviews or critiques. In neither case is the use of the copy depriving the publisher of revenue. I understand that the law is slightly different outside of the United States, but the fair use principal is present in every country which has copyright law. Bootlegged software doesn't qualify as fair use. If you had purchased Visual Studio, you could make a backup copy in case something happens to your original copy (in fact, Microsoft encourages this in their license). Working with a copy which you haven't purchased is depriving the publisher of revenue. The worst penalty you can generally face is a cease and desist order. Damages can be imposed for the revenue that you deprived the copyright owner of, as well as seizure of the assets gained through your illegal activity. Failure to comply leads to a contempt charge, and that can lead to pretty big fines and time in the federal pokey. Using pirated development tools is really pretty stupid, since viable free alternatives are generally available. Even the .NET tools have free alternatives available (there's a GNU C# compiler, for instance). A lot of makers of development tools make older versions of their software available for free (e.g. Delphi). ALL of the Microsoft compilers are available for free (an awesome sales tool, BTW; I was hooked and had to spring for Visual Studio).
Fri 23 Jul | Big IT | 'as well as seizure of the assets gained through your illegal activity' Which is exactly why, as a developer of tools, I recommend that everyone pirate as much as they can. We have acquired the assets of 11 separate profitable businesses with well-designed products. It cost us only a few thousand in legal fees to acquire these businesses who pirate our tools to bulid their software. Life is great. You want to work hard developing your product and developing a market so that we can take it all away from you? Go right ahead. Piracy gives us the in!
Business Owenership: Services vs. Products | Thu 22 Jul | Ewan's Dad
In a previous thread, I want to start my own business because... several business owners talked about the problems and difficulties of business ownership. I noticed that the business owners who responded seemed to be in the custom software market (consulting). I was wondering if ISVs who provide shrink wrap or semi-custom software have had an easier life (for lack of a better description) than ISVs who are purely custom software shops. The highly visible ISV successes that Im aware of, such as Fog Creek and SourceGear, seem to have started as consultancies, but quickly evolved into shrink wrap or semi-custom software businesses. Is the life of a shrink-wrap or semi-custom software ISV easier than the ISV who is purely a consultancy?
Thu 22 Jul | Formerly someone else | Someone else mentioned the book "The E-myth"  I bought it.  1/2 way done.  You need this book.
Thu 22 Jul | BeeBop | I don't think it's a black and white comparison or maybe it is. An ISV's problems are much different than a consultants with respect to customers, marketing and even coding their product (controversial I know...) In order for an ISV to be successful it has to have product that meets a broad demand. In order for a consultant to be successful they have to be able to market their services successfully. So I wouldn't necessarily say that ISV's have it easy. They have to have the capital and the 'goods'. (I think Joel and Eric were millionaires when they started their businesses, though I don't know if they invested personally in each business.) Consultants simply have to have the time and the people skills. Of course luck never hurt either one.
Thu 22 Jul | BeeBop | And before someone calls me on the "coding their product" comment I would just like to say that it is a rare occasion that I see a consultants code with exception handling or error trapping throughout the whole thing.  The robustness of the application is simply not the same as a commercial application.  OTOH I have seen commercial apps that have very little to no error checking either.  Maybe consultants use this to collect a little more money.
Thu 22 Jul | Tony Edgecombe | I started my business consulting and have moved to selling products over the last two years. There is a significant difference between the two. Financially I would almost certainly be better off if I had stayed with the consulting. I'm not that far short now but it has taken a long time to establish the software sales. I did expect this and as I don't spend much it hasn't worried me. To sell my software I have to spend a lot more time on product marketing than I ever did selling my consulting services. As a consultant if you can develop a good reputation work comes looking for you. There is so much other software out there that you have to become a good marketer or you will not have enough sales to sustain a business. Development changes as well, you have to be much more aware of the different platforms your customer is running and how you will handle support issues. I spend a lot of my time developing the product to avoid customers raising support tickets or issues in my forum. If I didn't then I would be swamped doing tech support rather than building my business. I guess some of this comes from me as well, I'm not happy unless my code is of a high quality, most of my consulting customers just need something that works asap. Personally the thing that drove me away from consulting was the normal big business stuff like long hours, too much commuting, petty bureacracy, etc. Even as an independent you can't avoid much of this stuff.
Thu 22 Jul | Eric Sink | I was not a millionaire when I started SourceGear. In fact, depending on your definition of the term, I'm not a millionaire now. I define a 'millionaire' as someone who holds at least one million after-tax dollars in liquid assets. My ownership share in SourceGear is worth quite a lot, but it's not liquid. My house doesn't count either. Using my definition, I have never been a millionaire. Yes, I did very well on the Spyglass IPO. At one point my stock was worth well over 2M. By the time I actually sold it, I cleared about a million. After I paid my income taxes, gave some to charity, paid off my home and wasted some money on a few stupid decisions, I had well under 200K left. I'm not complaining -- I was very blessed and very thankful. But I wasn't a millionaire. During the first six months after I founded SourceGear, I went without salary and I invested another 25K in cash. It is definitely possible to start a company with less. You don't have to be a millionaire to start a small ISV.
Thu 22 Jul | Bored Bystander | Eric, these numbers fit what I suspected. It's nobody's business what you have but an overview is very helpful. Thanks for providing some detail. It seems to require perhaps $100K or so in liquid assets to start an ISV (in the US) and to be able to live off of savings for awhile in order to develop your market. It's something that the frugal can do, not restricted to 'the rich'. I would not feel comfortable trying to do it with much less. Of course, you have to have a nest egg to consider doing this. Those (numerous) geeks who have no savings and rely on their employer's salary week to week are never going to be in that position. My observation is that a 'programmer with savings' isn't very common. The reason I haven't tried is that I don't feel that I have had a solid enough idea to consider 'going dry' for an extended period of time.
Thu 22 Jul | Nemesis | I think some people are suited to the shrink-wrap side of business and some are suited to the consultancy side. I understand that many start out doing consultancy (e.g. Fog Creek), then move into shrink-wrap, but I suspect that was more to do with generating cash than anything else. This is a good tactic, as it gives you some money to burn while you bring your product(s) to the market. That is, it saves the founders having to mortgage their house and/or use their savings. Of course, it is possible that you'll just get so much work on the consultancy side that you never actually get around to releasing any products, but that's fine.
Thu 22 Jul | BeeBop | Eric, Your statements don't add up. You either did or you didn't make a million dollars on the Spyglass IPO. From this thread: http://discuss.fogcreek.com/joelonsoftware/?cmd=show&ixPost=98236 'I made just a little over a million dollars on the Spyglass IPO.' From the current thread: 'By the time I actually sold it, I cleared about a million.' In my book, at one point in time, you were a millionaire. Yes I'm being a pedantic prick. Having all of that money gave you the confidence to start SourceGear. You had deep pockets. Even after taxes and whatever else you spent it on you still had deeper pockets than most. This allowed you to make the mistakes you talk about. No you don't have to have deep pockets to start an ISV, but it sure as heck helps. Now would you have had the same confidence even if you hadn't paid off your house and had some 200k laying around...
Thu 22 Jul | Jeremy | The shrink-wrap software business is inherently quite risky because of the high fixed costs of development. It's not like you can ratchet down those costs significantly if you end up with one customer instead of three. (or 10 instead of 15.. think proportionally here) But that's also the high reward and high margin aspect of the business also. The marginal cost of one more sale can be pretty darn small so gross margins on each additional unit are huge. That's how Microsoft can earn 80+% gross margins on Windows and Office. What's the marginal cost? Burning another CD? Of course there are support costs also which are significant but I'm simplifying a bit. So the consulting and then a product route (Fog Creek, et al.) makes sense both from cash flow and risk management points of view.
Thu 22 Jul | Sgt. Sausage | ==> Of course, you have to have a nest egg to consider doing this. Not really. We (partner and I) started our shop with $1,500 each. That's it. Nothing more. No nest egg. No pile-o-money to live on. That covered the legal bills for the partnership agreement and some contract work, and some office supplies. What we did have, both of us, at the time, was a second income -- both maried with wives making a decent professional income (mine - a CPA, his - an engineer) , and no kids. 'DINK' for those familiar with the term. Things are different now . This allowed us both to simply cut back a bit and survive on the wives' income until we started generating our own revenue. It was a risk, but it worked -- without a 'nest egg' to start. ==> It seems to require perhaps $100K or so in liquid assets to start an ISV (in the US) and to be able to live off of savings for awhile in order to develop your market We did ours with a grand total of $3K. See above. Once bootstrapped into bringing in some cash, we reinvested the first $35K earned -- invested it back into the company. I guess you can say that it really took a total of close to $40K (initial 3K to start plus the $35K) to make it through that first year. Agood chunk of cash, but hardly $100K in liquid assets. Bottom line -- we started with $3K in liquid assets. Now, if you don't have another source of income like we did, then, yes, you'll probably need close to $100K to finance both the startup and your living expenses.
Thu 22 Jul | Ewan's Dad | Sgt. Sausage, Based on what I've read in some of your other posts, I've assumed that your business is a consultancy and you don't sell any software products. Have you ever considered a creating and selling a shrink wrap or semi-custom product? In your consulting engagements, do you ever come across unfilled business needs where you think it might be possible to create a marketable product to meet the unfilled need?
Thu 22 Jul | ISV Bob | 'In order for an ISV to be successful it has to have product that meets a broad demand. ' That's not true at all -- almost all software in the engineering, manufacturing and utilities sectors for example are very narrow vertical markets where almost every sale has some kind of non-recurring engineering cost. And that's where the huge money is for a one-product ISV like myself -- I net $500-$800K on most my projects, selling my 'semi-shrinkwrap' codebase, plus the required NRE which I do myself, contracting out everything else. (I get about one project every 18-24 months... the app is probably similar in obscurity to 'power substation monitoring and control', though it's not that). And it hardly takes any money to get into a vertical market like those, since you can leverage in by rolling some of your NRE costs into developing your codebase. The customer doesn't know or care what's in your core or not, since you just give them the total quote and time schedule, then deliver. Startup costs are mostly just living off savings while making the prototype and maybe core code, brochures, powerpoint presentations and other documents (white papers, detailed features, etc), then having to wait until you can make a presentation and get selected, which isn't hard since there's very little competition to begin with, and competitors are often not able to deliver in the customer's needed timeframe if there's NRE involved because they're overloaded with other customers' projects. Talk the industry lingo, show a nice GUI and slick presentation, and you've basically got the sale. I don't know why start-ups or individual consultants even bother with broad markets and shrinkwrap (or even the retail or business sectors)... I'd think there can't much money in that, unless you start out with a lot already.
Thu 22 Jul | Bored Bystander | >> We did ours with a grand total of $3K. See above. Sarge, you are not an ISV, unless something has changed. As I recall your company is a consultancy in the (cough cough) Am*l*a area of (cough cough) Greater *inci****i. Point being - when your money comes from services, the income is immediate. As mine was when I started doing contracting/consulting (I call it consulting when I want to ennoble myself to my true station in life, and contracting when I need to kowtow to some PHB that wants a precise line item definition of my status.) Of course, it's really m/l a job because when YOU stop, the income stops. As an ISV you have to develop your own IP, and that means you have to either hire someone or DIY (sweat equity) since few clients will allow a consultant to walk out the door with IP that *they* commissioned. I do know some lucky and somewhat clueless types who built companies around contract projects they were allowed to keep by the client. Each such success story is pre-1990. But since everyone and his brother know about 'riches' in software, that is a long gone dream... So I say that to start an *ISV* - a nest egg, or perhaps a working spouse as Sarge opined, is absolutely necessary.
Thu 22 Jul | Doing it Well | In my opinion, a product company is much better- it persists without you, it sells for a higher multiple, the margins are better, it is much easier to scale, and on and on. I started out doing consulting, and after one year of that started doing product development. Less then six months later, the product was selling and I quit consulting. My consulting income covered my living expenses and the very modest original budget for product marketing. My liquid net worth at the time- under $5K. I have learned that there is really no point in trying to convince people who go around saying it can't be done, or you have to be a millionaire, or whatever other excuse they like. These people will never be my competition. They will always grouse that the ones who made it were special cases and it had nothing to do with their hard work, initiative, or desire to succeed despite limitations. So I just say, you're right- it can't be done- don't even try.
Thu 22 Jul | Scott | Six years ago I veered off and started as a ISV, delevoping shrink wrap products. It has taken this long for the product to get good enough, for the marketing to build up, and for revenue to start coming in. This is a pretty typical time to profitability in IT - at least three and up to ten years. During this time I have lived very frugally. My personal monthly expenses still run around $700 total. This includes food utilities and rent. Part of my plan was moving to a very economical part of the country where I can rent a small office for around $100 a month. I've spent about $30k of my own money, and about $100k of loans from relatives. You have to think long term if you want to have a chance of making it work owning your own company in IT.
Thu 22 Jul | www.ChristopherHawkins.com | I began my consulting firm after I was laid off from a great job. At the time, I had little savings. Doing freelance development work was the fastest way to make income happen. It cost me nothing but time. I already had a computer and development tools at home. My marketing expenses consisted of a phone bill, some time and some postage. Hell I still don't have a business card - my website is my sole marketing piece, and it's a conceit to even call it that. Everything I do comes from word of mouth. I imagine that selling an actual product is probably a very different experience.
Thu 22 Jul | Eric Sink | BeeBop, Define a millionaire however you want. I gave you my definition. You wrote: 'Having all of that money gave you the confidence to start SourceGear. You had deep pockets. Even after taxes and whatever else you spent it on you still had deeper pockets than most. This allowed you to make the mistakes you talk about.' Yes, that's obvious. 'Now would you have had the same confidence even if you hadn't paid off your house and had some 200k laying around?' No, obviously not. I was just trying to give a sense of scale to the resources I had available to me. I thought the actual ballpark numbers might be helpful to others thinking about starting their own company. You seem to really want to argue with me, but I agree with what you're saying, so I'm not sure how else to respond.
Thu 22 Jul | christopher (baus.net) | Liquid net worth is not how most people define Millionaire or their well being. I suspect most Millionaires really don't stay that liquid. Why should they? Staying liquid is about the worst thing you can do with your money. You are far better off to say invested. If you have a house that is paid for in cash, that makes it easier to start a business than someone that has to pay a mortgage. The house might not be liquid, but it is certainly a huge asset. Also let's say that you paid for a life time health care plan with your stock option windfall, while it might not be liquid, you know that you'll never have to pay for health care. There is value there.
Thu 22 Jul | Joe | > After I paid my income taxes, gave some to charity, paid > off my home and wasted some money on a few stupid > decisions, I had well under 200K left As far as the money wasted on other ventures, some would say that this is the loss you take when starting a new business -- you will probably fail a few times before you succeed. Per the definition of 'millionaire' -- it sounds like you're trying to exclude things in order to find a reason not to call yourself one, so that you have the motivation to become one by the new definition :)
Thu 22 Jul | Eric Sink | 'Per the definition of 'millionaire' -- it sounds like you're trying to exclude things in order to find a reason not to call yourself one, so that you have the motivation to become one by the new definition :)' Maybe so, but I found my definition during the dotcom bubble. Basically, as the dotcom millionaires started to pop up everywhere, an informal standard got created. It was explained to me thus: You're not a millionaire until after you sell your strock AND pay the taxes. :-) And that idea has stuck in my head ever since.
Thu 22 Jul | www.ChristiopherHawkins.com | Sounds reasonable to me.
Fri 23 Jul | Nemesis | 'You're not a millionaire until after you sell your strock AND pay the taxes.' Eric is obviously correct in that statement. Even a basic analysis of assets and liabilities shows that. In certain circles, only liquid assets (i.e. cash or that which is easily/quickly converted to cash) counts. For example, if you want to join the HNW (High Net Worth) circles, you need over one million in liquid assets. Having a house that is worth two million and 'only' half a million in cash doesn't count.
Fri 23 Jul | Oren | >> In certain circles, only liquid assets (i.e. cash or that which is easily/quickly converted to cash) counts. Didn't you rip off this quote from Tony Soprano?
KeyNote | Thu 22 Jul | KeyNoter
Anyone knows of a KeyNote like sw for linux (or platform independent)? http://sourceforge.net/projects/keynote/ Thanks!
Fri 23 Jul | www.marktaw.com | http://www.google.com/search?q=linux+outliner
Great blog post on investment by Mark Cuban... | Thu 22 Jul | Crimson
http://www.blogmaverick.com/entry/2252572946170125/ Check it out. Talks about a book called The Number by Alex Berenson. I thought I was hardened and cynical enough to know all the dirty tricks played by insiders, but Mark let slip a few that I didnt know (or rather, were obvious, but slipped under my radar, so its the same as not knowing).
Thu 22 Jul | www.marktaw.com | Excellent article. Thanks.
Thu 22 Jul | Simon Lucy | Err yes. This quote is interesting... 'We talked about token ring topologies that didn’t work on 10BaseT. ' Flim flam. Zero credibility.
Thu 22 Jul | Nemesis | The book referred to was published a while ago and the author has a whole series, according to Amazon.
Thu 22 Jul | Tayssir John Gabbour | http://www.pbs.org/wgbh/pages/frontline/shows/wallstreet/view/ Blogs and online videos are contributing to the culture of enlightened distrust. Our system works through people pushing for their own best interest. In politics, business, etc. The problem is when people act irrationally, thoughtlessly aligning themselves with people who aren't incentivized to act in their interests. You can see that a lot on forums, in fact. People talk about Opensource, which is not aligned with most users or businesses. Also Microsoft no longer seems aligned with rewarding certain businesses which build on Windows. Essentially, a lot of talk is about getting people to act irrationally by aligning with the poster's views. I don't even think it's conscious. (But forums do help, by getting people in touch with disagreers.) Systems analysis is quite interesting, looking at vicious cycles due to bad incentives. People like Jerry Weinberg and Richard Gabriel seem to talk about it quite often. BTW, this is why it's a fine line between an ad hominem attack, and pointing out the poster's incentive to post.
Thu 22 Jul | FullNameRequired | 'Our system works through people pushing for their own best interest. In politics, business, etc.' it always amazes me when people regurgitate this garbage. every system works best when there is balance...that means when there are people acting in their own best interest, people acting in the best interest of others and people acting for no reason at all. Look at a marriage....2 people in a marriage only pushing for their *own* best interests results in divorce (unless they are incredibly lucky in having their best interests exactly aligned) The marriages that work best have both individuals watching out for their own interests *and* watching out for the best interest of the other partner with equal ferocity. The same can be said for businesses, for households, for neighbourhoods and for entire societies. Selfishness as a way of life is genuinely stupid and destructive of both society and the individuals practicing it.
Thu 22 Jul | Kenny | i may pick up the book just 'cause of the blog... he's got a good writing style. i normally find stocks to be dead boring, but i read through his article without any problem...
Thu 22 Jul | Name withheld out of cowardice | He makes a lot of good points, especially about the increasing tendency of insiders to steal money from outsiders by diluting their shares through options and other awards fro insiders. What he fails to mention is that his view of the stockmarket is a result of the stock bubble of the 1990s. This was an unusual situation adn we are now living in the backlash. I'm not saying insiders no longer skim; just that they are able to do it at a more historically average rate than during the 1990s. Anyway, these schems tend to fail if pushed too far because they are ultimately reflected in the share price (once all the accounting tricks to hide that are revealed) and then investors look elsewhere. His idea that a non-dividend paying stock is the equivalent of a baseball card is a bit stupid though. The assumption is that eventually a company will mature and have to pay dividends and in the mean time the company is intrinsically worth something because it could pay dividends.
Thu 22 Jul | Greg Hurlman | Keep in mind:  blog author != book author.
Thu 22 Jul | Rammalamma Dingdong | 'His idea that a non-dividend paying stock is the equivalent of a baseball card is a bit stupid though. ' I think he really hit it right on. If a stock doesn't pay dividends then what value does it have? None, unless you can sell it to someone else. Just like a baseball card.
Thu 22 Jul | Tayssir John Gabbour | 'it always amazes me when people regurgitate this garbage.' FullNameRequired, for one thing, blow me. Anyway, you do have a point, but I'd respond that you don't know about how such systems deal with negative externalities. Sometimes it doesn't work. Sometimes it does. People who study systems try to figure out how to incentivize people to work for the best of the system as a whole, when possible. '2 people in a marriage only pushing for their *own* best interests results in divorce' Why'd they marry in the first place, if they didn't think a stable marriage was in their best interest? So if they have any foresight at all, they'd figure out what they want, and see if a good marriage outweighs their other interests. And you know what, some people don't know what they're getting into when they marry, and if they made a mistake, better divorce sooner rather than later. Same with this message. It would be best if I accepted your words and responded rationally, but I'm still recovering from a bad coding session, and it makes me feel a little mentally healthier to call you a shoot-first buffoon who doesn't let the mental gears turn a bit before vomiting to screen. ;)
Thu 22 Jul | Captain McFly | 'The assumption is that eventually a company will mature and have to pay dividends and in the mean time the company is intrinsically worth something because it could pay dividends.' I think the baseball card analogy stands. No regular dividends means that your stock is only worth what someone will pay for it ‘right now’. A public corp is under no circumstances obliged to issue dividends. It took Microsoft how long to start paying dividends? Of course, he’s not saying that corps offering no dividends have /no/ value, just that they might not be as good a return as if they did, which makes sense.
Thu 22 Jul | Ed | Read Mark's latest article on the market: http://www.blogmaverick.com/entry/2375049848426815/ boy is nuts
Thu 22 Jul | tapiwa | Bigger Fool Theory: Buy a stock and you'll make money as long as some other fool is willing to buy the stock from you at a higher price in order to sell it to an even bigger fool at an even higher price. -- Crash, Arbel & Kaff
Thu 22 Jul | Steamrolla | 'The assumption is that eventually a company will mature and have to pay dividends and in the mean time the company is intrinsically worth something because it could pay dividends.' There is NOTHING that says a company 'has' to pay a dividend. Ever.
Thu 22 Jul | Philo | 'Microsoft no longer seems aligned with rewarding certain businesses which build on Windows.' I'm not certain what you mean by this or where it came from? Philo
Thu 22 Jul | Simon Lucy | Certainly not in the week that Microsoft announces its issuing a special dividend.
Thu 22 Jul | tapiwa | Philo Not an ad hominem, but please don't defend MS even when evidence to convict exists. I think there are clearly demonstrable areas where Microsoft has moved into markets that were previously the domain of ISVs. I am possibly the most capitalist person on this forum, and I am not remonstrating MS. Their goal is to make money, and if they see a market they think they can do that in, then they should. I just think it is a fine line to sell an OS, and dev tools, in theory to foster apps on that platform, when the tendency is to move into a market when an ISV has done the legwork in creating it. One of the reasons for Windows' success is the sheer number of apps. When you begin to be percieved as predatory in any successful market defined by some ISV, people will have disinsentives to break new ground. You piss off enough people, and all the innovation will happen on other platforms. A trickle at first, but at some point someone will develop that killer/must-have app on some platform (or it might be series of companies/individuals), making the switch from Windows a compelling move. When that happens, MS is toast. In making more money now, they might just be killing the goose that laid those eggs.
Thu 22 Jul | christopher (baus.net) | > If a stock doesn't pay dividends then what value does it have? None, unless you can sell it to someone else. Just like a baseball card. This is utter bullshit. It is called equity. Read Buffet. Even if Microsoft didn't pay a dividend, their stock would still have value. If for nothing more than to get hold of their massive cash horde. That doesn't even count their IP, distribution chanels, etc., etc.... People that believe this should stay out of the stock market. Consider this Onion-esque headline from 1999: Investor Christopher Baus has taken control of all of Microsoft's public shares this morning. The stock was trading at $0.00001. According to Baus he, 'had a hundred dollars lying around. I was debating whether or not I should take my take my girlfriend to dinner. I decided to buy Microsoft instead. The first thing I did as the owner of Microsoft was fire all the programmers, and Open Source Windows and Office.' Some considered it a radical move, not Baus. 'I figured what the hell. I can live pretty fat on $40billion, so decided to just call it good. I put a Tahoe Lakefront into escrow this morning. Life is good. I was fortunate, that nobody saw any value in these non-dividend paying tech stocks. I think $100 was a pretty good price for a company that generates a few billion in cash annually. I'm what you call a value investor.'
Thu 22 Jul | FullNameRequired | 'Anyway, you do have a point, ' :) I do, dont I. 'but I'd respond that you don't know about how such systems deal with negative externalities.' thats an interesting phrase. entirely meaningless in and of itself, but implying such a depth of knowledge. Lets talk about how such systems deal with negative externalities then....perhaps you could fill me in? 'People who study systems try to figure out how to incentivize people to work for the best of the system as a whole, when possible.' why? you said: 'Our system works through people pushing for their own best interest. In politics, business, etc' so surely that implies all that we need to do is 'incentivize' people to act in their *own* interests....isn't that what makes our system work? 'Why'd they marry in the first place, if they didn't think a stable marriage was in their best interest?' come on, that question so clearly focuses on one small part of the truth that even you must see it. Relationships are hugely complicated things, and they depend entirely on 2 people *not* pushing only for their own best interests. The same thing is true of business partnerships, households, communities, neighbourhoods, cities and governments. where would we be if our great american leader focused only on pushing for his own best interests? 'So if they have any foresight at all, they'd figure out what they want, and see if a good marriage outweighs their other interests.' heh, spoken like a man with absolutely no experience in marriage. 'some people don't know what they're getting into when they marry, and if they made a mistake, better divorce sooner rather than later.' yep, but that has nothing to do with the topic at hand, surely? 'it makes me feel a little mentally healthier to call you a shoot-first buffoon who doesn't let the mental gears turn a bit before vomiting to screen.' god knows I like to help out fellow programmers :) let your abuse fly. (but dont let it distract you from the reality...your point about the system working best etc etc is *entirely* indefensible.)
Thu 22 Jul | www.ChristiopherHawkins.com | 'I am possibly the most capitalist person on this forum' I might fight you for that title. ;) You make a good point, though - even if Microsoft is not moving in on markets that Windows-based ISVs have proven out, there certainly is a percetion that they are doing so, and that is sufficient to damage the market for Windows-based development. Are you concerned about any markets in particular?
Fri 23 Jul | Tayssir John Gabbour | 'thats an interesting phrase. entirely meaningless in and of itself, but implying such a depth of knowledge.' If you think so. If you think people always act in their best SHORT-TERM interests, I can't help you. I know many people who disprove your idea. I feel better now, btw, just had to have a break. Thanks. I don't think your post contradicts mine, just you don't see where they intersect.
Fri 23 Jul | Tayssir John Gabbour | (Incidentally, do a search on "negative externality" and educate thyself. And if your marriage is so codependent and frustrating as you mention, I forgive you for your insulting nature. I mean, I was in a bad mood for only a day, but with a marriage like yours, I'd be a perpetual bitch, just like you. ;)
Fri 23 Jul | FullNameRequired | ' If you think people always act in their best SHORT-TERM interests, I can't help you. I know many people who disprove your idea.' what on earth does this have to do with the topic under discussion? your statement was: ''Our system works through people pushing for their own best interest. In politics, business, etc'' thats clearly nonsense, the system works best when things are more balanced, an entire country of people pushing for nothing more than their own interests has absolutely no future. 'I don't think your post contradicts mine, just you don't see where they intersect.' I know what you are saying, Im just pointing out that it is *wrong* the system does *not* work through everyone pushing for their best interests, both in reality and in theory it works through different people pushing for different things...some for their own best interests, some for the best interests of their children, some for the best interests of their schools (often to their own personal detriment at all levels) and so on. The world where everyone is striving for their own personal interests and thereby improving the world around them for all is a fantasy world created by right-wing zealots, it does *not* exist in reality, and any half-way intelligent appraisal of its theory shows it to be a nonsense :) (no offence meant, of course...) 'And if your marriage is so codependent and frustrating as you mention, I forgive you for your insulting nature. I mean, I was in a bad mood for only a day, but with a marriage like yours, I'd be a perpetual bitch, just like you. ;)' heh. you'll always be my bitch old friend.
ASP business model licensing | Thu 22 Jul | Li-fan Chen
Reading a recent thread on ASP business model reminded me of the many good points of the danger risking your business data and software to a fragile young asp provider. One of the better defenses offered was to ensure all data can be mirrored to client sites and that the client be given the source code if and when the asp goes belly up (license to continue use or for maintenance, not for redistribution). Anyone know of any serious licenses worded that way? Care to point us to some licenses in practice that contains such clauses? I think this last effort source saving clause is a pretty good idea, kinda like having a photographer giving you the negatives to your wedding album after a year for safe keeping.
Thu 22 Jul | kc | Here's what I said in the 'ASP business model anyone?' thread: 'Actually, in the interests of the customers that we host for and to give them some peace of mind, I convinced my boss that if we go under (unlikely) or other specific requirements are met, then the source for the app goes to them. Therefore, they gain the ability to support, maintain, or just discect the code in a worst case scenario. Of course, they do not have redistribution rights of any kind as a result of any of those scenarios.'
Thu 22 Jul | Nemesis | If only photographers would give you the negatives from the wedding after one year. Our guy will sell them to us for a thousand bucks, to cover "copyrights", or keep them forever for free. No doubt in the hope that we will want more prints done at some stage.
Thu 22 Jul | IdleCoder | You'll want to include a clause that the customer doesn't get the source if they have an outstanding balance owed to your company. Otherwise they can ask you to do all kinds of work and promise big bucks when the job is done, you bet the company and when the job is complete - they renig - you go under - they get the source!!!
Thu 22 Jul | example | The 'official' term for giving the source code to the clients if you go under is called 'source escrow'. The ASP company will burn regular copies of the source code onto CD and give them to a third party (the escrow company) to hold on behalf of the customer base. IdleCoder has a good point about having a clause excluding customers with outstanding balances from receiving the escrowed source. Check with your attorney for other exclusions that should be in your contract.
Thu 22 Jul | Jeff | Ahh yes I will definitly sign a contract that says if I owe them money I don't get the source! As the customer, my lawyer would have a heart attack if I signed a contract that stipulated that. If I contract the ASP to add some modules, they fail to complete them according to the contract for that project, I would have to pay for incomplete work. Why would I have to pay for incomplete work? I see their move being, you pay or we go out of business and you don't get any source. They could shove any number of crappy situations my way, if the escrow holding the code feels I am not worthy of reciept I don't get the code until the courts/lawyers figure it out. Escrow holding of code is just as dangerous as putting all your money in an escrow account, one legal battle over that account and you have no access to your money until it is resolved. This makes me wonder since my competitors use the same system they will be a part of the escrow, if they can survive without the source, can they just sue the escrow lock it up for all parties of the escrow and everyone is screwed until it is resolved? I would also assume that if you put the code in escrow the data that feeds the code, if there is any, would have to be placed into the escrow in a way that I cannot see another companies data. The contract for a functional ASP product is something I would truely love to see. There has to be a way to make it work, but it seems that involes the ASP becoming more a partner of the customer rather then a service provider. I think ASP models work for non critical applications where the customer will not go out of business if the ASP fails.
Thu 22 Jul | Li-fan Chen | Jeff, Do you think it's being taught in business schools people ought to get 2+ vendors for any given software? Does anyone here think if a client has more than one vendor it will ensure more change of surviving such an unfortunate situations like the Jeff you've just mentioned.
Thu 22 Jul | Jeff | Li-fan, I am not really in touch with business school grads, the people I deal with that make business decisions are all in the 45+ age range and well out of school. I find some of them to be in general at a huge disadvantage when technology meets their business. I have come across 4 companies that had problems with their ASP and I would say that the problem centered around a lack of understanding the technology and thus not understanding the depth of their attachment to the ASP. In all cases once they gained an understanding of the technology they were stunned that they entered into the agreements that they did and risked their company as much as they did. I am unsure how having two vendors for the same ASP application would help the customer? It seems this discussion of ASP systems has focused heavily on the code. I find the code to be the most useless part of the ASP's service, the value is in the data the ASP is collecting, storing, protecting and serving for the customer. Unless the data is duplicated between the vendors how does one survive the failure or your ASP?
Thu 22 Jul | example | >> If I contract the ASP to add some modules, they fail to complete them according to the contract for that project, I would have to pay for incomplete work. << I think you don't completely understand the ASP business model. Customers do not typically contract with the ASP provider for custom work -- the goal of an ASP would be to provide a configurable system (*not* a customizable system!). Writing custom code takes resources away from projects which could benefit the entire customer base, not just one. The advantage that an ASP offers to their customers is that the customers get a system which they could not otherwise afford -- all the expensive development costs are spread amongst the ASP's customer base. The counter to this is that no one gets any custom functionality. 'But how does new functionality ever get added?' you ask. Two jobs ago the way we did it was have the customer service reps come up with a list of frequently asked-for features, which would then get distributed to all the customers. Each customer got 100 points to assign to the features they wanted most. They could put them all on one feature, or spread them around -- however they wanted. We would then add features in point total order -- most to least -- in the time we had available for development. I'm sure other ASPs have different ways of deciding on what new features to add.
Fri 23 Jul | Espen Antonsen | We offer a web-based ERP-solution so we are an ASP. Our contracts specify that the customer owns their own data. They can get a backup if they want and when they quit the contract they will get all their data from our database. I don't know why are saying source code. I can't see why a customer would want/need/require/entitled to the source code, it's the data that's important. -- http://sleepyhead81.blogspot.com
Nasty virus/worm on my server - what is it? | Wed 21 Jul | OK programmer, sucky sysadmin
Does anyone know of free or cheap server-targeted anti-virus software? Heres my situation: Ive just put my new web server (for my new ISV business) at a colo companys data center. Unfortunately, I didnt have my OS (Win2k) nor my database (MS SQLServer 2k) updated at the time. Yes, Im an idiot. Surprise, surprise, I now have some kind of a worm or virus on the box. It causes the box to do a huge amount of outbound data transfer (around 90 megabits per second) until the box is manually rebooted. I cant restart it using Terminal Services because the box is so overwhelmed by this that it doesnt even respond to ping, let alone to a Terminal Services client. Unfortunately, I dont know what kind of data transfer (port#, destination IP) is happening because the colo company isnt logging anything that doesnt get to its router. None of my outbound packets are getting to the router because the colo guys have some kind of filtering that prevents packets from getting through when the demand exceeds some ridiculously high level which my box has been exceeding. I updated my OS and database. I already ran McAfee VirusScan and the free edition of AVG on the box. This turned up nothing. I fear that these desktop products are not looking for worms and viruses that target servers (ex. SQLServer worms). I know this is very little information, but its all Ive got. Can you give me some hints or heuristics about how to find what virus it is? Here are the basics of my configuration: -Win 2000 (with the most up-to-date patch, 5.00.2195 Service Pack 3) -IIS -MS SQLServer 2000 (with the most up-to-date patch 8.00.763, Service Pack 3) -Tomcat (4.1.27) -No SMTP I humbly thank you in advance for helping me out.
Wed 21 Jul | Neat Chi | If your AV product can't find anything, it's possible some hacker has some customized DDOS or spam software on it. Your best bet is just to wipe the box. Once you've been rooted, this is the only way to really be sure you're clean. (Yet another reason not to use Windows. Most datacenter operators are well-equipped to determine exactly how a box has been compromised and what's been changed if it's a Linux box).
Wed 21 Jul | Philo | 'Most datacenter operators are well-equipped to determine exactly how a box has been compromised and what's been changed if it's a Linux box' Cite? Philo
Wed 21 Jul | example | Time to format the drive and reinstall. See: http://weblogs.asp.net/larryosterman/archive/2004/06/18/159482.aspx
Wed 21 Jul | Code Monkey | Go to www.sysinternals.com. There are a ton of tools there to allow you to figure out which processes are running (procexp), which processes have which TCP/UDP endpoints open (TCPView) If that fails try any of the free network sniffer tools @ http://www.webattack.com/Freeware/network/fwpacketsniffer.shtml
Thu 22 Jul | karthik | Microsoft has a free antivirus support. Tried it?. Do a Google search on SQLServer viruses. Database viruses should not be too tough to remove.
Thu 22 Jul | Nemesis | Toast the box. Surely, blatting everything and restoring your last known good backup will be quicker than fiddling about with loads of tools. I assume you do