last updated:06 Aug 2003 14:41 UK time
Joel On Software Discussion Forum
JOS Statistics - Recent Comments
(Comments added for week ending Sun 04 May 2003) | View Other Weeks
C# Programming Soon To Be Worth The Effort | Sun 04 May | Walter Rumsby
Apparently JetBrains are making a C# version of IDEA meaning the that C# programmers will be able to use the best IDE in the world. :) (Im not sure about the state of the C# IDE market but it may also mean that C# gets its first IDE with refactoring support) I wonder if this was part of JetBrains initial plans or if it is partly caused by the number of: * free Java IDEs * Java developers whining but I have to pay for it (these same people clearly have very well speced machines if they can run NetBeans or Eclipse with adequate performance)
Sun 04 May | GiorgioG | Walter, Have you even tried VS.NET (1.0 or 2003)? It _IS_ the best IDE for .NET/C# in the world. I played with IDEA for Java, it's nice, but I don't understand what the hoopla is all about (I've used Visual SlickEdit for doing java dev, so I wasn't much impressed by IDEA.)
Sun 04 May | Dan J | Yeah, man - whether you like Microsoft or not, Visual Studio .NET is an amazing IDE. In terms of core language features and basic ASP/ADO/Forms programming, it is flawless; if you use a lot of the hardcore web/enterprise features (to automate away certain tasks), you will find bugs, but... oh well. Nothing else is in the same universe as Visual Studio.
Is a source management system useful for Delphi? | Sun 04 May | Michael K.
Hi! Please excuse my bad English. I am very drawsy and English is not my native language. I would like to ask you a question, but at first, please bear with me - Id like to write a little theory: Software development is divided into many worlds. For example, there is the C and C++ world. There is also the Delphi world, which is vastly different. There is a Java world. Etc. Lets take Python, for example. People claim that Python is a great productivity improvement, and that Python programmers are extremely productive compared to other programmers. I have learned Python pretty well, and, indeed, it is AMAZINGLY productive, when compared to C++. :-) Using Python is a great productivity boost. But, when I compared it with Delphi.. well, I could write the guts of the application faster in Python, but the gained time was quickly consumed when I made the GUI part of the application, and doing this in Python took 3 times more than doing it in Delphi. So - the phrase Using Python increases your productivity is very true in the C++ world, but definitely untrue in the Delphi world. When saying something, people usually talk about the C++ world, because a lot of development is done in C++. I have heard many times that a source code management system like CVS or MS Visual Source Safe is extremely useful for developers, and that it helps productivity a lot. My question is - is this affirmation true only in the C++ world, or is it also true in the Delphi and RAD world? Currently, source management in my (3 developers) company is performed like this: 1. We try to keep the product as modular as possible. We have naming conventions for modules - all source files of module ABC have a name starting with ABC, so its very easy to select and manage a whole module using Windows Commander (which is a good Norton Commander clone for Windows). 2. Every module is owned by someone, who is the only one who has the right to modify that module. 3. If I need to modify a module for which I have ownership, I modify it right away, work on it, and when it is complete, I update the master source which we keep on a network share. 4. If I need to modify a module for which I dont have ownership, then I talk to the developer who has ownership, and take the ownership of the module from him (he can let me do this immediately, OR ask me to wait until hes done with the module, OR perform the modification for me). 5. Daily backups are performed on the master source, burned to CD, and stored off-site (I usually take them home). So, can a source management system improve our productivity, compared with this system which is already in use? Which source management system is best for Delphi developers? Which source management system is the most productive? (in the Delphi world, dropping to a command line shell to run arcane command lines is not considered productive)
Sun 04 May | Herbert Sitz | First, if you like programming the 'guts' of an app in Python but still prefer doing the UI in Delphi (and who wouldn't), I've got the perfect thing for you: 'Python Delphi'. It's written specifically to let you do just that. I discovered it a number of months ago when someone mentioned it here on JoS. Still haven't used it but it looks cool: http://www.atug.com/andypatterns/pythonDelphiTalk.htm Second, yes, a source code control system will give you things you don't have with your current setup. If you want something to integrate into the Delphi IDE you might want to investigate SourceConnexion, which integrates most popular sytems into the Delphi IDE: http://www.epocalipse.com/scx.htm
Sun 04 May | Tim Sullivan | In Delphi, I use FreeVCS, and have been pretty happy with it. It's free (recently taken up by Project JEDI), reasonably full featured, and integrates with Delphi if you want. http://www.freevcs.de
Sun 04 May | Michael K. | Thank you, Tim and Herbert, for your replys. I shall look into both alternatives. Another thing I would like to mention is that we often work on 'crippled' versions of the program. For example, I have ownership of the module M, and in order to develop it as quickly as possible, I need to do destructive modifications to the rest of the program (like, for example, perform a minimum necessary actions, then start module M directly, or feed module M some hard-coded fake data, in order to test it better). So, I copy the master source, modify it (cripple it the way I need it in order to work faster), work on module M, and when the module is finished, update the master source only with the sources of module M. Can a source control system do this? Thank you!
Matrix Reloaded | Sun 04 May | Prakash S
Why do so many people in the tech field want to see this movie? I want to see it cos the 1 st one was pretty darn good. Thoughts!
Sun 04 May | GiorgioG | Because we're all ubergeeks ;-)
Sun 04 May | choppy | Maybe because it is about how the world is really just a big computer simulation, and people in tech use computers?
Sun 04 May | choppy | Check out the animatrix cartoon trailers, very interesting. http://www.intothematrix.com
Sun 04 May | Andrew Murray | Sorry this is kind of OT, but there really isn't any thread that this should fit under. Matrix Reloaded will be great, but before it comes out I encourage everyone to see Better Luck Tommorow. I just saw it last night with my girlfriend and it has to be one of the best movies I've seen in recent years. (Plus I'm a college kid - I know movies :P) You *will* leave the theatre confused / disturbed / in love with the movie. Just a thought.
How would I move Mount Fuji | Sun 04 May | Bob
1) I would hire a lawyer (corporation), seek VC, hire manpower (setup offices etc.). 2) Hire PR. 3) Hire some top ex-CEOs, ex-top managers, and other high-payroll people with different names. They should come up with plans. Meet and agree to 1 plan. (Insert PR+VC campaign here). 4) Outsource the work... 5) PR again.
Sun 04 May | www.marktaw.com | Mount Fuji is a volcano, is it not? Couldn't some well placed explosions cause it to erupt? What about drilling a hole in it's side so as to relieve pressure aimed upwards. Then it would explode in the direction of my choosing, hopefully away from the populated areas, which is presumably why you're moving it in the first place. If someone in Las Vegas bought it and I was hired to move it to Vegas, I would just cut off the top few hundred feet and move those 'brick by brick' (I would chop it into bricks) and move that... Then build a mechanical mountain below it that shot sparks out every once in a while... All the distinctive characteristics of Mt Fuji, none of the danger. As for the Mt Fuji in (Japan is it?) well, it would still be potentially deadly, it just wouldn't look like Mt Fuji anymore. Do I get the job?
Sun 04 May | Nick | 1. I'd get half the money up front. 2. Sub-contact the 'work' to Penn & Teller. 3. Make off with the cash.
Sun 04 May | www.marktaw.com | Nick, you definately don't get the job.
Sun 04 May | runtime | How much of the Mount Fuji must be moved? 100% or is 1% ok? I would leave the dirt in place and just change the official maps. Rename some other mountain to 'Mount Fuji'. done.
Sun 04 May | Prakash S | Everything in this world is relative. I would keep changing my co-ordinates, that way Mt. Fuji would *move*:-)
Sun 04 May | Ged Byrne | Isn't Mount Fuji already moving at breakneck speed as the rotating Earth orbits the Sun?
Sun 04 May | www.marktaw.com | And as the universe expands. And slowly as tectonic plates shift. If you're going to get that anal about it, and question every single request, I don't think you're the right person for this job.
Sun 04 May | Simon Lucy | I believe North Korea has the technology needed for me to buy in to achieve this contract, at the same time could I interest you in an entirely depopulated country north of the 48th parallel?
Sun 04 May | www.marktaw.com | If this were Middle Earth and I were Gandalf, I would just get the trolls that hang out here to move it for me.
Sun 04 May | Mike Swieton | Scenario: Rich Guy Joey wants Mount Fuji, which is why I'm moving it. I comission an artist to get me a good image of Mount Fuji in all weather. I replace all of Rich Guy Joey's windows with LCD screens and cameras, with Mount Fuji dynamically inserted into all the views. 8-} I change Rich Guy Joey an insane amount, because, mountain moving and all. Pocket the cash, run like hell, and hope Viewsonic warranties last long enough to cover my retreat ;)
Sun 04 May | B# | Is it me or is anyone else wondering what problem they want solved by moving it and is that the only way to solve it?
Sun 04 May | www.marktaw.com | B# - yes, that's what I was getting at in my first post.
Sun 04 May | Philo | B# raises an interesting question, and I find myself in a dilemma... On the one hand, when someone asks to move Mount Fuji, one should ascertain the business reason for moving said mountain, since there may be an easier/cheaper way to achieve the desired effect. On the other hand, it is presumptuous to assume you know more than the person asking, and when presented with a specific request for a concrete action, you should simply address the problem. (To know how this feels from the customer point of view, just go ask how to do something specific on Usenet and watch half your answers address the why instead of the how) To be honest, I don't know the answer. I think it's 50/50 - half the time the client will appreciate your help defining the problem, and half the time they'll be annoyed that you're wasting their time, since they've already spent money defining the problem; you're just here to solve it. So in that case I'd have to say 'use a third table' Philo
Sun 04 May | www.marktaw.com | Mine is not to reason why, mine is but to be at work from 9 to 5 or get fired?
Sun 04 May | Philo | Look at it this way - if the problem is 'how would you move Mount Fuji?' then asking 'why would you want to?' is scope creep. ;-) Philo
Sun 04 May | Michael K. | First of all - please excuse my bad English. It is not my native language, and now I'm VERY drawsy because I drove about half of the night, returning from a nice holiday in the mountains. So here is my reply to the question about moving that mountain or volcano: ---------------- Aww, c'mon! It's a really stupid question. I thought about it for about half an hour - but I am a software developer, not an architect or mechanical engineer. These are the people who can answer this question, not me. I can hardly take such a question seriously. I have been interviewed by Microsoft, and they NEVER asked me to solve this kind of stupid puzzles. They asked us questions and asked us to write code and to review already written code and find bugs - NOT to solve stupid puzzles. The reason I failed their interview was that I was VERY drawsy (like I am now). It is interesting that now I'm glad that I failed the interview and did't go to USA (I live in Eastern Europe), as now I have my own small company, I make pretty good money, and have a normal 40-45 work hours per week schedule (I understand that at MS, they kill themselves working - so much that the wifes of MS programmers are called 'MS widows' - and this is not a joke). But it really was a nice experience - meeting people from MS and the MS Office team. Anyway, when interviewing someone for my own small company, I would never ask them such a STUPID and worthless question. I usually employ people to do specific tasks (for example: write Delphi components), and I give them a VERY HARD, but similar, task. I also ask them to show me code that is already written by them (larger pieces of code, even if they are only parts of an application), and I review it carefully, in order to make sure the code they write is organised. Anyway, if someone doesn't have already written code to show me, I don't hold this against them, but just give them the hard task to work on. If they can complete the task very well (from about 20 people, only one or none usually complete the task), I hire them 'on a trial basis', for one month. In that month, I discover if the person is disciplined or not, if he/she gets frustrated quickly and abandons the problem, etc, etc. I can easily test technical knowledge during the interview. However, technical knowledge is not all - the person must also be disciplined and hard-working, must not give up easily, etc. These personal qualities can not be reliably be tested in an interview - ask anybody if he is disciplined and hard-working, and he or she will look into your eyes, smile, and say 'of course'. This can easily be faked. So I'm looking for people who: - can perform the task - are disciplined, hard-working, and don't give up easily I still admire MS, but think their employment interview puzzles == crap.
Sun 04 May | Prakash S | Michael, now I know why MS didn;t hire you :-)
Sun 04 May | Michael K. | LOL!
Has anyone ever used SapDB ? | Sun 04 May | David
Hi, Im beginig a new project, and I need a database for it, a free one. Ive been looking for the regular candidates PostgreSQL and MySQL. Then I saw a new player - SapDB ( http://www.sapdb.org/ ) which claims to be full featured RDBMS. It is is also GPLed, which make it very attractive. Unfortunately, I havent found any good comparison between it and the others. Has anyone tried it ?
Sun 04 May | Herbert Sitz | Sorry, I haven't tried SAPDB, although it looks good. Just wanted to make sure you checked out another open source db contender: Firebird. http://www.ibphoenix.com/ http://firebird.sourceforge.net/index.php Firebird has its roots in Borland's Interbase. It's a full-featured ACID compliant database with views, triggers, stored procedures, transactions, etc. Like SAPDB, Firebird is a little bit late to the party. But the user community has really started to take off over the last year or so. Firebird 1.5 is in the Release Candidate phase, with the real version to come out shortly. One of the exciting things about Firebird 1.5 -- for me -- will be the ability to deploy it as an 'embedded' server in your app. In Firebird's case, this means you can deploy a desktop app using a local Firebird server just by including a Firebird dll with your deployment; no end user hassles of having to manage a separate server application.
Sun 04 May | Herbert Sitz | Sorry, I'm not certain, but I think the 'embedded' .dll solution of Firebird may be usable only with Delphi-based solutions. Someone can hopefully correct me if I'm wrong. There are a number of ways to connect to Firebird, many of which are native to Delphi (understandable since Firebird is based on Borland's Interbase). But there are also an ODBC driver, a number of cheap or freely available 3rd party ADO/OLEDB drivers, and a freely available .NET provider, that make Firebird usable in non-Delphi environments. Also, Firebird runs well on both Windows and Linux, a feature that distinguishes it from PostgreSQL.
Sun 04 May | Frederic Faure | Can you tell use about performance when using the embedded version as compared to the client-server version? And if someone has the DECLARE right to access it from VB without bothering with ODBC or OLE/DB, I'm even more interested :-) For those interested, MySQL also offers an embedded version: http://www.mysql.com/doc/en/libmysqld_overview.html
Sun 04 May | Dirk | We have SAP DB in use for more than a year. It runs flawlessy without major hussle, though the admin tools are not always perfect. No crashes, no data loss. But we run it only in a rather small config. From what I have seen, I would give it a serious try even for really huge datasets. One thing to note: SAP has certified it for the use in mySAP installations (no wonder, since they are the developers *g*), which means really huge workloads and big stability. I think it is the only open source db which is certified for mySAP. Support is done via two options. a) Dedicated support stuff at around 60000$/year or b) the mailing list. Mailing list support is very responsive and quite a few SAP people are on the list. Dirk PS: About open source. Condider GPL/LGPL more a licensing and political deal. Don't expect to be able to change the code easily. The code base is up to 20 years old, parts of it are written in pascal and crosscompiled to c. Cryptic filenames etc. But propably there is no need to change the code anyway.
Sun 04 May | Konrad | I've been using SapDB for about six months and my impressions are favourable. Some of the configuration can take a bit of getting used to, but in general my impressions are very favourable - a useful feature is also 'Oracle compatability mode'.
Sun 04 May | Arron Bates | A month or so ago there was a thread about databases and I had a huge spiel about SAPDB. In summary, the database is absolutely sweet. Free CD. Open Sourced. Free to distribute. No DB is easier to setup. I've only hit a few quirks with an older Linux version of the database. Best part of the database, is all the documentation you'll ever need is on hand, either on the CD or downloadable from the net. Second best thing is its almost totally hands-off management. It simply works. I dig it so much, I'll send a copy of the CD personally if SAPDB stops shipping them free (yes, they ship them free from germany. Takes around a week to get it to Australia). Oracle had 'Connect By' to get a hirarchy query which I couldn't find in SAPDB until a while ago. Instead has a recursive cursor you can use. With that, it's suits all the database needs I've ever had. It's one sweet database. It's also free, so there's no excuse. :) The Only Beef: it doesn't have a very good command line SQL tool. It has an awesome command line tool for DB management, but it's not geared to playing with queries the way Oracle's SQLPlus is. It does have a great SQL gui however. To get command line SQL going (can't always get to a gui), I've written such a beast in Java which uses JDBC drivers (and therefore can connect to multiple databases). I can send it to whoever wants it. Only for those command line marauders out there, and for times you can't get to a head.
Programmers who are ignorant of common technology | Sun 04 May | T. Norman
Recently I had a conversation with a co-worker who is a mainframe programmer over 50 years old, about how to use telnet to read email from a POP3 server or view HTTP headers coming from a web server (at the time I happened to be using it to view the HTTP response headers coming back from a servlet I had written). But to my surprise, she didnt know what a POP3 server was. At first I wondered if it was just a case of not knowing the terminology, but further discussion exposed that she actually was not familiar with the concept of downloading email to a local PC so it could be read later without being connected to the Internet, and she actually didnt know about popular email readers like Eudora and Pegasus. She used a web-based program for her personal email. Sure, maybe she doesnt need to know about it to do her job. But man, how can she be so disinterested in technology? And if she gets laid off and/or has difficulty finding a new job shell probably say its age discrimination. Still, I give props to her for being a woman in IT for over a couple decades, which must have been quite difficult and uncommon back then. I came across another guy like this in my early consulting days. It was 1997, and he had never used a Windows or Mac computer or any other GUI. He was a mainframe programmer at the same place for over 15 years; the only one still around from when their system was originally developed. I was supposed to help train him to maintain the system we consultants had developed to replace part of the mainframe system, but it turns out we also had to teach him basics like using the mouse and menus. Ive come across a few others like that, young and old, although they werent as bad. Still, it surprises and disgusts me how some people can just get so comfortable doing the same thing day in day out without making the slightest attempt to learn anything outside the sphere of what their current job requires at the moment. People like that make it difficult for programmers in general to get hired, because their reluctance or inability to learn anything new has led employers to believe that they need to find somebody with an exact match of a laundry list of languages and technologies.
Sun 04 May | Evgeny Goldin | I think this is a very silly but, unfortunately, very typical situation. It all comes from the question - what do people do at their workplace. Some of them is just doing their jobs, pushing the project forward without having slightest interest in what's happening around in the worl and how basic things are working. I once met some guy having EJBs and connectors jumping out from his eyes but who had no idea about very basic HTML concepts (forms, attributes), what 'session' is and how is it managed by the server.
Sun 04 May | Heywood Jablomie | Maybe she doesn't float your boat, but sounds like she's delivering value somewhere. Oddly enough, most CEOs don't give a shit about using telnet to check email. That's what I hate about most programmers: No business sense. Maybe instead of chastising her, you could go out and brush up on your COBOL, COBOL II, AS/400 COBOL, AS/400 CL, MVS/OS, MVS/XA, MVS/ESA, OS/400. DB2, IMS DB/DC, IMS DL/1, CICS, JCL, and VSAM skills?
Sun 04 May | Li-fan Chen | I would pay someone the big bucks to unlearn the crap we call architecture that's propping up the online world. POP3, SMTP and HTTP is not as amazing as most of us make it out to be. It would probably take a weekend retreat for that mainframer to learn too much about it.
Sun 04 May | Stephen Jones | Last job I had there was another teacher who'd worked in computers until 1995, which was one year before I bought my first computer. Our conversations were surreal on occasion; 'Look, he'd say, the problem here is that the path isn't set at bootup.' 'What do you mean 'set the path'? Never heard of the idea'. Mind you when we could get on to the same wavelength we were a pretty fomidable pair, in a Jack Sprat and his wife kind of way. Also, I think we do tend to overestimate the importance of the technology we know. I suspect that in a few years many of the 'must-knows' will become as arcane as the last generations pop idol. It's easier than you think to blink and miss a whole generation of computing.
Sun 04 May | T. Norman | It's not that she specifically didn't know how to use telnet for email or HTTP; many programmers don't know how, and it doesn't take long to learn. The point is that if she had a basic interest in learning new things, she should have at least known of the concept of POP3 programs even if she knew it by another name (which she didn't). I'm not doubting that she does a good job with the mainframe, but I would have serious doubts about hiring her or that guy from 1997 to do something new if they're that disinterested in learning about new things.
Sun 04 May | Philo | Heywood, there is a strong business case for understanding telnet, TCP/IP, and how servers interact with the internet - the more skills a programmer has, the fewer people you need to get things done. I'm currently working with a very talented sysadmin - between the two of us we can manage the network, and since I know enough networking to be dangerous, I think our discussions are much more productive. For example, yesterday I was talking to him about why I couldn't see my local network while I was VPN'd into the corporate network. It took about 30 seconds to figure out it was because my home network and the corporate network were on the same Class C network, and if I renumbered my network to the 10. Class A network it would solve the problem. So I did that (by myself, took ten minutes), and all was well. Does it make business sense that I should've had to have a sysadmin come and do the troubleshooting, then renumber the network? Tho I haven't found a business case for my learning COBOL, if there was one, I would. Philo
Sun 04 May | Clutch Cargo | I worked with one older mainframe guy who was funny. He couldn't grasp the difference between an editor and a command prompt (this was back in the DOS days). He kept complaining that the OS was 'stopped'. I'd go over to his computer and see the editor was running and he'd have like a page of dos commands typed in: dir, cd, etc. This happened more than once. It was hilarious.
Sun 04 May | T. Norman | On a similar note, there are some programmers who don't even know what Linux is. Not that they will necessarily ever have to write a program for Linux, but they should at least be interested enough in the world of technology to know about its existence. In the case of that lady and the guy from 1997, there indeed was a business case for them to learn new skills, because their companies' well-stated strategies have been to move away from the mainframe towards modern web-based and client/server platforms.
Sun 04 May | Nat Ersoz | Hell, just last week, one of my best friends from RealNetworks was wearing a cool new T-shirt that said something about their recent double blind taste test w/resect to codecs. They were running subjective tests of audio codecs and gave away T-shirts to the participants. Also on the T-shirt, was a graph of the sinx/x function - aka the 'sync' function. I noticed that first and said, 'hey, you're sporting the 'sync' function', and he just looked at me, 'huh?'. I said 'the sync function, you're wearing the sync function- that's cool'. Well, he's server tester, not a codec guy 'oh, I didn't know that's what that was'. Well, as every idiot knows the sync funtion is the response of an ideal 'brick wall' filter when forced by an impulse. Duh, they shoulda taught you that in Sophmore signals and systems. And then, he asked me if I'd help him balance the carbs on his 68 VW microbus. The nerve...
Sun 04 May | Nasty Curmudgeon | I work with one company that is trying to get an internet driven service off the ground. The owner and his key programmers go out of their way to know ABSOLUTELY NOTHING about current technology, and especially online technology. It's almost as though they are afraid of getting an electrical shock or going sterile if they learn something about online life. They know DOS, Windows, and stupid little DOS hacks from the late 80's like the back of their hand. They also bitch all the time how MS 'changes things' yet nobody there has a clue what open source or Linux (IE, real alternatives) are. They live in a mode where they play pretend and wish that whatever is in the current version of Windows 'can't possibly ' change. They insist on internally using the DOS real mode version of pkzip (the ones that don't understand anything past 8.3 names,) and their experienced people are compulsive about using old real mode DOS utilities. The owner uses a free email account. He doesn't know how to attach a file. So when he sends me source code it's gobbed into the message. Everyone in the company shares one internet email account. So you can't send email to just one person and expect a response. The owner (a coder) has never heard of gateways or firewalls so he cultivates a local superstition that any computer that has even a remote connection to the internet through any means is susceptible to viruses, attacks, etc. So nobody in that company, ever, will ever have an email account accessible to the outside world. This includes customer support. I showed the most experienced programmer there FTP one time because FTP figures into this new project. I showed him how to use the Windows FTP client. I logged in through Telnet and showed him the command line. He grasped it all, but he acted like it was incomprehensible to take the initiative and seek out knowledge on his own. He was only going to learn what he was spoon-fed and which the owner beats on him to learn. And that's the entire problem, and it is a problem in some quarters. I think what T. Norman and a few others, myself included, are lamenting is the sub-professionalism and blue collar attitude of some so called 'experienced' people in this field who studiously avoid learning anything that isn't directly tied to what their boss wants them to learn. Unjustified ignorance in this field is a developmental flaw.
Sun 04 May | www.marktaw.com | I say no sigs. | I got an IM from a certain Joel Spolsky the other day, he said he was trying out IM software for the first time... So I welcomed him to the 21st century. I think people tend to stick with what works for them. Sort of like how your kids know how to program your VCR... you're just not as interested in learning it.
Sun 04 May | Simon Lucy | I though I was the curmudgeon. Anyway, would this company you associate with concentrate on some kind of vertical market and one where they supply some necessary piece of hardware? I think in any previous period there have been those that didn't catch the wave and happily dog paddled in their own pool. Unless there is some external pressure to change they never will and its likely that once that pressure happens that they will fail in trying to adapt. Of course we probably all of us have some point at which we cease to accept or look for innovation. There was a time in the late 80's when I wished there'd be some respite in hardware replacements just so I could keep up. Nowadays I don't even pretend to try, I guess I could re-apply all my old skills in support and production of PCs for the mass market but its not something that worries me. I have a particular resistance at the moment to .Net and I'm not sure if that's prejudice (not because its Microsoft but because its mutton dressed as lamb), or disappointment at how naff it is.
Sun 04 May | Nick | This makes me think of bookstores. Is there any other career path where you can walk into a typical (Barnes & Noble, Borders, etc) bookstore and find a whole section dedicated to it? Sure there's the business books, but most of these are 'how to swim with the sharks' type books - not 'real' titles. Constant change drives constant learning. But was this the case 20 years ago? Did people coming into the field consider regular trips to the bookstore a normal part of their career? There wasn't even a publishing / bookselling infrastructure in place (to degree that there is now) to support it if they wanted to. A person coming into the field within the past 10 years is much more likely to have a 'constant learning' mindset than someone coming into it 20 years ago.
Sun 04 May | www.marktaw.com | Psychology pops into mind as a career with a section dedicating to it. Cooking, interior decorating, musician... a lot of careers.
Sun 04 May | Marcus | What I hear a lot at work is this one: 'Well I work at a computer all day, the last thing I want to do is use my computer at home' People like this are usually the problem, because at my workplace we're too busy to be learning new things, so the only way to keep up is to look at things on your own time. And since we are supposed to be professionals, shouldn't you be doing this anyways? I've found that all the people that give me that line about not wanting to look at a computer at home are generally useless and have no clue about current or common technology. They've never seen linux, used SSH, telneted to a pop server or any of these things you mentioned. They are posers, and should get out of the industry IMHO.
Sun 04 May | Nick | Psychology, cooking, interior decorating, music ... I'm not saying that there are no other careers with sections dedicated to them, but none in my local bookstores are near as large as the tech section. And, with each of those there's a fair amount of non-professional books mixed in ('I'm OK, You're OK', '10-Minute Microwave Meals', 'Trading Spaces - the Early Years', 'In Sync: Behind the Music'). Really, when's the last time a rock star couldn't get a new gig because he failed to read up on changes in the industry?
Sun 04 May | Nasty Curmudgeon | More... I think I'm particularly hostile toward ignorance of common online technology, especially for developers on the desktop, because the internet happens to be the #1 preeminent 'application' of the desktop today. I'm in business myself and I think it's specious and pompous apologism to excuse tunnel vision as 'being well focused on essentials'. The place I described will ultimately 'focus' itself right into the ground. The problem with needing to have a specific immediate application in order to justify learning something is that your professional repertoire winds up never being greater than the immediate moment's needs. You can't react to new technologies or challenges, since you're basically stuck in the past. Everyone doesn't have to be a hot-shot spend-$2000-a-year-on-books 'consultant', but everyone should have their head out of their ass. To answer one question, the company I described is a kind of vertical market developer, but they are purely software (a type of business application). The funny thing about the cult of ignorance I described is that the people that staff this place spend *many* more hours behind a keyboard, doing 'work', than I choose to. Yet they know absolutely nothing that isn't set directly in front of them on a silver platter, and they don't even know the core development tool that they use as well as I do. It's as though the biggest workaholics are the most learning - impaired. Or maybe, it 'says' that the workaholism is a reaction to inability to learn; these people don't have much talent so they compensate with heavy overtime.
Sun 04 May | Spent 6 hours on the sail boat today, losers | I think you guys are just jealous because I can learn in a 40 hour week what you guys spend evening & weekends on. Don't mistake your passion for true skill.
Sun 04 May | Evgeny Goldin | Once, my boss was shocked by UltraEdit opened in binary mode (the file was corrupted so UE decided it was binary). But the man didn't understand what's going on until I pressed Ctrl+H (turn on/off the binary mode) for him .. Not to mention he had a Ph.D and lectured about software engineering in university
Sun 04 May | Evgeny Goldin | Hmm, sorry - offtop ...
Sun 04 May | www.marktaw.com | 'The problem with needing to have a specific immediate application in order to justify learning something is that your professional repertoire winds up never being greater than the immediate moment's needs.' For someone whose found so much joy in learning for the sake of learning, this attitude bugs me. I learn something becuase I want to learn it. I hate being forced to learn something I don't want to learn, and I would especially hate forcing myself to learn something 'just because.' If there's a need, I'll learn it. If there's no need, I have better things to spend my time on... Including learning things.
Sun 04 May | Simon Lucy | 'Once, my boss was shocked by UltraEdit opened in binary mode ' I think if I hadn't known that UE had a binary mode I'd have gone 'Cool' at that happening in front of me. I say that so little these days.
Sun 04 May | Eric Moore | >But was this the case 20 years ago? Did people coming into the field consider regular trips to the bookstore a normal part of their career? Yes. At least in R&D. Otherwise you didn't survive. >A person coming into the field within the past 10 years is much more likely to have a 'constant learning' mindset than someone coming into it 20 years ago. Why? Do you think the constant churning of skills/technologies is something new? Have you also considered the possibility that given normal career paths and age discrimination, any developer who has managed to stay in the 'mainstream' for 20 years is probably better at constant learning than you are? Its a case of self-selection.
Sun 04 May | choppy | I have no idea how to use ultra edit or how to program in visual basic and I've been doing pretty well, i think?
Sun 04 May | Julian | My general computer knowledge is rather spotty, though I learn whatever is necessary to perform a first-rate job at work. What are good sources becoming well-rounded? Slashdot is probably not the best place to start.
Sun 04 May | one programmer's opinion | Philo wrote, 'Tho I haven't found a business case for my learning COBOL, if there was one, I would.' [sarcastic mode on] Yup. That is all you need to know to be considered a competent mainframe business programmer. [sarcastic mode off]. No easy answers Some old codgers have made a conscience decision not to chase the latest and greatest and as a result they may soon find themselves unemployable. Now having said this, there are others who have spent a lot of time studying the latest and greatest and found that doing so has gotten them nowhere (i.e. nobody will hire them without extensive on the job work experience with the latest and greatest). As for those people who say these dinosaurs should be kicked out the industry -- I am all for it as long as those people who are currently demanding their departure are required to do the work they currently do.
Sun 04 May | I still make more money than you | I spend my outside-of-work time networking and attending industry events. Telecom events, not programming events. When I'm not playing golf. I guess that means I should get out of the business?
Sun 04 May | Nick | 'Why? Do you think the constant churning of skills/technologies is something new?' No. I just think that it's accelerated dramatically in the last 10 years.
Sun 04 May | Brad Wilson (dotnetguy.techieswithcats.com) | 'Do you think the constant churning of skills/technologies is something new?' I think it's like the plot of x = y^2, and somewhere around 10-15 years ago, we came off the gentle upslope onto the rapid climb, and it's not gonna get slower. No doubt that anybody who wants to keep on the cutting edge is going to find some way to learn an appropriate slice of the new technology of the day. Most will do it with books. I feel bad for anybody for can't learn from a book, because classes are an expensive way to have to keep up.
Sun 04 May | T. Norman | 'Now having said this, there are others who have spent a lot of time studying the latest and greatest and found that doing so has gotten them nowhere (i.e. nobody will hire them without extensive on the job work experience with the latest and greatest).' Part of the reason why it so difficult to get hired without specific work experience in the latest and greatest is that employers have been burned in the past by stagnant developers who could not or would not learn anything new. So now they believe that unless you know something already, you can't do it. That is what bothers me most about developers who stagnate. If they want to ruin their own career by remaining a dinosaur, that's one thing, but their failure to stay up to date makes it more difficult for me and you to get hired to do something new. Even though it is difficult to get hired without the specific experience, it is very often the case that your existing employer will put you on something new, especially if you can demonstrate at least some basic competence. But some programmers will just sit down for 2 or 3 years while they observe the company migrating from COBOL towards Java, while they don't take the time to learn even 1 line of Java or basic object oriented concepts. Then they get frightened when their company either sacks them or throws them onto a Java project and they can't handle it.
Sun 04 May | echidna | T Norman, are you sure you're talking about technology? Knowing what a pop3 server is not really knowing about technology. Many of the topics that have been listed here are really shopping lists for kids from the wealthy middle classes, and do not necessarily indicate capability in useful tasks. Also, re the comment someone made about ducking into bookstores - I used to do that too until after a while I realised knew more than the people writing the books, and that most new things followed certain patterns that can be readily inferred.
Sun 04 May |   | 'If they want to ruin their own career by remaining a dinosaur, that's one thing, but their failure to stay up to date makes it more difficult for me and you to get hired to do something new.' You become a contractor or consultant. I have never seen a large non-technical company use in-house programmers to develop something substantial.
Sun 04 May | Not going to learn .NET either. | I don't mind learning new things, but most of what's out there ISN'T NEW. It's just the same old crap repackaged. I didn't learn VB because C++ did all I need. I didn't learn XML because my bastardized SGML did all I need. I didn't learn Java because C++ did all I need. I didn't learn HTTP because SOCKETs did all I need. Then I realized that was stupid so I learned HTTP. But I didn't learn SOAP because ... Well, you get the picture.
Sun 04 May | realist | I wonder how many things the 'dinosaur' knows that you don't know? I wonder if that even crossed your mind.
Sun 04 May | T. Norman | Again, it's not about knowing anything specific about POP3! It's merely about having enough interest to know about the existence of the concept, even if your only exposure to it is through something like Eudora. Knowing about POP3 doesn't mean you know about technology. However, NOT knowing of its existence (even by another name) indicates you aren't interested in learning about technology. Let me put it another way: knowing what a steeplechase is is not enough to make you an expert in track and field. But if you *don't* know what a steeplechase is (by that or any other name), you definitely don't have much interest in the sport, and I would have serious doubts about hiring you to be an official at a track and field competition. Even if you claim that you didn't need to know about the steeplechase because you spent the last ten years measuring the long jump, if you were that narrow-minded that you could spend so many years in the sport without knowing of the existence of the steeplechase, I'd be scared to let you do anything other than the specific things you were already doing, if I hired you at all.
Sun 04 May | echidna | T Norman, I respectfully disagree. Knowing what pop3 is a 1 minute lesson. Some people will have travelled the road that gives them that lesson; some won't, and it is not actually an important marker. People in big corporations have a lot of that stuff done for them, while they get on with their jobs. I am reasonably sure that you could find lots of excellent research engineers - even some ASIC designers - who for one reason or another wouldn't know what pop3 was. Like all these jargon tests, it's meaningless. As I mentioned, I think you're applying cultural tests that are not appropriate.
Sun 04 May | choppy | The POP example is kind of weird. There is almost nothing interesting about POP3. I like to know as little about things like mail protocols as possible. I'm into technology but I'm as disinterested in POP3 as the next person, because it just isn't interesting. Maybe the woman in question goes home at night and reads books about art history or quantum physics. Or maybe she watches the history channel and plays with her kids. I don't think lack of awareness of POP3 is something to be 'disgusted' by. I work with biochemists who end up having to be crack perl and LISP programmers (biology these days is pretty much computational). I'm sure they don't know what POP is, either. But they are better programmers than most people, and know a shitload about a topic that is ultimately a lot more important than configuring outlook. Finally, where does the chain of techno interest end? Should I be disgusted with you because you don't know what BGP is? In my experience, the best programmers have actually been the ones who read the fewest number of oreilly books, but YMMV.
Sun 04 May | T. Norman | I'm sure your biochemist hackers would know what POP3 was if you described the basic concept to them ... you know, downloading messages from the server to be stored on your local PC? Anyway, please stop getting hung up on POP3! That is not the main point. If both the name AND the concept of a field goal are unfamiliar to you, then you don't have much interest in American football, and don't be surprised if I don't hire you to be an official at a college game.
table of categories for comments | Sun 04 May | Ross
Im interested in applying an homogeneous comment style in my programs. I am not just talking about the form (important for searching), I am talking about the content. Have anyone got any table of categories for comments? I mean, I can identify some basic types of coments, but when I try to add more I get confused because some comments would belong to more than 1 category. :/ As pointed in the tread How should I comment code?, everybody seems to agree on: - comments have not to be obvious, have to give some valuable information other than code itself for a competent reader - comments have to be helpful for future coders using it or maintainers fixing or adding code - comments may help to understand code why the code is this way? why is this function calling necessary? what this thing is trying to accomplish? - comments may help to correctly use code this module has to be used this way, not that way So far, these are my 6 categories: HAS_TODO SUG_TODO TRICKY KNOWNBUG INFO no mark Explanation; >HAS_TODO: things that *need* to be completed/fixed >SUG_TODO: things that should to be implemented, (ex. suggestion for improving some thing: speed, space, readability, arquitecure, etc...) >TRICKY : explanation of some obscure or dark part of code >KNOWNBUG: when there is a bug, its good to know, so we mark it on code >INFO : important information doesnt fit into the categories above, ex. about how has to be used a module, a function, or list of errors returned, etc. This is the category for the big part of comments *before* code lines, the thing everybody has to read if interested in knowing/using code. >no mark : not so important information doesnt fit into the categories above. I guess this is the category for the big part of comments *inside* code, the thing only people who have to enter inside code need to read. Its low[est] level info. But I find this list too short, although its easy to choose a category when you have got a comment, this easy of use feature is very important (I can not spend 5 minutes trying to choose wich category is the best for my last comment) Any ideas about completing/changing this list? Any other comment categories lists you use? PS. Sorry for my English.
Sun 04 May | Simon Lucy | The most important one is CAVEAT PROGRAMMER Which essentially means screw with this and you're dead. If I'm fixing bugs in someone else's code then I tend to prefix my comment with SPL: just to show its me that did it. Unless its relevant though a bugfixing comment goes at the top of the file rather than at the point of the fix. Revision Histories at the head of files seem to be going out of fashion though which is a pity.
Sun 04 May | Nick | How about - // DESCRIPTION: // IN: // RETURNS: // PRECONDITION: // POSTCONDITION: // LOOP INVARIANT: Just kidding. I'm taking a class right now and just spent the last 2 hours going back and documenting my code to the teacher's guidelines. I'd be happy not to write another loop invariant in my life. I should say, though, that I have seen preconditions and postconditions documented in some libraries and found them helpful when it's not obvious. Also, I've seen some code that needs this tag: // IDKWTFTDBIGIOTI: (I don't know WTF this does because I got it off the internet)
Sun 04 May | anon | How about SUX_TODO ?
Sun 04 May | Thomas | Here are some of the things I document. You chew on your pencil and come up with category names. Why. Why did I choose this pattern, why did I subclass instead of use a composite, why did I use an array instead of a Vector or ArrayList. Assumptions. This method assumes ____. This call assumes ____. Dangerous ground. Warning: if you play with this code you risk a self.foot.shoot incident. Futures. This probably ought to be refactored in the future. This could stand some better error-checking. If you subclass this always override someMethod(). Hidden traps. This looks like a performance problem, but benchmarking shows I/O is the limiting factor. -Thomas
Sun 04 May | www.marktaw.com | I say no sigs. | Huh? I thought you would just create a column for 'category' and this way you could have an unlimited number of categories. That column would have numbers, and those numbers would map to a seperate 'categories' table with just two columns (maybe more) table: comments comment_id | category | comment 1 | 2 | 'user text here' table: categories category_id | category_name 1 | inquries 2 | has to do 3 | tricky stuff this allows for unlimited categories & user management of categories. Or am I missing the point here?
Sun 04 May | Ross | 'www.marktaw.com | I say no sigs', errr, the point is not how to create/design/implement the table. I am talking about which categories would be meaningful and useful for commenting code.
Sun 04 May | www.marktaw.com | OH. See, I wasn't paying attention.
Philo's "Sackage" - a few comments on politics | Sat 03 May | Bored Bystander
Yo - I decided to start this as a new thead because I crave attention. :-) No, really, what I wanted to do here was to explore the politics of consulting in risky environments. I have been of the opinion for several years that *NO MATTER* what your legal/fiduciiary role is with a client, if you are a lone wolf consultant/contractor and you work on an hourly basis, you *CAN* and you *WILL* be confused with FTE staff. And just as most technology FTEs (especially those working on poorly managed projects in crisis) are treated like troublesome idiot children, so will you be too. IRS 20 questions dont mean shit in this context. Your contract doesnt mean shit. Common sense doesnt mean shit. Your laundry list of stellar accomplishments means nothing. You will *not* be treated as a business partner, a one person consulting firm, or as anything that elevates you in any way. You are staff. And NOTHING MATTERS except what the client thinks. Now, what did Philo have working against him? - Most damning: bad managers. A pompous @sshole ass-covering set of idiots in the management team from the so called solution provider consulting firm. - Political and psychological distance from the end client. The consulting company with its set of morons running the show, and not the law enforcement agency, was REALLY Philos employer cum client. - Philos prior commitments to other clients. Even though he said so up front! - Philos inability or unwillingness to bill at least to capacity, and coming in at 10 AM. (again: DOESNT DOESNT DOESNT MATTER whether you even do the work! its appearances!) While in itself not bad - on a project in crisis, ANYONE who is not consistently sharing in the joint sacrifice, cause and suffering, with blood sweat and tears, is deemed a slacker. Report late - no-no. Take time off - double no no. Bill less than nominal - no-no. Compounded - you were lucky to have lasted as long as you did. Honestly, Philo - if you had worked plenty of overtime, if you had not taken time off for vacation or travel to support your other client, and if you had been an underachiever with all this... you had not really gotten your stuff done, and you were subdued about your opinions... if you just took on the role of a loser who was sacrificing himself for the greater good... and you made sure to huff and puff and show how much effort you were putting out... my guess is that you would have been well regarded and liked by management and you would still have the contract. About the idea of sending a tattletail note ... I think its safe to assume that in the environment in which you found yourself --- non managing programmers are probably deemed as useful idiot savants. Skilled monkeys, good with typing computer language statements into computers; but lacking any and all wisdom and judgement. So what Im saying is that the credibility of any programmer would be deemed to be just about nil. Youd be bucking an established political order of toadies, managers in denial, and outright deliberate misrepresentation. By the time anyone saw such a note, it would be so filtered by denial that all it could possibly do would be to damage your reputation and open you up for libel or other tort. Lastly ... my guess, based upon the unrealistic timeframe and the complexity of the project ... is that numnutz in the public agency concerned selected the low bid. THEY are ultimately at fault, not even the consulting company you reported to. The agency deliberately bought cheap. They probably got bids in hand that outlined realistic scope and price, and they said pshaw! we can get it done at 1/3 this price from Billy Bobs Solution Providers! It kind of surprises me that nobody else in the other thread had mentioned some of these things, except peripherally. This is a business, and perceptions matter as much as reality. The Camel blog and project was really a study in perceptions of contractors under really poor management. Good luck on your next venture. As a fellow hired gun, I am aggrieved right along with you.
Sat 03 May | Bored Bystander | PS: Philo, if your blog is indicative of your face to face personality, you are quite the statesman under pressure. If *I* were in that kind of situation, I would quickly develop a sort of 'Tourette's Syndrome'. I'd be walking around to the cubes of the worst managers from the solution provider, sputtering 'dumbass! dumbass! dumbass! dumbass! moron! jerk***!... ass covering loser! liar!' Only the guys with the butterfly nets would save them from me. :-) And it also goes to show that - as much as I know about politics on an intellectual level, I don't play it very well...
Sat 03 May | Philo | Bored, I agree 1000% with every single thing you said. The two things that damned me: 1) I speak my mind. I don't play 'yes man'. Now, once a decision is made and directed, then I won't belabor it, but any time the question comes up I'll be deadly honest all over again. 2) Not recognizing the criticality of billing 40/week. That was my faux pas. That's where I could've 'fixed' the issue - I think if I had simply worked 9-5+ every day this likely wouldn't have happened. In that sense I definitely did it to myself, and that's the lesson I take from this. I do want to clarify one thing, and that's the players, because this is most confusing: The group running the development effort is the IT branch of the law enforcement agency, and the managers involved are full time employees of the agency (although admin types, not law enforcement types). The agency I contracted through, BigITCo, is simply acting as a body shop here, and is working on time & materials. They were *not* involved in the development effort whatsoever, other than providing people. I apologize for not making that clear earlier - I hadn't realized the potential misperception. Philo PS - I'm not going to send the blog; it was an entertaining thing to contemplate. :-)
Sun 04 May | Bored Bystander | Hi Philo, Thanks for the response. OK, I amend my opinion of the situation slightly. The consulting company probably had no effective role in this. (Brokers and agencies are a fun whipping boy, but in this case it's just a financial arrangement.) What this sounds like is a group of employees acting as project managers who are WAY over their heads. I get the impression that this is the first large scale development project they've ever attempted in their careers. It certainly shows.
Sun 04 May | Chris Tavares | Is BigITCo aware of the situation here? It's fairly obvious that the project managers are going to blame them for the system failing. It might be another possible route to 'blow the whistle' as it were.
Sun 04 May | Matthew Lock | Working the hours 9 to 5 critical I think. I tried working 10am-7pm, but it just causes people to think you are slacking, even if you work hard.
Sun 04 May | Nick | Generalizing a bit more, I say match your work hours to the environment. I've worked places where 'dedicated' meant getting in early (~6 am), even if you always left by 3 pm. At the last place I worked, whenever my boss worked late he was impressed by a couple of engineers who were always still in their cubes at 6 - 7pm. Of course, these guys didn't come in until 10 am everyday, but his perception was that late == hard working.
Sun 04 May | Simon Lucy | I've rarely worked on the basis of hours and instead agreed a fixed rate, either for the whole project with stage payments, or a monthly fixed rate. Its also made clear that its up to me to achieve whatever it is that's required and they have to enable that. Similarly, I've rarely worked through an agency or third party and when I have its always been a mess. Perhaps because of the concentration on hours filled in on timesheets and the separation between the client and myself. I might end up working a considerable number of hours ,perhaps more than a regular employee, perhaps not but I'm happier and the client is as well (on the whole). The advantage it gives me as well is that in the kinds of situation that Philo found himself in I've been able to blow the whistle (constructively) because I'm never seen as an employee or in any chain of command. That can be misused of course it would be easy to become seen as a kind of prima donna so you have to have some sensitivity and become a colleague to those you work with and trusted, and a management tool for those that hired you. Its the Janus Effect.
How long does your server stay up? | Sat 03 May | Albert D. Kallal
At last, reliability seems to be arriving to our industry again.. I am noticing a strange occurrence in the industry for those companies running windows 2000 server. They are starting to become very reliable. By reliable I mean that a company can have a server sitting for several months, and not have to touch it. I used to sell my clients 3, 6 or even 8 user pick systems. These systems were multi-user, and ran on 386 boxes with 4 megs of ram. A cheap 40, or 80 meg drive and two 4-way serial cards and I had a complete multi-user mainframe system. Rather cool back then. If you know pick, that was plenty of ram for 6 users. Usually, these generic white boxes would run at least two years without being re-booted, or even touched. I am now starting to finally see some windows 2000 server setups at clients run for months at a time without one call to tech support, or even a re-boot. Are things really getting better? Is this a real trend, or is it just a few of my clients who are better at managing and running those servers? Is this perhaps due to the venders and users finally learning what to do, and what not to do with these boxes? Are we finally going to see a new golden era of it being normal to run a server for a year or two before reboots? Is this a real trend, or a false hope on my part? How long does your clients computers, or your company you work for server now go without a re-boot? Are you all out there seeing a increase in up time? Albert D. Kallal Edmonton, Alberta Canada Kallal@msn.com
Sat 03 May | Philo | I have said for over three years 'Windows 2000 is everything Microsoft ever said Windows 3.1 would be' And that includes 'stable' I have worked with dozens of production Win2k servers, and I feel comfortable saying 'if your server can't run without a reboot for at least three months, blame the software, because it ain't Windows' I'm dreading the release of .Net Server and having to deal with all the early adopter fanboys. Until .Net Servers have been running in production for at least a year in other companies, my recommendation will remain Win2k. Philo
Sat 03 May | cdavies | Ha, yes. A windows 2000 box has entered the list of longest uptimes. http://uptime.netcraft.com/up/today/top.avg.html (No. 31) I still think Microsoft have a lot of work to do before the challenge the stability of FreeBSD though..
Sat 03 May | Chris Tavares | W2K is very stable. I expect W2k3 to be even more stable, since MS has taken care to turn off a lot of the more unstable stuff by default - including accelerated video and sound drivers. They're really serious about the server space.
Sat 03 May | Dan Maas | In all seriousness, I would think that the more significant obstacle to Windows server uptimes is rebooting to install security patches, rather than instability. (and just to show I'm not biased, I had to reboot my Linux firewall 19 days ago when the ethernet driver flaked out, which it still does occasionally... My Linux file server has been up 50 days, but that's because I installed a new hard disk 50 days ago; before that it was up for around 300 days)
Sat 03 May | - | In my experience, both NT 4.0 and W2k servers can be very stable. Application software, hardware/drivers and backup systems cause the most trouble in my little corner of the world. Of course, if you want your server to reboot each morning, simple enable scheduled Automatic Updates :)
Sat 03 May | Erik Lickerman | I use Windows 2000 professional as a development box- a recent Dell which came with 2000 installed. A few months ago I installed the latest service pack, which supposedly had vital security updates. It destroyed my machine to the point I had to reinstall the OS. Now I am scared to install any updates. On the other hand I have an XP laptop which has installed several security fixes with no problems. I don't know if this would occur in the server version of the OS but it would sure make me nervous if I had to run 2000 for something critical.
Sat 03 May | Stephen Jones | W2000 seems rock solid stable. The desktop edition only seems to need rebooting to clear out the paging file (probably not much of a problem with today's memory sizes). Have you not noted that you are no longer hearing the jibes from the Macolytes about 'Did you reboot today?'.
Sun 04 May | Albert D. Kallal | Stephan, I actually meant win2000 server, but you are right, I certainly don’t hear the “you got to re-boot every day cry’. However, to be fair, last year I know some people who had a real rough time with win2000 server (one had a bad nic card). However, it seems the people setting it up where not that good. Now, one year later, these systems are becoming very stable. I am not convinced that something was fixed in win2000 server, but I am starting to see some real increases in up time. Perhaps the low cost of ram, and everyone loaded up these servers with more ram? Hum, maybe there is no change in the last year, and perhaps it just my own experience, and not industry wide. However, my spider sense does tell me that server up times are getting dramatically better right now, and this even includes web sites also. Albert D. Kallal Edmonton, Alberta Canada Kallal@msn.com
Sun 04 May | Stephen Jones | Microsoft produces different versions by crippleware. That's why you get a copy of solitaire on the server. Remember the famous time when people found out the only difference between NT Workstation and NT Server was one registry key. They changed it from a zero to a one and presto they had NT server, with athe added bonus that as it officially was a workstation they didn't have to buy client licenses. So the question is is W2000 significantly more stable than NT. I think the answer is definitely yes. The reason may be as simple as improved video drivers or improved network drivers since they used to be the cause of most NT crashes. Your suggestion of newer hardware with increased memory comes into it to. On the workstation incidentally the general consensus of opinion is that XP is not as stable as W2000, though with little significant difference. In general Microsoft OS's have got more stable over time, though sometimes with blips such as W95A or Win ME. There are plenty of machines around that are still running the original installation of W98ME without a blip. The interesting question is has Linux caught up, since the general opinion was that W2000 was more stable on the desktop.
Sun 04 May | Jan Derk | Good Windows and Linux administrators do not set uptime records. Many security patches require reboots. Linux allows more upgrading without reboots, but still has plenty of kernel patches which do. Setting record uptimes on either a Windows or Linux system means that the box is vulnerable. One disclaimer though: As I know nothing about (Free)BSD, I wonder why they rule the Netcraft uptime stats. Does FreeBDS not require any reboots for kernel upgrades? What does decrease is the number of crashes and unexpected reboots. Personally, I haven't seen a blue screen on my Windows 2000 desktop for more than a year and I never had my Linux server go down for unexpected reasons. I'm glad to see OS software improving. Oh and to answer the question, I rebooted my server a few weeks ago after 85 days or so uptime due to a kernel upgrade.
Sun 04 May | cocoa developer for mac | Does anybody here running Mac OS X server. any thoughts on its stability?.
Sun 04 May | Nat Ersoz | So, why is it that Windows reboot when things like Visio - which should be a pure user mode application - have completed their install?
Sun 04 May | Simon Lucy | You have to reboot for two possible reasons after installing an application.... 1. It wants to install a newer version of a DLL currently already open. 2. The installation script is crap. I'm almost proud that I didn't ask what version of Viagra people had installed.
Sun 04 May | Brad Wilson (dotnetguy.techieswithcats.com) | I was gonna make a joke about my server staying up a lot longer now that I got digital Viagra for it, but... oh, nevermind. :-p
Sun 04 May | Brad Wilson (dotnetguy.techieswithcats.com) | By the way, replacing an 'in-use' DLL is a significantly lessened problem with .NET if you utilize shadow copying. That is, the system copies the DLL before using it, so that you can replace the original while code is still running. ASP.NET utilitizes a combination of shadow copying and watching the bin directory for changes in order to automatically bounce itself to take advantage of new DLLs.
Sun 04 May | Simon Lucy | That mechanism has been in existence in Win2K for a while, like I said, there are two reasons.
Sun 04 May | Dan Maas | The BSD systems do require rebooting for a kernel upgrade. However, the BSD kernel development process is far more conservative (and slower) than Linux, and so BSD systems have correspondingly fewer security problems in the kernel. This 'shadow copying' thing is amusing since it's been part of POSIX filesystems since the very beginning. (incidentally, I really wish Windows would offer a truly atomic rename() operation - in many cases it's the best way to update a file without race conditions...)
Sun 04 May | Brad Wilson (dotnetguy.techieswithcats.com) | Nobody said Windows was unique, especially when put up against platforms that have existed for dozens of years longer. I personally think it's a crime that it's taken this long for them to consider putting a database into the file system, and I can only hope we won't have to wait another dozen years before the file system can keep track of back-revisions internally.
Sun 04 May | anonymous | I think there are several reasons why you see FreeBSD boxes not being patched for long periods of time. As has already been mentioned, there tend to be less security issues in general. Many of the security problems tend to be nearly impossible to exploit as well. They are the types of problems that a company like MS would not even bother with or would include in a service pack at some later point in time.
Is Microsoft's Interview System Crap? | Sat 03 May | Gregg Tavares
If I remember correctly, Joel has been pretty keen on the IQ quiz style interview but according to this review http://books.slashdot.org/article.pl?sid=03/04/22/224224 The book he just mentioned How Would You Move Mount Fuji? Microsofts Cult of the Puzzle suggests that that system is crap and doesnt really find good people at all. So, Joel, in your copious spare time, read the book and tell us if you think he has a point :-)
Sat 03 May | Bagpuss | The thing I dislike the most about interviews is having someone glaring at me waiting for an answer that requires a bit of thought. And then as soon as giving up on the question being shown the door. Harsh. Just beforehand I had passed an hour long written programming test and in my first interview pointed out that the interviewer's solution to his own problem was inefficient and I knew a much better way, which I told him about. On my way home without any pressure I worked out the answer.
Sat 03 May | Dan J | Yes and no. I've interviewed three times on campus, resulting in two rejections and one job offer. The difference between the two bad experiences and the one good one? In my opinion, it was luck. The first two times, I interviewed with people who were severly lacking in the personality department. I was going for the software design engineer position, and the questions I got were half brain teasers, half classic (although not extremely common) algorithms to implement in C. We always went straight to the problem(s), rarely talking about my experience or my thoughts on X. I solved all my problems, although sometimes it took me a while (I really suck at probability problems); the geeks I was interviewing with got kind of impatient if I didn't make headway very quickly, even though I made sure to discuss my thoughts, etc. The third time was a dream. I actually got to interview with teams I was interested in (instead of some random assignments), and while I got to do plenty of coding, I also got to talk about topics in programming languages and design with some pretty cool people. I felt like I got a lot of respect. Maybe it was because I was talking to people who were interested in the same areas I was (compiler/prog. lang. design)... but it seems to me that the guys in my previous interviews should have at least been able to have a nice conversation about coding. There's only so much you can communicate by implementing a n-ary tree (I even made it generic - no respect!) Anyway, the whole point is that it has a lot more to do with who you meet than Microsoft would like you to believe. They have the reputation of using puzzles to test candidates, but all the anecdotal evidence I have heard suggests that a mix of good ol' charm, solid background knowledge, and a little luck is what gets people in the door. Which isn't to say that's a bad thing... I think a lot of their opinions are good (they ignore GPA, and they like to hear about personal projects rather than classes), but some of them suck (don't get me started on the term 'super smart' - ever read Show-Stopper? 'Let's hire super-smart kids who barely know how to code and let them write an operating system! Anyone who's super smart can learn to code AND learn our huge APIs AND write a kernel! That's why they're super smart!' Right...). That company is just weird.
Sun 04 May | www.marktaw.com | It depends on what you're testing for. Written exams and oral exams test for different things. A large part of many jobs is face-to-face contact, and it's good to know whether or not you'll perform during meetings.
Sun 04 May | Clutch Cargo | It's not total crap, but it's not very good. At this point, like most long running shows, it's become a parody of itself. Having people write code and solve puzzles is OK, but there are other things that would be better. The problem is that the people at Microsoft that do the interviews are not skilled interviewers.
Reading text files | Sat 03 May | Philo
I have an application which parses documents. The documents are received in XML format then processed into a database. The database has a web interface for the users. For admin purposes, on occasion we have to review the contents of the received XML documents (usually tracking down parsing bugs). In the admin interface I currently have a file listing, but the file names dont say much. Id like to display some content from each file. Is there a better way than simply opening each file and reading the info I need? Philo
Sat 03 May | www.marktaw.com | Do you need to look at the XML files because they're not being parsed into the database correctly? Otherwise couldn't you just write a query once it's in the database? Most server side scripting languages have file handling capabilities.. You can probably write a script that opens the file & parses it... or find one that did and modify it for your needs.
Sat 03 May | Jan Derk | Think Google. Instead of showing a list of file names, show a google type listing with the filename and add the first few lines of each XML file and any other info that might help identifying what you're looking at. So instead of: FuzzyFile.xml IHateClearNames.xml Something.xml You get: FuzzyFile.xml - Create 5 January 2003 - 23.4KB I like reading XML. IHateClearNames.xml - Created 6 February 2003 - 12.6KB Whatever. Something.xml - Created 7 February 2003 - 16.0KB Bla.
Sat 03 May | Philo | Mark - exactly. When in doubt, look at the untouched source. :-) I'm just making sure I'm not missing something regarding flipping through each and every file to get the header data. I don't think so, but I wanted to double-check. Luckily it's an admin-only function. Philo
Sun 04 May | mb | does the os have anything? windows explorer has a preview for files. i think it does some caching (certainly for image thumbnails in preview mode). however i don't know the details or if there is an API to get this cached info. (it would probably be an explorer (aka shell) method) if you want to be clever write your own pseudo-xml parser to try to extract some interesting nodes, otherwise they'll all say . And why pseduo-xml? because you're dealing with broken files, right?
Sun 04 May | www.marktaw.com | Just a crazy suggestion, but I used XMLspy at my old job when working with XML files... It may help you out here... Also, are there no XML validators?
Sun 04 May | Philo | I'm validating the XML against the schema - that would be trapped as an error. The problem is when there's bad data. It becomes an issue whenever we integrate a new company. :-) Philo
Sun 04 May | Clutch Cargo | Gee, no wonder you were sacked.
Sun 04 May | Philo | Clutch, care to elaborate? Philo
Sun 04 May | www.marktaw.com | Hey Clutch, you wouldn't happen to be a band from Brooklyn, would you?
Proper UI Design... | Sat 03 May | Boris Yankov
I am writing an app that will need to be running all the time and will have a small window. Although it has nothing to do with instant messaging I think it will be helpful that it behaves like MS Messenger or ICQ or WinAMP 2.x. First of all, is it only me or everyone is putting the Messenger window in the lower right corner of the screen? Second, Messenger does not have any sticky feature to stick to the screen corners like WinAMP. Do you think this is a disadvantage? No MS product uses this thing although I have seen an app of MS which form does not allow you to put it outside the screen. Surely you want to give your users all the freedom they want but also all the confort you can. So for so small sized app it will be helpful that the window not stick to the corner but even not leave it. For IE window I can think of when I want it shown but I really cant think of a reason to do this with Messenger. Five me your opinions, I know that the average reader of this forum has good thoughts about such problems. :)
Sat 03 May | Brad Wilson (dotnetguy.techieswithcats.com) | I use Trillian, and it lines the entire left side of my primary monitor. As for 'stick to edges', if you do it, make sure it works across multiple monitors. I personally like this UI sugar, but I don't know whether it would be annoying to casual users.
Sat 03 May | www.marktaw.com | I like that Winamp and a few other programs stick to each other & the edges of the monitor. It's helpful. Though occasionally annoying... I think there's a toggle that lets me turn it off. Especially for something small, & out of the way, sticky is nice... Why not just put it in the systray?
Sat 03 May | Boris Yankov | I've put it in the systray, but it has a very important visual part too. It really looks like Trillian and Messenger so it is not only the tray. I will like to hear more opinions.
Sat 03 May | Dimitri. | yeah, sticky is good. As long as you can disable that, of course. Another thing I like about winamp and that might be appropiate is the windows-shade thing. Double-click and it becomes just a bar, but still shows all important info! That's nice. If it's an app that users are going to interact with often you may want to add the possibility to define system-wide hotkeys. Again for winamp, I use an add-on that lets me pause/play and change volume with ctrl-alt-arrow keys. But that might be overkill. Good luck with your app, tell us when it's ready.
Sun 04 May | www.marktaw.com | What's more important than docking is will it remain always on top? Finding a good spot for something that's always on top is always difficult.
Sun 04 May | Boris Yankov | If I add an Always on Top option it will definately be not default. I still haven't found an app that will reside always on top and not be annoying (except the Windows Taskbar :) I know that if you ask 100 people if they want to have the ability to remove the stickiness of WinAMP at least 95 will answer that they want it. But I doubt that even one will actually want to remove this.
Sun 04 May | www.marktaw.com | I saw an app that was a tab that stuck out of the side about 10 or so pixels, and when you clicked on it it slid out showing you what it needed to show you. That might work for you, unless someone really needs to be able to see he information at a glance. Have you also thought of a Win98 - XP taskbar icon? ZoneAlarm does this. It just acts like another quicklaunch bar.
Smalltalking and Heavy Metal | Sat 03 May | Simon Lucy
I have a 1980 Byte magazine issue dedicated to Smalltalk (with balloon on the cover) and predicting the use of message passing systems as the way of building intelligent and responsive software in the future, our well by now. I was hooked. At least I think it was 1980, its hidden behind another 8 tall bookcase of science fiction in the garage. In any event I ended up working for computer manufacturers and software publishers wedded to the Digital Research, then Microsoft (then DRI again) view of doing things and Smalltalk didnt figure at all. Rationally I always preferred the idea of objects sending and receiving messages to achieve some system, of building objects that could organise themselves into doing the work. It feels a far more efficient system than having to know fairly intricate things about objects, their methods and properties and fiddling with them directly. Yes, theres all the Windows UIs each of them using some kind of message queue, but really theyre just a way of serialising behaviour. In that sense each application is only one or two objects, the rest is procedural. So why didnt Smalltalk and its methodology flourish and supercede the rather leviathan C++ structures and pointers larded over with interfaces to get objects to cooperate? I did try a few times to plug into the message processing model, I frequently use timers to set processes off within an application that message other parts of the application especially if theres some kind of real time or process as soon as requirement. Ive even tried things like Objecttalk http://www.iasadvance.com/ but although the messaging was efficient the overhead on top of an interpreted language was too high. I know Adele Goldberg and Dan Ingalls received the Dr Dobbs award last year but around 25 years after they and Alan Kay proposed creating software the way the world works we still dont have a compelling application or platform that uses it. And other than Microsoft and Apple didnt buy into it (ok, Apple did a bit) I cant think of a good reason.
Sat 03 May | Ged Byrne | While message passing as a pure implementation didn't take over the world, I think the Metaphor certainly did. The Win32 api, Java, .Net - these all use the same metaphor even though implementation differs. I think that the main reason for this is performance. You can get most of the benefits of a message passing implementation using a mixed implementation with much better performance. Probably the best example of this is the Win32 api. As you say, underneath its purely procedural, but it's amazing what you can achieve armed with SendMessage and the list of available paramaters. Scintilla (used in Scite) is a good example that uses Win32 message passing to great effect. http://www.scintilla.org/ScintillaUsage.html You trade a rather clumsy syntax for a system that really shifts, but is still quiet clean at a conceptual level.
Sat 03 May | Frederik Slijkerman | Isn't the problem of generic message passing that message parameters are not strongly typed? An example is the SendMessage function mentioned above. I see object properties and methods as message passing primitives, but with strong typing.
Sat 03 May | John Aitken | 'Messaging' (which implies asynch) might be the wrong word... really you seem to be talking about component architectures... and COM, CORBA, & especially dotNet probably aren't too far removed from what the folks were anticipating. Pls expand a bit on how you see these 'objects' interoperating. Objects are never going to organize themselves, or at least they're unlikely to organize themselves to do what you want! Somehow or other you have to define the interfaces between your components... and if they're going to be tightly coupled & efficient then those definitions are intrinsically a bit ugly. To my mind COM made some of this more complex than it really needed to be by trying to make it simpler than it could possibly be... in a perfect demonstration of Joel's Law of Leaky Abstractions they got themselves into huge trouble by pretending that inprocess, outofprocess, and networked components could be treated the same way in stituations where they couldn't. They may have done the same thing in reverse with dotNet... that is where COM was a good inprocess architecture sometimes pressed into a distributed framework, maybe dotNet is a good distributed architecture being pressed into a local components framework. I also think COM would have been less ugly if Microsoft had come up with an extension of C or C++ earlier that incorporated the interface definition language more cleanly and chucked out the lousy obsolete old C/C++ header file based linkage model. But I guess I'm getting a bit off-topic. Mostly I'm just agreeing with Ged. I've never used Smalltalk.
Sat 03 May | John Aitken | Is SendMsg strongly typed or weakly typed? I dunno... it's a battle of semantics (double entendre). SendMsg() takes a handle to a window (clear enough), a message code (clear enough in one way but not another), and a wParam and an lParam (which could be almost anything depending on what the message is. From a transport point of view they can all be treated as 32bit integers, to get to their meaning you need an SDK reference. SendMsg is generic in one sense, but really a kludge to get over aforementioned linking problems. dotNet might get much closer to the messaging ideal, because all it sends or recieves is a string, and that string could represent almost anything, and there is some potential to indicate the meaning of the content within the content. So mostly I'm just babbling, but maybe I'm largely agreeing with Frederik too.
Sat 03 May | Ged Byrne | John, Theres an interesting discussion on whats wrong with COM and how it could be fixed here. Don't know if you've read it before. http://www.relisoft.com/win32/olerant.html
Sat 03 May | George McBay | Re: What's wrong with COM. I'm no COM apologist, but that link above seems to make the hugely wrong assumption that COM only has to work for C/C++ objects. A lot of the quirks of COM are due not to bad design decisions, but the requirement that COM be usable from Visual Basic and similar higher level languages that may or may not have native support for things like true inheritence.
Sat 03 May | Simon Lucy | I thought people might get tangled up in thinking that COM and all its inheritors was some similar kind of messaging system as Smarttalk. But it really isn't. COM is a way of abstracting the problems of calling foreign objects, whether those objects are in application space, machine space or network space. Its a negotiation about interfaces. In the end though the called object is instantiated in some way, either directly or by a proxy. Yes we could call the calls into that object messages, but they are one way messages with only a simple return. Sharing data is a different problem. In a message based system all objects can send messages and receive messages, and they may delegate messages to other objects. There tends to be the same negotiation phase (what messages, what kind of data) but the process from there on is quite different. The messaged object doesn't belong to the messenging object in quite the same way as within COM or the 'procedural' model of OOP. Although its more likely that you would send a message to an object that you knew it could handle, its possible that the object could forward that message to some other object because either it didn't have the necessary ability or perhaps the necessary capacity. But the abstraction remains, the originating messenging object knows nothing of that. Eventually the goal of this could be that initially messages could be sent arbitrarily to objects with the best routes of those messages becoming learned (because the object which finally processed the message messaged the original object). This is dynamic binding without the need of an object broker. Its also a little bit more like the way life works.
Sat 03 May | Dimitri. | I read once about a system based on a technique simillar to the one you are describing. I don't remember what it was called, something with -bus. Software components could be added dynamically and all listened to the same bus, if they got a request that they could solve, they did it, otherwise they kept listening. I think the system where this was used was something huge like stock market system or airport system. Very flexible, since you could add and replace modules on-the-fly without modifying the others, and while the system continued to work. So the technique you describe is alive and used. Just not so much for PCs. Why? Inertia could be one reason, but the other could be that the change in way of programming is quite huge, and while the technique has some clear advantages in large systems, these advantages may not be as important for let's say a word processor. .Net and other component architectures are some form of half step towards this. Anyone knowing the bus I'm talking about? I have a lapsus here.
Sat 03 May | John Aitken | Thanks for the link Ged. I think the 'Insider' makes a very good point in observing that many of COM's difficulties stem from QueryInterface, AddRef & Release being IUnkown interface oriented rather than object oriented. Still, I haven't thought through all the implications of his proposed improvement far enough to feel certain he hasn't overlooked something. As for COM interoperability with other languages, hmmn... Under the hood almost all the languages work the same way anyhow, or at least the way they work can be expressed well enough in C or C++ if you just observe certain conventions and constraints. I'd have preffered that scripting language support had been implemented in a more separate translation layer, rather than by having IDispatch so closely tightly integrated. I'd have similiarly preferred that proxy stub remote invocation be clearly dealt with as a separate though somewhat related issue, rather than leakily abstracted. More loosely coupled messaging architectures can be and are built as extensions on top of COM and other interop standards, but using them exclusively would needlessly burden every component call with extra overhead, and throw away the contribution of a good compiler in helping validate definition against usage... ie. unless you came up with some alternative automated help debugging would become grevious.
Sun 04 May | Tony Chang | Dmitri, What you're talking about I have seen referred to as the 'chalkboard' or 'whiteboard'. There's a section about it in 'The Pragmatic Programmer'.
Sun 04 May | Simon Lucy | It probably also needs pointing out that Smalltalk has no way of defining data. Instead even constants are objects. So x = 2 + 3 would be sending the message Add to the object 2 with the parameter as object 3 and send the Value message to x And if this seems an unnecessary and performance hitting abstraction its also worth remembering that even constants have to be addressed somehow so inverting them from simple scalar values into members of the class Number (or Integer or whatever) perhaps isn't the hit it might first appear. Given that its hidden by the grammar of the language.
Sun 04 May | Frederic Faure | Dimitri : are you talking off sthing like Tibco's muticast messaging system maybe? www.tibco.com
Sun 04 May | John Aitken | The perfect thing of course would be a language or approach that allowed you both loose-ness when you want it, and tightness when you want it, with a minimum of scaffolding boilerplate code. Maybe this is what 'attribute' based code can do? Does C# fit the bill? Agreed, sometimes you want to just broadcast notice of some event for the possible benefit of listeners you know little or nothing about in the most generic way. Sometimes, on the other hand, I've seen cases that screamed out for extremely strongly typed languages... where I'd want my compiler to complain if a method were passed a velocity when it wanted an acceleration, or returned a window ID but I assigned it to a bitmap ID. The way you describe the Smalltalk approach (which meshes with what I've heard elsewhere), it's kindof double extra super OO. I can see how that approach can accomodate both looseness and strictness, but usually (at least in C++) the price is verbose and complicated class definitions. In my strict case above, all I'd really want from, say a 'mass object' / variable is simple access to the undelying float... a typedef really, but one that the compiler could do dimensional analysis against. C++ ish OO would unduly bloat / obscure the simple essence of many programs. So, it's not just about performance, but also about clarity and conciseness. Is Smalltalk any simpler / cleaner in this respect?
Sun 04 May | John Aitken | COM provides at least one widely used pretty loose notification framework... in VB it uses a 'WithEvents' / 'RaiseEvent' syntax, underlying it is the 'IConnectionPoint' interface. It can sometimes offer pretty cute sorts of extensibility, but can also lead to poor performance and real weirdness when mutually unaware 'listeners' each play with common public objects in a way the other didn't anticipate.
Sun 04 May | Simon Lucy | Seemingly Eiffel is meant to be a kind of step between Smalltalk and a procedural language such as C++. The syntactal coarseness of it though puts me off. For instance there's no such thing as a For Next loop, you have to manufacture one out of an Until loop with a hand coded increment. On the other hand it does treat numbers as members of the class Integer and the only way you can assign values in another object is to use getter and setter messages.
Sun 04 May | Chris Hanson | Objective-C is an object-oriented variant of C that uses Smalltalk-style messaging to implement its object system. Objective-C was the language used by NeXT in the NEXTSTEP frameworks, and as a result is the native language of the Cocoa frameworks in Mac OS X. As a result, its popularity has increased pretty significantly. The overhead of dynamic dispatch really isn't significant for most uses, and you can always either drop down to C or C++ when you need extra speed. And between dynamic dispatch and a full runtime, you can write software a lot faster than in other environments. NeXT bought the rights to the Objective-C language back in the 1990s. The official definition is 'The Objective-C Programming Language' at the following URL: http://developer.apple.com/techpubs/macosx/Cocoa/ObjectiveC/index.html Objective-C can be used anywhere GCC is available, because a compiler is part of the GNU Compiler Collection. GNUstep, an Open Source implementation of OpenStep (Cocoa's predecessor) also runs on a wide variety of platforms, including both Linux and Windows. (Though its Windows support probably isn't as 'done' as its Linux support.) http://www.gnustep.org/
Compensation | Sat 03 May | Tony Chang
Theres a lot of talk lately about how nonperforming CEOs are overpaid, but CEOs who can deliver the goods are worth any price. Also a lot of talk about how developers are incompetant and cant deveiver the goods and there needs to be accountability through licensing or what have you. Lets tie these together. CEOs who truely deliver exceptional performance should be well paid because they are a rare talent. Likewise, developers with a proven track record of delivering winning products should be paid astronomical salaries. Im talking tens of millions here. Superstar salary for superstar talent. The key is proven ability. And the guys who cant do that, the minor league guys, should be happy with whatever they can scrounge up.
Sat 03 May | GiorgioG | Can someone explain to a simpleton like myself exactly what a CEO at a large company such as IBM, GM, AMR, and so on, does other than be the 'face' of the company? Especially to deserve multi-million dollar compensation no less. For some odd reason this reminds me of a quote from Spaceballs: 'Help me! You gotta help me. I don't know what to do. I can't make decisions; I'm a President!!'
Sat 03 May | www.marktaw.com | Wasn't it the presidents of Citibank and Travellers and decided on a merger while playing golf? Somehow, that created the largest financial institution on the planet. A corporation is similar to the US government. The board of directors determines policy and generally represents the stockholder... sort of like Congress, while the president executes (the E in CEO) that policy.... similar to the executive branch of government. I'm not sure I need to remind you what the president of the US can do, though in a different era, under a different administration, you might have been saying the same thing about the him. Soooo... CEO's are paid outrageously large amounts of money because you need to pay them that much to attract star talent. If you paid your CEO $100,000 a year, you would get a CEO that's really a middle manager becuase that's a middle manager salary. Ben & Jerry's had to break their '5 to 1' policy, which stated that no employee, including the president, would get paid more than 5 times that of any other employee because as the company grew, they needed to hire on business school types to run the company because after all, Ben & Jerry were hippies and would make mistakes and make obviously bad business decisions that were right for personal reasons.
Sat 03 May | Wake up dude | CEO's should be payed for exceptional performance to the same degree as any other employee of the company (lets not forget that is all they are, and should be accountable (the same as any employee if they are not (i.e. get fired) The system is out of whack though for several reasons, 1) Exceptional performance is currently defined as growth period, but what if the economy is doing really well and sales grew 30% is that good performance? not if the average company grew sales 50%. performance should be measured in how the company did against competitors, not how it did overall. 2) Performance should not be measured by making analysts right, analysts set price and earnings targets based on what they think might happen with a company and an economy, and to say that, well doing what is good for wall street is good for the investor is often at best a lie. People often forget this but Stocks exist to allow investors to participate in a profitable business venture by sharing the profits (these are called dividends) thus when you channel stuff, cook the books, fire staff, kill morale you are not rewarding 'investors' you are rewarding 'seculators' 3)CEO's just like any other employee should be accountanle for his lack of performance by getting fired, in the current economy the CEO is often rewarded for his incompetence by getting Stock options repriced, and recieving golden parachutes. 4) If a company did exceptionally well the CEO is given all the credit, but where does all the talk of team go when it is time to divide up the loot (bonus money), 90% in the senior managements pockets. Don't forget for all the talk of Jack Welche's greatness there still had to be someone building and designing the washing machines etc, and just as their jobs are on the line if they fail (much more so than the CEO's), shouldn't they too have a carrot other than keeping their jobs? But if you reward everyone according to what they contributed guess what there is no money left for the share holders, i.e. if I grew sales by 1000000 dollars and I am paid 1000000 dollars I HAVE DONE NOTHING FOR THE COMPANY which brings me to my last point 5) CEO's are managers and employees not owners and entrepeneurs, they DO NOT 'own' the company, since they are merely managing the company, the gains from that capital should ALL go to share holders, and this does not leave much room for the extravagent bonuses that we have seen. Unfortunately, CEO's and their cronies in mutual funds, boards of directors etc..., lets face it the boards and executive suites are a pretty incestous place, all make sure to take care of each other, and since there are no laws to protect small share holders (someone with 51 percent of the shares should not be able to vote themselves all the profits) corporate governance is screwed until further notice. My advice, let the corps cannabalize each other, and stick to fixed income investments: real-estate, bonds, annuities, your business, but don't give these guys money, they WILL steal it.
Sat 03 May | one programmer's opinion | 'CEOs who truely deliver exceptional performance should be well paid because they are a rare talent.' Depends on what you mean by performance. There have been several research studies that suggest most CEOs have little impact on how well a company performs financially. The 'rainmakers' are typically the people who are always well compensated within an organization. I have no problem with a CEO earning 50 million a year or more if he/she can prove that they were directly responsible for bringing in more money then what they took out. That said, it seems to me that most CEOs are simply glorified big picture decision makers and are overcompensated. 'Likewise, developers with a proven track record of delivering winning products should be paid astronomical salaries. I'm talking tens of millions here. Superstar salary for superstar talent. The key is proven ability. And the guys who can't do that, the minor league guys, should be happy with whatever they can scrounge up.' Okay, here you need to clarify what the word 'developer' means to you. I am assuming you are talking about someone who single-handedly creates some type of computer product that eventually generates a lot of income for their employer. I believe most of these individuals do receive generous compensation packages from their employers.
Sat 03 May | | One reason modern CEO's are paid a lot is that they are able to get away with large scale cost reductions that have a big impact on 1,000's of people, mostly staff. That is, they get paid a lot because they're skilled at persuading other people to accept lower rates of pay, job uncertainty and even mass sackings. It's a straight win-lose. The original poster's comment that some discussion here had canvassed licencing as a reaction to 'incompetent' developers completely missed the point. That would be the common, and naive, interpretation of licencing schemes. The discussion here actually explored the more sophisticated theme of how licencing protects the financial well-being of a profession. This effect is neutral with respect to competence. This situaiton prevails in more established professions. However one of the conclusions of the original poster is spot on. Some developers are exceptional, and their work can add millions of dollars to company value. Hundreds of millions even. In software companies, those people might be rewarded. In user companies, they're generally not. I think we could draw an analogy with movies. Exceptional developers are like exceptional directors and have a similar impact. I think we will move towards that goal. Business's current preoccupation with cost cutting will cause big problems and lead to a reexamination. By then, the best developers will be smarter and will have learnt that being a team player only benefits the big boss.
Sat 03 May | John Aitken | There's no way either the CEO's relative value can be proven. There's no way you'll ever convincingly separate the contributions of other factors, other people, and sheer dumb luck. How would another CEO have performed instead? Can't prove that either. The developer's talents are maybe a bit more certain, but most of the same problems apply. The superstar talent argument is totally spurious. All 'superstar' salaries attrack is the greediest slickster.
Sat 03 May | John Aitken | Truly great contributors are never motivated by a search for the absolutely fattest paycheck.
Sat 03 May | T. Norman | Corporations no longer exist primarily to make money for shareholders; they have become tools for filling the pockets of CEOs and top executives regardless of the company's performance. Profits to the shareholders are now a secondary side effect that may occur after the executives' pockets have been filled. In addition to the huge severance packages, there is also hidden compensation in the form of megabuck loans to executives which are forgiven when they leave the company or the company goes bankrupt. Those often fly under the radar of shareholders because loans given out are considered to be assets. Also witness the many steps that have been taken to shield the bonuses and pensions of top executives if the company goes under, while the shareholders, creditors, and rank-and-file employees get left out in the cold. American Airlines is only one of many companies who have taken such steps to pad their executives' pockets in the event of company failure; they just happen to be in the news because of the recent bankruptcy considerations. You don't need golden parachutes to attract really good CEOs. The really good ones are confident enough to know that they are unlikely to screw up the company so they won't need one. And very often, those golden parachute provisions aren't put in place until after they have already joined the company. Megabucks are also needed to attract top sports stars because they are rare and valuable, but they don't get golden parachutes for bad performance.
Sat 03 May | billm | That Ben and Jerry 5-1 policy (no one would be payed more than 5x the salary of the lowest paid worker) always really annoyed me. Not so much the concept, but how smug they always were about it. The fact was that it was essentially meaningless since Ben and Jerry themselves owned so much of the company. Their compensation was not mostly from their salaries but rather from the appreciation of their stock. Which is as it should be. Just don't pretend that you are some supremely altruistic being while at the same time you are getting rich. I would have been amazed if they said something like 'The employee with the most stock will have no more than 5x the stock of the employee with the least.' That would have been meaningful. And yes, there are some CEOs out there (read Larry Ellison and Michael Dell) who both own huge percentages of their companies yet insist on getting paid (and additional option grants) as if they didn't.
Sat 03 May | Geoff Bennett | I also think that CEO remuneration is higher because they're more likely to be knackered by a sacking. Ferinstance - you screw up this job, you get sacked, you weasel your way into another job and keep going. CEO nosedives a company into liquidation, gets hauled through the courts, has his pants sued off him etc, is he going to be able to work again? Not as a CEO. How many people of that ilk fancy flipping burgers for minimum hourly wage. They get paid big because they take big risks in the event of big payoffs, but also big f*ckups. This might be their only shot.
Sat 03 May | T. Norman | CEO screwups often move on to another company without any problem. And onto the next, and the next. Plus, they generally make so much money during their stay that they don't have to work another day in their life, even without a big severance package.
Sat 03 May | T. Norman | According to this http://biz.yahoo.com/p/o/orcl.html , Larry Ellison only made $39K in 2002!
Sat 03 May | anon | CEO are certainly not overcompensated. Sacking thousands of people and making them feel guilty for being underachievers, blaming your subordinates during the bad times, claiming all credit during the good times, and still keeping a straight face requires true genius!
Sat 03 May | | 'According to this http://biz.yahoo.com/p/o/orcl.html , Larry Ellison only made $39K in 2002!' The flip side is that I believe he made something like 780 million in 2000 when he sold some of his stock.
Sat 03 May | | John Aitken, if you personally would prefer not to receive your fair share of the wealth you create for other people, you can donate it to a deserving charity. But as things stand, you're giving it to those conniving types who get rich rewards for diverting wealth from the rest of society into their own pockets. For me, I would like to receive my share and then I will decide what I do with it.
Sat 03 May | Daniel Shchyokin | 'They get paid big because they take big risks' LOL, what exactly is the 'risk' of making enough money in a year to last 3 or 4 lifetimes. Now I am not saying that CEO's should not be paid handsomely, but think about it this way, your first three months on the job you made 3 million dollars, where is the pressure to perform? You are already set for life. Just think about that after 3 months you NEVER need to work again.
Sat 03 May | T. Norman | Risks? What risks? What risks are the CEOs taking other than risking other people's money? If they get megabucks when the company thrives, and megabucks when they screw up, what is the risk for them?
Sat 03 May | Brad Wilson (dotnetguy.techieswithcats.com) | It's funny... apparently a lot of you think that every CEO position in the world is for a multi-billion dollar company that pays hundreds of millions of dollars. The VAST majority of companies are small, some quite tiny. The CEOs of those companies do not get paid ridiculous amounts of money, and as often as not, yeah, they are risking the entire company with their decisions. Since any chance of making any significant money is usually tied up in the fiscal success of such company, I'd say that's risk for them, too.
Sat 03 May | T. Norman | I think most of us here are referring to CEOs and executives of Fortune-1000-sized corporations, not the CEOs of firms with 20 employees. Small companies rarely have the money to give golden parachutes, and their CEOs tend to have a sizeable ownership stake in the company, not to mention that they probably started the company. With those companies, the CEO can't collect megabucks if the company doesn't prosper. Anyway, this article 'CEOwners' suggests that it's not perks and bonuses that bring high-performing CEOs, but it's their ownership stake in the company that makes the difference: http://www.forbes.com/2003/05/02/cx_aw_0502ownersintro.html?partner=yahoo Click the 'Slide Show' link to get a popup with the CEOs, their compensation, and their ownership percentage. 'Of the ten graded CEOs with the largest ownership stakes, only Philip Knight of Nike failed to beat the S&P 500 over the last six years.'
Sat 03 May | Tony Chang | Goodness! Please, forget I mentioned anything about CEOs. That topic has been talked to death and I only wanted to incorporate it by reference. The topic was meant to be, assuming for the sake of argument that CEOs who can REALLY DELIVER results (and aren't just ransacking the corporation and filling the cash bins of hteir cronies) are rare birds and thus need to be attracted by say, large salaries. I postulate that developers who can deliver spectacular results reliably are just as rare if not much rarer and they shuld be paid spectacular salaries too. I don't mean $150,000. I don't mean $450,000. I mean ten million dollars and up. Annually. A recent discussion was on Cigna's boondoggle. THe spent upteen zillion dollars on a computer system and it failed in such a spectacular way that they lost a huge percentage of their customers and lost BILLIONS of dollars because of the incompetand CIO anid developer/consultants. Forget who is to blame, let's just note that the system failed. How much would it have been worth to Cigna to avoid all this by hiring someone with proven results and letting them have at it? Well, there are not very many of these guys around since Cigna hired some top consultancy and they screwed up big time. But there are a few. Let's say that Joel is one of them, by way of example. So they contact him and offer him $350,000/yr to put together their system full time for 2 years. He is going to give up his company for this piddling amount? I think not. What if they offer him a million? Nah. But ten million, well... maybe...
Sun 04 May | choppy | There is such a thing as a million dollar developer. They make millions of dollars. I have two friends that are million dollar developers. The thing is, million dollar developers do not work on business systems such as Cigna's. They write compilers, or games, or operating systems...or they wrote yahoo store, or yahoo, or ebay, or whatever. Most software is like plumbing; it isn't that hard, it is just distasteful do do it. Thus, most programmers are paid the same as plumbers. If you want to make a shitload of money, you either have to do something really fucking hard (like writing your own compiler, graphics engine, or operating system) or think of something that no one has thought of before (like ebay or amazon).
Sun 04 May | Tony Chang | 'million dollar developers do not work on business systems such as Cigna's' Right choppy! I agree - businesses are not going to be able to draw from the pool of competant stars at mere million dollar salaries because it's not enough -- the stars are doing their own thing and it would take serious compensation to bring them on. But doing so could turn a billion dollar failure into a billion dollar success. Companies serious about success with critical systems might consider this. Look at google - that's a business system. It's a plain looking search engine. But they've been able somehow to attract and motivate some real superstars and in so doing have dominated their market segment.
Sun 04 May | choppy | Google isn't really a business system. It was founded by hardcore stanford CS nerds. There are weird esoteric search algorithm issues to deal with. There are huge systems-y 'how are we going to manage 15,000 linux machines' issues to deal with. Many of the issues are interesting to nerds who find CS problems interesting. The work environment is a bunch of software people, the value of google is purely IT. Contrast this to a bunch of GM execs who want to minimize the IT budget for the latest b2b muffler exchange. Most 'consultant' systems are not really very interesting from a pure CS or even engineering standpoint. The other thing is, google may have attracted some superstars, I know a few of them. However, those superstars certainly aren't being paid millions of dollars. ;-) Maybe they will be millionaires, someday. Google seems to operate the same way as microsoft, to a degree. They pay better than average salaries to people who pass their interview gauntlet, and promise that if they stick around for a while, that they will make some real dough. And maybe they will.
Sun 04 May | T. Norman | As far as developers and compensation is concerned, very good developers are way underpaid. Studies have shown that very good developers are often 10 times as productive as average developers. But still they only get paid maybe 30-50% more than average. Stellar developers can be 100 more times more productive than average. For example, it only took John Carmack, John Romero and 1 or 2 other programmers to write Doom. Put 400 average developers together for a few years and they still couldn't produce Doom. Companies whose main products are not software related will never pay what it takes to attract really good developers, because they see Information Technology as an expense that needs to be minimized, not an investment that can bring positive returns. Occasionally they will hire a very good developer by sheer luck and circumstance, or a good developer will emerge from within the company, but it's not by design.
Sun 04 May | Stephen Jones | You normally get to be a CEO by being one already, or by being one step lower in the same or an equivalent company. So in fact the pool of available CEO's is about the same as the pool for any other job, and the risks are not significantly greater. Now the reason for this is partly the old boy network, but mainly shareholder conservatism. Imagine Bill Gates's job went vacant. Now there are probably dozens of people here on this board, including Joel and myself who have the requisitie knowledge and qualifications to do the job. You need to know a bit about code, a bit about the market, a bit about the law, a bit about motivating people, a bit about organization skills, a lot about bullshitting convincingly on keynote speeches at Comdex, and if you are a nasty paranoid bastard it helps but is not necessary. But what would happen to the shares if any of us were appointed? They would immediately go into a tailspin, because nobody knows who we are; we are not 'a sure pair of hands'; have not passed through the stage of being an acolyte which is only waived on grounds of consanguinuity. Indeed those shares would keep plumme