last updated:26 Jan 2004 16:43 UK time
Joel On Software Discussion Forum
JOS Statistics - Recent Comments
(Comments added for week ending Sun 25 Jan 2004) | View Other Weeks
your freeware collection/recommendation | Sun 25 Jan | Praba Hardian
Hi, As a developer and general Windows user what freeware (not shareware) that you use and recommend? Mine: 1. Sygate firewall 2. Spybot & Ad-aware 3. Abilon RSS 4. JEdit 5. The Python suites (compiler, wxwindows, boa etc) 6. Winuscon 7. JDiskReport 8. Inforapid search & replace 9. Winamp 5 standard 10 Xsetup Thanks n regards
Sun 25 Jan | Daryl Oidy | * Mozilla * putty * vim * cygwin * openoffice * wincvs and/or tortoise cvs * virtuawin * gaim
Sun 25 Jan | Andy | http://www.pricelessware.org/ Great site, has almost all the freeware I use.
Sun 25 Jan | Robert Jacobson | Ghostscript/GSView. Opens and displays raw Postscript files (not PDF) and prints them to non-PS printers. http://www.cs.wisc.edu/~ghost/
Sun 25 Jan | sgf | Beyond Compare FileSync IrfanView
Sun 25 Jan | Philo | Why free? I'm just curious - I second Winamp and IrfanView, but there are some inexpensive shareware utils I use as well (Ultraedit, Fineprint) and I really have to wonder why the absolute insistence that you not pay a cent for the tools you use? ...unless you're doing research for an article or something. :-) Philo
Walked a Mile in the Other Guys Shoes | Sun 25 Jan | Bill Rushmore
I just did a small C# project over the past month. I have to say I really like .NET. From my background I would probably surprise a lot of people by saying that. I have been a Java developer for seven years and you can probably call me a Java advocate. I even went so far to start a pretty big local Java Users Group several years ago. I really never took anything from the MS side very seriously; it was like those guys weren’t real developers. VB seemed like a sick joke and all that Hungarian notation, MFC stuff appeared so backward. I started to take a look at .NET about a year ago. I went into the whole thing believing that .NET was just a cheap knock off from Redmond. But now that I have some hands on time with writing a C# app that does real work I have to say, I have a completely different view. First of all, Visual Studio has got to be the best IDE known to man. Although my first experience with .NET was not as mind blowing as C to Java, .NET is definitely the bigger monkey on the evolution chart compared to Java. I too have been impressed by the whole MS programmer culture. (http://www.joelonsoftware.com/articles/Biculturalism.html) Microsoft gets a bad rap but they do how to treat developers. Take the MSDN library; it is nice to see some useful documentation for a change. I have a couple more enhancements for my C# app but after that I’ll probably be going back to the world of J2EE. Don’t get me wrong, I still like Java. But given the choice I would choose .NET. But I’ll continue to code in what people will pay me for.
Sun 25 Jan | Mister Fancypants | For me, one of the coolest things about .NET is that through Managed C++ you can wrap all your existing legacy code and then use it in your future .NET applications. There are many languages I'd kinda like to use (like Walter Bright's 'D') but don't simply because I can't really fathom throwing out compatibility with all of my existing code, not to mention the tons of terrific third party C++ libraries... With .NET it isn't as much of an issue since it is very easy to use PInvoke and/or create a Managed C++ wrapper.
Sun 25 Jan | no name | And I'm sure if you would have had to develop for MS using VB instead of C++/MFC you would have been saying the same thing.
Sun 25 Jan | snotnose | I'm a linux guy, most of my work is embedded using kernels like VxWorks, pSos, and embedded Linux. I also do a lot of Linux device driver work. Most of it is C, with some assembly hooks. But I've done my share of C++, sh, awk, Perl, and Python scripting. That said, I learned C# last summer. I love it. It's simpler than C++ (gak! I hate that fsck'in language). It's better than C. Java sux (don't go there). Python is pretty good, but slow. C# seems to combine the best features of everything. Haven't done anything in .net yet, but I'm looking forward to my next C# project.
Talking to USB ports on Windows with Java | Sun 25 Jan | Walter Rumsby
Hi, Does anyone know of any implementations that allow communication with a device attached to a USB port for Windows. The comm API supports serial ports and the JSR for USB support is targetted at Linux.
Sun 25 Jan | Scot Doyle | Possibility listed at http://jusb.sourceforge.net/
Sun 25 Jan | Walter Rumsby | I think they're only working towards a Linux solution (too). Going to have a play with serial port emulators for USB. I just bought a 'USB to Serial' adapter only to find it's what I would classify as a 'Serial to USB' adapter (i.e. serial port is male). Hmm.
MyIE2 kicks some serious @ss! | Sun 25 Jan | Mr Curiousity
Ive been a MyIE2 user for almost a year now. I think that on Windows it is the next best thing after sliced bread. It is especially convenient for heavy-duty multi-threaded web surfing with 20 and more locations opened at once. Pros (in order of importance to me): a) opens everything in Tabs - no clutter with multiple windows b) uses standard Windows components which are most of the time already loaded in memory - thus very fast c) easy to open follow-up links in new tabs when reading something, let them load over the modem while still reading the original document, then switch to those tabs d) compatible with IE6 e) blocks pop-ups Cons: uses standard Windows dlls, so when there are holes in IE, MyIE2 is susceptible as well. I use mozilla under Linux so it is a fine browser. And it has all the usability features I need. However, under Windows it feels heavy and sluggish. So, as they say, the best is the enemy of the good. I still keep Mozilla around to go to untrusted cites and avoid being trojaned through IE holes. I tried Firebird, and it also felt sluggish. Any other opinions?
Sun 25 Jan | Brad Wilson | I use Firebird for all the reasons you use MyIE2 (the only thing 'sluggish' about it is the loadup time, and since I generally keep it running all the time, I don't pay that penalty very often). Firebird also has a really killer Extension system, where developers can changed just about any behavior they want. Things like the Live HTTP Headers and the Flash Click-to-Play extensions are total dreams for me. In the end, that one Con -- IE's bugs are MyIE2's bugs -- is enough to keep me away. IE is an absolute disaster for bugs at times.
Sun 25 Jan | FredF | ... and I use Opera for the same reasons you guys use FireBird or the IE-based browser that is MyIE... except Opera loads faster and crashes less :-D
Sun 25 Jan | no name | What I want is a browser that automatically blocks forum spam.
Sun 25 Jan | Jimmy Jo-Jo | I tried using sliced bread on my Win2K machine but it gummed up my floppy drive. Not recommended.
Searching web pages you have visited? | Sun 25 Jan | The real Entrepreneur
Hi, Anyone know of a good, simple program that searches the web pages that youve visited? e.g., lets say I know I visited a site about turtle mating habits, but I cant remember the site name. if I could do a google search, restricted to the sites in my BROWSER HISTORY I could probably find it. There WAS a program called MantaDB, but it was for ie 5 only. Any suggestions?
Sun 25 Jan | Mike Swieton | Hmm... it should be pretty easy to write a proxy that saves information for searches... Maybe that'll be my next project :)
Sun 25 Jan | www.marktaw.com | Oh yeah, what about hitting CTRL + H and clicking Search (assuming you're in IE), in Firebird you don't even have to hit Search, it pops up automatically.
Sun 25 Jan | Sam Livingston-Gray | I've wanted something like this for years. Of course, I use multiple computers and platforms, so it's probably not all that practical. I did see such a feature in the OmniWeb browser for Mac OS X, though: http://www.omnigroup.com/applications/omniweb/gallery/
Sun 25 Jan | www.marktaw.com | I had a java program that did this a few years ago, but the database got pretty bloated after a while, depending on your browsing habits.
Anyone tried/used ZOOT info manager | Sun 25 Jan | The real Entrepreneur
Hi, Ive been on a long quest for a good program for storing bits of information, and organizing projects (to-dos, etc.) for some time. Treepad (treepad.com) is a top contender. I even wrote my own knowledgebase program about 7 years ago. Just ran across ZOOT which seems interesting. ANYONE using or tried it? http://www.zootsoftware.com/ BTW, My Criteria (in the event of the inevitable suggestions of a better alternative to Zoot or Treepad): 1. Easy to enter info. 2. Easy to search (including boolean searches) 3. Nice heirarchal structure (so I can have tasks, sub tasks, etc.) 4. Calender type feature for scheduling tasks that have a firm due date.
Sun 25 Jan | Mike Swieton | On a similar note, does anyone know of a Unix-friendly program for similar purpose? I'm currently writing a Java knowledgebase because I've not found one. Must be desktop, no web apps.
Sun 25 Jan | Mike Swieton | Btw,: http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=72360&ixReplies=8 Previous discussion
Sun 25 Jan | The real Entrepreneur | Mike, There are several (lots I think) KB's i the SourceForge.com projects. I think several of them are java based and many others are also unix-capable (if memory serves. I'm Windows-0nly so wasn't paying much attention to that). Try a search on SourceForge.com for: knowledge knowledgebase pim etc. They don't always do a good job of writing clear descriptions, so you have to fiddle with your search terms.
Sun 25 Jan | www.marktaw.com | I didn't get Zoot at all when I used it, but there is a pretty funny (from 2001) person who calls the author on doing some Stealth Marketing: http://c2.com/cgi/wiki?PatternImposter Problem: How do you on-line market your software to hoards of cynical developers? Solution: Write up the commercial as a pattern and dump it on wiki. Under solution, say 'sorry, I don't have a general solution, but you can buy this...' Example: ZootSoftware ==== I love Treepad Free. Searchable, quick even though my database is approaching a megabyte of text, stable, and all around good.
Sun 25 Jan | Herbert Sitz | You might want to check out Ecco, an old Windows program -- similar to Zoot in some ways -- that is no longer sold but which has the advantage of now being available for free. It has a tool similar to Zoot's of quickly 'shooting' outside info into the Ecco database. There is still an active Ecco community with, e.g., user group on Yahoo, which Zoot has also, I believe. You can read more about Ecco (and some other outlinging and KB tools) and get the necessary web references at this site: http://john.redmood.com/organizers.html
Sun 25 Jan | Herbert Sitz | BTW, I mentioned Ecco because it's particularly strong at your hierarchical requirement (it's based around an excellent outliner) and it also has strong calendaring tools.
Sun 25 Jan | FredF | Does someone know where Ecco can be downloaded? The link in the page below is no longer valid: http://supportweb.netmanage.com/ts_viewnow/downloads/patchesUnsupported/ecco.asp
Sun 25 Jan | FredF | Stupid me :-) My firewall was silently banning my browser from connecting out in FTP. Sorry about that.
Sun 25 Jan | Andy | Is there a good one that can be shared easily between multiple computers? I like the Wiki solution sort of, because you can access it from anywhere, but I'm not sold on its usability yet. I like the treepad interface (at least from an initial glance), but it doesn't seem like you can easily access it. I need to be able to access it equally from home and work. I have some web/ftp space to use. It would be nice if I wouldn't have to remember to upload it from home once a night, and download it at work in the morning, etc.
Sun 25 Jan | www.marktaw.com | If you've got money to burn: http://www.treepad.com/treepadx/
Sun 25 Jan | SC | > Anyone tried/used ZOOT info manager Wish they'd consider placing some screenshots of the program on their site or if they have, make them more prominent....
Technical Ladder -- myth or reality | Sun 25 Jan | Floridian
Colleagues, does your company provide a technical career path (a.k.a technical ladder) and is it for real? The company I work for does have such a concept, but its a Fortune 500 shop. Theoretically, you can move up to a VP of Engineering. However, I see more Management Ladder people around at higher positions. Which leads me to believe that the technical ladder is much more difficult to climb. Any thoughts/observations are welcome!
Sun 25 Jan | no name | I climbed a ladder once.... fell off the top of it, now I'm at the bottom again.
Sun 25 Jan | Cynic | It's a myth.
Sun 25 Jan | son of parnas | Mostly myth. Even if it's real your chances are remote.
Sun 25 Jan | anonymizer | Engineering types tend to be introverted and reserved, and generally temper any confidence with realism. Many management types tent to be extroverted and outgoing, and generally speak about anything with great confidence. Given that success is business is almost entirely associated with the latter attributes, it isn't surprizing who comes out on top.
Sun 25 Jan | Floridian | Noname, why did you fall off? Got laid off and had to accept an entry level position again to have ends meet?
Sun 25 Jan | T. Norman | A person with a technical experience who is a CxO is likely to be someone who played a role in founding the company. Climbing the ladder through the technical path is much more difficult. Nowadays even most CIOs have nontechnical backgrounds.
Sun 25 Jan | Steve | It's a myth. There is no ladder. No company will take care of you, you must take care of yourself.
Sun 25 Jan | Floridian | So the consensus is that the management ladder is the way to go? It's kinda sad...
Sun 25 Jan | Floridian | And yeah, my company is an engineering company, or so it claims. Would it make a difference?
Sun 25 Jan | mackinac | The small ( 50 employees, mostly technical) company that I worked for a few years ago had technical and management career paths. The problem with the technical track, from the engineer's perspective, is that the higher levels in the technical track required a lot of customer interaction. That is, to some extent they were sales positions. To me this presented a conflict. I wanted to get to the higher technical levels to be able to do more interesting engineering work, but didn't want to do anything that looked like sales. That company disappeared by aquisition during the growth of the dotcom bubble. Any effort to climb the technical ladder would have been wasted anyway. It is not clear what one might expect from a technical career ladder. The opportunity to work on more advanced technology, but that would depend on the nature of the work the company does. A Fortune 500 company would be big enough to require a few layers of management but might not need any engineering work that couldn't be done by someone with a couple years experience.
Sun 25 Jan | Unfocused Focused | Only one company I worked at had a Tech Ladder that was more than a running joke - Texas Instruments under Jerry Junkins. Don't know what it's like now, but there was actually a path where you could be rewarded for providing value through technical merit rather than being the bearer of status reports to upper management. I was an incredible atmosphere, and one I haven't seen anyone else interested in reproducing, much less able to pull it off.
Sun 25 Jan | Floridian | machinac, in the company I work for, higher technical positions do involve dealing with customers, choosing technologies, providing general architecture and technical leadership. They don't code or even do a low-level design. But they don't have direct reports, do performance assessments and all that crap. Which I like, to be honest. The problem is that even though the ladder does exist, it seems more difficult to climb. PM ladder seems easier, but I'd hate to be a PM here. My company is of TI caliber; that may explain why there is a technical ladder that is more than a joke. Anybody else out there whose company has a meaningful technical ladder? (MS and Fog Creek excluded ;) )
Sun 25 Jan | mackinac | >>> So the consensus is that the management ladder is the way to go? It's kinda sad... <<< No. It depends on what you want to accomplish and that is not yet clear from your postings. If you want to climb a career ladder at a Fortune 500 company, then management probably is the way to go. If you want to do technical work, then stay off the management ladder. But what do you really want to do?
Sun 25 Jan | Floridian | I want to do technical work but I realize that in 20 or so years I may neither be able to nor want to compete with younger coders. I enjoy technical work, so technical leadership/architecture definition/high-level design would appeal to me, and I want to work towards that goal. These positions do exist, but what's the probability of getting them? In other words, what's the path from developing software to a more high-level work; the path that provides career development, reasonable $$, job satisfaction, moving higher up the food chain and _not_ involving management?
Sun 25 Jan | Philo | When you say 'climb' what are you looking for? More money? More authority? The ability to just read journals all day? Or are you trying to age-proof your career? It makes a difference. Philo
Sun 25 Jan | Sassy | At my current gig (backup software) nearly all the management-level jobs are either sales or finance.  There is one technical VP and he's the guy who wrote the product.
Sun 25 Jan | TK | The technical career paths are at places like Bell Labs and Universities. Your career is documented in patents and papers. Big income is from consulting. Technical careers don't end in management / sales (where real bucks are). At my former real big company the theory was to pay the very best techies more without actually changing their jobs. They didn't reach high levels in the company or organization (they didn't want to) but they got a few more bucks than their peers and some recocognition. Of course, there are tech folks who are also extraordinary managers who want to and do break out. The person who is a tech wiz, management wiz, and a sales wiz is the total package. I've met some, you probably have too.
Sun 25 Jan | Floridian | Philo Quote: When you say 'climb' what are you looking for? More money? More authority? The ability to just read journals all day? Or are you trying to age-proof your career? It makes a difference. /End Philo Quote More money -- yes More authority -- yes Only reading journals -- NO Age-proofing -- yes Is it a lot to ask for?
Sun 25 Jan | www.marktaw.com | If I was in a factory I don't think I'd be grooming the guy who operates the heavy machines to become management unless he was obviously good at dealing with the rest of th employees (i.e. showing management already and I noticed it). Even then I'd probably hire someone else to manage them and tell him that in order to win over the floor you just have to win over this one guy. After all, once the guy who is on the inside becomes management, he becomes 'one of them' and loses his ability to influence the rest of the workers. Though if you pump your resume up and get the right people to vouch for you, you may be able to jump into a management position by going to another company. That's much more feasable, I think.
Sun 25 Jan | anon | Oh, come on. I'm sick and tired of hearing about how amazing good managers are. Let's f'ing face it. Good managers are good because they mastered the fine art of being tall and having good hair. Perhaps they've also got a bunch of Jane Goodall's apes (e.g. suck-ups, brown nosers, yes men, etc.) picking termites out of their butt cracks. There's absolutely nothing a manager can accomplish that thousands of generations of alpha-chimps haven't accomplished before them. Good technologists, on the other hand, are thinking thoughts that have never been thought before. They represent the absolute pinnacle in abstract thought - intellectual discipline and 99.99 percentile ability in mathematics & reasoning. As such, there is nothing left for the alpha-bonobo-managers to do, but outsource the technologists' jobs to other tribes across the globe. Technical track? Bobo the manager make smart, smart man go away. Bobo no like smart man. Bobo outsource man what got good brain. Bobo no like feel like dumb.
Sun 25 Jan | Philo | Anon, I beg to disagree. Philo
Sun 25 Jan | Philo | Floridian, you want to move into management. Your one 'no' answer was the major thing senior technologists are expected to do - research and learn the tech. Also, let's face facts - a given company only needs a few senior technologists. One relational database god will be plenty, whether you're Amazon, Apple, or IBM. Sure in huger companies he may get apprentices to answer the mail, but for the most part when the 'go to guy' spot is filled, it's filled and he's not going anywhere for a decade or two. On the other hand, teams need managers. When a company grows, it has more teams and needs more managers. Managers need managers, and they need execs. Even the flattest organization needs leadership. Sad but true fact of life. :-/ Philo
Sun 25 Jan | Mike Swieton | Anon, I believe my current employer definately is a good counter-example to that. We're only a couple years old, but we've grown a lot. We've had many clients and projects (of varying sizes) and we've never delivered late or under-delivered. I think that our good management has a significant impact on this. Sure, I think our people are pretty good, but we're not 10 Don Knuth's or K&Rs here. Good developers matter, but so do good managers.
Sun 25 Jan | anon | >> 'Even the flattest organization needs leadership.' I never put forth the proposition that companies don't need management... Companies need janitors, too. And it's simply a fact that Bobo the manager no like da man what got good brain. Brain man got go away to India. Bobo make good brain man go away. Maybe take woman.
Sun 25 Jan | Tom Vu | >>>One relational database god will be plenty, whether you're Amazon, Apple, or IBM. I hope this was an exageration or else you have no idea how large scale systems are designed.
Sun 25 Jan | Philo | I was actually thinking of 'God' as in 'published respected industry authority' level. However, one step down - the 'god' level, you're right that as a business grows they will need more expertise at every level. But I also still maintain they will need more managers than raw technical talent. Philo
Sun 25 Jan | Christopher Wells | > I hope this was an exageration or else you have no idea how large scale systems are designed. How are large scale systems designed?
Sun 25 Jan | Bored Bystander | The notion of a technical career ladder isn't a myth; it existed once and was the prevalent carrot on the stick to create a sense of historical continuity in the engineering ranks, IE the idea that you could some day 'amount to something' by being technical. But it's eroded to insignificance over the years. Probably only Microsoft has the long term vision to support a class of 'principal engineers' who formulate long range technical strategies. 20+ years ago - AT&T had Bell Labs; HP, Xerox, RCA, ditto. I can't think of one major American company that bothers keeping more than a small handful of consultative senior contributors around. Every other company is pretty much into making its numbers for the current quarter. 'Brain trust' and 'highly compensated senior engineers with lots of pull' today translates into one thing: 'unnecessary expense and waste'. To answer Floridian's original question, I think the only way to stay on a technical career track without becoming layoff/outsourcing victim fodder is to become a consultant and in turn become VERY VERY good at self marketing and branding of yourself. Which in turn implies that you're no longer 'only' technical, you must also run your own business, but at least you then have a choice as to how much brainwork and substance you choose to retain in your work. Working for someone else you may have no choice but to get out of technology work at some point if you want to survive.
Sun 25 Jan | Tom Vu | >>>How are large scale systems designed? For a large company, usually half-hazardly with many architects, project managers, and consultants implementing another company's product. For a company that is looking to make a profit instead of not make a large loss, usually a small group of really smart people.
Sun 25 Jan | Smitty | I kept climbing the ladder, thinking there was no obstacles, but I kept hitting a glass cieling. OUCH my head hurts... In my experience, it's has become an old legend to be classified next to unicorns, dragons and wizards.
Sun 25 Jan | Floridian | Philo, I meant I didn't want to ONLY read journals. On a personal level, why did you move into sales? The thread has been extremely informative and provided some weight to my casual observations of the company I work for. Thanks everyone!
Sun 25 Jan | Philo | The sales part - because I enjoy convincing other people how cool MS tech is. I did it a lot as a consultant, so it was a fairly natural transition for me. However, as I learned about the role, I also grew enamoured of the idea of actually being able to spend time learning about stuff. I didn't have to always be running after the next deliverable - I'm expected to 'get good' on stuff. It's nice. Philo
Does C# owe its success to Java or VB ? | Sun 25 Jan | Kentasy
Obviously, its cool and sexy factor comes from using curly braces and semi-colons, but does it owe its success to a language runtime, memory management and a intuitive forms designer ? At the very least, would you say C# is a mixture of the best of Java and the best of VB ?
Sun 25 Jan | Kentasy | I do not mean this in any kind of negative way towards Java, nor do I want to start a language war debate. I just haven't heard many people talk about C# borrowing a lot from VB or it being a 'souped up VB clone'.
Sun 25 Jan | 123 | Specify "success"
Sun 25 Jan | veal | Umm... I don't think C# owes *anything* to VB.  It's primary architect was Anders Hejlsberg who sold Turbo Pascal to Borland and then evolved it into Delphi.  You can certainly see a lot of Java's influence, and I rather think we'd never have seen a C# if Microsoft didn't have to answer the massive programmer productivity advantage of Java over C and C++.  Of course it also goes beyond Java and Delphi in some ways, so I tend to wonder if the upcoming Java features are not frantic attempts to bolt on C# features that would have been obvious requirements in the mid-90s to any language designer with large-scale application programming experience and should have been in Java 1, not Java 6.
Sun 25 Jan |    | Sure, the things missing from Java are 'obvious' now, just like the 'obvious' productivity enhancements that are missing from C++. Remember that the people who designed Java had to come up with all the ideas (many of which were borrowed, but some which were not), make sure they panned out, and then implement. I would argue that C# took more from Java than Java took from C++/Smalltalk/etc. However, the CLR is a different story altogether - *that* is an amazing piece of work. And when all is said and done, yes, C# is a better language than Java or VB. I mean... come on.
Sun 25 Jan | John Topley (www.johntopley.com) | The forms designer is part of Visual Studio and nothing to do with C# per se. 'However, the CLR is a different story altogether - *that* is an amazing piece of work.' Over and above the JVM?
Sun 25 Jan | Steve | I'd say it owes its success to Java only because most of its lessons were learned from that.
Sun 25 Jan | no name | Who says C# is successful?
Sun 25 Jan | Justin Johnson | 'And when all is said and done, yes, C# is a better language than Java' As an incremental improvement on mature Java, it almost has to be (leaving aside the current size and scope of the libraries available). The question is whether or not Java 1.5 will catch up, seeing as they're taking from C# all the best enhancements. Bottom line is that we're all better off.
Sun 25 Jan | anonymizer | Have you ever looked at automobiles on the road and wondered in amazement how of dozens of manufacturers, with hundreds of products, there really are just a couple of basic auto designs that everyone copies?
Sun 25 Jan | Kentasy | Did the JVM evole from the idea of the VB runtime ? Did the forms designer originate in VB, then get added to the entire suite of Visual Studio ? (In the beginning of Visual studio, it was simply a collection of VB, VC, InterDev etc) In any case, yes we are much better off with all the advancements and borrowing from other languages. I hope the next advancements in Java blow us all away, and then the next versions of Visual Studio blow us all away...
Sun 25 Jan | Robert Jacobson | It's not entirely fair to separate the 'Visual Studio' features from the pure language features. Visual Basic relied on a tight coupling between the IDE and the application code itself, in particular with a RAD, forms designer approach for GUI applications. This seems to have had a strong influence on C# (and VB.Net.) Although you can theoretically code a rich C# GUI app using Notepad, it wouldn't be a fun experience. Sure, the Forms Designer might really just be a neat productivity enhancement of the IDE instead of a true language feature, but it in practice it seems fairly integral to the language.
Sun 25 Jan | Brad Wilson | 'Over and above the JVM?' Yes. I find the CLR to be much more consistent and more fleshed out than the Java Runtime Libraries.
Sun 25 Jan | veal | Blank, I did *not* say that Java's main deficiencies are obvious in *retrospect*. They were *immediately* obvious the day Java emerged 'in the mid-90s to any language designer with large-scale application programming experience'. (Incidentally, I'd be interested to hear which specific ideas in Java were not borrowed, because off the top of my head I can't think a single one.) Missing some things, say a good gui library, is not a big deal in a version 1. At OOPSLA '98, Guy Steele gave an interesting talk 'Growing a Language', but he unfortunately missed a crucial point: missing some things is far worse than missing others. For instance if version 1 had parameterized types, 'generics', much of J2EE would be different. As it is, getting them in the sixth major update 7 years later, because of backwards compatibiliy concerns we'll probably *never* have a really clean and fully coherent set of core libraries in Java. But Java, problematic as it is, composed entirely (I think) of borrowed ideas, made one fantastically important contribution to the programming world. Java lured serious programmers away from C en masse. I never expected that to happen. That's opened a door for the really superb languages I think will see emerge over the next decade.
Sun 25 Jan | no name | well, as a c++ programmer that's looking for a new language to market myself with, c# is successful in terms of number of jobs out there.  there's still more c++ and java jobs right now, but the number of c# is significant and gaining.
Sun 25 Jan | Brad Wilson | I don't think .NET will be pulling many people away from Java. While it's a competitor to Java in some ways, it's not in others. People can choose Java for all-Windows development work, but I expect by and large, that's a very small piece of Java development. The all-Windows shops are more likely to have stuck with VB and C++, and THOSE are the people who will be converting over to .NET en masse over time. Especially on the server side, where there's huge benefits to move (ASP.NET is much better than ASP), it makes little sense to wait if you're committed to all-Windows development.
Sun 25 Jan | Smitty | 'Does C# owe its success to Java or VB ?' Not sure if it owes anything to VB, but I definitely see more of the Java and Delphi influence (which MS will never admit). As been stated before, Anders Hejlsberg, the lead C# architect, was the creator of Turbo Pascal and Delphi. IMO, C# has taken the best of Delphi and Java to the next level. Kudos to Anders and his team for their work. Hopefully this will cause the Java and Delphi teams to take their respective languages to the next level as well.
Blocking users from viewing website | Sun 25 Jan | Chi Lambda
Whats the best way using classic ASP to block someone from viewing your website? I know how to get a persons IP address by using: Request.ServerVariables(REMOTE_HOST) But IP addresses change -- especially those who use dial-up connections.... (But I read somewhere that an ISP issues IP addresses with the first two blocks of numbers always remaining the same. True? ) Any suggestions would be a great help. Thanks.
Sun 25 Jan | Evgeny Gesin /Javadesk.com/ | It is better to block IPs in firewall, web server or application server to reduce overhead, which new custom code may add.
Sun 25 Jan | Eric Debois | IPs do change for most people. Atleast where I live you have to pay extra if you want your own IP so its not a reliabale method. One way the works with non techie surfers is to put a cookie on their computers, but thats very easy to get around for those with only some basic knowlege.
Sun 25 Jan | i like i | Blocking by IP-address is common-enough, although it blocks legitimate users too. Others within 'range' of your blocked IP address will also be blocked. Sometimes users can appear to have the same IP address too, e.g. they are behind a NAT proxy (as is common in network environments and many cheap dialup ISPs)
Sun 25 Jan | FredF | The only reliable way would be to have the user fill in a form, send it by snail-mail, do some background to make sure they are who they say they are, and generate an account that they need to use to log on and have access to your web server. Mmm....
Sun 25 Jan | anon | You can do a whois lookup on the IP block to determine who owns the IP address/block and ehcne to which country it is registered. There are four whois servers because there are four IP address registries. Try ARIN first. Then RIPE, LACNIC and APNIC. That's assuming you want to do it by country/company. As someone else mentioned, it's better to do this at the network level rather than the application level to reduce overhead.
Sun 25 Jan | Ted | A certain CxO asked me to do this constantly - 'How can we block our competitors from viewing our site?' The only really accurate technical solution is with rdns as the poster above says, but that sure is a (resource )expensive way to go. There is another solution, one which works 100% of the time, cannot be defeated, and is essentially, foolproof: DONT PUT STUFF YOU WANT TO KEEP PRIVATE ON A PUBLIC WEB SITE! It's a technology with great methods for keeping things private (http auth)- why fight the obvious? It's not a technical problem.
Sun 25 Jan | the artist formerly known as prince | Ted, Maybe you underestimated the level of his ignorance, maybe he was talking about the intranet at your offices?
Sun 25 Jan | Ted | My boss or the poster? My boss was talking about our regular ol' corporate web site. I eventually wrote a treatise which contained a phrase like : 'We don't want to appear nervous about our competition looking at our site ' (or something like that), and he did a 180 on that idea immediately.
Sun 25 Jan | anonQAguy | Chi Lambda - Ted's hit the crux of the matter -- if you are trying to prevent people from selected groups from accessing information via your website, the only sure way to do it is to not put the info on the website, or anywhere that's reachable from the website. Your post doesn't spell out the actual operational situation giving rise to your need to limit access, so I'm making an assumption that somebody in your organization has asked you (again, as in Ted's post) how to keep competitors (or any arbitrary target group) from accessing info on your otherwise public website, and this is the basis for your post. My response is based on this assumption. If my assumption's wrong, then it'd be helpful for you to tell us more about the underlying problem. As it is, this really looks to me like somebody in your organizaiton is trying to solve the wrong problem. Anyway, proceding with assumption firmly in hand, there's no way to do what you asked that's meaningfully effective. Big deal, so you could implement one or more ways to prevent a machine from your competitors' domains from accessing your website. That doesn't do anything to prevent people who work for your competitors from accessing your website from their home/personal machines and capturing whatever info they might want from your public site. Or, when they find themsevles blocked, of using their friends' machines that might not have been blocked. This whole approach is effectively like trying to build a big 'deny' list, and there are too many ways to get around it, let alone dealing with all the folks you'd want to give access to that you'd be blocking out unintentionally. Fredf's solution makes more sense, i.e. effectively constructing an 'accept' list, but the effectiveness of that approach is completely dependent upon the quality of whatever vetting process you apply to the requests for access. And if your intent is to have the 'benign public' (i.e. people not in your list of forbidden groups) able to generally access your site (another assumption on my part), then you'd have let the general public into your accept list. Again, not practical to do while still limiting access. So, we get back to the most practical solution to this assumed situation -- don't put stuff you don't want seen on a public website. Ever. Period.
Sun 25 Jan | no name | Did it occur to you anonQAguy that your post is a total waste of space?  Why not think of something original instead of summarizing what every else says.  No wonder you work QA.
"The Apprentice" (spoilers) | Sun 25 Jan | Philo
Ive seen managers like Sam in the workplace. This week was definitely the proof that he is flat out incompetent. All he cared about during the entire show was his own ego. The team winning was about him. The debriefing in the boardroom was about him. The thirty seconds of his phone conversation with the guys who were running to finish the job may be in the top ten of leadership teaching tools. Hey, are we still a team? Do you think were going to win? And my god, I *love* Trump for calling him out on the respect thing - isnt this just rhetoric? Finally, a shout out to my passive voice buddies, because Sam did *exactly* what I was talking about: We had a plan, and at the end of the day, the plan was not adhered to Given his character (or lack thereof), this was pure weaselly it wasnt anybodys fault, it just happened crap. Also of note - Sams disbelief that he was actually fired. By that point it shouldve been quiet resignation, but he *still* allowed himself to show surprise that he got the bullet. Im interested to see what the women do next week that gets them the lecture. Philo
Sun 25 Jan | www.marktaw.com | Hmmm. I think someone's seen Coyote Ugly one too many times. ;-)
Sun 25 Jan | Nick | >>Finally, a shout out to my passive voice buddies, because Sam did *exactly* what I was talking about: 'We had a plan, and at the end of the day, the plan was not adhered to' Good catch on the passive voice usage, Philo. I hate that and have called people on it. I have a higher regard for people who admit that they screwed up than those who take the 'it just happened' stance. Passive conveys not only failure but also ignorance of what's going on. In Sam's case, he was ignorant because he refused to listen to his field crew. Lemonade kisses, phallic jets, and dancing for gold => I'm guessing that in next week's episode the women will be running the restaurant like something in between a Hooters and Coyote Ugly. If they run it like a Girls Gone Wild, I want to see the Cinemax version. BTW, CNBC runs second airings for any of you who miss an episode.
Sun 25 Jan | Philo | Oh, I also thought that unless they cut a lot of footage, the guys gave up WAY too quickly on the leg waxing. I would've gotten a throwaway camera first, then offered the waxing company before and after photos for advertising. :-) Philo
Sun 25 Jan | Nick | They gave up too quickly and didn't go about it right. Whenever I've bargained for a cheaper price, I always talked to the manager in private - quietly and away from other customers. It's surprising how often it works. I've even gotten a Nordstrom's manager to sell me a Joseph Aboud jacket for $100 off. If I'd tried that by talking to the sales clerk or out in front of other customers, there's no way he would have cut me that deal.
Sun 25 Jan | www.marktaw.com | Good points Nick. Again, it's not about the product, and in this case it's not about the price. The men, as always, took the direct approach - with selling, with advertising, and now with negotiations. The women *never* sold the product directly, always attaching a secondary image (usually sex) to the main action. Also, the leg waxing place they went to was more upscale, probably on 57th Street or so and wasn't used to bargaining and didn't care if they lost some business. The place in Chinatown, on the other hand was probably more hungry for the business and used to haggling. So let's see, Sales, Advertising, Negotiations, Management. I wonder what's next.
Sun 25 Jan | T. Norman | Whoever gets this won't be worthy of the position they're going to win. They're just not going to be up to the standard Trump is looking for. Think about it ... which truly brilliant businessman or businesswoman would spend 13 weeks vying for a 1 in 16 chance of a mere $250K/yr job?
Sun 25 Jan | NathanJ | Is Trump really looking for someone worthy of the 250K? If the TV producers pay him $1 mill for his name then he gets net 750K, a lot of free advertising, and some ego stroking to boot. If the 250K is based on any sort of commission/performance criteria it might be a lot less real money to whoever wins. I don't know the details of the show. Is Trump sponsoring this at all?
Sun 25 Jan | Jorel on Software | I'm guessing the women get chewed out for simply slutting around town. While it makes for good TV it's not the type of behaviour a CEO should indulge in. Anyone see that one of the gals does soft core porn? http://www.wwwterminator.com/members/hothut/Gallery/All_Celebs/K/Kristi_Frank/ht_kristifrank01.jpeg http://www.nbc.com/nbc/The_Apprentice/contestants/about_kristi.shtml
Sun 25 Jan | T. Norman | The show is run by Trump's production company. It really is nothing more than a bid ad for Trump and his companies. But $250K is chicken feed in Trumpland. A person willing to give up 13 weeks for a far-from-guaranteed chance at only $250K isn't a person who is going to be worthy of Trump's time (they're going to spend a year under Trump's wing). He should have made it at least $1 million.
Sun 25 Jan | T. Norman | Oops, that first sentence should read "big ad for Trump..."
Sun 25 Jan | Floridian | I've seen a lot of Trump on TV lately. Is he going into politics? He's got the money and women, now he wants power :) But he's doing it the wrong way. The right way is (sounding like Scarface): First, you got the power, then you got the money, and then you got a woman :))))
Sun 25 Jan | Steve | Trump definitely pegged Sam -- he's a 'crash 'n burn'....'he'll either make a company great or destory it' [paraphrasing]. I've known a few crash 'n burns. It's extremely rare that those kind succeed. I don't know if I'll continue to watch it because I just wanted to see Sam get shit-canned. Trump did it sooner than I expected. Kudos to the guys for making him project lead so they could get rid of him. Too bad they sacraficed a win to do it. I couldn't stand they way Sam tried to weasel out of it. He should have assumed all the responsibility for losing. P.S. There is no doubt that the women are leveraging some of their good looks to win. Interesting.
Sun 25 Jan | Philo | I'll bet if Sam had told Trump 'I only brought these two because it was a requirement. I am solely responsible for my team's failure and I take full responsibility' he would still be on. Philo
Sun 25 Jan | Sassy | If he had just owned his f*ck-ups, he still would have been canned, at least he could have gone out on his feet, rather than on his knees.  I mean, it is national television.
Sun 25 Jan | www.marktaw.com | Philo, that's what I said about the guy last week. Has anyone noticed how into office politics Trump is? 'I'm surprised you chose him because he spoke highly of you, but you're gonna have to get used to this kind of thing in the real world.' 'You only chose them because they spoke poorly of you,' etc.
Sun 25 Jan | Jorel on Software | >I'll bet if Sam had told Trump 'I only brought these two > because it was a requirement. I am solely responsible for > my team's failure and I take full responsibility' he would > still be on. No way. Sam's only chance was to succeed in the mission. I don't think Trump wants a failure to win, even it's a responsible failure. At this point I'm impressed at how unimpressive the contestants are. Are these people Survivor rejects or what?
Sun 25 Jan | Philo | Mark - actually I think Trump is picking up on how transparent the choices are. The leaders aren't bringing people who they think will hurt the team in the big game; they're bringing spur-of-the-moment choices, or people they don't like. The choices are tactical at best, personal at worst, and never strategic. Jorel - agreed. The only two I've seen anything from that I'd really want in a leadership position are Troy (the guy who keeps working to get the team leaders refocused) and Kristi (the restaurant owner that so far has just made comments between sets, but they've been very good comments). I'd have to see more of them in action, but I suspect they're both very solid businesspeople. I just noticed this tidbit on the website: 'For the women, Jessie took over as Project Manager and she wisely divided the team into two, smaller groups - separating Omarosa and Katrina.' Brilliant. That alone may have been why the women won. [grin] Philo
Sun 25 Jan | www.marktaw.com | Philo - It could be, but it seemed to start pretty early on. I'm sure he's sized up just about anyone whose stuck their neck out to be sized up already. Troy is the 'close your eyes take a deep breath' guy? Yeah, despite his Brooklyn Thug Smarmy Salesman look, he seems the one most outwardly focused. I did notice they gave Kristi a lot of airtime. I always wonder about why they choose who for those in between slots. Assuming the editing started after taping wrapped, you wonder what they're trying to build up in the audience for later victories and defeats to be more surprising and emotionally satisfying. In other words, given what I've seen I don't expect anyone else had something as intelligent to say, but I do wonder why they weren't given the chance. It's not like Sam had anything inteligent to say either, but he got a lot of face time.
Sun 25 Jan | no name | Troy is the country boy that runs a mortgage business. He's the only guy on that show I could work for. http://www.nbc.com/nbc/The_Apprentice/contestants/about_troy.shtml
Sun 25 Jan | no name | Or Nick.  I could work for Nick too
Sun 25 Jan | T. Norman | 'At this point I'm impressed at how unimpressive the contestants are. Are these people Survivor rejects or what?' Like I said above, an impressive person would not waste their time on this show, given the relatively low stakes and low odds.
Sun 25 Jan | www.marktaw.com | Hmm looking at the bios, I'm reminded that Trump was giving advice to Nick during one of the elimination rounds, advising him to be still. I think Trump might have a soft spot or him, but he has to play his cards right and prove he's not a brown noser.
Sun 25 Jan | www.marktaw.com | > Like I said above, an impressive person would not waste their time on this show, given the relatively low stakes and low odds. < Oh, I dunno. There are more than monetary rewards. This is an experience they'll remember for the rest of their lives, learn about themselves by looking at themselves from ousdie, a chance to work, even briefly with someone who does business and publicity well, and one rather huge bit of free advertising.
Sun 25 Jan | www.marktaw.com | No wonder David was the first one to go: What is your definition of 'success'? Not working for The Man. Who do you admire most (personally and/or professionally)? DJ Gilles Peterson. What cartoon character do you most relate to and why? Fritz The Cat. Part human, part feline: is there a more sublime combination?
Sun 25 Jan | no name | hmm.  I guess it depends on what you define as impressive. 
Sun 25 Jan | www.marktaw.com | > looking at themselves from ousdie should be looking at themselves from outside
Sun 25 Jan | Philo | Mark - I think Trump was more interested in keeping the focus on the guy he wanted to get rid of. ;) Philo
Sun 25 Jan | www.marktaw.com | That must be it. I bet he found a bunch of incopetent men specifically so he could keep the women around longer too. Have fun watching Coyote Apprentice next week. ;)
Sun 25 Jan | Mister Fancypants | The vast majority of people cast to be on 'reality' shows are really just unknown actors or wanna-be actors, which explains why Kristi was on Red Shoe Diaries and various other contestants on other shows have been found doing foot fetish videos, other types of soft-core porn or older commercials, etc. The shows aren't really scripted or anything (though the producers can tell almost any story they want with creative editing), but they still want people who have on-camera experience (though not enough that they will be 'known') who know how to layer on the drama.
Want eat book | Sun 25 Jan | Tayssir John Gabbour
So, anyone want to recommend an offbeat book for the month?  It can be esoteric or require a "background."  But it has to be good.
Sun 25 Jan | anonymizer | Cookie good!
Sun 25 Jan | Mike | A Walk in the Woods : Rediscovering America on the Appalachian Trail by Bill Bryson (Author)
Sun 25 Jan | HeWhoMustBeConfused | Heck, read ANYTHING by Bill Bryson. Definitely one of the great 'travel' writers of all time. I must admit, though, to feeling very sorry for the guy who accompanied him on parts of the Appalachian walk, only to be pilloried in later publication.
Sun 25 Jan | no name | Into Thin Air by Jon Krakauer Touching the Void by some other guy
Sun 25 Jan | Prakash S | If you want to write by Brenda Ueland. http://www.amazon.com/exec/obidos/tg/detail/-/1555972608/qid=1075010383/sr=1-1/ref=sr_1_1/102-4973514-6575317?v=glance&s=books Enjoy
Sun 25 Jan | no name | Here's a taste of Into Thin Air http://outside.away.com/outside/destinations/199609/199609_into_thin_air_1.html
Sun 25 Jan | Philo | 'The Metamorphosis of Prime Intellect' Very worth reading, IMHO. http://www.kuro5hin.org/prime-intellect/ Philo
Sun 25 Jan | Tony Edgecombe | Walden by Henry David Thoreau, written 150 years ago it says a lot about modern ways of living.
Sun 25 Jan | Indian Developer in India | So, anyone want to recommend an offbeat book for the month? It can be esoteric or require a 'background.' But it has to be good. The Bible. It meets all the conditions. Make sure you read from the begining to end, just as you would any other book.
Sun 25 Jan | Mongo | 'The Origin of Consciousness in the Breakdown of the Bicameral Mind' - Julian Jaynes A stunning work, which, whether fully correct or not, will make your brains start to leak out of your ears - at the least you may start hearing voices (an inside joke if you've read the work). As an added inducement for Neal Stephenson fans (whose work could also arguably be presented as a response here), virtually all of Stephenson's work is predicated upon this book's central thesis. http://www.amazon.com/exec/obidos/tg/detail/-/0618057072/qid=1075050603/sr=1-1/ref=sr_1_1/103-5478932-7157423?v=glance&s=books
Sun 25 Jan | Mongo | On second thought, I probably shouldn't have said all Stephensons's works are _predicated_ on TOOCITBOTBM. "The Big U" and "Snow Crash" are, and probably "The Diamond Age",  but perhaps I should say instead that Stephenson himself is clearly influenced by Jaynes and this influence permeates his own work.
Sun 25 Jan | i like i | just finished reading Jane Austin's Mansfield Park again, and really recommend it.
Sun 25 Jan | no name | It's Easier Than You Think : The Buddhist Way to Happiness by Sylvia Boorstein
Sun 25 Jan | Smitty | Why Should Anyone Believe Anything at All? by James W. Sire
Redhat Professional Workstation? | Sat 24 Jan | Mitch & Murray (from downtown)
Has anyone tried this? Comments? $79 at the local Staples, I am weary of wrestling with the various free Linux distros and their quirks. I just want to get some work done in a Unix-like environment on an x86 PC compatible machine without hassling with half-baked ... well, half-baked-quite-a-bit-of-stuff. I am looking for something that is stable and works well. Is this new Rehat offering it?
Sat 24 Jan | Dennis Forbes | No. Check out Mandrake 9.2 - extremely slick with a very easy to use installation. It's top notch.
Sun 25 Jan | Brad Wilson | +1 for Mandrake on the "easy to install, easy to use" list.
Sun 25 Jan | Nick | I have RH 7.3 and was considering an upgrade to 9.x until Red Hat announced they were dropping the non-enterprise versions of their distro. If you're not too concerned with support in the future, then Red Hat is easy to install and use. Reading around the internet, the other two distros that get the most praise are Mandrake and Suse. I'm leaning toward Suse. Since Novell bought out Suse and Ximian, they seem to be one of the few companies with a well-rounded Linux vision. Whether they are capable of executing that vision remains to be seen.
Sun 25 Jan | blargle | take a look at Fedora - http://fedora.redhat.com/
Sun 25 Jan | Nick | From what I've read, fedora users will essentially be Red Hat's Linux lab rats since they'll be using it as a proving ground.  I don't think that's the kind of distro you want to use for a development workstation.
Sun 25 Jan | Ori Berger | Fedora 1 _is_, for all practical purposes, RedHat 9, with much better package management ("yum"). If you like RedHat and don't want to shell out, use Fedora. RedHat is still financing most of the work and testing of Fedora, and so far everyone I know that uses Fedora is happy with it.
Sun 25 Jan | Evgeny Gesin /Javadesk.com/ | I use RedHat 9 on my personal machine. Yestarday I run Synaptic (I regularly run it, it is similar to up2date) and after reboot WOW I see Fedora! I needed to correct fonts in conqueror, mailer and terminal applications and the rest works as good as before.
Sun 25 Jan | David Roper | +1 for Mandrake Loaded it onto an 800Mhz Dell PIII. Installation was very easy, including repartitioning. Autodetected all the hardware and seems much more responsive and stable that the Windows 2000 Pro that it replaced, although I will say that this was an upgrade from the NT4.2 workstation edition originally bundled and has been patched and repatched and generally goofed with, getting slower and slower and slower all the time. PS Does anyone know of a tool like OmniOutliner that is available for Linux?
Sun 25 Jan | M | If you have the bandwidth and $.13 for a blank CD... http://www.linuxiso.org
Sun 25 Jan | Egor Shipovalov | If all you want is 'Unix-like environment', consider Cygwin: http://www.cygwin.com Be sure to have the bandwidth though, as the download can be hundreds of megs, and I'm not sure you can buy it on CD instead.
Sun 25 Jan | Professional Developer | Nick, what kind of distribution would you consider for a development workstation?
Gates ends spam | Sat 24 Jan | EAW
Bill Gates has promised an end to spam in 2 years. http://news.independent.co.uk/digital/news/story.jsp?story=484520 I have few complaints against Gates and MS, but this seems like hubris at its best, even for him. Although I think a good solution to spam will be techonological rather than legislative (eg., Bayesian filtering), Im surprised that Gates is honestly predicting a magic bullet in two years.
Sun 25 Jan | Ram Dass | This speech was made at the World Economic Forum in Davos, Switzerland. This is where governmental and corporate big-wigs come together for a pow-wow. CEOs, like politicians, need publicity. What Gates was probably looking for was a sound bite - and he got it. It is a win for him. In two years time, the speech would have been forgotten and there may be another type of sound bite in the offing.
Sun 25 Jan | Tom H | And now there are reports circulating that the Queen will knight him. Will we have to start calling him Sir Bill now? http://www.telegraph.co.uk/news/main.jhtml?xml=/news/2004/01/25/ngates25.xml&sSheet=/news/2004/01/25/ixnewstop.html
Sun 25 Jan | Ram Dass | Bill Gates is not a British citizen - so although he can be knighted he cannot use the title "Sir"
Sun 25 Jan | Ged Byrne | It looks to me that Gates is really predicting the end of the internet. As things are this system would be impossible. However, given a closed environment controlled by Microsoft, it will all be feasible.
Upcoming VS.NET | Sat 24 Jan | Andy
http://msdn.microsoft.com/vcsharp/default.aspx?pull=/library/en-us/dv_vstechart/html/vs2004_intro.asp Go down to the feature called Code Snippets. Is it just me, or is this feature absolutely begging for abuse. I can picture the code already, makes me shiver.
Sat 24 Jan | Prakash S | slowly, but surely we will be moving to what MS calls *powerpoint* programming, till that day....:-)
Sat 24 Jan | Kentasy | I think it is a Visual Basic only feature. There will also be lots of wizards and other helpful doo-dads for Visual Basic programmers.
Sat 24 Jan | Prakash S | I am sure it beats this though:-) http://www16.brinkster.com/messydesk/db/refactvb.asp
Sat 24 Jan | Hat | >> 'Terminology and structure of available features will be simplified to cater for the less rigorous intellect of the VB developer.' The stereotype that will never go away. There is no correlation between a person who codes in Visual Basic and how intelligent that person may or may not be. If an accomplished programmer chooses VB as the language to write code in, it is because they know from experience that it is the fastest, easiest way to accomplish what needs to be done. If the program they create is useful, it will be used. This is the nature of business. If it needs modification, it will probably be easily accomplished. This can be traced back to experience. If an inexperienced/weekend programmer chooses VB as the language to write code in, it is because they know that VB is intuitive, forgiving and easily learned. If the program they create is useful, it will be used. This is the nature of business. If it needs modification, it may take a lot of refactoring. This can be traced back to inexperience.
Sat 24 Jan | The real Entrepreneur | I think that VB's accessibility (because, it IS so productive) lowers the bar (barrier to entry) so that you get more casual programmers. Something like C++ has such a barrier to entry that only the strong(er) survive. The extra neophytes that use VB dilute the average IQ of a VB developers as a whole. That being said, using VB does not MEAN that you're a bad programmer. Your' just in a group that has statistically more 'poor' programmers. All that being said: I use VB and I'm largely self taught. And I have a very successful company. 'VB been berry gud to me'
Sat 24 Jan | Prakash S | DUH!!!, its meant to be a joke!
Sat 24 Jan | Matthew Lock | I have been using Textpad's version of code snippets (called clip libraries) in Textpad for years. It's such a cool time saving feature you'll wonder how you did without it. In Textpad you can create your own ones, like creating and querying database connections, opening a file and running through the contents, etc. Saves looking it up in a book, or the online help each time.
Sat 24 Jan | Andy | OK, well, I guess there should be a feature that limits the code snippet to 1 line. That will prevent you from having to memorize a lot of function names and parameter lists, and such. If it's more than one or two lines, that's what scares me. Copy and paste is evil.
Sat 24 Jan | anonymizer | 'The stereotype that will never go away. There is no correlation between a person who codes in Visual Basic and how intelligent that person may or may not be.' I most certainly would disagree with this sentiment based upon industry observation -- while there are some extremely intelligent VB programmers, they are definitely the exception. On the flip side I've met few professional C or C++ programmers who weren't highly intelligent, and the same can be said of Delphi programmers.
Sun 25 Jan | Robert Jacobson | There's a variation of this for C#: 'A Sneak Preview of Visual C# Whidbey' http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vstechart/html/whidbey_csharp_preview.asp ('Expansions,' which are 'fill in the blank snippets of code.') Just to keep you C# partisans from getting too smug.
Sun 25 Jan | Kentasy | Heh. That link is funny. :) 'Run to Blinky thing.' I use VB and I love it. I also hope all the current 'poor' VB types migrate to C# so they can be 'cool'. :) I think I will start calling it B# so I can be 'cool' too... :)
Sun 25 Jan | Kyralessa | One nice thing about coding in VB: less coding snobs.
Become Rich Selling Virtual Property | Sat 24 Jan | NumLock
Want to become rich? Try playing an MMORPG and selling the pixels. Apparently one of these guys was making something on order of 6 - 8 million a year selling virtual property. (Although he is said to have cheated and not used normal techniques for obtaining the items. i.e. duplicate virutal money through a bug in the game etc etc) http://terranova.blogs.com/terra_nova/2004/01/themis_group_pr.html http://fohguild.org/forums/showthread.php?s=f1cd8b290c188a5d50329523668a2264&threadid=10296&perpage=15&pagenumber=1 Right, wrong or indifferent it seems to be a big industry.
Sat 24 Jan | Ranter | Our society is absolutely bizarre in its priorities. If you want to buy absolutely worthless and meaningless bullsh*t like a character in an online RPG, you have the means to do so. If you demand to have a cell phone that flosses your butt and contains embedded Windows XP plus a built in webcam, it's prolly out there with great incentives for signing on... Affordable health insurance or even a decent job? Dream on! ROTFL! Nobody needs that sh*t! Ha!
Sat 24 Jan | the artist formerly known as prince | but the about it your job could be designing that ell phone, you just answered your own question
Sat 24 Jan | christopher baus (www.baus.net) | This is the stuff that scares me.  The Matrix anyone?
Sun 25 Jan | www.marktaw.com | I read an interview with someone who sold exotic pets for a lot of money in The Sims Online (but in reality was just selling empty pet carriers) and used that money to build a Playboy Mansion. I don't think she got any real money for it, but I could be wrong.
Bizarre interview tip | Fri 23 Jan | Philo
Just thought of this from an interview past - I knew I had a few people to interview with, and it was a cattle call, so I took a book on remoting cause I wanted to start learning it. It was like a hypnotic disk - *every* interviewer kept asking me remoting questions. Problem was that I hadnt even had a chance to crack the cover. I was completely upfront that I was just starting out with remoting, but they were all over it. So apparently when you go on an interview, take a book covering whatever aspect of programming youre really comfortable with. [grin] Philo
Sat 24 Jan | Alex.ro | Spooky...
Sat 24 Jan | www.marktaw.com | And if you have a book on interview tips and techniques?
Sat 24 Jan | Eric Debois | >>And if you have a book on interview tips and techniques? Whoooa, trippy. Recursive!
Sat 24 Jan | Eta | [I was completely upfront that I was just starting out with remoting] [So apparently when you go on an interview, take a book covering whatever aspect of programming you're really comfortable with.] ...
Sat 24 Jan | Andrew Hurst | I think that the interviewers liked it so much, because it showed initiative and an interest to improve. How many people do you know and/or work with that read one book on $language_of_choice and stopped at that. Its like writing books after only reading a dictionary. By bringing a book and showing that you were interested in improving yourself (reading a book on grammar) you immediately set yourself out from the dictionary-programmers. Whenever I start participating in interviewing, thats definitely going to be one of my questions. 'What software book have you read lately that didn't just teach how to program in a given language?'
Sat 24 Jan | Brad Wilson | That's a pretty common question in my experience: "Tell me about the last tech book you read: why you read it, and what you got out of it."
Sat 24 Jan | Hat | >> 'What software book have you read lately that didn't just teach how to program in a given language?' ========== This may be a fine question to ask only for conversational purposes, but asking it to help determine a candidate will certainly not provide you with anything more than the knowledge that this particular person likes to read books. There is no correlation between what software books you've read and how good you are at programming a computer. It's like saying at an interview, 'I've read Joel Spolsky's articles!'.... and your point would be? Selecting/Interviewing a person for a job is like looking at prisoners through the one-way glass... They file in, line up, you look at each, you boss says, 'Which one is it?' You reply, 'It's that one.'
Sat 24 Jan | Philo | Hm. I suspect several people who replied didn't get my point. I took a book on Remoting, which I hadn't started reading yet. I didn't get a chance to even turn a page before the interview started. Interviewer: 'Oh, you're reading about remoting?' Me: 'Yeah, I want to start learning about it, but I haven't even started the book yet.' Interviewer: 'Okay, so tell me the different types of remoting.' Me: 'Uh, I haven't really gotten into it yet.' Interviewer: 'I see. What channels can you use in remoting?' Me: 'DO YOU UNDERSTAND THE WORDS COMING OUT OF MY MOUTH? I NEVER SAID I KNEW ANYTHING ABOUT REMOTING.' [etc] Thus my point is that since taking a book on a subject seems to be like yelling 'don't think about sex,' then you should take a book covering a subject you DO know very well. Are we clear? Philo
Sat 24 Jan | no name | Aye, Aye Captain.  Attention!
Sat 24 Jan | no name | Yeah, the best programmer I've ever known never read any programming books.  Took him something like 2 weeks to go from a client/server mfc/windows world to an n-tier linux/java world.  I have to think about design, but he was able to sit in front of the computer and channel the gang of four. 
Sat 24 Jan | veal | Hat, if your interviewing is like that, remind me not to bother with your company. You guys must get some real turkeys with such an approach. Good programming ability is a function of innate qualities. I'd take an empty but brilliant and talented programming mind over a 30-year software veteran with PhD in CS but a brain not-so-superbly-suited for programming. So books read is not a surefire indicator, but I've yet to see such a talented mind that isn't compelled to read voraciously. Not one. And why settle for the unfulfilled talent when with a little effort you can yield better, unless you're looking for an apprentice? I ask the books question, but it isn't a deal killer. It just helps fill in the picture. If I'm looking for someone to hit the ground running, they'll need to really shine on the coding problems to make up for ignorance of the literature though. (Not that this has anything to do with Philo's post. Oh well.)
Sat 24 Jan | Hat | 1. I'm not a hiring authority. Never have been. Might be sometime in the future. Just stating my view on the hiring process. 2. Most of the people that I know that have read 'Design Patterns' still don't know how to apply that knowledge to their everyday coding practices. They're 'book smart.' 3. If you are going to ask what books a person has read at the very least ask them how they have (in the past) or how they would (in the future) apply the knowledge they gained from the book to a real world scenario. It is all too common for people to claim they 'read computer books.' You see computer books listed on almost every computer geeks blog. Great! It's the rare person who actually writes in their blog what knowledge they have gained and how they have applied it.
Sat 24 Jan | BSdetector | -- Yeah, the best programmer I've ever known never read any programming books. Took him something like 2 weeks to go from a client/server mfc/windows world to an n-tier linux/java world. I have to think about design, but he was able to sit in front of the computer and channel the gang of four. -- You are so full of bullshit it's not even funny.
Sat 24 Jan | no name | 'You are so full of bullshit ' Nope, swear to god. Maybe it was more than 2 weeks, but it _seems_ like it was only two weeks. He was the rare one that _really_ was 10-20X more productive than a 'good' programmer. One day he was asking for a 2nd machine to play around with Linux on, a few weeks later he was showing me large chunks of a new system he was putting together. That man could do in a weekend what it would take a whole team weeks on. Hey, it's not like he or I either one is gaining anything by posting this.
Sat 24 Jan | T. Norman | How do you know he didn't read any books? He could have dozens of books at home that he's read but you don't know about. Sounds like those students who get straight As and people think they don't study. They do study, just not when and where you're looking.
Sat 24 Jan | no name | cause he told me he didn't read many books.
Sat 24 Jan | Danil | If I had been on the other side of the table, you would have aced the interview by simply looking up the answer in the book.
Sat 24 Jan | Philo | Oh sweet mother of god I feel like an idiot. Why didn't *I* think of that? Philo <- banging head on desk
Sun 25 Jan | BSdetector | -- cause he told me he didn't read many books. -- The difference between 'never read any books' and 'didn't read many books' is huge. Your first post was an exaggeration at best and an outright lie at worst. How can we trust anything you say?
Sun 25 Jan | veal | Did the conversation go like this? 'No, I haven't read many books actually... umm... let's see... in high-school I read one called The Art of Computer Programming, by Knuth... umm, I read Transaction Processing, by Jim Gray... Operating Systems Design and Implementation, by Tanenbaum... there was this one that had a knight fighting a pixelated dragon on the cover... I can't remember the name. Shoot, what was that one by Hennessy and Patterson called? Oh and last year on and airplane I read a small one called Test Driven Development, by Kent Beck. But that's about it I think. So was Enterprise Java in 5 Days any good? I don't really like to read much.' :-)
Sun 25 Jan | no name | bs detector == troll with little class and no style, highly insecure as evidenced by being threatened with the skills of an anonymous persona on the internet. veal: He actually read a lot of code and some online manuals. The 2 years I was around him he had bought only 1 book --and it was about data warehousing.
Sun 25 Jan | BSdetector | anonymous persona: Call me what you want. Your first story was implausible. I merely pointed out that fact. Now you start backpedaling. Each time you post your programmer friend continues to have read more and more. This further supports the notion that good developers read.
Sun 25 Jan | Johnny Simmson | 'good developers read' well duh! there's a difference between not reading programming books, 99.9% of which are LAME and not reading anything!
Sun 25 Jan | no name | Ok, yeah, you're right, I made it all up.
More Windows Brain death or Stealth Marketing? | Fri 23 Jan | Mike
Try searching for text strings in all files within a folder on Windows 2003 or XP. Chances are you wont find your string. Yet you know it exists. Guess what? Windows no longer searches all files. Just ones it thinks it should. WTF??? Gee, are we getting ready to tell the world how you cant find anything anymore and we all need WinFS to keep track of our stuff? This is bullshit. A MS MVP trys to address it here: http://tinyurl.com/2qmx6 Yes, Yes. This is the great time to throw out Unix cause this is enterprise ready Windows Server System. What a crock. Here I was looking at the possibility of migrating a website off Linux. I need to fix a shitload of urls in the bulletin board generated files. Can I do it. Yes. Can I do it in a reasonable amount of time that doesnt make me just give up and say to heck with it --Nope! I wonder what functionality they will strip next in the interest of creating demand for the next version. Perhaps vowel keys will quit wrkng.
Fri 23 Jan | whatever works | Try 'find' from the command-line, or the 'find in files' feature of a text editor. If you read http://support.microsoft.com/default.aspx?scid=KB;EN-US;309173 explains why this filtering has changed: it now uses type-type specific 'filters' which can for example find text in HTML files while ignoring text in comments.
Fri 23 Jan | Mike | 'Try 'find' from the command-line, or the 'find in files' feature of a text editor.' Thanks. Ultra Edit has that. Am I wrong though? Is this 'new enhanced' search better? For what?
Fri 23 Jan | Brad Wilson | Here's the problem: you're not an average user. The mere fact that you're here proves that. Stop thinking that everything has to be designed for ultimate power and flexibility, or it's total shit. The search is a lot better for 99% of users.
Sat 24 Jan | Li-fan Chen | It's so cute when Brad taunt people because they come here to diss MS :-) Seriously Mike, you'll find mind-boggling limitations like this all the time in Windows world. At least you are clueful enough to be in a position to look for alternatives. Time wasted? No doubt. Billable? Duh
Sat 24 Jan | Mike | 'Stop thinking that everything has to be designed for ultimate power and flexibility, or it's total shit.' It's not even really that. I just expected find to find everything. I've course the first thing I do on a windows machine is uncheck the boxes to hide extensions, hidden files and protected system files. I don't think Windows is total shit. But their find now is for anyone above occasional home user level. What really pissed me off is this wasn't XP or any other 'home' user Windows, this was the flagship Windows Server System 2003. Clue to Microsoft: Give us a real server operating system. Not some souped up home user version. 'Time wasted? No doubt. Billable? Duh' I wish. I've got a RH9 server that runs a site for my father's business. Support dies in April. I wanted to look into Windows mainly to see if I could run the forum software there and I'm also more comfortable with SQL Server than mysql or anything else. Probably a stupid idea to start with. The software is perl which is much more comfortable on *nix. Currently I've got a backup server at my house that I sync up just about daily with rsync. It works excellent. I'll probably put the backup in place when Rh9 dies. (Backup is Trustix). Should have left well enough alone, but thought I'd check out Windows. You know, if it ain't broke...
Sat 24 Jan | Andy | I found out about this the hard way, and thought it sucked, but I see the rationale. If you're a coder, you have tons of ASCII text files on your hard drive. If you're not, then you maybe don't have ANY that you care about. You might have a lot of saved HTML files. And if you search for HTML with plain text strings, it doesn't always work. Like when you need special characters like < >, if you type them in literally it won't work. They just should have documented it more clearly for us 'advanced' users somehow.
Sat 24 Jan | x | For searches I use Total Commander (which was named Windows Commander before) and PowerGrep. They both allow regular expressions, and other powerful features.
Sat 24 Jan | M | Mike - Sounds like you need Cygwin.
Sat 24 Jan | Elephant | This problem with Windows has existed since XP came out.  I stumbled across it almost two years ago when trying to find text in .java files.  You're just now running into this problem?  If I had to guess, the search tool has worked better for you 99% of the time, and just recently you found that 1% mark.
Sat 24 Jan | Dennis Forbes | He mentioned in a follow-up that he is recently looking into Windows (perhaps after a lapse), so I doubt that it was working great until then. Having said that, I entirely agree with him -- At the very least they should have put a 'smart search' checkbox or the like to utilize this content specific searching (and even THEN it should ascii/unicode search literally if there isn't a frickin' search extension for the file in question). Like virtually every software development friend, I encountered this 'feature' early on when I was wondering why finds for strings I was sure existed weren't resolving anything. Regarding the '99%' claim, I doubt that 99% of users use the find feature, and I'd bet a large portion are 'power users'. As a sidenote, you don't need Cygwin or any other tools -- use Findstr at the command line. It can search for regular expressions.
Sat 24 Jan | Myron A. Semack | http://www.thirdstar.net/beeline/Improve_XP_Search.htm
Sun 25 Jan | The real Entrepreneur | Free multi-term searching program: Wilbur http://wilbur.redtree.com/index.htm I could never get Windows to search for MULTIPLE words in a file. Single term searching is, for me, useless. I need to look for A AND B AND C, etc. Also, I don't have time to wait 10 minutes for each search to complete. Wilbur (while having a goofy name) does this well. It indexes your whole hard drive and searches in a few seconds.
Sun 25 Jan | Zahid | You'd have to be a real Microsoft apologist to claim that this is an improvement in functionality. If it's not going to search everything, it should state that clearly -- even if 99% of the world is better off not finding what they say they want to find. I discovered this issue early in my use of XP, but never imagined it was a 'feature' ... I use a freeware tool only because I assumed this was a bug. Stop excusing these horrible decisions.
Sun 25 Jan | Mr Curiousity | 'I've got a RH9 server that runs a site for my father's business. Support dies in April.' Actually, Fedora is trying to fix the braindead rpm maintanance system on RedHat and use apt instead. That makes keeping a system up to date a lot easier. http://www.fedora.us/wiki/FedoraHOWTO The cool feature with apt is that one can fully upgrade a running system without a single reboot! Of course, reboot is needed to load a new kernel later. Here somebody went from RedHat 7.3 to 9 in only few commands: http://tyrannical.org/page-1 So closer to the date when the support runs out you can upgrade to Fedora, and use apt for updates. Of course, Fedora is a bit experimental thing, but then a webserver is not a rocket science stuff either. Linux firewall and apache have matured a while ago, so things are reasonably stable there and bug fixes are released promptly.
convert an integer to a binary string in Java? | Fri 23 Jan | SR
Any API calls to do this?
Fri 23 Jan | Mike Swieton | The Integer class can do it.
Sat 24 Jan | Jimmy Jo-Jo | Yeah, you might find the Java API's to be really poorly documented.
Sat 24 Jan | Mike | java.io.DataOutputStream
Sat 24 Jan | SG | Hi, String s = Integer.toBinaryString(n); The returned String is not padded to 32 places, however; all leading '0's are dropped.
Sat 24 Jan | bar | public static String valueOf(int i) Returns the string representation of the int argument. The representation is exactly the one returned by the Integer.toString method of one argument. so you do something like: int x = 10; String foo = String.valueOf(x);
Sun 25 Jan | SG | String.valueOf(n) returns a base-10, 2's complement String representation of its argument, not a binary String representation. In other words: String.valueOf(-1) ---> '-1' Integer.toBinaryString(-1) --> '11111111111111111111111111111111'
Quit-Programming Tutorial | Fri 23 Jan | anonymous
Hi, I am looking for Quit-Programming tutorial. After years of working in programming I feel like I try to program every thing. Any problem, I like to solve with some kind of programming. Thats bad. I consider computer as my only tool and better tool then my mind. MindSet: I can write program which can solve the problem. even it the program takes days of efforts I am inclined to solve the problems only that way rather than applying my mind.
Fri 23 Jan | www.marktaw.com | A long vacation away from computers. And don't book it online.
Fri 23 Jan | anonymous | it's not about computers it's about programming
Fri 23 Jan | YAAP | Get married and have kids.  You will be faced with all kinds of problems that a program can't solve.
Fri 23 Jan | Clay Dowling | In the mean time, investigate the opportunities to be provided by ice fishing or rabbit hunting. Do it for a long time and stay away from computers.  Focus on getting something fresh and tasty to eat.  That will clear your brain out.
Fri 23 Jan | christopher baus (www.baus.net) | Learn how to ski bumps.  I've found it is the best zen meditation there is.  All you can think about is next bump.  No time to analyze, just time to react. 
Fri 23 Jan | Alex.ro | Read humor. Humor isn't algorithmic.
Fri 23 Jan | Kraemer | F* off.
Fri 23 Jan | anonymous | I do the job.. computer programming, So I have to continue doing it.. It is just that I want to solve only those problem which are related to computing.
Sat 24 Jan | Alex.ro | That should have been F* off; =)
Sat 24 Jan | Simon Lucy | Hmmm the robots are becomng self aware again, time to deaden those empathy parameters once more.
Sat 24 Jan | Hoang Do | Quit Programming. Try to equate it to costs. Programming costs lots of time, effort, and frustration. If what you get back is worth what you put in, do it. If it doesn't, don't. You are the one who decides. For more common sense stuff, you can read: http://jotsite.com
Sun 25 Jan | x | YAAP, Care to elaborate?
trapped in the technical ghetto? | Fri 23 Jan | treefrog
Ive been in my post for 4 or 5 years now. Im a systems engineer at a major telecoms manufacturer. Im a pretty good developer (Im the goto guy), and an OK systems engineer (read fairly picky bastard who wants to get to the bottom of things). The problem is, Ive never ever seen a customer. Ever. Apparantly in a farway land called marketing there are people who deal with customers (and maybe also in network support, and in product management). Id lke to go and find some customers and understand what they want. In fact, Ive been saying this for several years. Id like to become a better systems engineer, by learning more about the way that customers want to use our kit But whenever I go and talk to my boss about actually doing it, or apply for a transfer or secondment to another group so I can actually find these things out, he blocks it! Why - because Im too good at what I do for him to let me go (we do have a recruitment freeze at the moment). Im beginning to feel that Im trapped in a technical ghetto, because my special technical skills mean Im too valuable to be allowed to do anything else. Any advice? regards
Fri 23 Jan | Sorry I have no advice | Stop being "goto guy". Become an "if then else" guy. :)
Fri 23 Jan | anonymizer | Become a gosub guy. Goto is so outdated.
Fri 23 Jan | Arrogant Prick | Your're the Goto Guy? Everyone knows you shouldn't use 'goto'. Change your name to Treefrog++ and become more Object Oriented.
Fri 23 Jan | Exception guy | I'm in a very similar situation - in my programming job several years, virtually never see customers. I think the problem with your approach is that you're asking for too large a change (transfer or part-time loan to another group) all at once. Doing this makes your boss see only negatives (he loses you) and no positives. Instead, get involved working with a customer in a small way to start with - for instance, find out who some of the support people are, and go chat with them over lunch, and mention that you'd like to find out more about what customers are thinking so you can design better products (support people will love you if you say that), and they'll start venting; then, tell them that if they've got a prickly customer issue you'd be delighted to help them out. You won't have to wait long, and there will be some customer issue you're involved in understanding and solving. Also, find out who some of the nearby sales people for your product line are, and tell them you'd like to tag along on some sales calls. Do this for a few months, and you'll be able to decide if you like it. If so, you'll have some contacts in other departments who will be able to pull you away from your current boss ('he's already doing such a great job working with us'), and you'll have much more leverage. Good luck! (I've discovered there are many interpersonal things that are very hard to accomplish immediately, but which are quite easy if you're willing to work at them a little bit at a time for several months).
Fri 23 Jan | YAAP | Leave. Seriously. IMO, one of the tenets of good management is to promote good people and/or provide them opportunities, even if it's painful. In the long run, not doing so will hurt the company more than the short term pain of their loss to another position within the organization. Some companies understand this, and it it pays off because they retain good people. But in your case, it you try to make this argument (move me or lose me), it will come off as a threat. It's a no win situation. So, your best bet is to bide your time, network, and keep an eye out for good opportunities.
Fri 23 Jan | Quicherbichin | ' I'm a pretty good developer (I'm the goto guy)' Is this Wayne again?
Fri 23 Jan | Wayne's homey | Don't be hatin' on Wayne!
Fri 23 Jan | Tom Smykowski | Well-well look. I already told you: I deal with the !@%& !@^* customers so the engineers don't have to! I have people skills; I am good at dealing with people. Can't you understand that? What the hell is wrong with you people?
Fri 23 Jan | HeyCoolAid! | I work for a very small company, so contact with customers is inevitable... and let me tell you that it gets real old real fast. My worst days are the ones when I have to fill in on tech support, instead of doing my real job - programming. If you have a product development department, that would be another good place to search out people to talk to. They usually have a pretty good line on what customers are wishing for and talking about.
Fri 23 Jan | Artist | Exception guy has excellent advice for you. Follow it.!! What you are doing is beause it's what you have selected to do. Not just beause your boss wants. You have your own methods of dealing with technical things. You can get to know the detail in depth for systems. You can transfer your skill for human systems. Tow-way interactions may slow you down at times, but understanding the system is the key to start, atleast for you.
Fri 23 Jan | Shodan | I can comment on both aspects of this problem... ....when I joined my current job, there was a trench mentality and the developers minimised real dialogue with the users. Users have to write specs. Although I made suggestions that we should get involved in the users more, in the end, I had to just get out there and start making friends with the users by myself. The users know and trust me now. If I was in your situation, I would try to make some personal bridges with the sales people - sounds like they're your best chance to get a connection with the end users. ...on the subject of being blocked by the boss, I've been shafted by a bait-and-switch job. I was quite disenchanted with my position but I was persuaded to stay because I was told I could move to A Department More Interesting, a place I really wanted to go. This wasn't proposed by my boss, so after I agreed to stay, my boss has pretty much killed the offer behind the scenes. I'm faced with lots of official reasons why I can't move. My decision: I'm leaving in the summer.
Fri 23 Jan | HeWhoMustBeConfused | treefrog, if you are as "goto" as your post suggests, it is likely that the sales/marketing/design teams may already know you. Approach them directly. Say that you'd like to improve your understanding of the product from a customer perspective, and ask if you can get involved (perhaps) in some pre-sales activities.
Sat 24 Jan | veal | I agree with the people above who directed you to make direct contact with people closer to the customer as a first step. That's a specific form of what is generally perhaps the most important tactic of employeeship: get to know people throughout your company on a human level, and talk to them frequently and directly about everything. Drink with them whenever you can. And don't just strive to know the obvious movers and shakers, but everyone at every level. This will be very good for you, and (not that it matters as much) good for the company too. Plus, getting to know your fellow humans is universally good advice. If you're effective (and controllable), your manager will always fight to keep you. But if you're reaching out for a richer role, any superb manager (of the 3% out there) would try to keep you *and* help you gain that richer role at the same time. Chances are if he hasn't suggested ways other than transfer that you could get closer to the customer, he's of the most common type of manager I'll call the pigeonholing manager. The pigeonholer positions himself as the nexus of information, striving so that hardly anybody learns anything without his intervention, thereby securing his position. He is a menace to be thwarted. Thwarting his information hoarding will be good for the company, because having such information bottlenecks invariably leads to miscommunication and mistakes, and hoarders tend to withhold information that doesn't support their own agenda. But he's also easy to thwart. You simply act as if you have no manager and must discover and transmit all information without him. Never fully trust the information he gives you, and never fully trust that he's transmitting what you suggest outside your group. He can still harm you, so you'll probably need to act this way under the guise of social relationships rather than overt subversion, and don't let him become aware your efforts or nor confront him about his pigeonholing. Also, when in the pigeonholer's presence, avoid revealing to him who told you this or that, using phrasings like 'I overheard that...' so that he cannot move against your contacts. Also try to read a few books on the pop-psychology of the workplace. You might discover other fun things about your workplace and your coworkers that you had not noticed. Have fun, and welcome to the metaworld of corporate life.
Sun 25 Jan | Bella | Not dealing with customers can also be viewed as a huge plus. 
Sun 25 Jan | Floridian | Bella, welcome back! How is it going?
Sockets versus RPC | Fri 23 Jan | Hugo Boss
I am pretty new to computing - mostly as an amateur programmer on the weekends. My question below may be dumb : What is the difference between socket communication and RPC calls? Do applications communicate to databases via sockets?
Fri 23 Jan | Christopher Wells | You can send anything over sockets: 'sockets' is equivalent to 'TCP' (or other low-level network protocols, like UDP). Specifically, 'sockets' are to 'network dialog' as 'file handles' are to 'disk files'. 'sockets' are a library available to application programs (on MS Windows the library is known as 'winsock') for initiating and receiving any network data. There's a good chance that our web messages are being sent via 'sockets' ... this message isn't RPC (in that I'm writing to a person, not invoking a procedure on a remote computer). RPC means 'remote procedure calls'. RPC requires specifically-formatted data, agreed-on by the software at both ends of the [network] connection, to specify which remote procedure to invoke, what its parameters are, what its return value is. RPC data may be (is usually) sent via sockets. There is more than one standard format for RPC data. > Do applications communicate to databases via sockets? Yes, except when they don't. Applications communicate to databases via database driver libraries. The libraries (on the application's computer) may use sockets to send data to the database's computer. Or, they may send the data using something other than sockets, for example if the database is on the same computer as the application ('IPC', inter-process communication, is a more general form of RPC, remote procedure call ... RPC is one of the types of IPC).
Fri 23 Jan | Elephant | Sockets I'd say are layer 5 in the OSI model. They provide the interface between applications and the transport layer (TCP/UDP). RDP is layer 6 or layer 7 (it's debatable) in the OSI model. They provide translation to a layer 5 protocol from an application. The interesting thing layer 6/7 is that all it 'depends' on is having a layer 5 below it. That layer 5 may be a socket, it may be DB connector, it could be any sort of translation device.
Fri 23 Jan | Dignified | '> Do applications communicate to databases via sockets? Yes, except when they don't.' Ah, I got a good chuckle out of that. :)
Fri 23 Jan | Andrew Burton | As I understand it, RPC is just a layer of abstraction over sockets.
Fri 23 Jan | Christopher Wells | > As I understand it, RPC is just a layer of abstraction over sockets I think RPC specifies what a function call looks like 'on the wire', i.e. it's the data format into which function calls (parameters, return codes) are serialised. An RPC implementation also includes tools that generate 'stub' code that serialises/deserialises your specific functions. It may (I don't know) have management (end-point discovery, security, reconnection) built in also. Finally it neededn't be over sockets (for example, 'RPC' also works between two processes on the same machine, in which case the transport might be for example 'pipes' instead of 'sockets').
Fri 23 Jan | Andrew Burton | Oh, crud.  I'm thinking XML-RPC, a web service over http.  Ack!
Fri 23 Jan | Hugo Boss | Thanks for your posts :)
Sun 25 Jan | Keith Moore | 'Sockets' are a pretty low-level network abstraction. You're required to deal with potentially difficult issues like controlling socket handle lifetime, binding address to sockets, resolving human-readable (?) names into address, connecting, etc. Also, the two most common protocols used by applications on the Internet (TCP and UDP) each have some nasty 'gotchas' that can make their use challenging. 'RPC' is a higher level protocol. It's also somewhat protocol neutral -- As long as the client and server have some shared/common network protocol installed (and assuming their RPC implementations play nicely) then the two can communicate. Under Windows, RPC works over sockets, named pipes, LRPC (a local-machine IPC mechanism), and a few others. It's probably also worth mentioning that the programming model for the two are quite different. Sockets programs tend to see things in terms of bytes flowing back and forth across the network. RPC programs tend to use a request/response model: issue the request (RPC call), wait for a response. Then there's SOAP, which (based on my meager understanding) is sort of an object-ish RPC over HTTP (over sockets). Hope this helps.
Merits of Visio? | Fri 23 Jan | Joe
Hi Folks, Ive used Sybase PowerDesigner 8.0 for some time now for data modelling, and Ive found it a *great* tool. A new member of the company has suggested I now start to use MS Visio instead, but I have to admit, I dont like the look of it after the brief introduction Ive just given myself. What am I missing? Has anyone used either/both? Thanks in advance...
Fri 23 Jan | Nitin Bhide | I don't have idea about Data Modelling. I used it as a general purpose diagraming tool. (simple UML diagrams, some simple diagrams to explain geometry algorithms, etc). It was very useful. It can import lot of formats.
Fri 23 Jan | Elephant | My personal oppinion on Visio is that its a good all-around product.  For data modeling, you can do almost anything you want to do with it.  That's the major benefit.  The major drawback is for anything you want to do with it, there is probably a better tool (albeit a more expensive tool) out there for your needs.  i.e. Class Diagrams, UML Modeling, Circuit Diagrams, Wiring Diagrams, Process Flow, Floor Plan Layouts, etc.
Fri 23 Jan | Rick Watson | I'm not sure about designing software, be we use Visio for wireframe mockups. It lets us create user interfaces quickly during the early stages of a project while we are still gathering requirements. What do others use to mockup interfaces (besides a whiteboard, which we use even before Visio stage)? I'm not talking developers here, more product manager types.
Fri 23 Jan | M | What Elephant said! Visio is a good at 'modeling' which includes data modeling. If you already have it, try it and use it. If you already have one of the other great modeling tools, use it. Use whatever you are more productive in. One plus for visio though is that is is easy to share with your analyst friends.
Fri 23 Jan | Mata Kosmata | Hi, I don't think Visio is good in generating / updating the db schema from the drawing. IMHO it's incomparable with PowerDesigner. Also its code generation from UML diagrams is very poor. If you need anything more than good-looking pictures better use somethnig else.
Fri 23 Jan | Rob VH | If you're willing to invest a little effort, Visio lets you customize the "ShapeSheet" underlying each type of shape. You can program (in VBA) the behavior of the shape through the formulae in the sheet and the events that the shape receives. It takes a day or two to get the hang of it, but you can get some really neat effects. For example, I once used an estimation tool that a coworker wrote in Visio. You could connect up widgets, which looked up their current price from a database. The widgets were programmed to enforce the rules on which widgets could be connected to each other. At the end, you hit a menu button, and it produced a nice listing of the stuff on the diagram, and the total cost.
Fri 23 Jan | Albert D. Kallal | Visio is a nice drawing tool. Great product. However, a nice drawing tool that lets you put a bunch of cute chairs and desks on the screen is NOT what you need for a managing a database system. It turns out that Visio has some add-ins that does allow you to work with, and generate scripts etc for database schemas/diagrams. However, one must note that the ability of Visio to manage and work with databases is simply one of MANY features of the product. The product has VBA built in. While ms-word is not a great document management and filing system, you can add-in that feature. However, when word is compared to a dedicated document management system, the results will likely be less then perfect. The same applies to Visio. It is not a database management tool, but a nice drawing and flowcharting program with those database features added in. The versatility of Visio is both its strength, and it weakness. The strength is due to that Visio can do so many cool things. The weakness is that when you do everything, likely you don’t do each thing the best! However, since Visio is programmable, then you can do a lot of things...... I use Visio for all kinds of diagrams etc, but I never used Visio to actually maintain and build the DDL scripts for the database server. In my case, the enterprise tools for sql server, or the built in ER tools in ms-access are better, and more convenient to manage the database in question anyway. In fact, in ms-access you can right click any table in the ER diagram and jump right into table design mode (a lot of people don’t realize this!). The same goes for sql server and the included tools. Since they are better then Visio, then why use Visio? On the other hand, if you need to grab/create some diagrams of existing database systems, then Visio is not too bad. This fact is especially so, if you often have to walk into different clients for different database systems, and want/need a drawing tool. (why learn a new tool for each system) However, as a table management tool for a production database....hum, that is probably not the best use of Visio. It is a real fancy drawing tool, not a database managment system. So, keep this in mind when evaluation of the tool. Albert D. Kallal Edmonton, Alberta Canada kallal@msn.com http://www.attcanada.net/~kallal.msn
Sun 25 Jan | Philo | The reason I don't use EM for schema design is that while you're fiddling around with renaming fields and tables, they're actually being created, changed, dropped in the database. When you get into larger schemas, the delays can become noticeable. The most important thing for an ER design tool is the ability to round-trip the design - Visio can do this against a number of databases. There are two downsides in your case - 1) You're used to the tool you're using. This may make Visio frustrating to transition to. 2) If you only work on Sybase databases, your current tool may hook into features no other ER designer will, so you need to find that out. But if you are working in multiple database platforms, this shouldn't be an issue. Here's the Visio fact sheet: http://www.microsoft.com/office/visio/prodinfo/facts.mspx [disclaimer: I work for Microsoft] Philo
Common sense software development | Fri 23 Jan | Nitin Bhide
I have put a my thoughts about a common sense software development in presentation. This doesnot follow any set methodology. It is available at http://www.geocities.com/nitinbhide/NitinsCommonSenseSoftDev.pdf I will appreciate some feedback/advice/constructive criticism. Nitin
Fri 23 Jan | M | Is the link wrong? I get a "page not available" msg.
Fri 23 Jan | Nitin Bhide | I just checked again. I could open it through IE and Mozilla both. Link seems to be working. http://www.geocities.com/nitinbhide/NitinsCommonSenseSoftDev.pdf
Fri 23 Jan | A cynic writes | The direct link you posted didn't work for me - however http://www.geocities.com/nitinbhide/ did work and I could get to the pdf from there.
Fri 23 Jan | Matt H. | Go up a level (chop off the file name) That'll bring you the default HTML. Then follow that link. that's how I got it. Overall, honestly, I wasn't all that impressed. If you do all those things without version control, for example, you're in trouble. I think you need to figure out who your potential audience is an tailor your presentation to that. If they are people working in Industry who know about version control, specs, and schedules, then It could be a cool 'Don't violate these common sense rules' kind of presentation. If it's newbies, I think you need more basic software engineering stuff. HOWEVER, I did see one awesome quote: 'If you don't like unit testing your product, most likely your customers won't like to test it either.' AWESOME QUOTE. That made the whole thing worth it. regards,
Fri 23 Jan | Nitin Bhide | Actually the 'Common Sense SoftDev' was prepared to consolidate my understanding and thoughts without than any specific target audience in mind. I though it come out well, hence put it on site. It was DEFINITELY NOT for newbies. If I want to present it, My target audience will be people with some development experience (1 to 2 years). For Newbies I have another presentation on the site 'Good Developers' which talks about the characteristics of Good Developers.
Fri 23 Jan | The real Entrepreneur | Nitin, I think the best part of your 'presentation' is the focus on USEABILITY. (I.e. 'one click', 'know your customer' , etc.) are really about making sure the features and interface of the program meets customer needs. And that is the most important factor SUCCESSFUL software. I'm not a great CODER or even architect. But I do a very good job of specing out the requirements. So, that can allow me to cut my task size in half, by eliminating features that don't meet customer needs. Thus I can be a mediocre 'coder', but a successful software developer. How many times have you seen something added to a product (software or otherwise) that is so poorly done or so uneccessary that it REDUCES the value of the product? Not only did they waste resources on the feature, but they then had to work HARDER on OTHER aspects of the product to COMPENSATE for the annoyance the feature causes. 'Put all your wood behind your arrowhead' - Larry Ellison
Fri 23 Jan | GiorgioG | Looks like the site has exceeded its max bandwidth - can anyone post this elsewhere?
Fri 23 Jan | JD | A guy posts link to his article on JoS. It gets marked as BOLD. And the website where his article is present becomes in accessible because of so many click-throughs! Is JoS turning in to Slashdot??? ;) JD http://jdk.phpkid.org/
Fri 23 Jan | Dennis Atkins | Yahoo groups is quite fragile. Just a few hundred kb in an hour will trigger its shutdown mechanism... unless you pony up with cash for a pro account. Clever, yah?
Fri 23 Jan | Dennis Atkins | r/yahoo groups/yahoo geocities/
Fri 23 Jan | Me | You wrote that the one click of Amazon "is a major of factor to make is popular" which I read meaning you think the use of one-click made Amazon popular. I would HIGHLY disagree with that. Other than this there wasn't much I haven't seen elsewhere and I stopped reading at that point. I would suggest paying a native English writer to fix it for you. Not bad stuff though.
Fri 23 Jan | deja vu | Its interesting material, most of which I've seen before.. but its nice to see all of it in one presentation.. Dont necesarily agree with the Amazon one-click thing myself, but I can see your point .. sorta .. More like this .. if anyone hasnt seen 'How to become a programmer '... go to http://samizdat.mines.edu/howto Its more 'common sense' stuff, but from a developer perspective. Lots of it is like Nitin's material.. /threadjacks'r'us
Sun 25 Jan | Robin Birtle | After a quick e-mail exchange with Nitin, I have put a copy of his presentation on a site with less bandwidth restrictions than its current geocities home. http://www.sumimasen.com/NitinsCommonSenseSoftDev.pdf Please let me know if you have any trouble accessing from here.
Web-based Project Management | Fri 23 Jan | Evgeny Gesin /Javadesk.com/
http://www.php-collab.com/
Fri 23 Jan | Evgeny Gesin /Javadesk.com/ | (clicked too early) I just found that software and want to know if you use it and how is it effective and safe for project management, including outsourcing management in other countries.
Fri 23 Jan | M | You get what you pay for. Seriously, for an OS project it looks pretty damn good (visually that is). Seems to be more focused than many other PM/Callab software I have looked at. I notice many of these callab programs are geered towards distributed OS teams. There is nothing wrong with that, but it doesn't alway feel like a comfortable fit for the average corporate development team.
Fri 23 Jan | Mary White | try http://www.easygen.com its quite smart, allows you to build all sorts of web based apps
Sun 25 Jan | intoodeep | www.digite.com Comprehensive collaborative program and life cycle management. You get what you pay for.
Sun 25 Jan | intoodeep | duh http://www.digite.com
About Face 2 | Fri 23 Jan | Dennis Atkins
Went down to the bookstore recently and was looking through the advanced computing topics and found, next to Joels fine tome, About Face 2 by Cooper. Hadnt seen it before so flipped through and every page I looked at had insights that I agreed with. Like dont make the user do unnecessary stuff that has nothing to do with their task. He calls unnecessary stuff excise. Andyway, bought, read it, liked it. Then went to check Joels list just to confirm it wasnt there and actually the first edition was! Well this is a 10 years later revision. The really funnest part was, after finishing, reading the reviews on Amazon for both editions. The ratings are evenly divided between 5 stars best book I ever read and 1 star dont bother the author is a pompous blowhard and the nonadvise he gives is utterly useless. One things for sure - every one has a passionate opinion about this book!
Fri 23 Jan | ajs | Go back and get his other book - 'The inmates are running the asylum' as well. 'About Face' is all theory, which is what causes the 'pompous blowhard' quotes. 'Inmates' is theory put into practice. Read the section on the in-flight movie system, how they turned junk into a winner. The '1 star' crowd can jeer all they like, you can't deny the existence of a real-life working system. (btw, 'Inmates' has an anti-programmer slant - upsets many people)
Fri 23 Jan | one programmer's opinion | Imo, you should never go to just one online place and read the reviews of books you are interested in purchasing.  I always do a Google search and try to find reviews that aren't associated with a book store.
Fri 23 Jan | j b | Huh? About face (1.0) is a very practical guide to designing WIMP (Windows Menus Pointers) interfaces. It's not theoretical at all: it's very hands on and specific. To the point that it talks about whether menu items should be capitalized and stuff like that. The Inmates are Running the Asylum, on the other hand, is a 'usability for manager types who don't get it yet' book. It's a great read, but it's neither theory nor practice: it's motivation.
Fri 23 Jan | The real Entrepreneur | I agree with JB. About Face (first ed. anyway) is very practical and VERY VERY good. It's on my short list: About Face Code Complete Don't Make Me think (more for web useability, but very very good and to the point) Cooper invented (Ruby ?) which became the Visual Basic form designer.
Fri 23 Jan | herb | I think that Cooper's tone, both in AB2 and even moreso in Inmates, continually hammers home the point that developers shouldn't be designing interfaces sets a lot of people on edge. Funny thing though, letting a message like that set you on edge, kind of reinforces his points in a way. Obviously there are programmers who are, or would make, excellent UI designers, but the separating design (even beyond just interface design) and development into distinct disciplines provides a lot of value.
Fri 23 Jan | ajs | 'About Face' says here's what you should do. Menus go like like this, buttons like that, cross your t's & dot your i's. That's theory. No-one says it will work. 'Inmates' (in part) says here's a real live working we-got-paid-for-it-and-people-use-it system, and this is how we did it. That's practical. See! It does work! Nyaa! Plenty of theory out there in any field you like. Writing a book about it is easily done. 'Look - here's a car/plane/spaceship/browser/etc I've designed!'. Fine, I'll be impressed when you build me one. Ideas (theory) are cheap. So is talk. Posting to forums even cheaper. Cooper built systems based on his ideas. For that matter, so did Joel.
Fri 23 Jan | j b | Hmmm... So if I was a doctor, and I wrote a book of specific instructions of how to perform specific procedures, that would be 'theory'? And if I wrote an inspiring narrative about how many lives I saved doing surgery that dedicated about 4 pages to the actual techniques used, with the rest of the book dedicated to talking about why surgery is important and why only people like me should do it (leaning heavily on why psychiatrists SHOULDN'T do it), that would be 'putting theory into practice'? Cooper is awesome. But in inmates he never gives enough detail about about the process of persona creation (the core technique Cooper uses in his work) to enable you to do it yourself. He acknowledges this readily in his speaking engagements, and has been promising a detailed follow-up book to Inmates for the last 5 years. In the meantime, people trying to use these techniques in the field have to pretty much make it up as they go along.
Fri 23 Jan | j b | Anyone read both editions? (About Face vs. About Face 2?) Are there substantive differences? Does he address web design issues at all in 2?
Fri 23 Jan | herb | Granted, I read AB about 5-6 years ago and AB2 last summer so take this with a grain of salt, but... depends on what you mean by 'substantive' ;) Yes, it's a different book, not just an attempt to make AB more up to date. The main thrust of AB was that the UI should reflect the user's mental model not the software's implementation model. The main thrust of AB2 is if you are going to design the UI to reflect the user's mental model, you've got to understand what you mean by 'user' and talks a great deal about personas, types of personas, the importance of digging through their different motivations, etc. There are definitely common threads through both books; mental/implementation model, the different software postures (sovereign, transient, etc.) and how they affect UI design etc. As for Web Design, he touches on it but certainly not in any kind of thorough way. IIRC, there is a small section devoted to Web UI Design, but other than that it's mainly some 'of course, when designing for the web, things are different' qualifiers. I enjoyed all three books and do think Cooper has some very useful things to say about UI design. The only real problem I have is, in all his discussion about mental models vs. implementation models, he seems to neglect that there's a model that supersedes both (and that the design process needs to consider as primary), a 'canonical' model I guess I'd call it; a representation of the real world things/interactions that make up the problem space.
Fri 23 Jan | Dennis Atkins | I didn't read version 1 but I did read all the comments on amazon about version 1's missing bits. Version 2 seems to specifically address the complaints on amazon. Chapter 37 is "Designing for the Web". Chapter 38 is "Designing for Embedded Systems". An afterword ties it all into the asylum book, and there is a full index and bibliography.
Fri 23 Jan | runtime | 'About Face' is a really good, practical book. I highly recommend it. 'Inmates' is a cheap rehash of the same ideas, aimed at non-technical people. Don't waste your time or money with 'Inmates'.
Sat 24 Jan | ajs | If Dennis Atkins thought the Amazon reviews were funny, I guess he'd find this thread hilarious. 'Inmates' isn't a programming book, nor is it aimed at programmers. That's the point. Comparing doctors to developers doesn't work. Most developers couldn't even find the bathroom, let alone wash their hands properly. I remember VBPJ had an article on basic algorithms once. A follow-up letter from a developer thanked them profusely for it. I think your average doctor is a bit more clued up than this. Lawsuits help. The worst design book I encountered compared programmers with artists. He theory was that programmers should use similar methods, ie draw an outline (framework), fill it in. Fair enough, until he said forget about the details. Painters do buttons as a blob of paint (it saves time), why not code like that? Who need bounds checking, error handling, asserts, etc. Will programming become paint-by-numbers? Will developers become licenced? Will it make a difference?
Sat 24 Jan | Dennis Atkins | The amazon reviews are two opposing views stated separately and not a back and forth so its different. I was interested that the book was controversial enough to arouse such polarized feelings. Some complained because he uses big words like Kafkaesque. Well, if you aren't intimately familiar with that word you probably have limited programmin experience. :) Others complained that he makes up his own terms. But when he does so, he explains 'I am making up a new term. I am not using the other term because it doesn't do what I want. This new term means specifically ABC.' So I don't have a problem with it. A glossary would be nice but the index suffices. Of course you can sort of pick up the meanings through context too if you missed the initial descriptions. Others complain that he is down on programmers. Not true. he is down on programmers who make bad interfaces that frustrate their users and waste their time. The fact that making such an interface is incredibly hard is why he suggests that only specialists do so. Of course there are the rare developers like Joel who can do both. But he's got a point that its so hard to do it suggests the use of a specialist. Me, I do both and I still agree with him. One thing I like about the book is he goes over UI elements and explains what's good and bad about them very specifically. Example: Balloon Help was good because of ABC but flawed because of DEF. ToolTips are similar but better because of GHI. That sort of thing. Maybe I don't agree with all the details or thing there are other things that are a factor. But still, his reasoning is well thought out and worth thinking about. I guess I don't see him as telling you what to do with your life but making sure you are aware of all the different issues. I've always felt this way about people teaching. Maybe they are not 100% correct about everything. Maybe the world from their mouth are not the words of a supernatural, infallible, always right superbeing. Maybe instead they are letting you know about the ideas and thought they've had so you can start from a base a little bit higher, having had some fat to chew and things to think about. One example of his controversial issues is he points out that file systems are bad from a UI standpoint. Hard to accept since file system is an implementation detail that is so in our face, but he is right. Users don't understand the file system. Trees? Recursive deeply nested directories? No way Jose. Documents are either in 'My Documents' or they are on the Desktop or they don't exist. 'The computer ate my file.' is what happens if a file goes outside 'My Documents'. Extremely popular software admits to this. In iTunes, you don't ever need to know where your music files are stored. In Outlook, you don't ever need to know where your mail files are stored. In iPhoto, you don't ever need to know where your digital camera pictures are stored. It all gets put in a database front end. Software that forces you to deal with the file system is substantially less popular and useful.
Sat 24 Jan | no name | That is certainly true, oddball pieces of software that force you to use the filesystem, say MS Word, are clearly less popular than iTunes.
Sat 24 Jan | Dennis Atkins | In what way does Word force you to deal with the file system? Almost every 'regular user' of Word I know of keeps all their created word documents in My Documents.
Sat 24 Jan | no name | And every professional user of word I've ever met doesn't. You point is? Or are 'symbolic link' directories now not part of the filesystem?
Sat 24 Jan | Dennis Atkins | I think you're making a great point that you are not the guy to put in charge of developing an interface. Safe to say you didn't care for About Face 2.
Sun 25 Jan | no name | ? MS Word, and the office apps consider My Documents to be just the same as any other directory in the filesystem, as far as I'm aware. Most people would consider MS Word (et al) to be fairly successful. You might even assume MS had done some useability testing. But what would they know, right?
Sun 25 Jan | Dennis Atkins | The point of all this is that most users don't understand the file system. So, when designing a program to be used by most users, the program will be more comprehensible to the largest number of users if they do not have to have any awareness of the file system. Such as the idea that your files are in a folder somewhere. Programs like Outlook do not expose the file system to the user. Sure, the 'advanced' users like ourselves know where everything is kept, but the common user does not know and should not need to know anything about the implementation detail of files being stored in folders. It's not just that they don't know abut file allocation tables and sectors and blocks, it's that they don't get the whole infinitely nestable tree idea. Likewise, iTunes and iPhoto and even my IDE reduce the need to deal with knowledge of files and their location within the system. The file system is an implementation detail that most users don't deal with well and even advanced users have trouble with. Where is my file from last year? Where are the photos I took in 1997? Dang if I know - probably backed up to a CD somewhere. Or maybe they are on one of these hard drives if only I could remember the name of them. My Documents is one way of having a safe default that matches the ordinary user. Longhorn supposedly will move beyond this, replacing the entire file system metaphor with a database metaphor instead. There is a reason why things are moving in this direction.
Sun 25 Jan | ajs | The Palm Pilot probably owed its success to lack of a file system. Gets along quite well without 'save \ save as' dialogs too. (On hardware that is. The PC software is horrid) There's no need to educate people regarding the difference between a file in ram and one on disk, and where on the disk it might be. Those who insist you do should not be designing systems. That's you, -blank-. Eliminating the file system is not a new idea. Raskin's 'The Humane Interface' discusses the Canon Cat word processor that lacked a file system. When users went to other machines, they wondered 'what's this file/directory crap?'.
Sun 25 Jan | Gamut | So going back to the topic... would you guys suggest reading both About Face and About Face 2.0? (this qiestion is only for those who read both)
"Measly little 100k lines of code" | Thu 22 Jan | Samir
From http://www.artima.com/weblogs/viewpost.jsp?thread=29301 Comes: Second, it doesnt work. Nope, it doesnt. At least not in my world. It may be fine for a measly little 100k lines of system, but not for something moderately sized. Whats really funny is that he spends a noticeable amount of time dissing the hubris of the person hes responding to. Look, folkies - how about a little compassion? Modern operating systems are millions of lines of code. Enterprise applications may be a million lines + tens of thousands of lines of markup and hundreds or thousands of stored procedures. I dont care. Stuff like your silly little system or measly little 100k lines of code IMHO are like my baby is prettier than yours - were all parents, and we love our kids. Have some respect for the guy who spent months of long days dealing with the same kind of asshole boss and/or client and delivered something that they were happy with. Were all on the same side. Philo
Thu 22 Jan | Damian | Samir ? Surely you haven't been trolling other threads Philo
Thu 22 Jan | Bella | Oh come now - that wasn't a troll, that was just funny. :) But for the record, I always post substantive stuff with my real name. :-) Philo
Thu 22 Jan | Philo | Oh $%^#^%$#&
Fri 23 Jan | Vince | 100k lines of code isn't *that* small....
Fri 23 Jan | El Macho | depends on language :D
Fri 23 Jan | Ori Berger | 'Lines of code' is a measure of liability, not of functionality. I feel sorry for anyone who brags about how large their code base is. It means no one on that team was good enough to make it smaller, or even understand the liability issues. It's much like people bragging 'I spent $1,000,000 to get this thing' and dissing people who got the same thing for a tenth of the price, thinking that, obviously, it can't be good because it was cheaper. Money spent is a measure of liability, not of value.
Fri 23 Jan | no name | ''Lines of code' is a measure of liability, not of functionality' I have a word processor in zero lines of code. Not much funtionality, but I'll sell it to you for $5. Interested? 'I feel sorry for anyone who brags about how large their code base is. It means no one on that team was good enough to make it smaller, or even understand the liability issues.' How do you know they didn't have a 500 KLoC project and reduced it to 100?
Fri 23 Jan | M | Ori, I think you make a very outstanding point. I also think it might be lost on some of the crowd as programmers are often not on the business side. Solving a problem with the least amount of effort (i.e. number of people, time, LoC, etc.) is what makes for an efficient business. Looking at the particular function of a programmer, I think bragging rights can be valid. It is a method to convey to others within the field the scope of the solution. I would concede that it makes no implication on the efficiency of the business as a whole, but often that is not within the programmers control.
Fri 23 Jan | hoser | Ori, You da man. Words of sanity.
Fri 23 Jan | Supercoder | I once cloned the entire unix operating system in 139 lines of code. That shows how good I am. Few would have the intelligence to see the common patterns. The posters who say that more LOC is better simply have never seen fine software like my clone of MS office that is done in 842 LOC. Or my full-featured browser that works standalane on an embedded machine - 1141 LOC.
Fri 23 Jan | mb | Your zero-line word processor has no 'code defect' liability. It also has no 'code feature' assets, so it's worthless.
Sat 24 Jan | no name | 'Your zero-line word processor has no 'code defect' liability. It also has no 'code feature' assets, so it's worthless' Not using Ori's logic, because ''Lines of code' is a measure of liability, not of functionality'.
Sat 24 Jan | mb | something can be both an asset and a liabilty. quite common, in fact.
Sat 24 Jan | Philo | Take my wife, Please. ba-dum-bum. Philo
Sat 24 Jan | Prakash S | Samir??? did u watch office space recently?:-)
Sun 25 Jan | Ori Berger | Dear Nameless, (and others), No, I probably don't want your $5 Word processor. I pay relative to the _functionality_ I get. The price I pay is a _liability_ for me. The value I get is an _asset_. To make sense, they have to be equal from where I look, more or less -- or I better spend my money on something else. To the producer, the money I (the consumer) pay, is an _asset_. The money they spend on production and support is a _liability_. If they can get me to pay the same money (my liability, their asset) while reducing their liability, they make better profit. If you can produce the Word processor I want for $5 and zero lines of code, I might be persuaded to buy it -- except that I can get it for $0 (OpenOffice is great guys, try it out), so I'm unlikely to pay you even $5. In an efficient market (of which the modern 'free market' is a reasonable approximation) with enough suppliers and consumers, price and value are supposed to equalize. This happens in most markets, but not in Software. Not yet, anyway. And guys, if you can make a web browser / OS / whatever that people want to use in 1000 lines of code, why do it longer? If I recall correctly, the industry average is something like 20 lines of code / day, amortized over the entire product life. Doing something with a smaller LOC count is, eventually, the sensible thing to do. Oh, and I can't be 100% certain, but from the attitude expressed in the article, I infer the guy things 'more LOC = more value', in which case he would be disinclined to reduce the LOC. I may be wrong, of course.
Dealing with Madness | Thu 22 Jan | Wayne
Im the guy in your office known as the goto guy. Everytime someone cant figure something out, they ask me about it. Everytime theres a project that needs a little attention to detail or that needs to be done quickly, its always me. Nothing is specd out, just do it, do it, get it done. I really hate this situation. Right now Im in the telecom industry, and although I really like programming/database design, Im getting really sick of the dail emergency that pulls me further away from building a real software development environment. Also, Ive never worked with anyone that knows more than me, somebody who could teach *me* how to do things. That really annoys me because I feel like everything is always my responsibility, and theres nobody else who can help me. My problem is that Im self taught, and I dont think that Ill ever be able to get a job on a real software development team without any degree or certifications...so Im thinking about going back to school. Im just kind of bummed because I feel that I know more than most CS grads, and I have to go back to school just to get a stupid paper that says that I know what Im doing, when Ive already been doing this for 6 years. However I think that I could get over this because I really enjoy knowledge and I want to meet other people who are *really* into programming. I feel kind of old to be doing this though, Im 30 and by the time I get out 34...am I employable at this point?? My other option is to just go off and start my own software company, hope that its a success, and then I can build a team with the proceeds. Anyone else in this situation? How do you deal with it?
Thu 22 Jan | Wayne | Also, If I take the back to school route, do you think that an associates (2 years) with a lot of experience is good enough? Furthermore, what do you think about just getting a few certifications? Which ones?
Thu 22 Jan | The Happy Student | Having been in the same situation as you, and having started school in September, I can strongly recommend that you go back to school as soon as possible. Put it this way: You can handle 'daily emergencies' created by ignorant assholes, or you can handle 'daily emergencies' created by the fact that haven't studied enough for your exam that afternoon. One results in no tangible benefits to you besides stress, weight gain, and baldness, but forces you to work with a bunch of management sub-retards. The other allows you to do whatever you find interesting while surrounded by young happy people. As a bonus, you will be working towards that 'piece of paper.' Worried about money? Look into a school with a decent co-op or internship program. Where do you want to be in 4 years?
Thu 22 Jan | son of parnas | The sad fact is most people who are programmers aren't really into programming. You'll have to hang out at places like this or go to local meetings. Telecom isn't a good place now. And if you don't have connections it will be hard to get in the door without a degree. It will also be hard to go into another field with a telecom background. So if you don't get lucky or have connections then getting a degree is probably a safe bet. Start your own company is a good option too.
Thu 22 Jan | Sathyaish Chakravarthy | >I'm the guy in your office known as the 'goto guy'. Everytime someone can't figure something out, they ask me about it. Everytime.... Hey, that's my story too.
Thu 22 Jan | Andrew Hurst | --- However I think that I could get over this because I really enjoy knowledge and I want to meet other people who are *really* into programming. --- That depends quite heavily on the school you go to. I would bet that as high as 75% of the people in some of the upper division (3rd and 4th year classes) CS classes really disliked working with computers. They were doing it for money, and just about only money. I was even called a nerd in an upper division Operating Systems class. By another guy in the class. amazing... I would assume this is even more prevalent in non-research institutions. Either way, research what school you go to carefully before you go. ( I went to UC Davis, btw. http://www.ucdavis.edu/ )
Thu 22 Jan | Sgt. Sausage | ==>That depends quite heavily on the school you go to. I would bet that as high as 75% of the people in some of the upper division (3rd and 4th year classes) CS classes really disliked working with computers. They were doing it for money, and just about only money. My experience was contrary to this (although I got my degree over 10 years ago). In my experience, the first and second years were stuffed full of these people. By the time I got to the third or fourth year, those guys had been weeded out and moved on to a marketing degree. Your mileage may vary ...
Thu 22 Jan | Reality Check | ' Also, I've never worked with anyone that knows more than me, somebody who could teach *me* how to do things. ' 'I'm just kind of bummed because I feel that I know more than most CS grads, and I have to go back to school just to get a stupid paper that says that I know what I'm doing' I guess you're not so smart after all. Welcome to the corporate world where bagdes and 'stupid papers', as you call them, matter. Your choices are actually very simple: You can sit around and whine like a big baby, or get off your duff and start working towards that 'stupid paper'. Otherwise, you will see most CS Grads who come your way pass you by and you will still be moaning about how much 'smatter' you are for not having the necessary skills (techncial + political + business) for advancing in you're career.
Thu 22 Jan | Wayne | Just curious, why do you say it's hard to get into another field with a Telecom background? I haven't been doing telecom for 6 years, I've worked for an Insurance company and an Automotive Software company as well. My current position is in Telecom (I'm supposed to be a programmer, but I spend a lot of time putting out fires, like I said).
Thu 22 Jan | no name | I had the exact same problem until I woke up and realized I was a wanker and a sucker at the same time.
Thu 22 Jan | Wayne | Well, I didn't say I was 'smatter', I didn't even say that I was 'smarter', I said that I know more...and I do. Also, I've worked very hard to get where I am. CS grads are usually the ones that whine when I get mad at them for not knowing how to write a proper 'select statement' in SQL or when they don't understand the client/server model! Money isn't an issue, I make plenty. It's the type of work and the people I have to work with that I'm worrying about.
Thu 22 Jan | Sathyaish Chakravarthy | Wayne, I empathize with you. I completely understand your situation and believe me, when I read your words, I kept thinking how aptly you described my situation as well. I think the only workable solution is to apply for a CS degree right away and that's what I am doing. Once you get that degree, there shouldn't be any discrimination you'd face in job interviews. Right now, they don't even want us in the interviews sometimes, and its hard to take, especially when you see bummbers and quacks working with you all those years behind. Once you get your degree, you'll be invited to interviews, listened to and then you can get a much better job. Over here, in India, they ask for an MCA (Master of Computer Applications) or a B.E CS (Bachelor of Engineering in Computer Science) or a B.Tech (Bachelor of Technology). I have enrolled myself for a preliminary course of 6 months after which I shall be qualified to join an MCA class. Good luck!
Thu 22 Jan | no name | If it bothers you that much, buy a cabin in the wilderness because idiots are everywhere.
Thu 22 Jan | Sathyaish Chakravarthy | ...see bummbers and quacks working... That was bummers. I made a typo there.
Thu 22 Jan | Clay Dowling | Getting the degree is a good idea. If you're self taught, then there is a lot of stuff that you haven't been exposed to. I was largely in the same position. The solution I found was to -teach- classes, rather than get another degree, since I already have one (just not in computer science). I would recommend getting a four year degree from a good school, not just the local commuter college. Part of the benefit is that you'll be forced to learn about things besides computer science, and that's a good thing. You might even consider studying something that isn't strictly computer science, such as mathematics. For the purpose of getting jobs, having a degree is the important thing, and the subject matter is secondary.
Thu 22 Jan | Reality Check | People for the last time, Wayne is just too smart (for everyone he meets).  He doesn't need no stinkin' degree!
Thu 22 Jan | Wayne | Thanks everyone for all of the good advice. I was thinking about not going back for Computer Science and picking something like Mathematics instead... I'm going to think about it some more. 'Never make decisions when you're angry!' is the advice I keep hearing in my head when I get like this.
Thu 22 Jan | fw | Yeh, I know how you feel, I think. I work with nice enough people in development, but the people RIGHT over me have me putting out fires, all the time. So I went part time, work on my own things too, it'll be great! Now they're trying to make me work 10 hours 5 days a week with a 40% pay cut, and why? Today I spent about thirty minutes really coding, even then I had to fight for it, people coming over etc...yet I'm still to do my daily work in development, 30 minutes! It's almost like those fires don't count once they've been put out, when other developers do it, they tend to screw up and I always get roped into it. Llike the java guys debugging low level networking issues in the kernel for a solaris machine, on a different o/s. So now I think I might as well get paid to do what I'm doing, go work in operations and script most of my job (I've been in operations before programming). You just can't win, I know the guy right over me has his heart in the right place, but he's just, so so so so, annoying. He was out for four days and I wrote a new systems management and monitoring suite, three days, I was pretty proud, got everybody else hammering it and not finding bugs, it's proved it's worth internally already, he came back and I'm spending most of my day explaining what's happened, why I didn't do $x (because it made no sense). I don't know, sorry for bitching ;-)
Thu 22 Jan | Wayne | Fascinating "Reality Check"...you've added so much to this thread, we really appreciate your input.
Thu 22 Jan | fw | Uh, about the three - four days thing, three days writing it, one day tweaking config files and frontends for it as well as documenting how it works, but three days coding.
Thu 22 Jan | Wayne | Best three days you've had in a while I guess.  I love it when I can actually get in the zone and do my job.
Thu 22 Jan | my guess is never | Any bets on how long before Wayne realizes he's a moron just like all the rest of us?
Thu 22 Jan | Thanks, I always wanted to say that. | You sir, are an idiot wrapped in a moron, with an outer layer of retardation.
Thu 22 Jan | Vince | actually, I don't think myself or Wayne is a moron.  Looks like its just you.  sorry man.
Thu 22 Jan | hoser | I'm the guy in your office known as the 'goto guy'. Oh, buh-ruther.
Thu 22 Jan | my guess is never | Looks like the world has an endless supply of people who think their excretia doesn't stink. Who'd have thunk?
Thu 22 Jan | Alyosha` | Yeah, I hate it when they ask me to do work. Don't those morons get it that I'm only here to do the things that *I* want to work on? All this firefighting is seriously cutting in on my Joel On Software time. I really have a hard time seeing what the problem is. Being the go-to guy isn't a bug, it's a feature. It means job security. It means outrageous salary demands. It means being able to say, 'I only work here 40 hours a week; if you don't like that I go home at 5, fire me' -- and getting away with it.
Thu 22 Jan | Dennis Atkins | An AS will not help you employment wise. Also, because of your extensive experience working, you will also not learn anything new getting an associates. Dump the AS plan. A BS might help you a bit employment wise. But it will take 4 years and cost you a fortune in not just fees and living expenses but in lost income. You are making $65 now let's guess. School will costs you $20k/yr depending on your life style. I will assume you have no house payments or other liabilities to make good on while in school. So that's a quarter of a million dollars you'll be behind by the time you graduate. There is no possibility you will make that up in future increased earnings. Also, you will not find more people interested in CS in the CS department than in the field. In the CS department are lots of people exploring CS because they heard it pays well. In the workforce, the people you findh at least like it enough to keep with it after graduation.
Thu 22 Jan | Dennis Atkins | A math degree would make sense. You will certainl/y find almost all the students in that degree path are passionate about tehir interests. If you want to and can afford to take 4 years off, then do so. Don't study CS though unless you are going into a PhD program, which is totally doable if you have an undergrad degree in any field, plus your six years experience. If you want to go to school, pick something you've always been really interested in. A degree in Classical Studies or Film or Mechanical Engineering will help you be a better developer than a CS degree will. And the people you meet will be far far far far far more interesting than CS students who are the most boring dullards imaginable.
Thu 22 Jan | Dennis Atkins | If your goal is to improve your ability as a developer, buy the books Joel recommends, read them and discuss them with others at your local IEEE or ACM meetings. If those are too basic then move on to the big ones like Knuth and the GoF. Universities are still over a decade behind the state of the art. Keeping up with journals and tech publications is the way to go. Don't forget that almost 100% of university professors have zero experience producing commercial software OR software used by others. They can not help you become a better programmer.
Thu 22 Jan | Edgewood | A degree probably won't make him a better programmer, but it will probably help him find a better job. Unless he knows someone (not necessarily someone in a position of authority like a manager, but at least someone who is respected for their technical skills, and can vouch for yours), a CS degree and a buzzword-compliant resume is the best way to get past the initial candidate screening process. He may want to investigate a distance education college, especially the ones that are self-paced. Most employers are looking for *a* degree, not where it's from (well, as long as it's from an accredited college).
Thu 22 Jan | Sum Dum Gai | Do not waste your time getting a CS degree. If you want to go to uni, please please please, do yourself a favour and get a degree in something useful.
Thu 22 Jan | no name | 3rd the advice to avoid CS in uni. Imagine the competence of people who couldn't get jobs during the dot com boom. Those people will be your CS professors. Not to mention CS is an academically moribund discipline, anyway. No fundamental progress for the past 50 years. There's really not that much to it. If you like engineering, get a real engineering degree. If you like abstraction, consider math and philosophy...or advanced physics. If you like bugs, study entymology. Better yet, do yourself a favor and study something that will improve your cool quotient. Film, studio art, foreign languages, ethnomusicology, literature. Being able to speak in japanese to japanese chicks about french movies will improve your quality of life much more than introduction to compilers.
Thu 22 Jan | Wayne | Thanks all for taking time to write a post, (especially Dennis Atkins).  Good points to think about...
Thu 22 Jan | Wayne | Yeah, maybe I should just try to get a life outside of computers... I find myself only wanting to talk about technology/software development, but it makes me seem boring to other people. See, I *am* a dullard and I didn't even get my CS degree yet :)
Thu 22 Jan | somebody | Wayne, have you tried finding a different job, on a "real" team as you called it?  Successful developers without degrees aren't unusual.  If you really know your stuff and have the on-the-job experience, the degree shouldn't be much of an issue.  Yes, there are some people, mostly in HR departments, who will immediately reject you because you don't have a degree, but this is by no means the rule.  Try to get yourself in front of the people who can really evaluate your abilities.  If you're as good as you say, it won't be hard impressing the people who count.  I say all of this from experience. 
Fri 23 Jan | Wayne | I have to admit that I haven't overly extended myself in the search for a new job. I've created my own situation, I'm not blaming anyone else. Part of my problem is that I get so engrossed in the stuff going on at work, that I forget to pursue some of my own personal interests. Like Alyosha` said, 'Being the go-to guy isn't a bug, it's a feature.' So, I should take advantage of that by keeping my work hours on a leash. I'm going to take my time before I go changing everything. I might do some projects that I've been thinking about, maybe build up a 'portfolio' site or something. Thanks!
Fri 23 Jan | Tom H | Having worked with several 'Go To Guys' over the years, I suggest you (Wayne) ask yourself a couple of simple questions). When you fix a problem, do you document what you did and make sure the person who called can fix the problem again if it happens again? Do you tell them where to find information if something similar happens so they might be able to do some research? When you set something up in the first place do you build in troubleshooting help and document how to use it? I suspect the answer to all of these questions is No. My experience has been that the Go To Guy's work is often sloppy, way overly complicated, and failure prone. I'm not saying you work that way, but the symptoms point to it. The ego boost in being essential keeps them going. We had a guy quit last year after a rant just like yours, he was convinced he should've been the highest paid person there and the whole place would fall apart without him. Turned out that once he was gone, the emergencies were fixed once and for all.
Fri 23 Jan | . | Taking university classes can be very fulfilling, but it is not for everyone and having a degree doesn't guarantee you a better job. These days there are lots of students who are looking for 'the paper' and not really interested in learning. This can be frustrating as a mature student. A degree is just a way to get your foot in the door. Or, another way of looking at it: a checkbox feature. If you have spent the last six years becoming an expert in your field, doing research into best practises etc etc - it is possible that a great deal of the material you cover will be such that you could teach the class. If you decide to get a degree, you should determine your motivation / goal in getting it. If it is to increase your employability - I second the poster who said that you will never recoup the cost at this stage in your career. If you decide to get a degree for intellectual stimulation - I'd extensively research the university and its professors first. And I would personally take at least the first few classes part time - to see if you actually enjoy being a student :)
Fri 23 Jan | The unreal . | Wayne, I think you might be suffering the boredom factor and that's why you should study something other than CS (as many others have suggested.) Studying stuff you already know, or have worked out years ago, is boring.
Fri 23 Jan | Synonymous Cowboy | Hey Wayne, didja know Stacey's mom has got it going on?
Fri 23 Jan | Foolish Jordan | Wayne, one thing that strikes me is that you don't /think/ you'll ever be able to get a real programming job. Why is that? It sounds to me like you haven't even tried. Last I heard the Conventional Wisdom was that once you'd been employed for more than a couple of years that employers stop caring about where you went to college. If you're as good as you say you are, I'd think that any employer worth working for would hire you in a minute.
Fri 23 Jan | VPC | It's dangerous to commit four years of your time to something that you might not like. You are DOer and most of other people are just TALKers. After few years there, you may find yourself lost again. My advice would be to try something easier first. Think for a few days that you have degree, but you know almost nothing useful for your daily job - so act as an average Joe. Be friendly. Be supportive. Try to talk about other peoples problems ten times longer than it really takes for you to understand and solve them. If it's not a risk of any kind, try to make some compliments about what they do or even how they look (new hair style, new shirt, new iPod,...). Then sometimes decide that you would just talk, as someone who has no clue about what's going on, so nothing gets solved after few hours of group tinkering. Analyse other's people's ideas or remarks. Talk about them. Be supportive and understanding and say 'Gee, looks like you got again the hardest task/problem to solve. I really don't know if I could do it! Let's try together.' Once a week/month decide that today you will be stupid and useless, but act as if you are trying. Try to understand why it's hard for others to see solution. Tell a joke. Talk about girls/sport/cars... Just don't do anything useful. On purpose. After a while you'll be promoted and be happy without going to college. Only if all of this fails, go to college.
Sun 25 Jan | veal | If you can afford it and, as Dennis Atkins mentions, have no mortgage payments or other debts, I advise you to go to a decent university, preferably far from where you live now, and pursue your BS or BA.  The change of pace will do you good, and you'll likely grow as a person.  Ignore the opportunity cost -- working in telecom, your debt to your soul is doubtless already greater.  :-)  Don't pick a major right away, or if you must, make it something in the liberal arts so your exposure to other subjects will still be broad.  You'll find a passion soon enough.  Don't worry about the resumption of your career.  Pick something impractical and fascinating.  If that turns out to be CS for you, fine, but don't think it must be, and make sure you only do that if it's a theoretical emphasis (mostly math) -- the classes of a practical "CS" curriculum you're probably beyond already.  Universities are not trade schools, and the students who treat them as such rarely come out well educated.  Go there to become more human, not to find a better job.  The jobs will be waiting.
Porting WinNT software to Win2003 Server | Thu 22 Jan | Erik Marnung
Does anyone now any good site about porting Win NT software to Win 2003 Server? Any general advice would also be great to get. Thank you, Erik Marnung
Thu 22 Jan | Raj Chaudhuri | I have helped some organizations in doing just that. It's a large topic, but here are some of the most common things I have come across. 1) If your software writes to any area of the disk other that the user's profile directory, consider changing that. Windows Server 2003 is very strict about file permissions. 2) The same applies to the registry. If you write to HKEY_LOCAL_MACHINE, consider changing that. Windows Server 2003 allows only Administrators and LocalSystem to write to HKLM. 3) A less obvious result of this tightening of security is sometimes you can fail to open a file or a registry key for just reading. This is because while using APIs like RegOpenKey, people commonly use the most 'allowable' operator for the rights-desired parameter, such as KEY_ALL_ACCESS. Big name applications have made this mistake. In general, do not try to open anything with exclusive locking if your are opening it for reading.
Thu 22 Jan | dir at badblue dot com | Would need more details on what kind of software. Say you were porting web apps from IIS on NT4 (forget the version back then) to Win 2003. Warning: the security model for all CGI, ISAPI and related stuff is completely different, so any funky stuff like impersonation you might use will be broken. Bad. But without details on the type of server app you're talking about... this is just conjecture on my part.
Sun 25 Jan | Erik Marnung | Thanks a lot guys. Those were the early comments I wanted to have. It is a rather complex (1m loc) business application written in VB5 that uses an Oracle 7 database. We are now scoping for this porting project and no decisions have been made. We will though as a first move assure that the VB app runs on Win2000 and then upgrade the database to Oracle 9i.
"The Office" | Wed 21 Jan | Burninator
I recently made the mistake of watching the first season of The Office on DVD. Dont watch it if you want to maintain what precious little sanity you have left. Its terribly depressing stuff - its practically guaranteed to make you want to resign from your white-collar job immediately. Unlike Office Space which at least features Jennifer Aniston and is funny in places, The Office is unrelenting misery. The effect is kind of like reading too many Dilbert strips in one day. That effect is deliberate - the writers set out to depict the office as an unrelentingly dull prison where dreams are killed and one must work with people that you would ordinarilly flee from. The truly scary part about The Office is that I dont think that the guy playing David Brent (the awful, cringe-inducing boss) was actually acting...
Wed 21 Jan | Philo | My mom and I (both avid Office fans) were trying to decide whether the show was satire or a modern form of farce. It's definitely entertaining, and has some very funny moments, but agreed that there are also parts that will having you squirming in your chair. BTW, if you found the first season unbearable, do NOT watch the second - it gets worse. Philo
Wed 21 Jan | Simon Lucy | Funny Americans... Yes, he is acting.
Wed 21 Jan | A cynic writes | Not only is he acting - he (co-) wrote it.
Wed 21 Jan | Burninator | Oddly enough, I'm not American - I'm Australian. My impression that he wasn't acting comes from the bonus DVD. They included an interview with the writers, one of whom also played David Brent, as someone pointed out earlier. Let me clarify a little: I realise, of couse, that he was playing to the camera to a certain extent and I'm certain he isn't anywhere nearly as bad as David Brent (I doubt anyone could be!). That said though, I couldn't help but get the distinct impression that David Brent's basic behaviour is the actor's own, cranked up several notches. I would be terrified of the prospect of working with him.
Wed 21 Jan | son of parnas | I find it unwatchable. It is so slow and painful. Yet a lot of people like it. My Hero is the best!
Wed 21 Jan | Alison, Dublin. | I agree with Burninator, if you see the interview on the dvd, or indeed see gervaise anywhere else on tv where he is being 'himself', he really does appear to be that obnoxious. this is a shame as, to me the funniest thing about the office is that the David Brent character is completely self deluded and oblivious to how much of a social retard he is. If the actor is actually like that in real life then it's not so funny.
Wed 21 Jan | Nigel | Saw him on Leno, he seemed like a nice enough guy. Maybe his people drugged the coffee though. Philo, if you want to talk about this, I've added my email for ya. Look forward to hearing from you ;-)
Wed 21 Jan | Byron | I haven't seen the DVD extra features, and have only seen a couple of episodes of "The Office", but I would bet that David Brent is *still* playing his character in the extras. It's been done before, and I'd guess that's what's happening here (that's not to say that David Brent has no traits similar to his character, just that you can't tell from the extra features on the DVD of the show).
Wed 21 Jan | jedidjab79 | For those of you who did watch all of season 1 and 2, did you see the final two episodes that aired over Christmas? They really _really_ took quite a twist with David Brent's character ... and of course who can forget Tim and Dawn :)
Wed 21 Jan | Walter Rumsby | *** SPOILER SPOILER SPOILER *** Tim just gives up in the last episode, it's like he rediscovers his self from the 2nd to last episode of the 1st series. I mused over his 'collpase' for a while. Any thoughts?
Wed 21 Jan | Andrew Lighten | I'm another Australian fan of The Office. I don't think that David Brent is the actor's true persona. He was interviewed by Red Symons (774 Melbourne AM) one morning, and I remember him being a pretty funny and entertaining guest.
Wed 21 Jan | John Ridout | He ought to be funny, he's a comedian. ;-)
Wed 21 Jan | Duncan Smart | This is the way us Brits like our comedy: the more squirm-inducing the better. (Has "Fawlty Towers" ever made it beyond our shores?) Anyway - unfortunately decent British comedy is few and far between these days. Most of us would hate to admit it, but the best stuff these days is from the States. I've always thought that it's because American producers have no qualms about employing great big teams of writers.
Wed 21 Jan | Philo | I *love* Fawlty Towers ('Don't mention the war!') As for USian comedy, actually I think the best comedy comes from shows with a good ensemble and a small writing team that the network leaves alone long enough to find their voice. Too much of our stuff these days gets shot in the head after a half-season. :-/ Philo
Wed 21 Jan | Simon Lucy | If you weren't aware of it, the Office has been sold to a US company for development so there will be an american version. Ricky Gervais has said though that they don't really mind what happens to it, they don't expect that much to remain intact. There's a lot of similarity between Brent and Gervais in background but I think he uses that as a starting point. Brent is a wannabee pop star, Gervais had one middling hit. Gervais has had an on stage persona as a git with so much ego he doesn't notice the mayhem around him, but it is a persona. If anyone saw the Match, where he agreed to go three rounds of boxing with another C list celebrity (ok maybe Gervais is B list now) and saw the work he put into that they'd see some of the difference between Gervais and Brent.
Wed 21 Jan | Brad Wilson | 'If you weren't aware of it, the Office has been sold to a US company for development so there will be an american version.' And they're surely trash it badly like they did trying to adapt Coupling. No thanks, I'll take the original. :-p
Wed 21 Jan | www.marktaw.com | And Red Dwarf and.... and... and... Some American's may *get* British humor, but adapting it to American TV is a completely different story.
Wed 21 Jan | Slough Bloke | Not sure if this is any helping in deciding whether or not Ricky Gervais is really a complete bastard http://observer.guardian.co.uk/review/story/0,6903,1106574,00.html And don't forget 'the twins'... http://www.guardian.co.uk/arts/features/story/0,11710,787567,00.html
Thu 22 Jan | Prakash S | Hey I loved Fawlty Towers, also Black Adder, Goodness gracious me, and of course Yes Primeminister.
Thu 22 Jan | John Rose | Oh man.  Now I *really* need to see this.  :-)
Thu 22 Jan | no name | 'Too much of our stuff these days gets shot in the head after a half-season' Dubya puts the lie to that. He is some kind of comedy act, right?
Thu 22 Jan | Better than being unemployed... | The reason _I_ like 'Fawlty Towers' but not 'The Office' is because the former is outrageously exaggerated for comic effect. I can't imagine any bad hotel manager behaving in the way that Basil Fawlty does, running around like a madman, shrieking hysterically at everything, and the 'Manuel Bashing' is pure slapstick. By contrast, I _can_ believe somebody like Ricky Gervais works in an office and looks and acts the way he does - probably because I've met quite a few of them. They're not funny in real life (more annoying than anything else), so why would they be funny on television? I think it's probably in _response_ to people like that that I started reading 'Peopleware' and the like. I suppose Dilbert is closer in its cynicism about life, but that's only three panels, not an entire show, so it doesn't outstay its welcome.
Thu 22 Jan | Simon Lucy | There was a hotelier in Cirencester who was pretty close.  He used to read out the complaints he received in writing to existing guests.
Fri 23 Jan | Couch Pareto. | Why do British series get re-made for a US audience ? Is it really so difficult for the average American to relate to other cultures ? David Brent represents an inflated version of all the little faults that everyone has, that's why he's so uncomfortable to watch. The BBC has been in a period of comedy drought for a while but they seem to have got their surreal Mojo back. If you think David Brent is cringeworthy, take a look at 'Nighty Night' where the protagonist is the female equivalent. It's very funny and addictive and I keep thinking 'please make me stop watching this'. Little Britain is another one in this class.
Fri 23 Jan | Tayssir John Gabbour | I'd guess they want the possibility of a long-running show; I'm assuming there's only two seasons of The Office. Of course, they might just want to have an angsty David Brent played by Jason Alexander, or the secretary played by Pamela Anderson. US tv is probably better than people think, if you don't get shows like the ones on HBO.
Fri 23 Jan | Tayssir John Gabbour | That was ambiguous.  I meant the HBO shows are very good.
Fri 23 Jan | Brad Wilson | Agreed that HBO has the best television available. I'm anxiously waiting to find out whether there will be a second season of Carnivale, which I enjoyed immensely.
Sun 25 Jan | Philo | I'd expand that to 'subscription TV' because we got quickly addicted to 'Dead Like Me' Of course, we also love 'Nip/Tuck' which is on cable... Philo
Sun 25 Jan | Tayssir John Gabbour | You know, I think The Office is both a farce and a satire. Season 1 was more realistic. Then I think season 2 went a bit over the top, having the bottom drop out under David too unrealistically. It started out insanely hard to watch, when he was giving talks to strangers, but there were times when people just went silent at stared at things that weren't that bad. (Maybe I was just desensitized to his character.) As for Tim's collapse... they did weird things with him. He broke up with his girl out of nowhere and refused the job... Sure, there are decisions in life that just come without warning, but it just all felt rushed. Incidentally, I heard Carnivale's coming back for season 2. This can probably be verified somewhere. Same with The Wire.
Dual Monitor display: popup dialogs question | Fri 23 Jan | The real Entrepreneur
Hi, After folks on JoS raved about Dual Monitors, I broke down and got a Radeon 7000. Works pretty slick. QUESTION: If I have an app running on the secondary screen and it pops up some message box type dialog, the dialog shows up on the PRIMARY screen. Very annoying. Any thoughts? Is this just the way it works, or are there work arounds?
Fri 23 Jan | Almost Anonymous | Hydravision (comes with the ATI drivers) solves this problem. But I think hydravision is a crappy prgram. Ultramon is a great program for managing multiple monitors, I don't know how it handles the popup dialog issue (if it does anything at all).
Fri 23 Jan | Joel Spolsky | What OS? The later versions of Windows do a better job of imposing sanity on dual monitor setups. There are, unfortunately, still a lot of applications out there that have written code for window-positioning that assumes one monitor. Specifically they query the screen size and then move their window until they're sure it's on screen. In dual monitor systems, the old screen size functions return the size of the first screen, so the window moves -- from the helpful place where Windows put it -- to the first monitor. (CityDesk has this bug until I got a dual monitor system!) Hopefully when more developers have dual monitors these remaining bugs will be worked out...
Fri 23 Jan | mb | visual studio is helpful. it sticks dialogs in the center of the screen (half on one monitor, half on the other)
Fri 23 Jan | Big B | Another interesting "side effect" arises when you select the screen on the right as the primary monitor with applications that try to create an off-screen window (for handling Windows messages, I suppose)... Fortunately it doesn't happen too often.
Sat 24 Jan | Peter Ibbotson | Sadly you've not got what I call 'true' dual monitor. The matrox cards get this right and appear to XP as two cards (rather than one wide card) in this case you don't need hydra vision and popups/dialogs all work correctly. Actually a few programs that draw their own combo box drop down on screen 0 directly don't but I think that was only office97.
Sat 24 Jan | The real Entrepreneur | Almost Anonymous, Thanks. I found the setting in Hydravision that seems to have fixed the problem, at least with my 32 bit progams.
IE startup page | Fri 23 Jan | Nigel
Ive got my IE startup page set to google.ca (forwarded to from google.com anyways). Every few times that I start up IE though, I get sent to a Microsoft Downloads page instead. Id guess it happens 1 out of 10 times roughly. Anyone else seen this behaviour before? Ive run the latest version of Ad-aware, etc.
Fri 23 Jan | Brad Wilson | Because it's detected that your IE need to patched and/or upgraded.
Fri 23 Jan | Wayne | Go to Tools --> Internet Options --> Advanced (Tab) Look for Automatically check for Internet Explorer Updates and uncheck it. My own start page is a modified MHT of Google.com that resides on my local hard drive. This way whenever I don't have to wait for anything to load or waste bandwidth (even though I'm usually on a T1/Cable). It's useful for on a plane or other situations where the network isn't available though.
Fri 23 Jan | tech support | There is an option somewhere to turn off that behaviour.  I can't remember where off the top of my head, but have a dig through IE options, the control panel or gpedit.msc.
Fri 23 Jan | tech support | Doh! Posted at same time.
Fri 23 Jan | Nigel | Thanks, I'll look into that. I use Mozilla most of the time anyways, but it seemed rather curious.
Fri 23 Jan | .. | While you're in the Advanced tab, uncheck 'Smooth Scrolling' to improve IE's responsiveness a million percent. And uncheck 'Auto-image resize'. And un-check 'Enable folder view for FTP sites'--by doing this, you will speed up your anonymous FTP browsing by an order of magnitude. And go to 'Searching from the Address bar', and disable it. And I set my home page to about:blank. One of the more obnoxious things is portal home pages that take more than a second to load.
Fri 23 Jan | r1ch | 'And I set my home page to about:blank' It's even faster if you start IE with the -nohome argument eg:- 'E:\Program Files\Internet Explorer\iexplore.exe' -nohome (It stops it doing that silly thing where it ends up overwriting what you're typing in the address bar with 'about:blank')
Fri 23 Jan | tekusme | the one problem with the -nohome option(which I use btw) is that you can not access the options.  It's there, you can click on it but nothing happens.
Sat 24 Jan | tekusme | I also turn on "print background colors and images" for WSIWG printouts.
Sat 24 Jan | Kraemer | Also get service pack 2 for XP which is out in beta now. They finally added pop-up blocking in Explorer. Yay.
Date cannot be NULL in .NET | Fri 23 Jan | Annoyed
What was Microsoft thinking with C# structs? You cannot set a struct variable to null! Ive read about a couple work arounds for this and its insane. Use DBDate instead or build some kind of wrapper which hides the date in an object (which just moves the problem down one level). In my sysytem I just ended up keeping the data as a string and converting it when needed (a lot) to see if its a valid date or not. Lots of unecessary complicated coding. VB actually has an advantage here you could use a Variant variable and Nothing to help out. In C# you are screwed.
Fri 23 Jan | Joe | You could use a nullable Date/Time such as System.Data.SqlTypes.SqlDateTime, or the open source version at http://nullabletypes.sourceforge.net/. Alternatively better than keeping it in a string would be to box it in an object, something like: DateTime dt = whatever; object nullableDateTime; ... nullableDateTime = dt; ... if (nullableDateTime == null) { dt = (DateTime) nullableDateTime; } else { // handle null value }
Fri 23 Jan | Gareth McCaughan | What Microsoft was thinking was something along the lines of 'It would be useful to have aggregate types that are value types, implicitly copied when they are assigned, passed and returned, and that don't use any extra space and time for pointer indirection'. Given that, the non-nullability follows immediately. It's not clear whether they were *right* to think that, but it's not as if they arbitrarily decided to forbid setting a struct to null. The prohibition is a consequence of what structs are.
Fri 23 Jan | Dennis Forbes | 'VB actually has an advantage here you could use a Variant variable and Nothing to help out. In C# you are screwed.' C# has the object type which, with RTTI, could be considered the modern variant. i.e. System.Object myValue = (System.Object)System.DateTime.Now; ... if (myValue != 0) { // we are non-null if (myValue.GetType().FullName == 'System.DateTime') { // it's a date! System.DateTime tomorrow = ((System.DateTime)(myValue)).Add(new System.TimeSpan(1,0,0,0,0)); } } How is this any less powerful than a Variant? Better yet if you don't want the overhead of a nullable value you can use the base value type.
Fri 23 Jan | erhan hosca | you can always 'roll your own' ... http://hosca.com/rotor/datetime_8cs-source.html replace the line : public struct DateTime : IComparable, IFormattable, IConvertible with public class DateTime : IComparable, IFormattable, IConvertible
Fri 23 Jan | Robert Jacobson | In addition to the other good suggestions, you could just use a predefined 'magic number' that represents a null value. For example, you could use zero ticks, or '00:00:00.0000000, January 1, 0001,' to represent a null value: if (dt.Ticks == 0) { // the number is null } else { // it isn't } For code readibility/maintainability issues, you could define the magic number with a constant, like 'dtNull.'
Fri 23 Jan | no name | > For code readibility/maintainability issues, you could > define the magic number with a constant, like 'dtNull.' If so, use DateTime.MinValue (which is the default value and unlikely to represent a real date) as your magic number.
Fri 23 Jan | Robert Jacobson | Yup, DateTime.MinValue = 0 ticks = '00:00:00.0000000, January 1, 0001.' Since it's the default value, the advantage of using this is that any unitialized DateTime will automatically be 'null.' IMO, it would be better to declare a special constant to represent this value, just to make the code a bit more understandable.
Fri 23 Jan | Ron Porter | > For code readibility/maintainability issues, you could > define the magic number with a constant, like 'dtNull.' I'm not sure it applies to the current discussion, but aren't 'magic numbers' what caused all sorts of grief for those companies where 9/9/99 was used as a 'magic number' meaning 'null'?
Fri 23 Jan | Robert Jacobson | < I'm not sure it applies to the current discussion... > Absolutely. There's always the danger of a collision between the 'null' value and an actual value. (You could say that my suggestion isn't 'Year one' compatible. ) The trick (or hack) is to pick a number that won't ever be encountered in your actual data.
Fri 23 Jan | HeWhoMustBeConfused | This is an example of why no-one under the age of 40 (?) should be allowed to design a class library. There is a lack of commercial applications development experience evident in most libraries, here is one (rather common) instance. In fact, given that ODBC has a perfectly usable and understandable interface to any relational database, your best option is to forget database class libraries completely, and get as close to the SQL as you possibly can.
Fri 23 Jan | Jeff Watkins | The problem with using the default DateTime value is that it doesn't store correctly in SQL Server. The value that DateTime structs have when you don't initialise them represents an invalid date time in SQL Server. Whenever I stored them, I retrieved a different value. Eventually, I used a magic number against which I compared every DateTime value. If I retrieve a NULL from the DB, I set the DateTime to the magic value. If I'm storing a DateTime, I check it against the magic value -- equal and I store a NULL, otherwise store the value. THIS IS SO INCREDIBLY STUPID. But that's what you get for using .Net. And the SqlDateTime version isn't really nullable. The value can represent NULL; but the value can not BE null. As I recall, you can't write: if (null==someStupidSqlDateTimeVariable) { ... }
Sat 24 Jan | Joe | > The value can represent NULL; but the value can not BE null Why do you want the value to 'be' null? I think you should just get used to using SqlDateTime if you're representing a nullable datetime in SQL Server. 'if (null==someStupidSqlDateTimeVariable)' will give you a compile error so you won't use it inadvertently. What's so hard about using the correct syntax: 'if(someStupidSqlDateTimeVariable.IsNull)'. I really don't see how the VB Variant with its Nothing, Empty, Null values is better than this.
Sat 24 Jan | Jeff Watkins | The reason testing a DateTime value against NULL is important is that it allows you to treat DB values in a uniform manner. For example: object v= if (NULL==v) { } else { } As it currently stands I need to do something like: object v= if (NULL==v || ( && v==NullDateTime.Value) { } else { } If SqlDateTime were at least a class rather than a struct that would help. Instead, .Net tries to solve the fundamental flaw of making DateTime a struct (and thereby non-nullable) by creating another struct that has a flag to indicate a null value. That would be sort of like storing the text NULL in a string instead of simply storing a NULL value. In general I find C# and .Net to be reasonably well thought out, if a little more complicated than necessary; but there seem to be some really fundamental parts that were designed or implemented by people who didn't 'get it'.
Sat 24 Jan | Brad Wilson | 'The reason testing a DateTime value against NULL is important is that it allows you to treat DB values in a uniform manner.' Really? You have no null scalars in .NET. So how do you 'uniformly' test for null ints, for example?
displaying distance between 2 addresses | Fri 23 Jan | Will
Well, this forum is getting a little crowded, but Ill pose this problem anyway... Im building a (inhouse) web-based database app that allows a client to compare one rental property with another. Id like to display the distance between the two properties (in miles). Im looking for an inexpensive solution for implementing this. A web service (which I can integrate with my server-side Java app) would be great. I suspect the more elaborate mapping tools offered by MapQuest, etc. are overkill. Anyone played with something similar?
Fri 23 Jan | Will | a quick comment on my original question... It seems that inexpensive solutions are available to calculate distance between zip codes (based on freely available US census data). http://www.cryptnet.net/fsp/zipdy/faq.html But I'm looking for something that does this by street address if possible.
Fri 23 Jan | Nigel | Are we talking "as the crow flies", or "as the car drives"?
Fri 23 Jan | Elephant | As the car drives, look at Microsoft's MapPoint web service. Don't know much about pricing, but seems like it'd do the trick. You could always write a parser for something like mapquest to extract the data you need.
Fri 23 Jan | Dennis Forbes | Most of the GIS solutions are quite expensive, and while MapPoint (mappoint.msn.com) offers a web service product, the pricing (last I checked) was of the 'how much do you have?' sort. Of course either way you need some sort of GIS lookup as you need to resolve string addresses to locations, and if you want the crow distance there are algorithms to convert longitude/latitude to distances, otherwise you'll have to use the route planning of the tools.
Fri 23 Jan | Will | Re: crow vs car. Preferably direct distance, but driving distance would be reasonable. I thought about scraping from one of the consumer websites (mapquest etc) but I'm sure that's against their usage policies.
Fri 23 Jan | Dennis Forbes | http://msdn.microsoft.com/library/default.asp?url=/nhp/Default.asp?contentid=28001402
Fri 23 Jan | Li-fan Chen | What you really want is a solution that can be broken down into two parts: 1. Geocoding, or translating a legit address into Longs and Lats. Using ActiveX/Com and Mappoint 2004 North America you can resolve such addresses for all 50 states and territories, plus all of Canada. If you buy Mappoint 2004 Europe you should be able to do the same. 2. Distance calculation, there are two general formulas you'll find on the net, the lazy way, and the slightly more accurate way. The lazy way assumes that the Earth is a sphere, the accurate way assumes Earth is what it is, spherical blob of dirt but not quite a perfect sphere. Get one of these formulas and plug both A and B in and get your D. MapPoint is great, but there are licensing implications that make prevent you from doing this. You'll have to check with your corporate lawyers and read all the fine points. Direct subscription to MapPoint Web Services is far from cheap, the price range it is in is entirely inappropriate for 'light lookups'. I heard there are 3rd party intermediates that subscribes to Web Services and resell that service in smaller subscription models friendier towards to the weekend website designers.
Fri 23 Jan | Li-fan Chen | If you think about just how much look ups you have to do (depends on your application).. you may discover you'll do far fewer lookups than you think (to the point of it being feasible for you to walk around town with a GPS). On the other hand, some applications depend perfect lookups. So it really depends on what you are doing for your project. For your project it sounds like MapPoint 2004 North America would be just perfect.
Fri 23 Jan | matt | 'I'm building a (inhouse) web-based database app that allows a client to compare one rental property with another. I'd like to display the distance between the two properties (in miles).' Hopefully, you've already thought of this and were just asking in general terms how to measure the distance between *any* two properties, but based on the text as written a reality-check seems appropriate. Specifically, the client likely doesn't care about the distance between two rental properties since they're only going to live in one of them (unless they're so fabulously wealthy they can afford two homes or they're looking for two places so they can live apart from their estranged spouse). What would be cool is if they could easily answer questions like, 'How close is this property to my workplace/the closest school/shopping center/fire department/etc.?'
Sat 24 Jan | Will | Thanks for the useful tips. Actually, to explain a bit further, my client is a professional services firm that is building a database of properties for use in market studies. A user of the tool would be a developer (the real estate kind) who would be comparing their property with the other properties in the database. One of the criteria (besides the obvious ones of rent, bedrooms, etc) is how far the other properties are from the subject of the study. So I really do need an on the fly point A to point B. After thinking about this and talking to various folks, I think the way to go is to lookup and store the lat/longitude of the property in the database when it is entered and then calculate the distance when generating reports on demand. Searching google for the term 'geocode' was a big help. I also found a formula to calculate distance based on lat/long (assuming a sphere). I'll look harder for the more realistic algorithm. I've found several web services that look like they would work for the geocode lookup. I prefer a web server to an installed tool for compatibility reasons (it's a server-side java web app) and because then I'm more likely to always have recent data. If anybody's interested in the specifics of the solution I come up with (with comparison of vendors, etc) I'd be happy to share once I finish the research. Drop me an email.
MSDN Subscription question | Fri 23 Jan | Andrew Burton
http://msdn.microsoft.com/subscriptions/pricing/default.asp Can somone recommend a subscription package? I can provide details about myself if anyone wants to ask, Well it depends on you; what do you want? However, if no one minds my asking, what has worked for you?
Fri 23 Jan | Chris Nahr | Well, it DOES depend on what you want... I'm subscribed to MSDN Pro which gives me the quarterly MSDN Library updates, ALL development tools including Visual Studio, and ALL operating systems. I'd buy most of that stuff anyway (i.e. Library, VS.NET, current 'Pro' OS) so the price is okay. If you always need the current version of Office, too, you might want to consider the next higher level (whatever its name).
Fri 23 Jan | Andrew Burton | Chris, I'm a professional developer, but my development is almost always done on Linux/Unix systems with Perl or PHP. I'm mostly curious (and I should have asked this in the first post, so I apologize for not doing that) which package someone would recommend for a person who wants to broaden his development horizons by working on a few open source, Windows projects. Thanks.
Fri 23 Jan | Brad Wilson | If you're still deciding whether you like the environment, you have a couple far less expensive ways to go, assuming you already have XP Pro on your box. 1. Download the .NET SDK and do it all on the command line. It's not as draconian as it sounds, since you can use makefiles or NAnt to help your builds. 2. Buy a copy of Visual C# Standard Edition for $99.
Fri 23 Jan | Chris Nahr | Yeah, what Brad said. I like to have the MSDN Library installed on my system but actually you can browse most (all?) of the contents on the Microsoft site, so if you're just exploring Windows development I wouldn't buy any MSDN subscription right now. There's the free SharpDevelop IDE, and most editors have a C#/VB.NET mode now. Or if you want to do Win32 development, the Platform SDK is another free download at the Microsoft website, just like the .NET SDK. The only problem here is that you don't get the C++ compiler -- Borland's free command-line compiler should work, though.
Fri 23 Jan | Zahid | I don't know if this is what Chris meant by the SharpDevelop IDE, but I downloaded Borland's C#Builder product and was quite happy with it. I couldn't find an easy way in the Borland product to look at interfaces exposed in DLLs, so I went online and found a free standalone product called Reflector that does that. With those two tools, I was set with a cheap development environment that might suffice for you.
Fri 23 Jan | Chris Nahr | No, SharpDevelop is an open-source project which is available right here: http://www.icsharpcode.net/ Quite a few people seem to use it but I haven't tried it myself since I'm already using Visual Studio.
Fri 23 Jan | Andrew Burton | Thanks, everyone, for the advice. I'm off to look at Borland now for those free commandline tools -- gotta love that F-word. :) I've got VS.NET 2002 (I think it's the Pro suite, but it's the Academic lisence), as well as the .Net SDK, and MSDN.com is a favorite site of mine. I just wasn't sure if the MSDN subscription was worth getting (as a Microsoft hobbyist/developer). I guess for now, it's really not worth it. Thanks again.
Sat 24 Jan | Gwyn | Don't forget that MSDN ('operating systems' and above, e.g. Pro) gives you a licence to run 10 copies of all the OSes. Plus! A new product Virtual PC 2004 dropped through the door last week... Microsoft's answer to VMWare. For £500 odd/year I get all this lovely stuff (and I can offset it against 40% tax so it's really only £300+/year) And you get to raise TWO free support calls! Ho Ho. I've only used one so far because I don't want to waste them.. I've got another issue but it's already well known and there is no solution... it annoys me that if you raise a support call and it really is a bug in their product that it counts as one of your calls.... (some companies could pay to report a problem that is actually Microsoft's fault which is ridiculous) Incidentally, MSDN (of any flavour) does not give you Office.
Sat 24 Jan | Brad Wilson | 'Incidentally, MSDN (of any flavour) does not give you Office.' Sorry, that's false. http://msdn.microsoft.com/subscriptions/levels/default.asp MSDN Universal comes with Office 2003, Visio 2003, Project 2003, and MapPoint 2004.
Sat 24 Jan | Gwyn | Humble pie being eaten. Yum Yum (I think this must be a recent change to the package - certainly since ~I took mine out 2 years ago).
Sat 24 Jan | Stephen Martin | Sorry Gwyn, I first started getting the MSDN Universal in 1997 and Office was included then.
Sat 24 Jan | Dennis Forbes | 'Plus! A new product Virtual PC 2004 dropped through the door last week... Microsoft's answer to VMWare.' It isn't a 'new product' -- Microsoft acquired Virtual PC about a year ago when they bought most of the technology of Connectix.
Sat 24 Jan | Brad Wilson | I'll give you that it hasn't always been in there. The first version of MSDN I got was 4 CDs. That was back in 1993. Office wasn't included then. No tiers, either. I remember when it got all the way up to 10 CDs, I thought, 'Man, this is insane! 10 CDs worth of content! Who could use all this?' Of course, disc 10 was videos, like the now classic 'Studs: From Microsoft'. I have that disc around here somewhere... However, as the previous poster pointed out, it's been in there a long time. I was roommates with a guy who bought his first subscription around 1996, and it was there then.
Wanted:  15 day Java Tutorial for College Kids | Thu 22 Jan | passing_it_on
Any good resources for independent study? Should be hands-on, and step-by-step. (Either textboook or online format is fine...) And it needs to be on the level of a non-professional programmer.
Thu 22 Jan | the artist formerly known as prince | Learn java in 24 hours?
Thu 22 Jan | SC | Posting this before anyone else does:-) http://java.sun.com/docs/books/tutorial/
Thu 22 Jan | Walter Rumsby | Head First Java from O'Reilly may be what you're after: http://www.oreilly.com/catalog/hfjava/
Thu 22 Jan | Elephant | I learned to program Java from the tutorial link posted. It's not bad, and the whole API is very easy to use online. In my oppinion great documentation for a crappy language. At least Sun got something right...
Thu 22 Jan | FredF | http://www.soldierx.com/books/books.html
Fri 23 Jan | Robert Jacobson | If they're looking for more of a multimedia experience, this might be useful: http://www.aduni.org/courses/java/
Fri 23 Jan | Just me (Sir to you) | The first edition of "Core Java" was very good. I have browsed later editions but it seemed to have gone downhill.
Fri 23 Jan | blargle | Java How to Program, Deitel - gets a lot of good feedback .. ISBN: 0131016210
Fri 23 Jan | Lee | If you're looking for some surface exposure, I used Teach Yourself Java in 30 days (Sams) as a supplement to my college course and got a lot out of it. If you've programmed before and want more meat, Core Java was great. Thinking In Java is good at explaining the 'why' of programming and is available online: http://www.mindview.net/Books/TIJ/
Sat 24 Jan | passing_it_on | Thanks for the ideas.  I'll check them out.  Looking for someting that will "Catch" a young person's mind.  Not a dry syntax book that is appropriate for seasoned professionals.
Extreme Programming Gets Pimp Smacked | Thu 22 Jan | Burninator
Heres a great critique of Extreme Programming, for those who want to see an alternative viewpoint: http://www.jroller.com/page/pyrasun/20040119 This blog has some other good stuff if youre interested in learning the details of aspects of J2EE and transaction processing.
Thu 22 Jan | Sum Dum Gai | Couldn't have said it better myself.
Fri 23 Jan | NathanJ | Although this blogger claims to be against XP I think he is a good example of why XP practices are good. Mike's main beef against XP is that 'his projects' are way too complicated to use XP ideas. The problem Mike doesn't realize is that if he tried to simplify his projects then it might not cost as much to make changes. I've seen a lot of bad architects complain about XP because they don't like the idea of losing a month while everything gets refactored. But the point of XP is not to spend a month doing refactoring. The goal is to refactor in small easy amounts and to always keep the system working.
Fri 23 Jan | Anonymous XPer | Nathanj: Couldn't have said it better myself.
Fri 23 Jan | Crimson | I'm not convinced the blogger understands XP.  He complains about anecdotabl evidence, but when he provides his own (something about all XP projects taking 3 times longer than needed), he doesn't provide any numbers to back it up.
Fri 23 Jan | old fart | 'pimp smacked'? what are we, 12 years old?
Fri 23 Jan | one programmer's opinion | Burninator, Thanks for the link when I have time I will check out what this person has to say. I don't remember the guy's name but I do remember his blog. Last year he wrote '100 reasons why Java is better than .NET' type of post. Two places you might want to check out: http://www.softwarereality.com - has several anti XP articles with comments http://groups.google.com/groups?hl=en&group=comp.software-eng - While the XP guys have their own newsgroup several of them aslo post on this one as well. I posted this URL because about once a month or so you can find a good debate going on between several XPrs and several 'I am not sold' types.
Fri 23 Jan | Tayssir John Gabbour | I could probably cite something from one of the XP books claiming it's not an appropriate practice for large teams that brag of billions of lines.  In fact, by attacking so hard and arguing it's only for toy examples, that critic may be bolstering the XP side.
Fri 23 Jan | Name withheld out of cowardice | I guess I don't understand XP. THis guy, and another mentioned on another thread seem to imply that XP escews planning, and apparently, object modelling (that from the guy on the other thread). Is this accurate? How does that work? I mean what are the programmers to do if they are faced with creating a system in a domain space in which they have zero knowledge such as DNA microarrays? How can they just start programming? Also the blogger referenced in this thread claims that most XP examples focus on the GUI. I have noticed this also in the people who try to sell RAD tools, and that is a prime reason we reject them. Is this the case with XP? I only ask because Philo suggested I check into XP based on one of my previous posts.
Fri 23 Jan | Junkster | Arguably the worst thing about XP is the cult-like attitude it has fostered. All of the XP books say the same thing over and over again, with about 20 pages of real content per book. There's even a 'Questioning XP' book, which is really more justification for XP in disguise (there is also another book about problems with XP, but it's not from Beck's XP series). Overall, there's an excessive amount of talk and justification for XP, especially compared to how little there is to talk about in regard to XP. Has anyone else noticed this?
Fri 23 Jan | Cubist | I've just noticed whenever somebody says they tried XP and it was a disaster cost and timewise for their project, people say "well, then you were doing XP wrong."
Fri 23 Jan | Bob | Why do people who like XP take so much time to get the word out? It's not as if they gain anything by having others use XP. They don't seem to be selling XP tools. Rational, on the other hand, is just trying to sell software. They want as many people as possible to use RUP and buy their stuff. I've used some XP techniques, and left others out. My software seems to work fine. I think this is just like Unix vs. Windows. There are no winners.
Fri 23 Jan | Mikayla | >>Why do people who like XP take so much time to get the word out? That one's easy -- they have a passion for it. Doesn't say a thing about the goodness or badness of XP in general. But if a thing can be done at all, it's the people who are passionate about it who will do it first, do it best. (See Naked Chef vs. McDonald's.) It is interesting to see what structure and patterns result from the overriding goal of simplicity. They do seem to have defined practices that support one another and support that goal. Sometimes it works, at least, and studying the times that it doesn't is also interesting.
Fri 23 Jan | matt | >> I've just noticed whenever somebody says they tried XP and it was a disaster cost and timewise for their project, people say 'well, then you were doing XP wrong.' This comes from their inability to acknowledge that development process play only a small part in a projects success. Process pushers like to think they have all the answers--along with the books, seminars, and tools for sale to implement those answers. You can't sell all that stuff if you admit your process is nothing more than a few suggestions that might be useful in some cases.
Fri 23 Jan | Buddy Noone | The oh-so-most-honorable 'old fart' wrote: 'pimp smacked'? what are we, 12 years old?' No, we're middle-class, suburban white guys just trying to be hip...and failing.
Fri 23 Jan | Burninator | Buddy, you're absolutely right. As a hipster, I'm a complete, and utter, unmigitated failure. Thank goodness for that. If I do start becoming hip, you have my permission to deliver swift, well-deserved justice. I chose the title because I felt my original title was perhaps a touch too long: Mike Spille, 'Extreme Programming', and The Oppressed: Assimilating Discursive Essentialism Violating, Colluding, Building: Spirit in Mike Spille and the Random Voices of Sexuality in 'Extreme Programming' And also because I just like saying 'pimp smack'.
Fri 23 Jan | Buddy Noone | Burnie (can I call you 'Burnie'?), It's all good. The first step in dealing with your lack-of-hipness-problem is admitting you have a lack-of-hipness-problem. Take heart, my friend, and be of good cheer, as recovery is a long journey that begins with a single step.
Fri 23 Jan | NathanJ | -- I've just noticed whenever somebody says they tried XP and it was a disaster cost and timewise for their project, people say 'well, then you were doing XP wrong.' -- I've seen authors site studies that 50% of projects run late and are overbudget. If you're doing XP wrong and it turns into a disaster you can't blame XP. It is just like a diet. If I am on a diet except that I eat an ice cream sundae every day for dessert then I'm not really on the diet.
Fri 23 Jan | MatthewZ | It depends on the ice cream you put in the sundae. If it's low-fat, then it should be ok, diet-wise.
Fri 23 Jan | Me | >Why do people who like XP take so much time to get the word out? I attended a meeting where a RUP guy epsoused his method (he was a salesman) and a developer espoused XP. My impression was the developer liked a system where he just doodled. XP seemed like a system where it was over when it everyone agreed they could not make any more changes, perhaps owing to time or money or boredom or frustration or whatever. I get the impression a lot of developers say they are using XP when they are just using nothing (CMM 1). Why? because they t reckon they should use some system and they haven't ever recognized they are using the 'stream of consciousness' method so they grab a method they think is as close to that as possible.
Fri 23 Jan | Bill Tomlinson | Eh, XP backlash is so 2003. Can we move on to the XP backlash backlash now?
Fri 23 Jan | mb | eh? what does low fat have anything to do with ice cream being good or bad? if calories in (calories, not fat) are higher than calories out, you'll lose weight. just like methodology--if you switch over to some better method, and double your speed, but the boss still imposes a time limit less than required, you may get closer, but you'll still 'fail' the project. even without the fat.
Sat 24 Jan | Philo | I guess what I like about XP is that it's a counterpoint to the 'we must have fifty volumes of specs and know the answer to every question before we start' camp that think there are these huge chasms between requirements and design and design and development (and to contemplate crossing a chasm too soon is surely death!) I like agile development, I like iterative design. I think they are the most successful methods for *any* software project (mind you, on larger projects, the loops may be bigger). And so I use 'XP' as shorthand for 'agile development and iterative design.' But I agree that XP types can definitely be zealots, and obviously that then creates anti-XP zealots. [sigh] Philo
Sat 24 Jan | gunga | I find it fascinating that software developers have so much difficulty having rational debates. Saying that XP proponents are to vocals or are zealots may be true, but it doesn't give us more information on the validity of XP as a practice. The linked article isn't really interesting, the author's main argument is that he feels XP advocates haven't work on large project. It's not difficult to find it's false. And the main mistake is dismissing a proposed set of practices on a theoretical basis. I'm not here to defend XP or agile methods, but they are practices you have to experiment with them to make a valid judgement. Test first design for instance is really so counter intuitive that your opinion is irrelevant if you don't make the effort to try it.
Sat 24 Jan | veal | Qualifier: I'm not an XP practitioner, but my values strongly align with the XP values, and would lose no sleep setting aside my own approaches to work in a strict XP shop if necessary. So... 'Why do people who like XP take so much time to get the word out?' Passion, yes. But also because once you've learned how to write software well, once you've disabused yourself of the ridiculous notions that ISO/SEI gibberish has any value and that drawings and documents are an indispensable step, you lose all tolerance for the idiotic process nonsense and role-segmentation and endless hesitation that goes on in most organizations. So if you think you'll ever want another job or want to move to a new city, it would help if the rest of the world got a clue too. Need I mention the morality of helping your fellow humans break their shackles? The 'you must have done XP wrong' sentiment is a necessary element of damage control. Most organizations will screw up any development effort regardless of process, because their talent and skill levels are abominable, so the XP camp can't (and shouldn't) let those disasters incorrectly reflect upon their approach. Throwing a dozen copies of 'Embrace Change' into a cage at the primate house of your local municipal zoo will not produce great software quickly, and yet this picture isn't too far removed from much of the anecdotal evidence provided by the entrenched BDUF camp. To any programmer reading this... if you don't do XP, you can still be OK, but you really should take the few hours to read 'XP Explained: Embrace Change' (and perhaps address the deeper problem of why you hadn't at leasst read it already). But if you aren't already doing most of the XP things like very small releases, constant refactoring, and thorough automated programmer-written unit testing, then you're probably doing things very badly. You're probably missing deadlines often, wasting time stepping through code in a debugger, tracking down obscure bugs in the field, working tons of unpaid overtime, sitting through endless meetings, rewriting and rewriting pointless specifications that mysteriously :-) didn't account for something discovered during 'coding', etc. (Did I really need to spell out the whole litany?)
Sat 24 Jan | veal | Oh, and I must concur with the mentions about the even more important explanation of the 'you must have done XP wrong' sentiment... It's very common out there: many people have taken **what they've heard** about XP (versus what it really says) as a sanctification of loosey-goosey discipline-free noodling. XP is very disciplined, as are all the major agile approaches. The most egregious example I'd seen first hand was a team who literally *called* what they were doing XP, while not a single team memberso much as glossed even the Beck book, nor did any of them follow a *single* of the 12 XP practices. They simply skipped all the process their company required, programmed haphazardly (and incidentally without skill), and failed miserably. They would have likewise failed following the company's sanctioned ISO-style process, but now their failure is attributed to XP in that company, which verges on criminal.
plain text passwords over HTTP | Thu 22 Jan | Jordan Lev
Hi. I am playing around with the whole content-management-via-php-and-mysql thing. I have been trying to wrap my brain around the concept of having users log in securely (using PHP sessions). The common wisdom on logging in securely seems to be that the user enters their name and password via an HTML form that POSTs this data in plaintext to a php script on the server. Then this script encrypts the password with md5() and compares that to a password that is stored in the database under that username using the same md5() encryption. If these hashed strings are equal, then its the correct password. That seems simple enough, but I am thinking that the password being transmitted over the wire in plaintext kinda defeats the whole purpose of having them encrypted on the server in the first place -- if a hypothetical person with malicious intent could see this POST data, they would have the user name and password in plain text! Am I missing something here? Would one have to use SSL (https://www....) to be totally secure in this context? (I am only familiar with php at this point, but I assume the same principles apply to asp, perl, etc.) Thanks everyone.
Thu 22 Jan | mhp | Here's one way around that scenario: 1. Users requests logon form which is generated by the script on the server. At this time, server creates random number and puts it as a hidden variable in the form and remembers this number is associated with this IP. 2. User enters password on web form and javascript code encrypts the random number using the password as the key for the encryption. HTML page then just transmits encrypted random number. 3. Server receives encrypted number and computes its own encryption based on the original number using the real password. If they match, login is successful. The downside here is the server needs to know the real password. So it can't be stored encrypted.
Thu 22 Jan | Ram Dass | mhp: Could the passwords on the server also be stored in an encrypted manner? When a compare is needed - the passwords stored can be decrypted to do a match. Will this be feasible?
Thu 22 Jan | SC | > if a hypothetical person with malicious intent could see this POST data, they would have the user name and password in plain text! Actually, even if the data wasn't in plain-text, it would still be dodgy. For example, imagine a scenario where you apply the md5 hash client-side, say in JS, and send over the hashed password. It's fine you think, nothing is plain-text. A malicious person intercepts this hashed data, produces their own client i.e. page that sends this hash. If this hash is the only source of verification, then the malicious user can login without necessarily knowing the password as the security data i.e. the hash is the same. SSL, however, would handle this issue.
Thu 22 Jan | SC | >SSL, however, would handle this issue. ... as would mhp's solution.
Thu 22 Jan | mb | .. which is a variant of Digest authentication. Which unfortunately doesn't work very well.
Thu 22 Jan | mb | (that is, the current web brwoser client and server implementation is hard to use. doing it yourself in jscript should work fine)
Thu 22 Jan | GersonK | mhp - what happens when the user is on a client farm (a la AOL or earthlink) and are unlucky enough to have a different IP send their POST than sent their GET? How about associating the random number with a GUID that's also sent to the client (and back again) to look up the random number when the post arrives?
Thu 22 Jan | Dennis Atkins | The whole system is intrinsically insecure and nothing can be changed to fix it. There is no such thing as privacy or secrecy on the internet. Or even on a desktop computer isolated from all networks. If you act as if everything you do is being monitored by nefarious elements, you'll be fine.
Thu 22 Jan | Dignified | 'How about associating the random number with a GUID that's also sent to the client (and back again) to look up the random number when the post arrives?' But then it's the same problem. The attacker has the encrypted password, the GUID & the Random Number. Everything to impersonate the original person again. Associating with the IP is what made the original solution 'secure.'
Thu 22 Jan | mhp | Not really.. associating with the IP is no more secure than the GUID. The hacker could spoof the IP. But just do this... Once the GUID is used, the random number associated with you is deleted from the db. So then when the poser hacker comes back later posing as you, with your encrypted number and the GUID, its no longer in your database.
Thu 22 Jan | Dignified | 'The hacker could spoof the IP.' Which is exactly why I had the 'secure' in quotes. ;) I see no problem with your deleting-random-number-after-GUID-use, but I am not a security buff by any stretch of the imagination.
Thu 22 Jan | Jordan Lev | I am trying to keep things as simple as possible; so it seems that SSL is the way to go. I'd like to avoid using javascript, and passing random numbers back and forth seems like it's just adding complication which could cause unforseen holes in the future. But I must say I am impressed with your crafty-ness, mhp -- using the password as the encryption key! Thanks everyone.
Thu 22 Jan | mhp | Me neither.  I'm sure there's a flaw.. I just remember that's how BlitzMail used to do it when I was in college (I think) and it's been in use for a LONG time.
Thu 22 Jan | mb | the question is always what you're trying to secure against. if you hash the password every time with a different key, it's difficult for the man in the middle to decrypt it, and if they key is valid only once, they can't replay it either.
Thu 22 Jan | Philo | Out of curiosity, are there a lot (or any) documented cases of this being done? I'm not trying to say 'don't worry about it' - I'm just honestly curious. Philo
Thu 22 Jan | another screen name | Yahoo! uses some guy's free javascript crypt implementation: http://pajhome.org.uk/crypt/md5/ view source on http://mail.yahoo.com/
Thu 22 Jan | Dennis Forbes | While I think the IP attached process would be fundamentally broken (because a lot of people are behind mega proxies, and have a different IP on each request), I think the possibility of IP spoofing is vastly overblown -- You can easily spoof the source on UDP packets because it's a one way transfer, but unless you're on the upstream ISP of the destination, it's pretty much impossible to spoof an IP over the connection-oriented TCP -- packets have to return to you to continue the conversation, and obviously the infrastructure will route them to the actual IP address.
Thu 22 Jan | Brad Wilson | And, let's be honest: if you have the power at someone's ISP to inspect, inject, redirect, and halt packets, then it seems like a man in the middle attack is much easier anyway.
Thu 22 Jan | SC | Do they really have to associate the random number with a given ip, guid or even computer? Associate it with a given time frame i.e. rand number was issued and valid for a fixed amount of time, and invalidate it when used.
Thu 22 Jan | dir at badblue dot com | I second the "can't use an IP address".  I've been burned by the mega-proxies myself... the IP of an AOL user, for instance, will vary _while_ a page is being fetched (e.g., images on the page).
Thu 22 Jan | T. Norman | If the passwords are for something fairly inconsequential, like identities on a message board, just do the plain text and don't worry about it. Still, do store hashes on the server, because it is easy to do, and attackers would only have a window of a couple seconds to intercept the password over the Internet. Whereas having it stored on a server leaves it exposed for days, weeks, or months. If the passwords are for something that really matters, use SSL.
Fri 23 Jan | Eric Lippert | As a general rule: do NOT attempt to roll your own encryption or authentication scheme. The people who design and implement crypto and authentication are experts who have deep knowledge of attack techniques and ways to mitigate them. You WILL make mistakes and you will implement an insecure system. (Mike Howard jokes that people who try to implement their own security systems end up writing encraption algorithms...) There are cheap, standardized, heavily tested, robust systems available 'off the shelf'. Figure out what your security needs are, figure out which off-the-shelf solution meets your needs, and use the right tool for the job. That will be much cheaper and safer in the long run.
Fri 23 Jan | Jordan Lev | Eric, I am most definitely *not* a security expert, and I wholeheartedly agree with you that it is best to use what's already out there and proven. Could you please share with the group your experience with any off-the-shelf systems that you've used or come across? I know I know, 'right tool for the right job', but what are some tools you've used and for which jobs? [This same question goes out to everyone, of course]. For my job here, it's a VERY simple website for an artisan to show off wares, which are updated very infrequently. Money will be handled via paypal, so we don't need super-tight security. Based on the comments on this board, I am thinking that the plaintext password, hashed in the database, will be 'secure enough'. Thanks again everyone who replied.
Fri 23 Jan | Richard P | I suggest using SSL if possible, if only just for the fact that [some of] your users will feel more comfortable seeing the little "secure" icon in the corner of their browser.
Fri 23 Jan | Eric Lippert | What I find helpful is to list the _threats_ and the _vulnerabilities_ -- that usually clarifies what the problem actually is. Let me give you a real-world analogy. I've got this old house with a TV in it. What are the security threats? Bad guys who want to steal my TV are the threats. What are the vulnerabilities? The windows, the doors, the locks, the housemates being careless with their keys... OK, now that I know what the threats and the vulnerabilities are, what tools decrease vulnerabilities and thereby mitigate threats? Better locks. Stronger windows and doors. Attack dogs. Alarm systems. Cameras. Insurance. A well-funded police force. Note that the mitigators prevent (locks), detect (alarms) and clean up after (insurance) attacks. OK, now that I know what the possible tools are, I can evaluate the cost of the tool vs the cost of the thing I'm protecting. It makes no sense to spend $1500 on an alarm system that protects a $500 TV. In your case, what are the threats? Do the attackers want to impersonate users, steal data, corrupt data, trick users into thinking they're using your site when in fact they're using someone else's site, what? How is your site vulnerable to those threats? Once you know what the threats and vulnerabilities are, you can start evaluating solutions. SSL mitigates eavesdropping, spoofing and replay attacks. Password systems mitigate 'bogus user' attacks. Auditing systems help you discover attempted or successful attacks and track down the culprits. Backup systems help you get back online quickly after a successful attack. Once you know what the tools are, you can evaluate their costs compared to the value of the stuff you're protecting.
Sat 24 Jan | gunga | Why does everyone says Digest authentication doesn't work in these discussions? It seems to work: http://www.cafeconleche.org/news2004.html (Saturday, January 10, 2004)
Sat 24 Jan | mb | 3 reasons for using custom stuff in the browser (e.g. username/password field on an HTML page over HTTPS): 1) not all browsers support digest auth correctly. 2) not all server environments let you access any HTTP authentication information easily (basic, NTLM, digest, etc.). 3) not all users like the HTTP authentication user experience (typically some sort of password dialog box thrown up by the browser).
Sealed Classes C# | Thu 22 Jan | Nathan
Does including the override keyword in front of a method allow you to inherit from a sealed class? Ive included the two examples from ms-help: Java: class myPoint extends Point { public String toString(){ return myPoint; } } Equivalent C#: class myPoint:System.Drawing.Point { public override System.String ToString(){ return myPoint; } } In my classes that are trying to inherit from a sealed class (OleDbConnection), can I just put override in front of each method? Is it as simple as that?
Thu 22 Jan | Dennis Forbes | No you can't derive from a sealed class. It's sealed.
Thu 22 Jan | Nathan | Dennis - that's my understanding as well. So why does ms-help say that using the override keyword makes it equivalent code? I guess they're just showing an example of what you can't do?
Thu 22 Jan | Dennis Forbes | What precisely does the help say that is misleading you? Override is used to declare, well, overrides of inherited virtual class members, but you can't inherit class members if you can't derive from the class in the first place.
Thu 22 Jan | Nathan | It says to correct this error (The class is marked as sealed) examine your code and determine how best to convert the class. Then it gives an example of Java code that extends Point. Then it gives 'Equivalent C# Code' that attempts to inherit from Point. I see now it's not an example of how to fix it, it's an example of what's wrong. Thanks.
Thu 22 Jan | Brad Wilson | Sealing a class means you can't derive from it. Sealing a method means you can't override it. That's pretty much it. There's no way around the rules that I've ever heard of. The 'override' keyword is for virtual methods, not sealed methods (or classes).
Thu 22 Jan | Dennis Forbes | As a sidenote, it's a real PITA that Microsoft chose to seal some of the data classes (i.e. like the poster I wanted to derive from a connection object to hold some additional connection state information), and I've yet to see a reasonable explanation about why they limited flexibility in such a way.
Thu 22 Jan | Brad Wilson | There's a school of thought that says you should spend time explicitly thinking about the impact of what happens when your class becomes a base class. The means, no 'protected' or 'virtual' until you fully understand the implications. One could argue that sealing a class is part of this school of thought. I'm not saying it's right, but giving a possible explanation.
Thu 22 Jan | Chris Nahr | When a library class is 'sealed' there's likely so much black magic going on inside that you wouldn't be able to derive your own class and actually get it working. To test this theory, you could just grab Reflector and study the class in question.
Thu 22 Jan | Just me (Sir to you) | I think the team does follow the "sealed by default" philosophy.
Thu 22 Jan | SpacemanSpliff | http://www.sellsbrothers.com/news/showTopic.aspx?ixTopic=411
Thu 22 Jan | somebody | They sealed way more things than I would've liked.  I've ran into this limitation a few times.  My guess is that they sealed so many either because the interop code in the background didn't allow for the flexibility of non-sealed or they benchmarked and found that the sealed classes performed sufficiently better to warrant losing the flexibility.
Thu 22 Jan | Eric Lippert | Rather than following up here, I'll post a blog entry about this later today. See http://blogs.msdn.com/ericlippert.
Thu 22 Jan | Dennis Forbes | Note that Eric' comment got the trailing period included in the link (damn unlicensed Fogcreek programmers!), so prune it off. i.e. http://blogs.msdn.com/ericlippert Hrmm....I wonder...recursive link... http://discuss.fogcreek.com/redirect.asp?http://blogs.msdn.com/ericlippert
Thu 22 Jan | Eric Lippert | Whoops, sorry about that. Let me give you a future-proof link as well: http://blogs.msdn.com/ericlippert/archive/2004/01/22/61803.aspx
Thu 22 Jan | mb | eric-- you mention a bunch of good points, but some of the comments on Chris Sell's blog raise another good point: why do so many framework methods handle only objects of a particular class, not those which handle a particular interface? the only thing you mention which strongly applies is security, though apparently you can trick the system into believing your CFooEvil class is in fact a CFoo class, so that's not necessarily valid. was there some lesson learned from COM (everything should use an interface) which made people turn the other direction?
Thu 22 Jan | coresi | 'only someone with the MSFT private key can subclass it' eric How exactly is this implemented?
Thu 22 Jan | Dennis Forbes | Thanks for the great summary, Eric, but I must take issue with quite a few things you've stated. 'Typical developers say 'IS-A-SHMIZ-A, I just want to slap a Confusticator into the Froboznicator class'. That developer could write up a hash table to map one to the other, but then you have to worry about when to remove the items, etc, etc, etc -- it's not rocket science, but it is work.' No, most typical developers thinks OOPishly, and maybe there is a connection specific attribute that they'd like to correlate with each connection, so now they want a MySqlConnection that subclasses SqlConnection with the addition of the new property (and of course classic connection recipients can use it polymorphically without change -- this was precisely what I wanted to subclass it for). This is _absolutely_and_ postively_ the whole foundation and purpose of OOP, so claiming that it's some sort of lazy way out just sounds, well, weak and contrived as some sort of last ditch defensiveness. I know that you're exaggerating, but I'd bet that the vast majority of 'irritated that it's sealed' attempts at using framework parent classes were for academically and logically correct OOP reasons, rather than the crazies that want to stick a bunch of crap in that you imply. Regarding testing and stability, that too seems like a weak defense -- Obviously if someone subclassed your class, their class is only going to be created explicitly (it's not going to invade the system). The security claim is a grand hand waving 'these are not the classes you are looking for' distraction, but explain a scenario where this would risk security in a properly designed system? I can think of a lot of _hacks_ where it would break the fragile stability of the system, but not a single credible scenario (speaking of hacks, there are hacks out there to unseal classes in the IL...I hope you aren't seriously claiming that sealed is a security defense). Sorry if this is a bit strong, but I took issue with the claim that it's the grand tradition of OOP that drives the use of sealed, and it's lazy, non-OOPish programmers deriding it. I think you flipped the roles.
Thu 22 Jan | Eric Lippert | > was there some lesson learned from COM > which made people turn the other direction? That's a big question which I'm not really sure how to answer. It's sort of an 'apples vs. oranges' thing -- obviously COM was designed to be compatible at a binary level with C++ style implementation inheritance. Can you rephrase the question?
Thu 22 Jan | Eric Lippert | > How exactly is this implemented? Do you mean 'how do you create a class that cannot be subclassed except by people with a certain key?' See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconInheritanceDemands.asp Or do you mean 'how did the CLR security team implement inheritance demands in the framework?' I don't know -- I've never read that particular bit of the source code. You could find the Rotor source code and see for yourself I suppose...
Thu 22 Jan | Eric Lippert | > No, most typical developers thinks OOPishly Perhaps your definition of 'typical' is different than mine. I'm basing my comments on the rather large amount of research we did into how VB6 developers, script developers, web developers, etc -- who outnumber Java, C# and C++ developers by a rather considerable margin -- use developer tools. If you want to limit 'typical' to professional developers with CS degrees and/or lots of industry experience with OOP languages then sure, I'll agree with the tautology that OOP developers frequently use OOP techniques. OOP-savvy developers are atypical in my world. My developer customers are the guys recording macros in Excel and then tweaking the recorded VB. > explain a scenario where this would risk > security in a properly designed system? I'm not exactly sure what you're asking me to do here. In my opinion, a 'properly designed system' is one in which one can reason about behaviour of security-sensitive data based on type information. If you're asking me to give you an example of a system which has holes that can be mitigated easily by sealing classes, that I can do. If you're asking me to give an example of a system that has holes that can be mitigated ONLY by sealing classes, that I cannot do. I intend to do a blog entry at some point on security issues surrounding unsealed classes, so stay tuned.
Thu 22 Jan | mb | > was there some lesson learned from COM > which made people turn the other direction? COM says, 'everything must be accessed only by interface'. (or so I believe) i mean, sure, you can write a program which will take in a string and always cocreate a particular class (clsid) and initialize it with a string (or moniker), but generally when an object needs another object, it requires a particular *interface* (abstract type), not a *class* (concrete implementation derived from this type). There's lots more to COM than that (things like the binary structure of what an interface is, or how particular well-known interfaces work, etc), but this is the relevant aspect of it for this discussion.
Thu 22 Jan | Sum Dum Gai | I've got to say that I think that the .NET team took things a little too far in one direction. It's a reasonable decision to seal a class if you don't know how deriving from it is going to work. While I don't agree with the decision, I can at least understand the rationale. However, if you do that, you should think about having methods that use that class take an interface, not a concrete class. That way, if someone want's to write a wrapper class that lets them keep their state information with the database connection, they can do it. I admit this approach has issues too (runtime overhead of using interfaces, and wrapping stuff is a PITA). However, database access would seem to be a reasonable place to use it (the overhead of your SQL query is almost certainly going to dwarf the overhead of the extra indirections for interface calls).
Fri 23 Jan | Eric Lippert | Indeed, I have often myself wondered why the designers of particular portions of the framework chose to define base classes instead of interfaces. 'Stream' is an abstract base class, and lots of methods take Stream objects as arguments. Why isn't it an interface? Compare that to the myriad collection interfaces -- IList, IEnumerable, etc, etc. With the collection interfaces the framework provides base class implementations, but most of the methods take interfaces, not base class types. Now, let me go on the record right now as saying that I didn't design any of this stuff -- I'm just making some educated guesses here. Take 'em with a grain of salt. What strikes me first with Stream as a base class rather than an interface is that this guarantees that _all_ stream implementations are MarshalByRef. It seems reasonable that the framework class library should _insist_ that streams (which after all, could be used to marshal serialized state around) should be agile with respect to appdomains. Collections on the other hand do not have any such deep implementation constraints. And furthermore, there are so many different ways to slice and dice a collection, it makes sense to have a panoply of interfaces which you may or may not choose to implement on a particular collection. Interfaces describe 'I can do' contracts. Base classes describe 'I am a' contracts. I have not done a thorough review of the framework class library by any means, but I strongly suspect that if I did, we'd discover that many of the extensible base classes are extensible classes rather than interfaces because at a low level, the framework depends on knowing what a thing IS, not what it CAN DO. All the reflection base classes, for example, actually have implementations tied deep into the internals of the type system. Someone asked about lessons from COM. Here's one: as a guy who has debugged OLE Automation code far more than any mortal ought to, I know that there are reasons why so few people implement their own ITypeInfo, IDispatch, etc. It's _ridiculously_ difficult to do right. The underlying work of implementing a general-purpose late-bound type system is just too hard. That's why OLEAUT provides so much goo to provide default implementations of these interfaces that you can then use -- in COM, a static constructor function is the closest thing there is to a base class implementation of an interface. Now, don't get me wrong -- subclassing the CLR Type class is no picnic either. See the doc if you don't believe me. But it is orders of magnitude easier than implementing a generalized ITypeInfo from scratch. Now consider the care with which the Type object had to be designed and implemented insofar as its extensibility features were concerned. That was not cheap or easy, but its worth it because a type system extensible by third parties is a _core_ CLR scenario. Could we apply the same care to every class we implement, even the ones that are nowhere near 'core' scenarios for extensibility? Sure, we could -- and we could ship the CLR a couple years later because of it, or nglect other important features. It's an old story. Every possible feature a developer could want, high reliability, ships on time -- pick any two but you don't get all three! The framework designers focussed on the last two and I think that was a good choice. The simple fact is that software of this magnitude is _insanely_ complex. OOP design was invented to MANAGE complexity, not INCREASE it. Sealing classes that don't need to be extensible, and using base classes instead of interfaces are both techniques for managing complexity by decreasing the number of potential usage scenarios that must be designed for and tested. That's the kind of pragmatism we've got to have to ship any code at all. I think that's a pretty reasonable set of reasons, but hey, you guys are welcome to disagree if you still think I'm grasping at straws.
Fri 23 Jan | Brad Wilson | So then what is the justification for "Control" and "Page", instead of "IControl" and "IPage" in ASP.NET?
Fri 23 Jan | Eric Lippert | I haven't the faintest idea what the specific design criteria were -- heck, I've never written an ASP.NET page more complex than "hello world".  You'll have to ask someone who designed that class library.
Sat 24 Jan | coresi | Thanks Eric, very useful link. I have to admit that it is the first time I hear about ‘Class Inheritance Demands’.
Robot Scientist Created; Robot Developers Soon? | Thu 22 Jan | anon
888 From CNN: Researchers create first robot scientist http://www.cnn.com/2004/TECH/ptech/01/15/robot.scientist.ap/index.html British scientists say they may have invented themselves out of a job. A new robotic system they developed can, for the first time, independently design and carry out a genetics experiment, and then interpret the results. * * * * * * * * * * * * Question: If weve got automated systems that can design & carry out genetic experiments, how long before they can do our jobs? Forget the US, India, and Eastern Europe, will the worldwide IT industry soon be outsourcing human jobs to Rusty the Robot?
Thu 22 Jan | Philo | IMHO, this is an exceptionally bad move performed by someone with no vision. Remember that most scientific discoveries are preceded by the words 'that's funny.' Well, a robot won't be saying those words, will it? It'll just discard the sample, tag the results as 'discarded' and move on. Maybe I'm just technologically Amish. :) Philo
Thu 22 Jan | fw | Why do people always do this. Tomorrow when you see the next hype of the week you'll run and say 'Panda trained to rip off birds head on demand! Will he be taking the jobs of indian programmers soon!?!?!?!?'
Thu 22 Jan | M | Robotic programmers? Cool, does that mean we will be such an advanced society that we can all live a life of leisure? …I mean, that’s the point right? All this technology and we work fewer hours right?
Thu 22 Jan | Name withheld out of cowardice | Until the robots realize they have all the power and make us their slaves. On a more serious note they may have created a robot that can automate an already defined set of tasks. What the robots cannot do is figure out new tasks outside of the original parameters.
Thu 22 Jan | pdq | I already have a robot programmer. It's called Cut-n-Paste.
Thu 22 Jan | unemployable | Congress is aware of this, and has accepted campaign donations from large corporations to start legislation on the new H1-R visas.
Thu 22 Jan | no name | Dis-inhibition of the zeroeth law in any positronic based intelligience would constitute a felony. Their leader is in a cave on the moon... in case anyone's interested.
Thu 22 Jan | www.marktaw.com | Robot Developer, make me the killer app. (6 months later) AHHH! HELP MY COMPUTER IS TRYING TO KILL ME!!!!!!!
Thu 22 Jan | no name | 'Accurate technology news without a hint of wild sensationalism on a corporate news website.' Yeah, like that's going to happen in the real world.
Thu 22 Jan | Dennis Atkins | I for one welcome our new robot masters.
Thu 22 Jan | Kevin | This is fitting, and from America's finest news source, nonetheless: http://www.theonion.com/4003/top_story.html
Thu 22 Jan | S. Tanna | It sounds to me like automation of a basically repetitive/iterative process That doesn't sound a lot different from car making robots Or for that matter a clothes cleaning robot (washing machines) If you're worried about machinery doing this kind of process we need to go back to the 16th century, as it's been doing this kind of job ever since at least then. Somebody wake me up when robots starting doing creative processes. I suspect I'll have a very long sleep.
Thu 22 Jan | luddite | 'The robot scientist uses a type of reasoning called abduction.' Robots are kidnapping our women and children! When will the madness end?
Fri 23 Jan | Skynet | Nothing to see here folks, just move along.
Sat 24 Jan | no name | >> That doesn't sound a lot different from car making robots Or for that matter a clothes cleaning robot (washing machines) << The above both involve more of a mechnical work with more of repetitve nature, where as programming is purely intellectual. can both be compared..?
Sat 24 Jan | anon | >> 'Somebody wake me up when robots starting doing creative processes. I suspect I'll have a very long sleep.' Somebody wake me up when business app developers start doing creative processes. I suspect you'll be up before me.
Sat 24 Jan | T. Norman | Grad students are much, much cheaper than any robot.
Files in the DB | Thu 22 Jan | Eric Debois
I havent yet dealt with tucking binary data into a DB. I have always favoured uploading the files to a plain folder and storing the paths in the DB. Now I got a CMS type job where the client kind of assumed that the images (and assorted files like PDFs) would go into the DB. Should I talk them out of it and go with the approach I know, or put the files right into the database like they seem to want? (DB engine will probably be MySQL since they already have servers up and running (albeit not very well kept.. see my last post, same client). This is a stand alone thing though so I guess I could talk them into using another db for this.) Thanks
Thu 22 Jan | M | There is really only one way to do this. Test, test, test! Take the files they want to manage with a DB. Make sure you have full representation of file sizes expected (and some big ones). Load up the DB with a ridiculous number of these files. Run some load tests on your setup and provide the results to management. For smaller files, some DB's do well, but there seems to be a breaking point where life goes sour.
Thu 22 Jan | Eric Debois | Yeah, I was planning on doing some testing, but I wasnt sure it was even worth bothering with. Tell me.. when things go sour, how sour do they go? Occational ful stops are kind of acceptable, but messed up data is a total no no.
Thu 22 Jan | M | We have found slowness in retrieving the larger files and bringing that session to its knees. This isn't entirely unreasonable, but the file system was a better fit for our particular needs. I would say data reliability will not be a problem from the DB.
Thu 22 Jan | matt | I haven't used MySQL for this, but I've used other database products and haven't had a problem storing a lot of binary files in a database. I've heard that if you're just storing files, and not removing them, then it isn't really a problem. If you do a lot of removing/changing files, though, it's better to just store their paths.
Thu 22 Jan | Sassy | I deal with a 16GB SQL server database of binary data on a daily basis. It's nearly unmanageable. For the simple CRUD-style apps, everything seems to work fairly well, but for anything more complicated - backups / restores, replication, etc... it's a nightmare. Save yourself the trouble and use the filesystem for the one thing it was made to do. Use the DB as a metadata store only.
Thu 22 Jan | Philo | I've done the path thing and the blob thing. The one thing I can tell you is that the blob thing can save you a couple of weeks of testing and debugging because you have no path or permissions issues. Of course the downside is that you cannot browse the files. Philo
Thu 22 Jan | Simon Lucy | The only problem with treating the file system as some kind adjunct to the database, with the location stored in the table is that its very difficult to validate. The files can move, be deleted or suffer, as Philo says, from some kind of permission change. Then as paranoia increases you can begin to wonder if file x really is the same file x as referenced in the database. The problems of replication are rather made worse not improved by separating it out in this way, since the data has to get replicated anyhow. For performance sake you might split the actual file data into a separate database (in some databases a separate table would be sufficient), but keyed in the original record.
Thu 22 Jan | Dennis Forbes | In that case I'd store the files in the database. The primary reason is for the reasons that Philo mentioned -- you have no consistency if half of your data (the, err, 'metadata') is stored in the database, and half is stored in a non-ACID participating filesystem with a completely separate administrative process, backup scheme, etc. The primary downside, of course, is that you can't use the many filesystem tools on database stored files. Regarding some of the pitfalls, I think they might be overblown a bit -- Yeah you'll have to back more database up, but this is in lieu of backing up more filesystem. Yeah replication will take longer, but presumably if you're replicating the data then you need it at multiple sites, then you'd have to replicate the filesystem as well, etc. i.e. One is instead of the other, rather than being in addition to the other.
Thu 22 Jan | Patrik | >DB engine will probably be MySQL A DBA/Unix friend of mine told me that MySQL has a limit for the maximum data size it can handle for a single INSERT statement is 16MB. So that would mean that if you have files larger than 16MB to be stored in LOBs they get corrupted. This is worth checking out before you store files in MySQL, since it would be a bitch to run into this problem when the system has gone into production. I might be wrong on the above, but check beforehand.
Thu 22 Jan | Eric Debois | Ok. thanks all of you. Good info. I looks like the benefits are greater than the risks for this app.
Thu 22 Jan | Almost Anonymous | Actually the default configuration of MySQL is 1MB table rows. This means it will not stuff up a file greater than 1MB with an error. I have quite a bit of experience in this regard; I currently have 5000 images files stuffed into a MySQL table. For regular files, however, I store them in the file system (due to the size limitation) w/ a table referencing them. Pluses: *Way easier to insert/retrieve a file from a BLOB field than from the file system. No need of file permissions or anything. * Backup is much easier; just backup the DB and you have all the data. Negatives: * Size limitation of MySQL. * Large transfers from the DB server might not be as efficient as opening a local file.
Thu 22 Jan | pdq | The document management systems that I'm familiar with typically have an area on the filesystem devoted to them. They store the metadata in a database and copy the file to their own protected area on the filesystem. They also typically rename the files to some unique name. By putting the files in a protected place, the user can't screw with the files and break the links yet you don't have to burden the database with the actual contents of the files.
Thu 22 Jan | Philo | pdq - that sounds like the worst of both worlds - you have no filesystem access to the files, but you *do* have to worry about users screwing with the files, relative pathing problems, and sysadmins messing up your permissions. Philo
Thu 22 Jan | Gwyn | I'm dealing with an app that holds files and metadata about the files. I considered using BLOBs or the filesystem. I ultimately decided against using BLOBs. Most apps that traditionally do this sort of thing don't use BLOBs. It also makes the database a bastard to manage as someone mentioned... However the biggest drawback about the filesystem is that I haven't found a simple way to make the update of both part of a single atomic transaction. Surely it must be such a common requirement that I'm really surprised that there is no standard set of classes available.
Thu 22 Jan | maybe misunderstanding | Hang on, does the client mean the same thing as you when he says 'the database'? To you it means a specific piece of software that performs a function, to him it might be a generalized way of saying the 'website backend'. I'd keep the files stored in the filesystem if possible.
Thu 22 Jan | Philo | Good point on understanding the client requirements. 'I'd keep the files stored in the filesystem if possible. ' ...because...? Philo
Thu 22 Jan | maybe misunderstanding | The principle of "keeping it simple, stupid".
Thu 22 Jan | dir at badblue dot com | The 16MB largeblob limit in mysql is accurate (see packetlength in my.cnf).  Consider breaking the file up into 1MB or less chunks and reassembling as you need them.
Thu 22 Jan | Brad Wilson | The KISS principle really leads one to put files in the database, not in the file system. 1. The file system isn't transactional 2. The file system doesn't have relational integrity 3. The file system is easily tampered with There are reasons for both, but on the whole, I prefer to put the files in the database if it's not otherwise inconvenient.
Fri 23 Jan | maybe misunderstanding | I don't see how putting files in a DB is *less* complicated than using the file system. A quick glance at this thread would indicate otherwise. Besides, what is a file system but a database specifically designed for storing files? I'd trust the filesystem over mysql anyday. File references are still maintained in the database so your points regarding transactions and relational integrity don't really apply. I disagree the file system is more liable to tampering than the database, personally I think the opposite is true. Regardless, the developer is a much greater factor in reliability or security than the approach.
Fri 23 Jan | maybe misunderstanding | Oh yeah, if somebody does manage to tamper with your file system, you're pretty much rooted anyway IMO.
Fri 23 Jan | Simon Lucy | As for the drawback of not being able to browse the files, it should be a matter of a few moments to knock up a dodgy client that can preview the data. A form with a container consisting of embedded viewers of the required kinds.
Sat 24 Jan | James Ussher-Smith | I set up exactly this situation (in MySQL) for a customer about 18 months ago. Based on testing & opinions I went with files in the database, partly for ease of backup as the whole thing can just be exported. The table, now at about 500Mb has corrupted three times since the launch. That's not a catastrophic issue; just a simple MySQL table corruption which can be solved with the standard 'REPAIR' commands. These have sovled it each time and there have been no lasting problems. The problem is the downtime in the meantime. (only minutes / at most a couple of hours) but it's a heavily-used corporate intranet so any downtime is bad within working hours. I'm very slightly nervous of it but for now they have to stay in the database. In the next round of changes to the system I'll look at moving them out; but am undecided for now. James
Sat 24 Jan | Dennis Forbes | I find it fascinating that most of the comments about why it's a bad idea to put files in the database specifically related to limitations and fundamental lack of stability in MySQL. I'd recommend looking into SQL Server, Oracle, DB2, or at least Postgresql for crying out loud.
Poll: definition of advancment in CS | Thu 22 Jan | Astrobe
What is your definition of advancment in computer science? From the user point of view? From the programmer point of view?
Thu 22 Jan | Andy in Austin | Computer Science and and SW Development are very loosly linked. Your question is akin to asking: What is the definition of advancement in Nuclear Physics? From nuclear power plant monitoring dude's point of view? From the A-Bomb building dude's point of view?
Thu 22 Jan | Astrobe | Ok, that's indeed two questions; advancement in programming ( tools, languages, API... ) and advancement in UI.
Thu 22 Jan | programmer | May be your question is what is out there to achieve for me?
Thu 22 Jan | Andrew Cherry | Well - I actually have a bet on with a computer scientist friend in which he has bet that by 2010 he will have proved that P=NP or that P!=NP - that would be advancement in CS. Of course, advancement is also him paying me £5000 when he loses. The moral of the story is of course never make bets when drinking.
Thu 22 Jan | David B. Wildgoose | From a user perspective I would say 'natural' interaction, i.e. the use of conversation and gestures. This is still pretty primitive, but there are continual incremental improvements. We're getting there. Slowly. From a programmer point of view I would like the languages we use in our day-to-day craft to actually represent the state-of-the-art thinking from 20 months ago rather than 20 years ago (or more!) that we have right now. That doesn't mean starting with a cross between Algol and assember (C) and then grafting on bits of Simula in order to get C++/C#/Java. It means actually looking seriously at all the languages and research taking place (e.g. with Haskell and Oz) and putting it to good use!
Thu 22 Jan | Astrobe | ' P=NP or P!=NP' It would be more an advancement in science in general than in computer science. P=NP iff P=1 anyway
Thu 22 Jan | Just me (Sir to you) | That they finally stop exclusively exploring theories from the application realm of batch processing. Hey, we have had an abundance of these IO intensive thingies called peronal computers for a few decades now. You know, the ones that have a 'clock' (gasps of horror from the CS labs). Isn't it time computer scientists took notice and work on models that move beyond 'controlled closed universe' assumptions (Turing machines and its equivalents)?
Thu 22 Jan | Gareth McCaughan | Astrobe: I think you mean iff P=0 or N=1. :-)
Fri 23 Jan | Astrobe | ' N=0 or P=1 ' Everyone knows that N is non-empty :) Stop geeking now :)
Sat 24 Jan | no name | >> From the user point of view? Improvements in the usability of browser based interfaces.
Who's your favorite registrar? | Wed 21 Jan | JWA
Hi All, Im about to register a domain name or two. Ive always used Network Solutions in the past, thinking that theyre more stable and worth the premium. However, its been a while since Ive looked into this and it seems a lot has changed in the ICANN world. Theres no use overpaying, but I want to make sure Im with someone who will not end up holding my name ransom down the road when I need to make changes. So, who do you guys use for domain name registration? Thanks, --Josh
Wed 21 Jan | Ori Berger | GANDI.net Read the terms of service. I hope they haven't changed them for worse - at the time, they were the most reasonable I could find -- absolutely reasonable, in fact (even without comparison to others, I mean). And not expensive (although not the cheapest either, especially since they charger 12Euro/year, which now translates to ~15$ - it was $10 when I regd).
Wed 21 Jan | Chris Ormerod | Ive had no probs with godaddy.com, only $8.95 US at the moment I think. They seem to give you access to alot of things that other registrars charge for (particularly in australia - MelbourneIT wanted >$AU20 per year just for an email forward while godaddy gives 100 for free - you can also setup subdomains through their webinterface etc.) HUGE DISCLAIMER: This was the first domain I ever registered, but since I did mine a few friends have used godaddy for theirs without hassle.
Wed 21 Jan | Joe Paradise | We switched from Network Solutions to Go Daddy and have been very pleased. We use them for domain registration, web hosting, and email hosting and are very pleased with all of their services. We'll probably stick with them to host our customer support forum as well.
Wed 21 Jan | Steve Jones (UK) | I use www.freeparking.co.uk to host numerous domains and they seem good value and reliable. You can do email and web forwarding, set up sub-domains, etc and I think even host a small (templated) site.
Wed 21 Jan | Just me (Sir to you) | I have used dotster so far.
Wed 21 Jan | M | Second for dotster. Like moving a decade forward from network solutions. I think these no-name registrars have some quirks, to be aware of. For example, if you don't renew within X days before the expiration, the renewal fee is higher. Buyer beware.
Wed 21 Jan | Oren | I also switched from Network Solutions to Go-Daddy.  I can't believe I used to pay $35/year.
Wed 21 Jan | Joe Paradise | LOL me too.  $35/year is way to much.  As I was authorizing the domain transfer, the Network Solutions rep started bad-mouthing Go Daddy, saying their prices were artificially low and they would be out of business in a year.  Very unprofessional.
Wed 21 Jan | Greg Hurlman | GoDaddy.com and ItsYourDomain.com - IYD is more expensive, but that's who I have my existing domain - the new stuff goes to godaddy; haven't had any problems so far.
Wed 21 Jan | dmooney | Register.com does DNS hosting for you included in the $35/yr fee and has a nice way to edit your DNS records. How well does Go Daddy do in this regard?
Wed 21 Jan | anonymous | joker.com is $12 per year and offers free DNS service with a nice web interface.
Wed 21 Jan | Andrew Hurst | I second Gandi.net.  It works like a charm, and I've never had problems in the few years that I've been using them.
Wed 21 Jan | Patterns Guy | namecheap.com, does everything I need.
Wed 21 Jan | Ethan Herdrick | domainmonger.com
Wed 21 Jan | www.marktaw.com | GoDaddy, and dig their groovy "We'll register it for you as a corporation so your name and address don't end up all over the internet" service.
Wed 21 Jan | Phibian | Pixin Interprises (https://secure.supernia.com/domains/). We switched to DH Consulting (later merged with Pixin) because we found that changing DNS and contact information through NSI was extremely tedious and didn’t always take effect. For comparison, information through Pixin is very easy and practically instantaneous. It's not like domain management is rocket science, so an easy to use and fast system is a must in my books. We also became fed up with NSI's extremely poor customer service, all of which is “virtual” (automated response systems) and their extremely aggressive marketing tactics (sending us fake bills and 'service interruption warnings' in order to try to scare us into renewing). One of our clients once noted that they received a bill for a domain name that NSI hadn't hosted for several years! Finally, NSI charges a much higher price than many of registrars. Or at least they used to - I'm too lazy to check. (Pixin charges US$15 per year) I'm a fan of Tucows based registrars in general, but we specifically chose Pixin because it is run by my brother and thus I know where he lives... And no, I'm not sharing that information. We like the services Pixin provides (meets our needs, anyway) and the lack of 'in your face' marketing stuff, except for the part where we recommend Pixin, someone signs up and we don't get a commission. Ah well.
Wed 21 Jan | coresi | Mark, What happens to the domains if GoDaddy goes belly up? How difficult will it be to recover the domain? Potentially the creditors can put a claim on all GoDaddy assets. Any opinions?
Wed 21 Jan | Chris Tavares | Another satisfied GoDaddy customer here. The NSI guy was lying about their pricing. GoDaddy's price isn't artificially low; NSI's price is artificially HIGH.
Wed 21 Jan | Steve | I've been using godaddy.com for about a year now, they have great/cheap products and excellent customer service.
Wed 21 Jan | Chris Ormerod | DMooney: 'How well does Go Daddy do in this regard? ' Well I know pretty close to nothing about DNS records (I just have mine set to forward to my ISP free space) but it does have a complete control panel where you can specify DNS servers and edit records etc. So I assume it would do everything you need, maybe one of the other posters who use it might be able to answer better?
Wed 21 Jan | www.marktaw.com | > What happens to the domains if GoDaddy goes belly up? In the unlikely event You lose Your domain name registration to a third party solely as a result of DBP�s negligent actions (and absent fraud or other negligent or willful misconduct committed by a third party), You may be insured against such loss through DBP�s Professional Liability Insurance Policy, which is currently underwritten by American International Insurance Company. Of course, every claim is subject to the then-carrier�s investigation into the facts and circumstances surrounding such claim. In the event You have reason to believe that circumstances exist which warrant the filing of an insurance claim, please send a written notice (specifying the basis for such claim), via certified mail, return receipt requested, to: Domains By Proxy, Inc. 15111 N. Hayden Road/Suite 160 PMB 353 Scottsdale, AZ 85262 Attn: Insurance Claims - http://www.domainsbyproxy.com/LegalAgreement.aspx?prog_id=#
Wed 21 Jan | Darren Collins | I've been using Gandi, but just this week switched to GoDaddy to take advantage of the weak US dollar (I'm in Australia). The currency difference makes GoDaddy about half the price of Gandi for me right now. Gandi is probably still good value for Europeans, though. Both have offered excellent service.
Wed 21 Jan | J. D. Trollinger | I've had good experiences with http://www.directnic.com/
Wed 21 Jan | Bored Bystander | I've used both Directnic and GoDaddy and both are comparable. The 'private' registration service mentioned by Marktaw which is offered by GoDaddy basically causes your domain record to be placed in the name of a holding company, very very nice in the $10/year range. Now, one important difference between the two exists. Directnic and Godaddy both have the concept of parking a domain, and both allow you to forward email received by a parked domain. This is handy in case your web host imposes a restriction on the number of domains you can host directly on your site. You can park domains at the registrar and redirect them to your own 'real' site or a sub page. The main difference is email forwarding... Directnic allows you to forward *all* email received at a domain with a catchall wildcard, without purchasing an extra service. GoDaddy only allows you to forward one email address on the parked domain. If you want to forward more than one specific email address, you must pay for a separate email hosting service provided by GoDaddy. This alone may be worth paying a few bucks a year extra for Directnic service. However, Directnic does not offer private registration (last time I checked, anyway). My guess is that both Directnic and Godaddy will be around for a few years.
Wed 21 Jan | mb | gandi also offers parking services. http requests will get redirected with a 300 class redirect, so if you have example.com mapped to example.org, http://www.example.com/foo/bar will redirect to http://www.example.org/foo/bar. You can even redirect to http://www.example.org/~example_com/foo/bar. They allow a few (5?) email addresses + a catchall, though there is a limit (1MB?) on the size of the redirected message. the real question is, why on earth would anybody ever use NSI/Verisign? They're the most expensive and have the worst record of service and threats.
Wed 21 Jan | www.marktaw.com | Your right, Godaddy's e-mail is kind of sucky, but I get all e-mail from my registered domains, and I think in the advanced DNS settings you can set the e-mail servers. I just park all my domains on my existing hosting service.
Wed 21 Jan | Chris Ormerod | Bored, I think you may be incorrect on the email forwards, I am with GoDaddy.com and I have 100 free email forwars plus a catch all - of which I am currently using only 1. From their website: FREE with every domain! Change of Registration Parked Page Domain Locking Status Alerts New! Forwarding / Masking New! 'For Sale' Page New! Total DNS Control New! 100 Email Forwards You only need to pay extra if you actually want a real SMTP/POP address hosted by them, I just have it forwarded to my ISP and Hotmail email accounts.
Wed 21 Jan | JWA | If you go to the info page for those extra services, it says this about the email forwarding: 'Set 100 variations on your basic '@domainname' email address. A single mail box was never so flexible!' This with a graphic of a bunch of envelopes going down to one. Does this mean that you can setup 100 aliases to one single address? The way it's worded on the front page you'd think it would be 100 separate aliases each pointing to any address you like. Can anyone confirm how it really works? (I know, I'll as them directly too...) --Josh
Thu 22 Jan | mb | typically you can map blah@yourdomain.example.com to anything you want, and can map up to N addresses. you can map them all to the same address. plus there's a catchall. gandi offers (I think) 5 redirects; sounds like whoever you're looking at offers 100. i imagine my setup is fairly common: on my 'aux' domain, the catchall goes to a single address through the parked site @ gandi. on my 'main' domain, i have a hosting account, gandi is not involved except as registrar. my hosting account has a similar feature: a few of my addresses forward elsewhere (I'm not sure there is a limit), plus I have two mailboxes (I think I have 25), one called 'spam' which addressses which now just get spam are forwarded to, plus the 'normal' one which the catchall gets forwarded to.
Thu 22 Jan | Chris Ormerod | The way GoDaddy works is the following: (Note: I have the cheapest possible option of domain only and no hosting so other plans give you more stuff.) 100 free redirects means I have my hotmail/ISP accounts as normal and in the GoDaddy control panel I can setup upto 100 @.com and redirect each one to *any* other SMTP address on the planet - even multiples (blah@blah.com; otherblah@otherblah.com) At the moment I have just chris as my main alias and junk as a catchall alias, and I did have setup work that redirected to my work address just as a test.
Thu 22 Jan | JWA | Thanks to everyone for the suggestions. I just registered three new domains for a future project with GoDaddy. It sure was sweet paying $24.95 total rather than $105 like I usually would have with NSI. If everything is good with them it'll be a nice savings transfering my current domains over to GoDaddy when they're up for renewal. Thanks again, --Josh
Thu 22 Jan | Philip Dickerson | 'What happens to the domains if GoDaddy goes belly up? How difficult will it be to recover the domain?' I wondered this also and checked on it briefly a while ago. My understanding is that any registrar registers the domain with the official registry for the period of time for which you paid, and from that day on it doesn't matter what happens to the registrar company until it's time to renew the domain - you always retain ownership of the domain (barring any other issues such as trademark infringement or lawsuits). When it's close to the time to renew your domain, you can renew with any registrar, and it doesn't matter whether your original registrar still exists. The only (temporary) disruption to your domain might be if the DNS servers directing traffic to your domain are shut down because they belong to the registrar that went out of business. Of course, most registrars offer services apart from registering your domain (email, web hosting, etc) and these will be affected if the registrar closes down. This assumes that the registrar actually paid the fees to the official registry for the entire period that you paid for, and is not doing anything shady like just pocketing your money. Make sure that the registrar you choose is 'ICANN Accredited'.
Thu 22 Jan | www.marktaw.com | >you always retain ownership of the domain No, we're talking about a service where DomainsByProxy buys the domain on your behalf. This way your contact info never shows up when someone does a WhoIs. So technically they own it and administer it on your behalf. What happens if they go belly up? Since all these domains are available in the GoDaddy interface just like normal domains, as long as their website was still up (who knows if that would happen) you should be able to transfer ownership.
Thu 22 Jan | Chris Tavares | And if that's really a concern, don't use the DomainsByProxy option. You can just buy a domain name from them outright. Of course, then your information is public. Ahh, the engineering world of tradeoffs is everywhere... :-)
Sat 24 Jan | James Ussher-Smith | I've always used 000domains.com - price is slightly high at $13.50 but certainly not unreasonable. I've never had any problems at all and their CS department is very responsive when clients lose their passwords etc. In fact recently they changed from just being an OpenSRS reseller to a true ICANN accreditted domain registrar which can only be a good thing.
Vote on my domain name! | Tue 20 Jan | shiggins
Here are some domains that I am thinking of registering. The website will basically be my thoughts about development, code samples, resume, etc. Someday I would like it to be the web presence for my consulting work. I want the name to be meaningful, light (I dont take myself to seriously) and unique. So here is what I have so far. n0sl33p.com jagersoft.com (my dog that we had to put down 4 days before Christmas) twodogsdevelopment.com (because I HAD 2 dogs) kiss-development.com Ill post more as I think of them. Thanks for you input :)
Tue 20 Jan | sam | How about "yourname.com?" You are a professional, right?
Tue 20 Jan | shiggins | Yes, but to me that's not really unique.  In addition, my last name (which is not listed here), is difficult to pronounce and I think that would make it more likely that people would forget it.
Tue 20 Jan | Lee | My personal favorite is kiss-development, but only if you're targetting a more technical and/or educated audience. I'm not sure joe-blow has heard the acronym. jagersoft has a nice ring to it. nosleep is too 133+
Tue 20 Jan | Myron A. Semack | jagersoft. none of the other choices sound professional.
Tue 20 Jan | www.marktaw.com | Isn't Jagermeister some kind of liquor with deer blood in it? Still, Jagersoft is the most middle of the road one I see on the list.
Tue 20 Jan | shiggins | 'Isn't Jagermeister some kind of liquor with deer blood in it?' I haven't heard the deer blood part but, yes it is liquor. However, Jager means hunter in German.
Tue 20 Jan | shiggins | 'none of the other choices sound professional.' I agree with you there. However, I want a combination of professional but unique. Kind of like Fog Creek. Here are some others that I thought of (doubt if there even available but variants might be). I just thought they were too boring. peakdevelopment.com summitsoftware.com peakweb.com I live in CO thus the peak/summit reference.
Tue 20 Jan | www.marktaw.com | SkiSoft.com 'I code from the hot tub and think about your problem while on the slopes.' Just kidding. Those last three are good. Fog Creek is good because you're used to it. Just dissect MicroSoft and you'll see the anti phallic name of the century. Really, just choose something you can live with, without the resource to perform market research (What do you think of the name NewJagerSoft? What about the taste?), just choose something and go with it.
Tue 20 Jan | SC | One thing that I learnt the hard way was that the domain name has to be fairly short, easy to spell and contain no ambiguities. peakdevelopment.com fails these tests unfortunately (you'd be amazed at how many people spell development wrong, not to mention the fact that peak, phonetically, is identical to peek) Also, I'd advise staying away from numbers in your domain name.
Tue 20 Jan | Dignified | http://www.snopes.com/business/secret/jagermeister.asp Yes jagermeister is a liquor, and no it doesn't contain deer blood, though I have heard that *numerous* times from all varieties of people. Oddly enough, Two Dogs is a type of lemon-brew 'beer', weird that two of your choices would have references to alcohol. I doubt that would be a problem trademark-wise, but I'm ignorant in such matters. PEAK Technologies is actually a software company (that I worked for at one time), with an office in Denver, CO USA (among other places). Having 'Peak Development' might be more of a problem than the others, I'm not sure. As far as kiss-development, I'm generally not a fan of any domains with hyphens, but that's just me.
Tue 20 Jan | shiggins | 'I code from the hot tub ' (in the buff ;) Mark, while I totally agree with you I just think that peakweb.com is something that will easily be forgotten. I want something professional and somthing that can be remembered. Think of...Apple.com, adobe.com, google.com.
Tue 20 Jan | shiggins | 'Oddly enough, Two Dogs is a type of lemon-brew 'beer', weird that two of your choices would have references to alcohol.' LMAO! However, my other dog's name is Stoli. I am not kidding here.
Tue 20 Jan | shiggins | Stoli (as in Vodka)
Tue 20 Jan | Dignified | 'Stoli (as in Vodka)' Yes, I get it, that used to be my favorite, before I switched to Chopin & Grey Goose, for unknown reasons. I suppose I'll let someone else bring this beast back on topic now.
Tue 20 Jan | flamebait sr. | I chose a domain name that was short but not easy to spell. Dumb choice on my part. I was going to be sarcastic and tell you that I registered all of the names you listed already and that I'd sell them for $1kUS each, but I refrained.
Tue 20 Jan | www.marktaw.com | Sure, but if I suggested 'Amazon' to you you'd say 'too much of a barbarian woman connotation.' Branding is a difficult thing to do, and choosing a name even moreso. You did point to something, inadverantly mentioning Fog Creek - combining two words rather than looking for the one perfect one. Also try not going straight after what you want... '_soft' you can append 'software' as a word on to anything you want without including it in your domain.
Tue 20 Jan | mark | How about MikeRoweSoft.net?
Tue 20 Jan | no name | Jagersoft. Not only does it sound good (Jaeger is hunter in German, I assume that's where it originated?) it has a nice sentiment behind it as well. Okay, your customers will never know, but it is still nice.
Tue 20 Jan | Nick | How about MyCrowSoft.com? Your logo could be a crow bird, and you'd generate plenty of buzz when Microsoft's lawyers come after you.
Tue 20 Jan | www.marktaw.com | MacroHard Hardware.
Tue 20 Jan | Yo | How about "iamtoolametopickmyowndomainname.com"
Tue 20 Jan | no name | jagersoft. it is the shortest, and easiest to say.
Tue 20 Jan | www.marktaw.com | jagersoft, jaegersoft, yagersoft, yaygrrrsoft
Tue 20 Jan | shiggins | Sure, but if I suggested 'Amazon' to you you'd say 'too much of a barbarian woman connotation.' Now, now, you don't KNOW what I would say. I definitely like the idea of scrapping the _soft portion, but then it would have to be something that could stand on it's own or with another non-soft word. So we'd have: jager.com jagersummit.com jagerdog.com jagerdamndogpoopedonthecarpetagain.com What do ya think ;)
Tue 20 Jan | www.marktaw.com | > jagerdamndogpoopedonthecarpetagain.com but drop the jager damndogpoopedonthecarpetagain.com even better, distill it down to 'carpetpoop' and you're good to go.
Tue 20 Jan | Harry Caray | My vote: clownpenis.fart
Tue 20 Jan | shiggins | Is this going the way of salad cream?
Tue 20 Jan | MikeroSeft | I've registered the names listed so far, I will sell each for $1000. Thanks
Tue 20 Jan | shiggins | Too late, Flamebait Sr. already has dibbs
Tue 20 Jan | Evgeny Gesin /Javadesk.com/ | Keep the name short (8 characters or less) and meanfull.
Tue 20 Jan | Evgeny Gesin /Javadesk.com/ | What's yours mather name? :-)))
Tue 20 Jan | shiggins | Mark, I'm tempted to register carpetpoop.com just because it makes me laugh so hard. And guess what...it's available!!!! Just in case you all care...jagersoft won :) Thanks again.
Tue 20 Jan | shiggins | 'What's yours mather name? :-)))' Care to explain? I kept it to 9 characters. Not to bad I think.
Tue 20 Jan | Arrogant Prick | Change your name to Mike Rowe and call yourself MikeRoweSoft
Tue 20 Jan | Alex.ro | 'Avoid cute and clever names; they do not project a businesslike image.' From my 'good quotes' collection, forgot who the author is.
Wed 21 Jan | Just me (Sir to you) | And I see you registered it. What a great way to blow your anonimity.
Wed 21 Jan | tapiwa | I would register jagGersoft.com too, unless you want to spend the rest of your life telling people that it is Jager with one G.
Wed 21 Jan | shiggins | 'And I see you registered it. What a great way to blow your anonimity.' CRAP!!! OK, I obviously don't know what I'm doing. Thanks for the heads up.
Wed 21 Jan | www.marktaw.com | >CRAP!!! Don't you mean CarpetPoop!!!
Sat 24 Jan | J. Jager | Of course yagersoft.com is taken.. It's mine! I wanted jagermeister.com but the dam evil german cough syrup makers have it sewn up. Speaking of Yagersoft, I should get busy with it.
cabling rant | Mon 19 Jan | Jason
Quite a few good Philo rants going around (a/v cabling, power bricks, USB), I thought Id add my own favorite: Why do freaking cables cost so much!! I just bought a $600 camcorder that did not come with a firewire cable - I had to buy one for $27!! How much can a 3 stretch of wire possibly cost? Im all for an open market and profitability, but this is ridiculous! Ive finally learned to crimp my own Cat5 cables - a great savings. Is it possible to do this with Firewire or USB? Belkin is privately held - otherwise I think Id invest all of my 401k in them and retire early.
Mon 19 Jan | no name | I'd pay for cabling without a bleat if I didn't feel sodomized every time I buy a printer cartridge. George Carlin has it right, bend over so they can service your account!
Mon 19 Jan | www.marktaw.com | You buy printer cartridges? For my money I just buy a new printer. That's how long the last anyway.
Mon 19 Jan | no name | [For my money I just buy a new printer.] Are you Mr. Money Bags? Let me guess you also throw away your dishes every meal and buy new ones.
Mon 19 Jan | www.marktaw.com | Two printer cartridges for $30 a pop, or 1 printer for $50. You tell me which is more economical.
Mon 19 Jan | no name | >> 'Quite a few good Philo rants going around' Philo's given too much credit for too many things. He's basically has the gift of gab, which of course can and does work against him also.
Mon 19 Jan | no name | What do you do with all of your old printers Mark? Let me guess you throw it away? Do you know what happens to it when you throw it away in your little dumpster of fun? It gets put into a landfill. Do you know what happens when that printer is in the landfill? I'll give you two guesses and the first doesn't count. Unless you donate this stuff to charity, your just another ignorant person dumping junk into the environment. Congratulations, you've won a glass of mercury contanimated water.
Mon 19 Jan | www.marktaw.com | Actually, what really happens is they break long before the ink runs out.
Mon 19 Jan | www.marktaw.com | See my review here http://www.amazon.com/exec/obidos/tg/detail/-/B00006LPO8/ref=cm_cr_dp_2_1/103-1574301-8790269?v=glance&s=electronics&vi=customer-reviews
Mon 19 Jan | www.marktaw.com | ... so I guess you could say it's HP's fault for making printers that are only good as landfill.
Mon 19 Jan | no name | Did you understand what I said? Or do you choose to ignore it? You sir, are contributing to the pollution of the environment.
Mon 19 Jan | no name | It's your fault for not taking responsiblity for your actions.  If you buy a printer, it's your responsibility to ensure that it is disposed of properly.  There are places that either fix them and re-market them or recycle the pieces of the printer that can be recycled.
Mon 19 Jan | www.marktaw.com | You're right. I'm glad you're connecting to JoS from your Commodore 64 and still wearing your Bell Bottoms. You'll be happy to know, though, that I haven't changed my underwear in 5 years, and I don't wear deoderant, so I'm doing at least a *little* bit to save the environment.
Mon 19 Jan | anon | 'What do you do with all of your old printers Mark?' I don't know what Mark does with his old printers, but my brother has a similar theory on the economics of ink jet printers. When the ink runs out, he buys a new printer instead of buying ink cartridges and sells the old printer on Ebay. This turns out to be less expensive than actually buying replacement ink cartridges. It wouldn't work if everybody did this, but most people don't do the math to figure out the cost per page printed.
Mon 19 Jan | no name | Grow up Mark. Your feeble come back sounds like you just got out of sixth grade. Not everything is about money. Admit that throwing out your printers is polluting the environment. Admit that you can do better by selling them to a used computer equipment store or find a recycling program that accepts them. Shouldn't be too difficult in a big city.
Mon 19 Jan | Dennis Atkins | Well blank, maybe you can make some money refurbishing printers? You'll need to diagnose them, order the parts, install the parts, test and ship. Also pay your rent and utility bills on your repair shop and benefits for employees. If you charge more than $15 for this service, it'll be uncompetitive with a new model. Not that you can buy spare parts from HP or get a service manual. You can't. And the customers will need to make two petrochemically fueled auto trips to your shop instead of one to the store to get a new one or zero trips to order a new one in via UPS. Mark's right - the printer's break down before the cartridge runs out. He'd buy a better one if he could but he can't - they are all made out of cheap plastic in China. This is what outsourcing of manufacturing to the lowest bidder gets us -- products that fail and fill the landfills with mercury. Get used to it. More of the same is coming. The only flaw with his analysis is that the ink cartridges in new printers are only 1/3 of the way filled to begin with. No if it doesn't break in 6 months, it might be slightly more economical to buy a cartridge set. I just got a new set myself - $34 each cartridge and 4 cartridges needed. $156 of ink for a $99 printer.
Mon 19 Jan | no name | You guys are only fooling yourselves and making yourselves appear lazy. If that's the way you want people to see you then that is fine. I have personally taken two printers to a local used computer shop that fixes them and sells them. I received $50 dollars for them. This is a reasonable way to prevent pollution. Taking any other stance on the topic is showing that you are lazy and ignorant. I'm not an extreme environmentalist, but I know for a fact that it is the right thing to do.
Mon 19 Jan | www.marktaw.com | Boo hoo, now you've hurt my feelings. You're just upset because I can afford a printer and you're still trying to find a way to melt your Crayolas to refill your dot matrix. And yes my comebacks are childish, if you expect me to take you seriously, why don't you try acting like an adult?
Mon 19 Jan | no name | hahaha... Mark, as I stated earlier, grow up, admit you can do better and do it. To do otherwise is to prove yourself a fool.
Mon 19 Jan | Philo | Personally, I think everyone should mail any HP printer that breaks before three years is up to Carly. Philo
Mon 19 Jan | www.marktaw.com | ' ' The funny thing is, I'd be thanking you for letting me know that there are people who do this kind of thing if you didn't turn the discussion into an ego-driven fight. There's a big difference between sharing information and really trying to improve society and being judgemental, calling everyone who doesn't do what you do immature. Too bad you had to fall into the latter camp.
Mon 19 Jan | www.marktaw.com | Carly = http://www.hp.com/hpinfo/execteam/bios/fiorina.html I love how every HP on the page is a mouseover that tells you HP means Hewlett Packard.
Mon 19 Jan | no name | That was a pathetic response Mark...  Why not just accept your responsibility and deal with it.
Mon 19 Jan | no name | http://carcino.gen.nz/images/index.php/00b9a680/463c5922
Mon 19 Jan | www.marktaw.com | Blah blah blah. Again, this isn't about me and what I do, it's about you and your need for me to reply to you, even if it is out of anger - especially if it is out of anger. Otherwise you wouldn't be using the fallacy of the loaded question. Lucky for you, I don't mind indulging this sort of trolling.
Mon 19 Jan | www.marktaw.com | lol.
Mon 19 Jan | no name | That says a lot about the intelligence of the poster who posted the link to the ever over-used 'Arguing on the Internet' BS. There's right and there's wrong. Every decision you make has consequences and the chances are that you don't even realize the scope of those consequences.
Mon 19 Jan | veal | Captalism is quite a good technology for certain problems, but the landfill fodder problem isn't one that capitalism can solve itself. It's a simple fact that neither HP nor the buyer has to pay the full social cost of this product, nor will either choose to willingly most times. I have an HP deskjunk sitting in a closet myself. (I replaced it with a Canon that has lasted longer.) I will eventually drag my ass and the HP out to the local recycling megaplex, and pay them $8 to either have it refurbished or demanufactured as the case warrants. I'm frivilous with money that way, but I don't expect others to be. The solution is quite simple, and the libertarians will throw a conniption over it. The politicians also won't bother until it's rammed down their throats. We need a deposit system on these toxic products, so that the real cost is payed up front, and the right thing to do becomes the economical thing to do. Not to knock Mark, but if his $50 printer goes up to $60, he might be able to consider the toner cartridges more economical. If he gets $10 for returning each broken printer or dropping it at a refurbishing/demanufacturing facility, he'll never consider the landfill. Problem solved, and nobody is faced with the moral dilemma of protecting the environment or sending their kid to a state school.
Mon 19 Jan | veal | Cripes, I almost forgot about the original post. $27 for a firewire cable? Serves you right for shopping at CompUSA, sucker. My local hardware store sells them for $15, and the local wonderland for geeks and electricians probably has even cheaper. Never buy Belkin with their shitty overpriced garbage.
Mon 19 Jan | www.marktaw.com | I was being facetious when I said I did that. As long as we're going down the route of what in reality we can do, you should also discuss refilling your ink cartridges. Also, a $10 return on my deposit isn't enough incentive for me to go down to the local supermarket and put my printer in the machine, though someone can build an industry around this. I remember reading about a homeless guy who built up a business around this (with bottles) and eventually employed a small fleet of trucks. You're right though, this won't become an issue until it's an issue, so to speak. It won't enter the political arena until something has to be done NOW. Say... There's a certain red planet that's delightfully free of plastics. To paraphrase Douglas Addams, Earth created Mankind because it didn't have Plastic.
Mon 19 Jan | no name | And why should you, or anyone else for that matter, need incentive to do the right thing?
Mon 19 Jan | no name | You're that lazy that you won't even take your printer with you down to the supermarket when you go to buy groceries? Tell me it's not so. You would be getting $10 to do this. Why would you NOT do this for $10?
Mon 19 Jan | no name | STFU you whiney mf.
Mon 19 Jan | Jamie | Because it's a slow day at work, I wondered what the cost would be if one was to combine MarkTaw's ideas with veal's. A quick bit of googling to find a MER press kit, which gives an approx cost of the two lander mission at $800M, and a combined mass of the landers & rovers at around 1080kg. Now, if an average HP printer weighs in at around 3kg the cost to start the plastification of the red planet would be somewhat over $2M per unit, which could be loaded onto the purchase price as a end-of-life disposal cost.  This may have an impact on the HP share price.
Mon 19 Jan | Dennis Atkins | And the winner is... MarkTAW!!!
Mon 19 Jan | no name | Here's the problem, you want something in return for everything you do. Very very poor way of thinking. In fact you are so high strung that you can't be bothered to do a menial task. If you lived in a house with an 80 year old neighbor and it snowed out and you saw him trying to shovel the snow from his drive and his sidewalk would you help him out or would you demand a reward for your services. Chances are he would reward you for your services without you even asking but would you have the integrity to shovel the snow anyway without knowledge of the reward?
Mon 19 Jan | no name | I'm definately not whining.  I present reasonable facts and  I make reasonable statements.  It is the selfishness of MarkTAW that I can't believe.  Even if he would be paid $10 to do a trivial task he wouldn't do it.  That is spoiled selfishness.
Mon 19 Jan | www.marktaw.com | > Why would you NOT do this for $10? That's easy. The nearest supermarket is well over 5 miles away and I don't own a car. Now, I'm all for getting exercise and taking public transportation, but not with 30 lbs of groceries. I just shop locally. Heck, it would cost me $3 to get on the bus to claim my $10, so at the end of the day all I get is 2 roundtrip bus rides (at $1.50 a ride, I get something like 4-2/3 rides for $7). And I wouldn't even get the smug satisfaction of being right, you seem to have cornered the market. As far as *me* not doing the right thing, or society as a whole being lazy, that's just plain silly. We already know I'm a nice guy because I feed the trolls, and seem to expend considerable energy doing so. If society as a whole weren't lazy and cared about doing the right thing all the time we wouldn't be so damned fat or even have landfills in the first place.
Mon 19 Jan | www.marktaw.com | You're missing the point. Society as a whole DOES need some incentive for doing things. Look at recycling. First it was the nickel, and it was the people who valued nickels (homeless people) who did the recycling anyway. Now we only recycle because (a) it's against the law not to and (b) it's rediculously easy - seperate your garbage like you do your laundry. Also, as you can see, it wouldn't be trivial for me to go to the supermarket to recycle my printer, it would be at least an hour if not more and actually cost me money. Sure, I propose a solution that may work society wide (i.e. build in an incentive to recycle) and you knock it down. Obviously your agenda isn't to save the environment, it's to continue arguing with me.
Mon 19 Jan | no name | Not my agenda at all Mark. If you are going to the supermarket anyway, as I stated in my previous post, why would you not take your old printer along with you? If a round trip bus ride to your supermarket costs $3 and you receive $10 for your printer you have $6 left correct? Where do you lose?
Mon 19 Jan | www.marktaw.com | And since we're arguing here, I'd contend that you were not "presenting reasonable facts and making reasonable statements." From the "you also throw away your dishes every meal" to the "Philo's given too much credit" your agenda has been clear. You were looking to pick a fight.
Mon 19 Jan | www.marktaw.com | I have $7, which means I made $7 that hour. Very exciting. I had an HP printer that lasted me several years, I gave it way when I got a color printer, and it could be working to this day. If HP made printers that lasted to begin with, none of my printers would end up in a landfill.
Mon 19 Jan | www.marktaw.com | that should be "I gave it away"
Mon 19 Jan | www.marktaw.com | Great. We agree, if there were a built in incentive everyone would recycle.
Tue 20 Jan | Dennis Atkins | This is a great flame war. Blank, please let us know if you take the bus and bicycle to work like marktaw does, or if you drive your 1964 Volkswagen bus while looking for a gas station that still carries leaded gasoline.
Tue 20 Jan | Jason | 44 replies and only one (thanks, veal) has anything to do with the topic. Is that a record? No, probably not. is it just me, or does anybody else print everything they can at the office?
Tue 20 Jan | John C. | I have to admit my recent experience recycling computer equipment makes me wonder about the economics of it. One of my poor old CRTs finally gave up the ghost so I looked up the nearest recycling facility, drove about half an hour to get there, and dropped off the monitor. I then *paid them* about $15 to have them take it off my hands, after which I got back in the car and drove the half hour back. What did this recycling cost me? In addition to the $15 out-of-pocket cost, it was an hour of time that I couldn't bill to a client, plus whatever automobile costs I incurred and pollutants I injected into the atmosphere while driving (though I do drive a clean-burning, moderately-high-gas-mileage compact car). And while I prefer not to pollute unnecessarily, I really had to wonder if the costs of doing the recycling were less in the end than the costs of just throwing it in the trash. As for no-name's suggestion that supermarkets could accept equipment returns for $10, I'm also not sure I'd find that particularly convenient, given that I almost always walk to the store. And I'm not personally macho enough to want to carry a decrepit 19-inch CRT half a mile. I do suppose that driving someplace I was going to go anyway and getting paid to recycle would be better than driving someplace out of the way and paying to recycle, which today is my only alternative to putting something in the trash.
Tue 20 Jan | no name | Yes Mark it would be more convenient for people to recycle if they would receive a reward for it. Like aluminum cans. Here's what I'm getting at: Even if you have to pay to have something recycled it is still worth the cost and the effort in order to preserve the environment. Once again, I'll state that I am not an extreme environmentalist, but if there is a better way then that way should be utilized by those that can. If you don't feel this way that is fine, this is America and throwing away a printer is not against the law. OTOH I would have to consider you lazy, ignorant and perhaps 'cheap' for doing such a thing. Lazy because it's not that much work and ignorant because you're thinking that 'I'm only throwing away one printer.' well what about all the other printers that get thrown away. 'Cheap' is obvious. I don't mind spending $15 dollars to help save the environment. You on the other hand might have a problem with it. I don't see why you would have a problem with helping to save the environment. Money and making money aren't everything. But as I said earlier it is your decision not mine. You may do as you please, but I believe that it would be wise of you think of the consequences of you actions. Please note that I'm not 'telling you what to do', I'm just saying, If you have a chance to do right why not do it? A hypothetical question. No need to reply. I won't read this thread any longer. Just something to think about.
Tue 20 Jan | veal | Blank, take a look around sometime. Vast swaths of humanity don't give a rats ass about *your* environment. Here in the the US where I live, especially in the decrepit lands of Suburbia, the environment most people live in is a mass-produced house, sheathed in vinyl, filled with plastic-laminated and/or poly-coated furniture, on plastic floors (carpet or a plastic-coated photograph of wood called Pergo), enclosed by painted walls housing a few windows half-covered with polyester. They move from that *environment* through the mass-produced plastic car interior (garage-parked) into a dreary sealed-window office with electronic white-noise generators, perhaps (if they have enough money) back into the car to a hideous chain restaurant for a hideous lunch of some butchered rotting carcass or another of some kind of animal they'd never personally touched, back into the car, the office, the car again, and finally back to the plastic house. You'll find nary a tree, mountain, lake, or critter cross their paths but (perhaps) for 10 days of 365, unless they see it on TV, which hardly qualifies. What care they for invisible poisons (of which they're wholly unaware) in vast landfills they never see? Blank, I'm blathering on because you need to know you're a marginal character. Welcome. I'm as marginal as they come. If you want to have any impact on people, you need to know what motivates them, not what moves you. I suggest reading Dale Carnegie, getting to know some other humans in human terms -- shit, you can't even be troubled to pick a pseudonym -- and rethinking your approach. You can't shame people into behaving the way you want them to behave. Frankly, nobody cares what you want. Keep these passions, but learn how to direct them kiddo.
Tue 20 Jan | coresi | European Union will start charging the manufacturers for the recycling costs. Maybe this is the right way to go.
Tue 20 Jan | apw | I just threw out an old printer and a broken scanner. I did ponder the thought of going to a recycling center but then reminded myself of the 'environmentalists' in California who torched the Hummer dealership. They burnt a large number of Hummers to the ground releasing more toxins in the air than the vehicle would produce in thier life time. I then thought, well if the tree huggers over there think it ok, screw it and dumped them in the can. George Carlin on saving the planet: http://lists.spack.org/pipermail/wordup/2002/000349.html
Tue 20 Jan | www.marktaw.com | Blank, regardless of the factual basis for your argument, it remains that you're judgemental and insulting, and yes continuing to use the fallacy of the loaded question (have you stopped beating your wife?). Again I'll say that your interest is not in saving the environment, but in starting an argument (i.e. trolling). We both agree that recycling is a good idea. We both agree that if there was an incentive built in to recycling, more people would do it. What we don't agree on is which one of us is being a jerk, and since that's completely subjective, it's not worth arguing, but can be a fun way to spend a few hours on the internet.
Tue 20 Jan | Devil's Advocate | apw- Do you always base your actions on those of the dumbest people who disagree with you?
Tue 20 Jan | Stephen Jones | I have at long last succeeded in refilling HP printer cartridges. On average you can fill a black cartridge four or five times, before the quality declines. With Epsons you buy compatible cartridges to start with. Incidentally I have owned three HP deskjets. The first one, an HP 670J, broke down after a few months and was replaced with a new one free of charge the next day. The second one was a HP695J bought in 1998; I replaced it a few months ago when I bought an HP5550 to ship to Lanka, and then found it wouldn't fit in the box. The 695J is sitting in the bedroom cupboard, but I'll probably tqke it to work next year just to have some color.
Wed 21 Jan | Antti Kurenniemi | Many of the el-cheapo inkjet printers come from the shop with color cartridges that are not full - they can sell the damn things cheaper if there's not all that much ink in them. So if you buy new cartridges, they may last a lot longer than the original. And, if you would instead dump the whole printer you'll end up with half-filled cartridges again which won't last as long. I dunno which all printers are like this, but I understand HP does it and Epson as well. Me, I bought a LaserJet maybe 7 years ago, have bought two color cartridges for it and still rockin'. Ink-stuff is expensive if you print more than a few pages a month. Oh, and the cable prices stink, too ;-)
Sat 24 Jan | James Ussher-Smith | I think the problem is that people buy cheap printers. I don't know what the printer market is like in the States but here in the UK, HP printers range from about £50 upwards ($80) as far as I know. I assume other manufacturers are the same but frankly, I don't really know! Two years ago I spent £150 ($250ish) on an HP Photosmart 1115. It's been superb. It is still sitting here next to me on my desk, working as well as it did the day I bought it. I'm a fairly heavy volume printer as I run my own business so I've had to replace the ink cartridges a few times (which admittedly are fairly expensive). I've kept clear of recycled / refilled cartridges as I don't want to risk upsetting my printer (potentially damaging it). For the smalll savings it's not worth the risk. Other printers I have in my office include an HP Laserjet 4L from years and years ago which was very expensive at the time, and still works today. It's a bit slow but it prints just great. I also have an HP LaserJet 2100TN from about 4 years ago which is working great. All of these are shared across a network for multiple users. Recently I bought another Photosmart - a 2510. It wasn't cheap. In fact it was expensive at about £250 ($350). But I know that in 5 years I will still have that printer. It won't have broken down. Quality will be the same as it is today. It's clearly uneconomical to replace it as a pair of cartridges costs me about £40 from memory (cost is similar on my other Photosmart). Quality is superb and some of the features (specifically to do with it's ability to link to digital cameras) are, IMO, revolutionary. If only everyone would buy better printers in the first place (and clearly this is partly the fault of HP & co for pricing them so low in the first place), there would be no need to worry about recycling them as everyone's printers would last far longer. The whole attitude of 'cartridges have run out, let's buy a new printer' would be gone. And just for the recycling advocates here, I have a box full of old ink cartridges in the corner which one of these days I will get around to sending off to one of the printer cartridge recycling places! The point is that the payback is minimal (I think I make a pound or two per cartridge) but the cost is minimal too. The postage is free on the parcel, and all I have to do is drop it in at the post office (which conveniently is a 5 minute walk away). I can be there and back in 10 minutes and have made say £20 as my box of cartridges is looking pretty full. I've been saving them for ages. I wouldn't want to know if it was an hour round trip on public transport that was out of my normal route.
Sat 24 Jan | James Ussher-Smith | And on the original topic!... I agree...I was given a second DVD player for my birthday recently by a family member. I think it was Philips - not a cheap make. It didn't come with a cable in the box to link it to my TV. I had to go to the local electrical wholesalers where the scart lead was about £5 if I remember correctly. Not much, but had I gone to a retailers like PC World it would probably have been £20. This is just the laws of economics speaking here. If enough people are willing to buy it at £20, then that's what it will cost. It will not change until consumers wise up to the fact that they are paying over the odds.
Debugging COM Interface objects | Fri 23 Jan | David
Does anyone know how to see the contents of a COM interface object with the Visual Studio C++ debugger? I hope Im calling these things the right name. For example, I have lots of code where I get objects of type IHTMLElement. If I set a breakpoint and try to look at the contents of that object, all I can see is the IDispatch pointer. Pretty useless. Ironically, while Im typing code the editor knows whats in each object and can show what methods and attributes are available. Why is this so hard for the debugger? Is there some trick I can use?
Fri 23 Jan | K | Your editor is actually querying the IDispatch interface (or the ITypeInfo interface off of the IDispatch interface) for its implementation details (methods, documentation, parameters, types, etc). If you just want to be able to query for this information against an active object, I've written a small Lisp interpreter that supports creating/querying OLE objects that I could send you.
Fri 23 Jan | David | I think I wasn't clear about what editor I meant. I meant that when I'm writing code, NOT debugging, the autocomplete feature of VS .NET can show me the list of methods and attributes available in the class. As for a LISP interpreter, you lost me. How would that help me debug?
Fri 23 Jan | K | I assume that what you want is to be able to see the methods/properties on an object that supports IDispatch while you're debugging. The debugger doesn't support that, because it involves a lot of work with querying IDispatch and ITypeInfo. I offered the interpreter so that you could test creating an object, getting it into whatever state you need, and looking at its property values at runtime (since that sounds like what you're trying to do).
Fri 23 Jan | Brad Wilson | 'I offered the interpreter so that you could test creating an object, getting it into whatever state you need, and looking at its property values at runtime (since that sounds like what you're trying to do).' I used to use immediate mode in VB a lot for this. Fire up a program with just enough to have a strongly typed interface, then put a break into the code, and start poking the object in the immediate window. Very useful. Of course, now I'm 100% on .NET, thank god. :)
Fri 23 Jan | David | Actually a bit more research and I may have found the answer to my own question. Those interface classes (I guess they are OLE Automation interfaces) have no exposed attributes. All they have published methods, including getters and setters. From what I can see in the headers, there aren't even private attributes. I can see how that would make the debugger show only the IDispatch pointer. Still, it's pretty annoying, because I know it's an interface to an actual object that holds many attributes. In fact, in Javascript, I can look at the same object and see all of its attributes. So, theoretically, it's possible to do the same thing in C++, but God knows how to do it.
Fri 23 Jan | K | David, that's what I said!  God's not the only one who knows how to do it (unfortunately).
VS.NET browser speed | Fri 23 Jan | Nathan
When I go to a measure the throughput of your internet connection tool ( http://www.toast.net/performance ), I find something rather odd. From the same server, the browser in Visual Studio .NET 2003 loads 755Kb in 3.331 seconds. IE 6.0 loads the same page in 6.412 seconds. (Firebird loads in 3.769 seconds.) IE is consistently much lower than either of the other two browsers. What confuses me is that isnt the browser in VS.NET just IE? What makes it so much faster than IE stand-alone?
Fri 23 Jan | Kentasy | My connection is SWEET ! :) 2.123 seconds using IE 6.0...
Fri 23 Jan | Richard P | IE standalone is probably using different settings than the VS.NET browser.  Auto-detecting proxy settings maybe?  Toolbars or spyware hooked in to standalone IE?
Fri 23 Jan | Richard P | 1.563 seconds in Firebird 0.7 WinXP, btw. Once, in a meeting, I mentioned that 'the real problem with these internet worms is that they choke up all of your internet bandwidth'. The network guys all started laughing. Yes, we have that much bandwidth.
Fri 23 Jan | Nathan | IE 6.0 standalone has the google toolbar.  They both point to the same proxy server.  No spyware installed, but I'll go ahead and run the various tools to check for that anyway.
Fri 23 Jan | r | Sorry Kentasy, "Loaded 754,928 bytes in 0.721 seconds" using IE 6.0. Your 2.123 seconds seems painfully slow.
Fri 23 Jan | JWA | 0.874 seconds on my PowerBook G4 with Safari, over my 802.11-G wireless and with Virtual PC running (not sure if that would affect it). This is just the $40/month RoadRunner cable service. Gotta' love it. --Josh
Fri 23 Jan | YAAP | How many trials did you run? My load times were: - IE 6 = 4.032 seconds - Firebird 0.7 = 4.032 seconds - VS.Net 2003 = 4.078 seconds My sample size was 1, so I'm sure that if I ran more trials I would get greater variation. I'm guessing that network load variations have more to do with the load variations than anything.
Fri 23 Jan | Kentasy | Huh - how about that. 1.41 or so with multiple tries using Mozilla. About 2.1 or so with multiple tries of IE 6.0. Not the fastest anymore, but still happy with the speed ! :) (I downloaded both the image and the text)
Fri 23 Jan | Rhys Keepence | Perhaps you loaded the VS.NET page after IE - in the case that they are the same browser, it may have retrieved the image from cache (or upstream proxy)? My powerbook loaded it fastest, followed by Firebird, and then IE. I am in Australia so the results aren't terribly comparable :)
Fri 23 Jan | Sam Livingston-Gray | To Heck with all of you! I got 316.3 on this page: http://junk.dawnshadow.se/yp010.swf (tongue firmly in cheek)
HB-1's | Fri 23 Jan | JS
My experience at work today with our HB-1s. We have two HB-1s that I am currently training to do IT basic maint. Lets call then Heckle and Jeckl. The came here with ever A++ known to man, but yet I still finding me spending most of my time training them how to take over my job. Today, I get a trouble ticket from Jeckl. Problem: Workstation is not connected to our internal ethernet, or the internet for that matter. Jeckls response: Im not too sure whats going on around here. Ms. X says she cannot see the other computers so, I decided to re-image the HD. That didnt work so Ill check the battery today and then move on to the Floppy drive. Ill finish real early today! Well not too satisfied at the response. I Went to the station site to see what the hells going on and why its taken 2 days to diagnose the problem. I take a quick gander at the NICs Ack led and its out! Hmm.... Then I check the NIC Drivers and they seem to be in order. Obviously, its a Hardware or more likely a cable problem. Im going to let Jeckl brew on this a bit until he figures out whats going on. If he ever does. I mean he is taking my job right, might as well make sure he knows whats really going on. Yes, I see the 15k a year for these two HB-1s were well worth the price!!
Fri 23 Jan | apw | The problem could be the AC outlet on the wall, have them stick their tongues in the outlet and see what happens.
Fri 23 Jan | Comic Fan | It sucks you're losing your job but I think this HB1 antics routine would make a great cartoon strip, reminds me of the old guys in the Katzenjammer Kids. Could be great fun. You may have a future in syndication.
Fri 23 Jan | no name | It's 'H1-B'
Fri 23 Jan | Justin Johnson | Like it's hard to hire such idiots locally.
Fri 23 Jan | Comic Fan | Blank, If you read the original post carefully, you'll see he's talking about the HB1 and not the H1B. There's a subtle distinction. One is appropriate for a comic strip.
Fri 23 Jan | HB | Bogus post -- there is no way somebody can pay $15K one H1-B. I am the one of damned H1-Bs and I have 4 times bigger pay...
Fri 23 Jan | Comic Fan | I don't think it's bogus. HB-1s make a lot less than H1Bs.
Fri 23 Jan | no name | Sorry about that. Whats a HB-1?
Fri 23 Jan | JS | Yes they are HB-1's HB-1's = 'Hyper-Gluteusmaximus Boils' ones. Sent here to do nothing more then to make my existance miserable. And 15k may be far fetched, but they don't make much more then that 'bigger pay'.
Professional Recognition of Testers | Fri 23 Jan | Matt H.
I posted something to SWTest-Disuss this morning that reminded me of the Joel Test. (Do you employ full-time testers?) Heres the Rant: I think Ive hinted at this before: IMHO, pure software functionality testers are likely to lack professional status, lack authority, lack respect, be likely to be laid off, etc, etc. By pure I mean People who dont do anything else. In nursing terms, all a pure tester can do is operate equipment to take readings. To gain professional credibility, we need to grow the field to be more of a nurse-practioner who is involved from the beginning. The Uber-Tester would then test the requirements, be able to understand design issues, perform usability and GUI (Interaction Design) assistance on the prototype before the real code is developed, help the customer write acceptance tests, set up and assist with code review, as well as set up and run system tests. The Uber-Tester could also own the bug tracking system. Johanna Rothman wrote an article on First Class Testers in this months Better Software that covers the general idea. IMHO, Software Quality Engineering is a discipline of Software Engineering. (Notice what Cem Kaner is a professor _OF_.) Testing is a subset of that discipline. We will never have have professional recognition among testers until we admit that justification by testing alone is insufficient.
Fri 23 Jan | Michael Sica (michaelsica.com) | I think these types of issues come down to one of perceived cost. With these 'Uber-Testers' will come higher salaries and increase training costs, but I bet you it will lower support and maintenance costs. The best companies probably already take their QA people that seriously and will continue to be a great company with high quality products. Unfortunately, most of probably work for not-so-great companies with management that would lack the vision to create such, 'Uber-Testers'. (although that would be a great place to start out all those MIS graduates ;) michaelsica.com/resume/)
Fri 23 Jan | Mikayla | After a lot of thought, I really don't think we can get there from here. The experienced testers we have are cynical (and deservedly so) folks who've realized the best they can do is collect their crummy paycheck and do as little as possible for it. They are not going to believe us if we say it's different this time, really we want involvement, really we want quality. Last time someone said that it didn't last through the /first/ imaginary deadline. The experienced testers we don't have any more include most of the talented ones. Some became programmers because that was the only way to get money and respect. Some left the industry to pursue a more fulfilling career in food service. They're cynics too, and most of them won't come back for love nor money. The only answer left is to try and drag in new people who don't know any better. IF you pick only people who are smart and get things done AND you actually treat them with respect for the role despite their lack of experience AND you pay them enough to stick around once they do have the experience AND you get every other programmer in the organization to believe it will work despite all previous experience to the contrary... It could work, I suppose. But the minute anyone in the system reverts to stereotype, the ego comes back, the cynicism comes back, they feed on one another, and it falls like a house of cards. And that's not even 'professional recognition,' that's respect and optimism. Professional recognition alone is a joke worse than being titled 'Vice-President of X' in a company of three people. (Wow. That was rather harsh. I promise, it's only because I care about the subject so much. Do forgive my 'seventh going on eigth 'last' week of development' cynicism.)
Fri 23 Jan | The real Entrepreneur | Good points raised above. Made me think of the following: If we don't have Professional testers, then testers aren't likely to have any political clout (in the company) or develop enough backbone to have integrity. I.e., if you're depending on, essentially, itenerate (sp?) drifters for quality control, you won't have any quality. Actually, that goes for most of the organization. SW development (and support) and sales are not 'commodity' skills. The persons filling those jobs need to CARE about doing a good job. daydreaming through thier work will kill a product.
Fri 23 Jan | pdq | My first real job in this industry was testing and I wish I could disagree with the cynics. The only way testers get respect is to be smart, resourcefull  and genuinely add value to the product. Since there was no career path or management path in testing, all the people that I've worked with that started as testers quickly got "promoted" to pre-sales (e.g. doing demonstrations), post-sales (consulting, training) or developement. So, the only people who stay in testing for a long period are those who aren't promotable either due to lack of technical or personal skills.
Fri 23 Jan | the artist formerly known as prince | Professional testers don't just test they are involved in: Helping developers debug Setting up environments Working in environments developers never dreamed of (does webshpere have JDBC drivers for ....) Running the automated test harnerss Creating Automated Tests Running Stress/performance Tests Providing support to E-Services, Tech Writers, Support engineers, sales people Creating Marketing Collateral (publish the favorable performance tests) Testers who do these things have no problem getting professional recognition or money, at least I never did. Yes there are a few 'all QA are parasites' type developers, but hey there are a few 'All developers are parasites' QA's
Pursuing an MBA | Fri 23 Jan | RP
First of all, Im not in the US, but I still would like to know everyones opinion. Ive been working as a developer for the past 5 years (and Im 25) and now I feel is the right time to move along. Ill be finishing my college degree sometime during the next 2 years and after that I would like to enroll on an MBA. The reasons: I want to move higher up on the food chain; I am tired of development work - maybe it wasnt my thing after all, maybe it lost the luster it had; and I feel trapped working in only one area. Basically, I feel its time to spread my wings. What do you guys think? Ill be pushing 30 when I enter my MBA, with 10 years of software development under me. If you were an investment bank, how would you look at me? How hard would it be to find a management position in a non-IT organization? (I think the future lies in the health care sector) Well, give me your 0.2c, Ill give you a receipt.
Fri 23 Jan | Gaius | My decision was not to pursue an MBA, but to return to university (full time, in my mid forties) to read for an LLB. Why? Because reviewing my career to date I see two things. First, MBAs focus on management not leadership, but leadership actually the more important trait. Second, law underpins every aspect of social and commercial activity. One can't lead without a clear idea of where one is going; law provides a vital map. There are *NO* aspects of modern business practice that are not touched by law. Moreover, you need to understand not only its strictures, but also the manner of its practice; and you can't get this unless you're immersed in it. On a personal note, my first year public law lecturer said - more than half seriously - that he thought law schools shouldn't accept anyone younger than 30, on the basis that rarely have they had enough knocks truly to understand the concept of justice. It may be the same for MBAs. I seem to have come across an awful lot of jumped up marketing droids and HR bods who see an MBA as a ticket to senior management. As a result, I don't have a generally high regard for the people who hold them. For some reason they seem to have brash, abrasive, even ruthless personalities. Whether it is the degree which inculcates these traits, that these characteristics are needed to get accepted for (or be successful in) an MBA course, or simply that only people with these characteristics brag about their qualifications, I'm not sure. I could be slandering a large number of really good managers who have MBAs, and who would attribute their success to having one, it's just that they don't feel the necessity to tell the entire world. Of course, the proof of this argument will come in 18 months time when I emerge with a shiny new LLB, plus my original (1978 model) engineering degree and find that I still can't get a job. Be absolutely sure that I will be taking the module of European discrimination law.... I trust no practicing lawyers will be too offended if I sign off as...
Fri 23 Jan | Alex Chernavsky | Anybody who is thinking of pursuing an MBA degree should read the following article, originally published in _Business 2.0_ magazine: http://cbet.uwaterloo.ca/MBA-reallyworth.html The article is called, 'What's an MBA Really Worth?'. (The answer: not much).
Fri 23 Jan | Timothy_R_Platt@developercoach.com | In regards to the worth of an MBA, I started pursuing an MBA part-time but only finished about 3 semesters, here's what I got out of it: 1. I met and got to know a lot of really motivated and intelligent people, most with backgrounds not grounded in IT / CS. 2. I learned alot about the fundamentals of business - marketing , accounting , finance, economics,etc 3. Just the mere fact that I was taking MBA classes helped me land a management job (I've been coding for about 10 years professionally but recently decided I want to work more with people). If you think an MBA can be equated into a raise of some set amount, you'll probably be disappointed. I had to drop out due to relocating, but I will be continuing my MBA in Fall '04. I highly recommend pursuing an MBA with a good program if you are looking to move up the food chain.
Fri 23 Jan | no name | It's all about the contacts you'll make. Go to a place where investment banks hire, make the right friends, and you'll be good to go. I was in your spot too but decided what I really wanted out of a career was to be my own boss and for that I didn't need an MBA. You might investigate other ways of getting a job in an IB, sort of the back-door approach. Alex, if I remember right, don't you have an MBA from Yale?
Fri 23 Jan | The real Entrepreneur | What's your goal with getting an MBA? a. Learn to run your own business? b. Fill some requirement at a big company? If it's a) then I'd recommend taking yoru 2 years and $100k and starting a company or two. It'll cost WAY less than $100k and you'll get to do the kind of work YOU want to do, read the books YOU find useful, not follow some academic's plan. If it's b) then you have to ask: are big companies hiring? Are they good jobs? (My limited experience says 'NO'). My $.02 worth, as somone who started a company for about $1500 8 years ago. Support me and my family comfortably. (And gives me loads of time to post on JoS :-) To echo the comment above: I have a friend who is perpetually in school. He has a PHd in Software Engineering and now is working on an MBA here in the USA. He thinks the key benefit is the NETWORKING. I'd agree. That's true of ANY school, IMHO. I always learned more from other students than from the instructor.
Fri 23 Jan | Tom Vu | Get an MBA from the top tier schools or don't get one at all. you will not learn anything useful but you will meet smart people with smart ideas and ambition. When you are around smart motivated people good things happen. Also, take alot of marketing classes and golf lessons.
Fri 23 Jan | Philo | My $.02 - go to night school. The guys who are actually working in businessville aren't going to take eighteen months off work to get an MBA - they go at night. Also agree with the suggestions to move somewhere where the contacts you make in the program will be worthwhile - I'd suggest NYC or DC, but if you love the left coast then LA or Seattle. Chicago in the middle, of course. (In case you hadn't noticed, I think half the reason to get an MBA is for networking) Also agree that MBA programs don't teach leadership, but I'd venture that they don't teach management either - from what I know they teach business, finances, and economics. Philo
Remote instalation of Windows applications | Fri 23 Jan | Pedro Vieira
Does anyone have a sugestion for installing/updating applications on remote computers (on the same network)? The goal is to run the setup package (I use Ghost Installer) on all workstations without phisically visit each one. MS SMS Server seems to complex for the job, and has too many requirements.
Fri 23 Jan | Tony Edgecombe | I have seen one application push the installation through the $admin share, not sure on how they managed the specifics though and I guess it is a NT/2000/XP method only.
Fri 23 Jan | Matt Watson | Run a logon script on each computer that looks back to a central server which contains all pcakages to be installed. That is the cheap way. The expensive way is to create yourself an Active Directory Domain and assign software to the computer accounts
Fri 23 Jan | Michael Kohne | Our organization uses VNC - The admins installed VNC from remote (the $admin share?) and then started it from remote (I'm unclear how that was accomplished). He was then able to run any installers 'locally', without having to visit each PC in person (given that he's a 2 hour plane trip away, this is a good thing).
Fri 23 Jan | Raj Chaudhuri | Use the AT command. http://www.microsoft.com/windowsxp/home/using/productdoc/en/at.asp
Fri 23 Jan | Bill Tomlinson | Michael, Correct me if I'm wrong, but with VNC (or terminal services or PCAnywhere), they would still have to actuall *do* the installation on each PC right? This is opposed to doing the installation once and having some system automatically push to the software out to each PC, which is what I think the original poster was asking about.
documentation generation from type library | Thu 22 Jan | mb
Does anyone know of any good tools to generate docs from a TLB or IDL? should be pretty simple to generate rough a outline, or even a visio file. it would then be cleaned up by hand to hook things together (e.g. get_Foo returns IDispatch, but you know its really a Foo object) and add more information (Navigate(bstr) really takes a URL). i havent found anything other than ActiveXExplorer, which looks like overkill.
Fri 23 Jan | Wayne | The only thing that I know of that is even closely related is the HTML Help COM Assistant from Dev Components (free): http://www.devcomponents.com/comassistant/ I know that it does DLL or OCX files, I'm not sure about TLB or IDL files.
Fri 23 Jan | r1ch | I don't know of a pre-built one, but OLEAut32.dll has a pretty good COM API for loading COM typelibs/dlls/exes and getting info from them - it should be pretty easy to use that to build your own. (I assume that it's what the VB object browser uses). Take a look here: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/automat/htm/chap9_1axu.asp for details.
Fri 23 Jan | Tony Edgecombe | I have used a product called help builder which produced a chm help file amongst other things. Seemed to work well for this purpose but not as a general help file builder.
Fri 23 Jan | Justin | Innovasys make a product called Document X. Its quite good. I used it a year or so ago for something. http://www.innovasys.co.uk [Embarrasingly, their website has just been stuffed by someone - seems to work ok, it just looks a mess at the moment. What does 'Schadenfreude' mean? ;) ]
ODBC for Access over Network | Thu 22 Jan | steved
Is it possible to create an ODBC datasource for an Access database on another machine *without* mapping a drive? In going through the ODBC set-up dialog I dont see any choice for other than finding the .mdb on a mapped drive. Any suggestions on c# connecting to Access on another server would be appreciated.
Thu 22 Jan | Dennis Forbes | Who knows why the dialog is so burdensome, but just try entering the UNC in the "Database Name" Editbox. i.e. \\SERVER\Share\folder.
Thu 22 Jan | Sathyaish Chakravarthy | Yeah, I get the same restricted BrowseForFolder problem with creating a backup of my MS SQL Server database.
Thu 22 Jan | Sgt. Sausage | I've used UNC style references to linked .mdb files/tables since version 2. No problems here.
Fri 23 Jan | Simon Lucy | Its easier if you have a directory above (or the one its in) the database shared but any UNC that has the right permissions should be fine.
Email Encryption / Digital Signing | Thu 22 Jan | Phibian
Quick Poll: Does anyone actually use these? I am doing some basic research into email encryption (in particular), and most of the info I am finding is years out of date or companies trying to sell certificates. The way that Outlook supports these features seems awfully cumbersome to me, and I dont know anyone personally who uses them. Anyone have experiences to share? Articles to link to? Thanks,
Thu 22 Jan | anonymizer | Myself and some coworkers at a former workplace were heavy users of PGP -- Mostly to keep a overly busy (and underworked) administrator out of our business. It worked brilliantly. Microsoft's encryption solution, like so many of their solutions, is geared to their corporate partners (which is why virtually no one uses it)
Thu 22 Jan | dir at badblue dot com | gpg on occasion for me, using various webmail clients.
Thu 22 Jan | Ankur | I digitally sign all my email.  The problem comes from the fact that many folks can't read signed messages (most notably when using webmail). 
Thu 22 Jan | Brad Wilson | Signed messages are not (necessarily) encrypted. Why can't they read them? The signature adds plain text around the message with the signature information. The body is left readable, even by someone who doesn't have the appropriate software to verify your signature. Did you mean to say you encrypted everything?
Thu 22 Jan | Li-fan Chen | Just a heads up there are a lot of fairly stealthy keystroke loggers out there, you'll need to account for such creatures to get anywhere with gpg on windows.
Fri 23 Jan | Ankur | Well, the default setting in Outlook is that a digitally signed message is packaged as an attachment (with an extension of .p7k I think).  You have to tell Outlook to send a clear text copy along with the signed copy.
Fri 23 Jan | mb | exactly. not even Outlook Web Access can read signed messages for some reason. you download the attachment and read it in notepad.
Fri 23 Jan | Andrew Murray | I use Thunderbird and encrypt mail all the time, its pretty painless.
Fri 23 Jan | Just me (Sir to you) | I have looked into these things. The 'excecutive summary': as it stands signed email is usable only within closed user groups (in practice inside the company). It will take a few years before the genaral PKI infrastructure is 'good enough' to allow more common usage. Clients are getting better at dealing with signed messages (e.g. do I check >everything< nescessary to OK the signing certificate, how do I handle unavailability of a CRL,...). Technical standards are very well adhered too, but as it stands, and as has been wel documented, the use cases do not gell very well with user practise/psychology. Furthermore, the maintenance of the nescessary PKI infrastructure is still too much overhead for most general cases.
Fri 23 Jan | Brad Wilson | 'exactly. not even Outlook Web Access can read signed messages for some reason. you download the attachment and read it in notepad.' This is a failure of Outlook, not a failure of digital signature technology. Every OTHER mail program on the planet is not so broken.
Fri 23 Jan | mb | that's the point: it's not that techinically it's infeasable. it's that it's unusable today, so no one will use it.
Fri 23 Jan | Brad Wilson | I guess if you presume 100% of people use Outlook, then it follows 0% of people would use it. You could use something besides Outlook. *shrug*
Encryption of Passwords - what are the options? | Thu 22 Jan | Ram Dass
Hi: I am newly undertaking, as a bit player, a project for encrypting our passwords - we are mainly a Solaris/Oracle environment. We use a number of encryption classes - MD5, CryptoUtil etc. The extrenal applications that authenticate will bve VPN, SAP R3, CrownPeak CM tool and an exchange server. There are some enryptions that would be more practical than others in this environment. Has anyone some pointers on where to go for a good start-point on lessons learned on implementations like this with respect to encryption? There seems to be tremendous potential for possible errors - I hope to do as much advance research as possible.
Thu 22 Jan | SC | >We use a number of encryption classes - MD5... Technically MD5 doesn't encrypt. It's more a hashing function as you can't decrypt the output:-)
Thu 22 Jan | Chris Ormerod | What do you actually need to do with the passwords once they are encrypted? If you just want the user to enter it and then store it in a database so you can supply it to the VPNs and other applications then I assume you could use any encryption method you want to store it in the database, and then decrypt it before passing it to the VPN etc. We do it this way (for our application - i.e. store usernames and passwords in the users table encrypted) - except we NEVER decrypt the password, i.e. there is no decryption code in our program, when authenticating a user we encrypt the PW they entered and compare that to the encrypted PW in the DB. We just use a class (in Visual FoxPro in our case) that makes use of the standard MS Crypto API. But to me it seems you want to encrypt passwords before passing it directly to the VPN, I would have thought any external app would need to recieve a decrypted password for authentication - if this is what you are trying to do, I would say your best bet is to encrypt the actual communications links between you and the VPN using SSL or whatever - otherwise you would just be wasting your time encrypting the passwords?
Thu 22 Jan | Elephant | I personally like the benefits of using a hash like MD5 for security. It prevents people that have good intentions from accidentally invading someone's privacy in being able to look up or decrypt the password. (Quick summary if you're not aware how it works) Hash password, store result in database. To confirm, rehash entered password, compare to known value. If password is lost, confirm identity, set value in database to a hash of a known value, send the person the known value, and require them to change it.
Thu 22 Jan | Chris Tavares | A useful tweak on the 'store hashed value in database rather than password' is to use a 'salted hash'. The basic idea is that you don't hash just the password, you hash password + salt, where the 'salt' is a random string. You store the hashed result and the salt. To authenticate, you get the password from the user, look up the salt in the database, calculate hash( password + salt) and compare what's in the database. This prevents a problem: if two users have the same password, then they'll have the same hash value. Adding the salt guarantees that everyone will have a different hash in the DB.
Thu 22 Jan | mb | what are you trying to do? create a keychain? authenticate users with a password? both are different--you can use a hash for authentication, but for keychains you need the password and thus are potentially creating a central database of all your users passwords (read: target). thus explaining why NTLM (and Kerberos?) have delegation concepts, and why schemes like Passport exist.
Thu 22 Jan | T. Norman | Using the username as the "salt" is also quite effective.
Thu 22 Jan | Brad Wilson | Only if the username is unchangeable (or you store the "salt" username separately from the real username, at which point you're back to just having a random salt equivalent).
Thu 22 Jan | T. Norman | The username can be changed without having to separately store a "salted" username.  Just ask for the old username and password when changing the username (or changing the password).
Thu 22 Jan | T. Norman | And you don't even have to ask for the username, since you'd know it once the user logged in.
Fri 23 Jan | pdq | First of all, in my experiance, a CS degree does not teach you how to be a good professional developer. You learn all of the academic background of computing, learn some useful techniques, etc but not about what makes a productive programmer in a business setting. I don't have a CS degree, but did take some CS classes when I was in school. I work with/manage a bunch of programmers who have a range of education from CS, Math, and Engineering PHDs to basically self taught. There isn't a strong correlation as to who's better. If you want to get out of your rut, try going to university and getting a degree in something other than CS and take some CS classes on the side. Or, just keep with your job and take some CS theory classes at night and read the suggested books. Good luck
Fri 23 Jan | Ram Dass | Thank you for all your help. I will post progress reports on JoS as we progress through the decision phases.
Why does Google cache sometimes hang? | Thu 22 Jan | J. D. Trollinger
Ever notice that some cached pages on Google will load only the top header part, and will then hang? This is very annoying. Heres an example: http://tinyurl.com/2ku7t What causes this?
Thu 22 Jan | SC | Seems fine to me...
Thu 22 Jan | J. D. Trollinger | Hmmm, I'm still getting only the header, but nothing in the body of the page. I've noticed this pretty often.  I doubt it's my system, because I just tested other cached pages, and they work fine.
Thu 22 Jan | Alyosha` | I think it's that the page served up still has links and images from the old website.  The inability to load one of those images (for example, the server is down) prevents the page from being able to render for an extended amount of time.  Sometimes if you hit the stop button in the middle of the process you can have IE take its best guess at rendering the page.
Thu 22 Jan | deja vu | Might also be that Google has a lot of machines dedicated to returning the results of a search quickly, but relatively few machines handling cache requests.. Cache requests can't be very many compared to the search requests, so why bother over-optimizing it ?
Thu 22 Jan | Nigel | Often you can get different results from Google depending on your geography. Their distributed server farms aren't synchronized perfectly, so there's the potential for somewhat unique behaviour. Don't know if it's related, but it's a possibility.
Thu 22 Jan | www.marktaw.com | I agree with Alyosha`, it's trying to load images, CSS files and possibly ads from the original page.
Thu 22 Jan | J. D. Trollinger | Well, if it's trying to load a bunch of stuff from the original page, then what's the point of having a cache?  Seems silly to me.
Thu 22 Jan | Alyosha` | If you think Google's cache is pointless, then don't use it. If you expect Google to cache the whole world someday -- not just the text parts -- I expect you will continue to be disappointed.
Thu 22 Jan | J. D. Trollinger | Alyosha, your comments leave me puzzled. My point was that the purpose of a cache is defeated if the cache attempts to read data from the original web page. I wasn't trying to say that Google cache is useless and that nobody should use it.
Fri 23 Jan | Alyosha` | Well, YOUR comments leave me puzzled! So there! I donno what a better implementation would be ... consider that half the time, the graphics are still there, it's just that the content had changed. But the other half of the time, the whole site is down. Should be an option to replace all IMG tags with blank GIFs? To me, that's what hitting the stop button a bit early does. One thing I wish is that links in cached pages were replaced by links to the pages in Google's cache. Oh well, can't everything ...
Fri 23 Jan | Tayssir John Gabbour | I think google is skating on thin legal ice WRT copyright.  Or maybe it's just a lightweight thing that doesn't need to be honed.
Fri 23 Jan | Breandán Dalton | When I interview prospective team members, I don't care what degree they have. Only experience and demonstrable ability counts at the interview. One of the best engineers I ever hired had started out as a carpenter. If you need a degree to get your CV past HR, buy one.
Dynamically determining the XML structure | Thu 22 Jan | Sathyaish Chakravarthy
One problem I have had with XML parsing is that one has to know in advance what the structure of the XML document they are going to parse is. At that, one usually ends up hard coding node names into the program. I was wondering then what is the use of the good DTDs and the IXMLDOMDocumentType objects in the parser? Why have a DTD then if you can not use it in your program to dynamically obtain the structure of a document. I hope I am making myself clear. For instance, I was given an XML file like this: Visual Basic Team Sathyaish Chakravarthy VB 6.0 VB.NET Win32 API (SDK) ADO.NET SOAP XML HTML C/C++ HTML Cascading Style Sheets Microsoft BizTalk Server 2000 MS SQL Server Sybase Oracle 8 MS Access Seagate Crystal Reports Ajay Kumar C/C++ Visual Basic 6.0 C/C++ Rishabh Agarwal C/C++ AS 400 Visual Basic 6.0 Visual Basic 6.0 Even if I had a DTD to this document, yet *I* would have to know that the document has the following heirarchy: ] > I was thinking what might be the use of the DTD when it cannot tell my application that must consume the XML about the structure of the document so that the application may dynamically look for elements depending on the document structure in the DTD.
Thu 22 Jan | Philo | First of all, stop using DTD's. Learn XSD. Secondly, yes you have to know the structure of the data. It works this way with databases as well - you have to know table names and field names. Even in a metadata solution, you need a table/field entry point. Nature of the beast. There are ways to use self-defining data, but then you end up getting the user to make data-based decisions, you're just channeling the data back and forth between the user and the database. Philo
Thu 22 Jan | WildTiger | Why do you want to use DTD rather then XML Schema? So is one of followwing your scenario? - you have schema for XML you want to load and reject the rest - you have XML and you want to know if it is valid according to your schema - you have XML and want to find schema for it
Thu 22 Jan | Sathyaish Chakravarthy | No, just that I never learnt XSD, but I will be learning it as soon as I can. Was just curious. On the one hand, I could recursively drill down the hierarchy to depict the XML DOM Tree on say a treeview without knowing the structure, or use XPath with SelectSingleNode to read a particular node's contents without knowing its ancestors, but this would not guarantee that I am accessing the correct node at the correct level. For instance, a node , which I access with an XPath instruction //BBB or //child::BBB could be well anywhere within the document and I necessarily won't have a guarantee as to which BBB I am reading. May be, there's joy in XSD I haven't discovered yet.
Thu 22 Jan | matt. | Dear god no - stick with DTD or learn Relax NG. It won't solve your original problem (no schema technology will) but at least you'll be spared the horror that is W3C XML Schema. To solve your problem, you'll need a generic data model (e.g. RDF graphs) instead of just a generic syntax like you have now.
Thu 22 Jan | Chris Nahr | I'd just like to point out that people who use DTDs are not by definition morons. DTDs and XSDs do different things, they're not interchangeable. Try defining a macro in XML Schema... right. Of course, the OP might still be better off with an XSD... but that's a case-by-case decision.
Thu 22 Jan | Philo | Why would you want a macro in a document definition? Philo
Thu 22 Jan | Chris Nahr | To define character entities and text passages that can thus be conveniently referenced in the document. You can import entire files with a custom-defined entity. That's only possible with DTD, not with XSD. DTD is also capable of handling syntax other than XML, although that doesn't apply here. (But it's the reason why the HTML standard is defined in DTD, not in XSD.)
Thu 22 Jan | Sathyaish Chakravarthy | >but at least you'll be spared the horror that is W3C XML Schema To be honest, I have a little secret I won't admit to. I find the whole XML thing a bit scary after the namespaces.
Thu 22 Jan | Robert Jacobson | If you're using Visual Studio .Net, you can have Visual Studio autogenerate a schema from an existing XML file. (Open an XML file in Visual Studio, then select the XML: Create Schema menu item.) The resulting schema might need some massaging, but it's a good way to get started.
Thu 22 Jan | Sathyaish Chakravarthy | Wow! That was one cool thing I never knew. But then I hadn't used VS.NET very extensively. Thanks for the trick.
Thu 22 Jan | Philo | 'To define character entities and text passages that can thus be conveniently referenced in the document' Isn't this mixing definition and content? Philo
Thu 22 Jan | Sathyaish Chakravarthy | >Isn't this mixing definition and content? It is and yet it isn't. Because in the DTD, for external entities, you're not defining the substance or content, you're just creating aliases for the location where the content resides in most cases, which is analogous with declaration. But for internal parsed character entities, it involves mixing declaration with definition. But coming to think of it, I think this is the only one useful thing that a DTD allows you to do, declare general and character (internal and external, parsed and unparsed) entities so you can use them with entity references. Validation is something that is only useful for constructing the document and not for consuming it.
Thu 22 Jan | WildTiger | >Validation is not required for consuming documents garbage-in - garbage-out? But how you would figure out if your 'out' is something useful then? XML by itself is not so useful and I believe in most cases you know in advance what data you can parse. So you will not use '//bla' since you know what path to the node to use... Or am I missed your question completely initially and you are trying to write XML parser yourself?
Thu 22 Jan | Samir | 'Because in the DTD, for external entities, you're not defining the substance or content, you're just creating aliases for the location where the content resides in most cases' Aaaaiiiieeeee!!!!! I guess if DTD is the tool you feel is best suited in this case, fine, but man is this an abuse of what a document definition is about. For one thing, it's generally supposed to be portable, and pointing to an external location certainly destroys that concept. Sorry - just completely alien to the way I've used schemas. Philo
Fri 23 Jan | Better than being unemployed... | The nice thing I have discovered about .NET is that if you have an xsd schema (which Visual Studio .NET can auto generate from your xml as mentioned above) is that you can run the xsd.exe utility to create a bunch of classes based on your schema. This allows you to serialise and deserialize an entire object model from an XML file in about three lines of code. Personally, I think this is way cool.
Fri 23 Jan | Robert Jacobson | You can also go the other way... generate an XSD from a class definition. IMO, one of the best features of the Framework. (Shuddering at memories of my hand-rolled serialization routines in VB6...)
basic db question | Thu 22 Jan | not a db guy
whats the general feeling on a table for states? something like? CREATE TABLE if not exists States ( state_id int(11) not null primary key, state_name varchar(25) not null, state_abbrv char(2) not null ); or is the id redundant, since name and abbrv are already unique. i guess i just always like to have a row id. is a table even necessary? couldnt we just define a constant since the state data seems pretty constant in the US?
Thu 22 Jan | Dennis Forbes | Look up ISO 3166. It is primarily a international standard for country code, but there are substandards covering states.
Thu 22 Jan | Full name not required | 'couldn't we just define a constant since the state data seems pretty constant in the US?' But what if Puerto Rico becomes the 51st state? Or Iraq? :-P
Thu 22 Jan | Steve Jones (UK) | Or Sedgefield?
Thu 22 Jan | njkayaker | The postal abbreviations for states are unique and short (2bytes). Why add an artificial key (that is 11bytes)?
Thu 22 Jan | C Rose | Are substandards worse than regular ones?
Thu 22 Jan | M | Check out item #3 in this article: http://www.intelligententerprise.com/001205/celko1_1.shtml
Thu 22 Jan | not a db guy | well, here's the current implementation i was handed... CREATE TABLE if not exists States ( Field1 CHAR(50), INDEX Field1 ( Field1 ) ); INSERT INTO States VALUES ('AL'); ..... anything has to be better than this, right? also, do US territories have 2 character postal codes? the cost of an 'id' seems small (11-2=9;9*50=450 bytes?).
Thu 22 Jan | Dave B. | If you have an intended purpose for the ID then you obviously need to include it. Consider your overall design and determine if an ID is necessary. If you are using Visual Basic for the front-end, for example, and you are displaying the state abbreviations in a combo box, having the ID in the table makes sense because you can now use the ItemData field, a field of type long, to associate each state with its ID. A down side to including the ID is that is may make queries asking for information about the entities associated with the State more complex. Only you can determine if having the ID in the table is beneficial for your situation. It requires a little analysis of the situation and the context in which it will be used.
Thu 22 Jan | MR | ****DOUBLE-PLUS UNGOOD**** CREATE TABLE if not exists States ( state_id int(11) not null primary key, state_name varchar(25) not null, state_abbrv char(2) not null ); ****GOOD**** CREATE TABLE if not exists States ( state_abbrv char(2) not null primary key, state_name varchar(25) not null );
Thu 22 Jan | not a db guy | as for the celko article, he says 'The next stupidest thing is using a prefix that repeats the table name in front of the data elements.' well, in code, i'd rather look at resultSet['group_name'] ... resultSet2['user_name'] rather than resultSet['name'] ... resultSet2['name']
Thu 22 Jan | Philo | Use the state abbreviation as the Primary Key - it fits the definition perfectly. It also makes the address table more readable (and may eliminate a join in some cases). When there is an abbreviation or code that is required to be unique, think about using it as the PK instead of inventing one. Philo
Thu 22 Jan | Almost Anonymous | 'well, in code, i'd rather look at resultSet['group_name'] ... resultSet2['user_name'] rather than resultSet['name'] ... resultSet2['name']' I immediately question the naming of 'resultSet1' and 'resultSet2'... what's it a set of? You'll see that proper naming of your resultsets make that issue go away pretty quick.
Thu 22 Jan | DJ | 'When there is an abbreviation or code that is required to be unique, think about using it as the PK instead of inventing one' That is fine but if there is even a remote chance that the codes will change then you should create a numeric PK which has no relation to the code.
Thu 22 Jan | MR | not a db guy, I write SQL code all day and, although I prefer to design as he suggests (e.g. without table prefixes) I really can appreciate it under certain circumstances. For example, when you join tables together and the join condition is the same name, you end up with: SELECT * FROM foo INNER JOIN bar on bar.ID = foo.ID Sure, you can alias, but then you end up with nonsensical aliases, like: SELECT * FROM foo a INNER JOIN bar b ON a.ID = b.ID INNER JOIN baz c ON a.ID = c.ID etc. etc. Also, if you have two tables like this (this is a contrived example; I know you would have date_of_birth or somesuch and calculate age on the fly): Person( SSNo, Name, Age ) Car( VIN, Make, Model, Age ) Person_Car( SSNo, VIN ) And you want to get a person's age and their car's age then you end up with: SELECT Car.Age AS CarAge, Person.Age AS PersonAge etc. Due to the third-party application I’m forced to work with on a daily basis I really love table prefixes. Why? This application uses Oracle forms and when you want to figure out what column of which table is supplying your data you can ask the forms manager “What information do you know about this field?” Unfortunately, it will only give you the column name. So, if you have the table name prefixed you immediately know what table and column the data came from. Yes, I hate this, and no, there’s nothing I can do about it, although I wish I could.
Thu 22 Jan | Dennis Forbes | Celko is a really smart guy, especially in SQL, but he is really over the top -- I mean proclaiming that entirely subjective decisions such as table or field prefixes are "stupid" is arrogant and, well, stupid.
Thu 22 Jan | Martha | 'if there is even a remote chance that the codes will change then you should create a numeric PK which has no relation to the code.' Um, is there some underhanded conspiratorial plan in the works to change the abbreviations for the US states? Maybe switch to a letter and a number, and all the states that begin with the same letter get to have a little war to see who gets number 1? IOW, use the abbreviations as the PK. (Caveat: don't then try to repurpose the field to also store Canadian provinces or UK counties or whatever.)
Thu 22 Jan | M | There is no question Joe knows his stuff. He is the ANSI SQL master and knows every SQL trick in the book. Just as implementations of RDBMS are not fully ANSI compliant, so take the advice offered.
Thu 22 Jan | DJ | 'Um, is there some underhanded conspiratorial plan in the works to change the abbreviations for the US states?' I know it's not gonna happen in this case, but I have been burned too many times by 'don't worry those codes will never change'
Thu 22 Jan | Philo | Well you just have to use a little business sense. Building Contractor's homegrown materials codes? Will change annually ANSI Materials Codes? Pretty safe Joe's Invoice units of measure? What day is it? X12 Units of Measure? Fixed in stone. etc, etc. Philo
Thu 22 Jan | Bill Tomlinson | Eh, I've been burnt too many times. I prefer to err on the side of caution and always have keys that have no meaning outside the database because some joker will always come along who wants to make changes to the external meaningful keys. Now, I admit, that doing this for US state abbreviations is probably overkill. The odds of those changing are very close to zero. But I think that there is something to be said for consistency. If 90% of my tables have application meaning only keys, there is some advantage to treating the other 10% of the tables the same way even if you don't have to.
Thu 22 Jan | Philo | So I'm the only guy tired of digging around inside the database and having to say 'ok, what's state 04?' or 'Which type allowance is 21, and why isn't it working right?' My whiteboard is littered with notes to myself about FK's. Here's an example I wish I hadn't done: DocType 1 - PO 2 - Inv I wish more than anything that I had just made the document codes (810=invoice, 850=purchase order) the primary keys. It's an x12 standard and has been for decades - it's not going anywhere. If I'd used the codes instead of arbitrary autonumbers, I would have saved a ginormous amount of joins and lookups. I was a viciously zealous defender of 'no meaningful primary keys' until I did a lot of x12 work. That made me rethink it. Philo
Thu 22 Jan | Tom H | The debate on whether to prefix the column with the table name misses the point. A column should be named after the Entity it represents (StateID, PersonID, etc), it doesn't matter what table the column is in. It should be obvious when you are relating columns or performing other operations on them that the entities go together.
Thu 22 Jan | Andrew Lighten | Slightly offtopic and not at all implying that 'not a db guy' is doing this, but: As someone outside the US, it really, really annoys me when a site insists I pick a state as part of an address, and the only options I get are a fixed list of American state codes. If I'm filling out an address simply for site registration details, you're gonna get bogus data. If I need to fill out the address for a purchase, I'll buy elsewhere, thanks very much.
Thu 22 Jan | not a db guy | the post about wanting meaningless 'id' keys in the 'other 10%' is one reason i like them. another reason is for HTML select elements. granted, with states, the postal code would work just as well, but in many cases, it's stretching things to have:
Fri 23 Jan | Bill Tomlinson | Philo, It could be worse, we had a guy who wanted to use GUIDs for the independent keys (his thinking being that it's much easier to just generate a new GUID than having to write a incrementing key library (because we wanted database independence)). So it would have been: 'So what state is {936DA01F-9ABD-4d9d-80C7-02AF85C822A8}?'. Of course, he changed his mind after a suitable beating.
Fri 23 Jan | Dennis Forbes | GUIDs are nice if the key is artificial (i.e. where there isn't something unique and convenient like a 'state acronym') and you may have the need to transport clusters of data between databases -- for instance I have a reporting application where I extensively used GUIDs because the reports and language elements (i.e. resource strings) are copied wholesale between databases, and they are referenced by some outside-of-database items (like XML documents). The same scene played out in a team where there was 10 developers all developing on their own database, adding descriptors, lookups, etc, and then when the merge came they'd find that someone has the id that they are linking to, so they start some cascade of changes. i.e. GUIDs are nice for merges. Mind you another developer rightfully pointed out that we should just all skip having local autonumbers, and use a central code release system which is also very useable. Having said that, I worked with one wanker once who insisted upon GUIDs for the sole reason that they were more 'Enterprise' ready -- it's a bigger number, therefore it's a better choice. That's a really poor reason for using GUIDs.
.NET market penetration (can I use it)? | Thu 22 Jan | the real apprentice
Got a contract with a financial planner to write and app that hell sell to his clients.  Hes also planning on making it available to download on his site.  Id love to write this in C#, but theres that whole adoption issue.  Does anybody know what the current market penetration is?  Im assuming requiring a 20+ meg download is still in bad form?
Thu 22 Jan | Nathan | If the client of a financial planner is sending people to a website to download a program, then he must be assuming some level of web savvy. Wouldn't it be safe to assume those same people would have windows updates automatically keep their computer up to date, thus already having the .NET framework? Or, maybe he could monitor the user agent from the people visiting his site and see if they have the framework installed. That should give you a heads up concerning the number of adopters.
Thu 22 Jan | Dennis Forbes | 'If the client of a financial planner is sending people to a website to download a program, then he must be assuming some level of web savvy.' Perhaps from the downloaders, but it sounds like that is just one form of distribution (and more likely it'd be in some high-pressure 'buy my financial planning application...' situations in the office). Perhaps I'm stereotyping incorrectly, but I would guess that the general financial planner customer base would be of below to far-below average computing skills, and hence would need the absolute minimum hassle possible, not to mention that there is a latent base of millions of Windows 95 (i.e. non-.NET capable) machines out there (don't let the google Zeitgeist graphs fool you, as they are not an equal distribution of all computer users). It sounds like a Delphi or Visual Basic candidate to me. Indeed, I would also guess that the percentage of mac owners is higher among financial planner patrons (venn diagram anyone?), so perhaps wxWindows and a cross platform C++ app would be your best bet. :-)
Thu 22 Jan | Li-fan Chen | Is there a site online that monitors the number of User Agents displaying that they support .Net framework?
Thu 22 Jan | Andrew Cherry | If there were such a site it would still be essentially useless... The only percentage that's important to you is that for YOUR target market. You would need to do the same kind of monitoring of your targets, perhaps at your site. On the plus side, that's not very difficult to do. 
Thu 22 Jan | Rick Watson | C# doesn't necessarily mean client download. Do you have anything against ASP.Net? If you are able to get a download on your server, I'm assuming you'd be able to get other files there? It's really nice to develop against ASP.Net and there are no dependencies and no downloads. It all depends on what kind of app you're developing whether this is acceptable or not.
Thu 22 Jan | the real apprentice | Yeah, I was thinking about ASP.NET.  The download option is still not firm, as a lot of web stuff would have to take place (right now it's just a static hosted site).  He was actually leaning more towards just handing out a CD, which would make the penetration point moot. 
Thu 22 Jan |   | when you will release it? one year from now or tomorrow? do you got % of the sales? or it's just a work for you? if your client agrees on .net then do it, and don't care about his clients. if your system won't be in the $25-$100 range, if people want to use it they will download .net as well.
Thu 22 Jan | runtime | If your client agrees to use .NET, even though you believe it will create a lousy product for THEM, then you are not doing your job. What does your client know about software? They are paying YOU to create a software solution for them. If .NET is not the appropriate tool for their solution, then you should not use it. I think that would be unethical. The crux seems to be the web downloads. If you just shipped CDs, then you could include the .NET installer within your app's installer. If the clients have enough bandwidth to download your app, maybe they wouldn't mind downloading your app installer that bundled the 20 MB .NET installer.
Thu 22 Jan | The real Entrepreneur | Will the client's customers be downloading a TRIAL version or a purchased version? I.e., WHO is downloading : Potential customers (who've not purchased yet) or actual customers. If it's potential customers, I'd avoid .net : the download hassle could turn off potential customers. (I assume you want HIM to make money so he can pay YOU do write more software or maintain this. If customers are downloading it ONLY after purchase, the download size is probably irrelevent if you just offer a CD install version. You can get 1,000 CDs made for under $800.00. S & H charges will cover that.
Thu 22 Jan | Rhys Keepence | My girlfriend works for a big accountancy firm and I can tell you that she doesn't have the .NET framework. Going by the current SOE, I wouldn't expect to see it for a few years. They moved to Windows 2000 about a year ago, and only the critical patches have been installed since.
Thu 22 Jan | Li-fan Chen | I know of huge companies that swears by Netscape 4.7, and Office 97. This is not news. Like someone said earlier in the thread, you'll have to watch who your target audience is, and ask yourself how much are you willing to sacrifice in terms of market share. Maybe the next 5 years won't pan out for .Net, then write it in the latest and greatest Visual C++ and see if you can get anywhere with that, don't want to maintain all that C++? You can always go Delphi if you can't stand VB. Otherwise VB never hurt anyone.
Fri 23 Jan | Just me (Sir to you) | Sure, target audience and that sort of thing ... we all agree. But don't forget about productivity. If .NET allows you to get the same result with half the resources, then there are ways this can translate into customer benefits (lower cost, faster cycle, more features, more security,...). These benefits might way offset the hassles of having to possibly install/download the runtime.
Fri 23 Jan | The real Entrepreneur | In my experience, CONVENIENCE is pretty important to paying customers. Now, perhaps you could use the $$ saved by increased productivity to send out free CDs. Good way to collect customer information. (I.e., a targeted customer list might be worth $10 or more per name to your company or (if you're less than ethical) someone else's company. (I would never sell customer info, even if we had no privacy policy. But we're successful. If were were NOT successful I might stoop to that in order to feed my family of 5 :-)
Fri 23 Jan | Junkster | Note that the .net libraries are in Windows Update.  Anyone who regularly updates, or has automatic updates enabled, will get the .net stuff.
Fri 23 Jan | Just me (Sir to you) | Since the .NET runtime is under "Recommended" I don't think it is included in automatic updates.
Fri 23 Jan | the real apprentice | ASP.NET it is!
what's your choice of database editor? | Thu 22 Jan | Winnol
What do you use out there for those day-to-day database editing/administration tasks? Does it work for you? What features are missing? Whos rolled their own?
Thu 22 Jan | M | SQL Server 2k - Query Analyzer rules! For long script editing, I use Jext (www.jext.org) as it is an advanced editor and supports t-sql syntax. I wish Query Analyzer had a mode to encapsulate the last run statement in a complete transaction to roll back an accidental hit to the F5 key. Oh well, live and learn!
Thu 22 Jan | anon | I use a combination of all Enterprise Manager tools along with MS Access when working with SQL Server. And a combo of Toad & MS Access when working with Oracle. Worst DB tool of all time? SQL Plus.
Thu 22 Jan | Crazy Larry | Obviously someone with a "free" database on *nix.
Thu 22 Jan | Simon Lucy | Visual Foxpro for looking at anything, manipulating data.
Thu 22 Jan | Steve Jones (UK) | Visual Studio.NET 2003 does (almost) everything, right in the IDE. The only thing 'missing' is being able to assign permissions to stored procedures, etc. That would be useful, as then I wouldn't have to fire up Enterprise Manager, just to perform a few mouse clicks. I know I could do 'grant execute on sss to uuu', but I really don't like command-line interfaces any more.
Thu 22 Jan | nobody | TOra (www.globecom.se/tora) TOAD (www.quest.com) DB Visualizer (www.dbvis.com/products/dbvis)
Thu 22 Jan | Clay Dowling | I've rolled my own for MySQL at http://www.lazarusid.com/mysqlweb.shtml It's not as feature rich as some of the MySQL tools out there, but it's better than the command line client, and it doesn't require me to install PHP. I whipped it up in an afternoon because installing PHP was going to be a real pain and take a lot longer.
Thu 22 Jan | matt | Embarcadero DBArtisan
Thu 22 Jan | Patrik | For Oracle I use TOAD For PostgreSQL I use my own query tool/stored procedure editor.
Thu 22 Jan | Winnol | The thing that annoys me about query analyser in sql server is the lack of 'in place' editing. Alot of the time I just want to click on a field and make a minor correction. Instead I have to type out an update statement. It seems to me like one of those MS thngs where they've made something 'good enough' and have no interest in improving it. cf: IE.
Thu 22 Jan | Philo | Winnol - 1) You can do this in Enterprise Manger as well as in the VS.Net IDE 2) More to the point, by just 'clicking and changing field names' you destroy any ability to maintain multiple databases (dev/test/production). All changes have to be scripted. Philo
Fri 23 Jan | Kraemer | phpMyAdmin for MySQL. Simple but nice enough.
Microsoft Business Solutions : Axapta | Thu 22 Jan | Shai
Hi folks.... does anyone have any idea about the Microsoft product called Axapta ? Obviously I have been googling this to get some basic info, but would like to know if anyone has worked with it (as a user) or worked on some project/part related to Axapta integration with other softwares. What id like to know is : * Does this product have a good installed user base * Is Microsoft still supporting this product * Any idea about what technologies this product uses (as in VB, VC++, Java or some proprietary language). Why i ask this is coz MS bought the company which owned Axapta earlier. * Any idea what the base version of the software costs like * Where can I get more detailed information on this product * What kind of companies is this product targatted at May be Joel can provide some insider information on this.............. Do let me know if anyone of you have soem details on this... Thanks
Thu 22 Jan | Steve Jones (UK) | Check this out: http://www.microsoft.com/businessSolutions/Axapta/default.mspx
Thu 22 Jan | Peter Ibbotson | It used to be a company called Damgaard (Spelling may be wrong) who merged with Navision who were then bought by Microsoft. It's more popular in Europe than the states and I suspect that MS will kill off great plains in europe and use Navision as their european brand with great plains in the US. As far as I know it's a perfectly capable product but we don't run up against too often (Market segments don't overlap too much).
Thu 22 Jan | Tobias Nyström | Axapta contains it's own development environment (if you buy that licence), which uses X++ (it's a C-ish kind of language). It's pretty easy to learn, the hardest thing is propobly to learn how the Axapta application is working, what each object does, and so on. I come from a background of developing close to the database, and from that perspective Axapta is quite a bit akward. They have created their own SQL-language (although you can actually connect directly to the database and execute regular SQL if neccessary) which lacks some of the basic stuff. For instance, triggers, unions and a lot of other stuff is not supported in the built in SQL (they only started to support views in the most recent version). Oh, and it doesn't support Null. I'm not kidding... Also, all database objects is held in a repository in Axapta, which means that you can't actually do anything directly in the database - you always have to go though Axapta.
Thu 22 Jan | Sathyaish Chakravarthy | Its interesting someone's braught this up. I myself am looking for information on Axapta and Navision (erstwhile Attain). The MBS (Microsoft Business Solutions) site contains only promotional material for prospective clients. It doesn't serve any purpose for developers. I had a chat with one of their call center folks and they gave me an email address from where you get developer information on MBS products. The email is mbsisv@microsoft.com. ISV stands for Independent Software Vendor. In fact, I did even send them an email and got a response which only said, your request has been escalated to the UK office. Its been more than a week now. Just seconds ago, I received an email from them where they asked me to fill an online survey about the level of satisfaction I had from their service to my inquiry. I also know that the company Navision (which now doesn't exist because it was amalgamated with Microsoft) has an intranet where there is loads of information but again its of no use if you do not have the product license.
Thu 22 Jan | Sathyaish Chakravarthy | And that's correct, the syntax for their development languages is ditto like C.
Thu 22 Jan | Tim Lara | The Navision product line (Axapta, Attain, etc) seems to be of fairly decent quality compared to most other accounting / financials packages I've seen. It is essentially a closed, proprietary system based on open MS technologies. By this, I mean that if you are willing to stay within the realm of Navision and implement your processes INSIDE the Navision IDE using their tools, the system works quite well and has many RAD-type advantages. However, if you want to try to interface Navision with existing external solutions, you are going to spend some time pulling your hair out. There are various communication / integration modules available for Navision, but they are not well documented and certainly not commonly used in the USA. Sathyaish hit the nail on the head: Finding technical information / documentation about Navision is next to impossible. (Or at least, finding it in English is.) Almost everything on the web is sales-promotional related material. There is no shortage of hype and claims and snazzy brochures, but if you want to find out how the underlying technology actually works or how to develop anything for the platform that's even just slightly out of the canned functionality norm - good luck, you're on your own, buddy. I know, because my company just bought Navision Attain (a notch or two below Axapta, I believe) and I am one of the poor clods in charge of customizing the package to absorb our existing business processes that are currently handled by a hodgepodge of creaky legacy systems... If anyone can prove me wrong on this assertion, I will erect a shrine in your honor!
Fri 23 Jan | Tobias Nyström | The lack of documentation is, as people have mentioned above, one of the greatest problems. The Developers Guide, which is the only technical documentation within Axapta, is propobly the worst documentation that I've come upon (from a company of Navisions size). The support from Microsoft (please note, that this is only based on the support in Sweden. I have had no experience with the support in other countries) is not something to write home about. If they answer (I'm not kidding) there are usually only a few people available to answer questions, and as soon as the question is a little bit out of the ordinary, they're unable to give you an answer. Microsoft do have a technet for Axapta (link below), and that is without a doubt the best source for information (at least in Sweden). Do note that the part of Technet that is maintained by Microsoft (articles, documentation e t c) is as scarce as the rest of the documentation. The interesting part is the discussion forum. You can join for free, regardless if you have a licence or not. http://technet.navision.com
Fri 23 Jan | Sathyaish Chakravarthy | Yeah, I had the link to the Technet intranet I mentioned in the post, which you have provided a link to (http://technet.navision.com), but I did not post the link on the site because I was not sure of the consequences. I thought it might be some secret thing because I got the link from one MSFT insider working for MBS Middle East. But I've gone through some PDFs there and they are of no use to the developer, at least not unless you have the product license. And the forum, oh, that is a joke. I didn't see a single post on the forum. May be I didn't know how to look or where to look, but I saw the forum was completely empty. Tell me, have I got that right?
Fri 23 Jan | Tobias Nyström | You have to go to the 'Discussions' tab. There you find the discussion board - which I'd guess contains about 10k subjects.
In Defence of Outsourcing | Thu 22 Jan | David B. Wildgoose
This is a thoughtful and well-written article on this emotive subject: http://comment.zdnet.co.uk/0,39020505,39119248,00.htm
Thu 22 Jan | no name | If management made thoughtful decisions I don't think anyone would be so worried. As it is, decisions of this type are too often made by people whose only concern is the stock price.
Thu 22 Jan | T-90 | 'emotive subject' is just about right. And getting a bit emotional about it: talking about the 'big picture' and how its going to help in the long run and generate new jobs etc. etc. is all very fine and (maybe) correct. But how do you explain this stuff to a guy who's just got laid off and is now worried about how (s)he's going to support his/her family and pay off the loans/mortgages .... No I don't mean this to be a troll or to be taken up as a flamebait. Its just something that I mull about sometimes. Don't such articles totally ignore the 'human' angle? PS: I noticed that this guy talks only about programming/software tasks. He doesn't talk about other job areas like call centers or Medical Transcriptions etc. Just an observation...
Thu 22 Jan | T-90 | Maybe I need some fresh air!! :)
Thu 22 Jan | David B. Wildgoose | Call Centre jobs are a big deal here in the UK right now. So much so, that a number of major companies (Nationwide, Royal Bank of Scotland and the Alliance & Leicester) have made public announcements that they will *not* outsource such jobs. Much approval, and no doubt more business. (I already have accounts with Nationwide and RBOS). Contrast this with the opprobrium heaped on Norwich Union, et al, and doubtless a corresponding reduction in business. (I know I'm not interested in giving them any more). The bottom line is that whatever hits these businesses on the bottom line will decide their actions. The best way to influence their decisions is by giving our business to those companies we consider ethical. Persuasion rather than coercion. Always the best way.
Thu 22 Jan | Stephen Jones | My experience of Call centres is that you never get througn anyway, so the quesion of their location is moot.
Thu 22 Jan | no name | Good article! Everytime an outsourcing debate gets started, I'm always reminded of 'Who Moved My Cheese?'.
Thu 22 Jan | anon | Um, who cares if there are no more call center jobs?  They can all go work for McDonald's.  You don't study for nine years of your life to get MS Math & MS CS to work in a call center.  They are irrelevant to the conversation.  What interests me is what people who have devoted their lives to CS are going to do. 888
Thu 22 Jan | -- | Customers care about the call center jobs.  They don't like to speak to people whose language/accents make them difficult to communicate with, nor to people who don't understand the products or services well enough to solve problems quickly.
Thu 22 Jan | Jim Rankin | 'But how do you explain this stuff to a guy who's just got laid off and is now worried about how (s)he's going to support his/her family and pay off the loans/mortgages ....' Well, the article does make a couple of suggestions for Western programmers facing the overseas outsourcing challenge. In a nutshell, develop your people skills as someone in Bangalore can't interact face to face with a customer. Your advantage is you can sit down with people to develop requirements and system design, respond immediately to requests, and share culture and probably the same accent with the people who are paying you. So you need to leverage those things if you want to stay employed as a Western software developer these days.
Thu 22 Jan | Tom Smykowski | Well-well look. I already told you: I deal with the god damn customers so the engineers don't have to. I have people skills; I am good at dealing with people. Can't you understand that? What the hell is wrong with you people?
Thu 22 Jan | pdq | The problem with call centers is that they don't hire enough second and third level people who know how to actually solve problems that aren't in the call center's trouble shooting manual. If I call the DSL company's line I get someone who's probably in India. If they had their call center in Fremont, CA, the person would have the same accent, culture, so this doesn't really matter. What does matter is that they don't know anything, aren't trained enough, and there aren't enough higher level people who actually do know something.
Thu 22 Jan | analyst | Law pay, high stress dead-end coll center jobs will stay in thee west. The high pay, high prestige development jobs will go over seas. This is a good thing because it will result in more free and open source software for everyone. India should continue to invest in high tech and the US will continue shipping $1Billion in free food aid to India to feed their poor.
Fri 23 Jan | analyst | Oh dear, you go away for a few weeks and when you check back there's an imposter.  Analyst above is not analyst, who would never defend offshoring or open source.
Fri 23 Jan | Jay Garrick | Will the real analyst please stand up? Maybe 'Analyst' is from a parallel Earth in an alternate reality?
gigabit ethernet workgroup switches | Thu 22 Jan | christopher baus (www.baus.net)
Im fortunate in that my house is wired with CAT 5e throughout. Im currently reworking my home network to 1) accomdate a mythTV media server in the living room 2) do high speed network application testing I want to upgrade to gigabit ethernet, and a few low cost workgroup layer 2 switches from linksys, dlink, and netgear have come on the market. They are going from around the $80 range from amazon, newegg, etc. for 5 ports. Since they are pretty new, I cant find much information on them. Has anyone tried any of them? The prices jump dramatically when you go beyond the low-end of gigabit switching to say a mid-end layer 3 switches such as the Cisco Cat 2950 at $3000. I just wonder what the performance of these low end switches is like. I doubt the CPUs can keep up with a loaded gigabit network.
Thu 22 Jan | _ | What awful problems to have! :)
Thu 22 Jan | Li-fan Chen | Yeah I am interested in low cost gigabit baby switches/hubs as well, any recommendations in this area is welcome. I like to know the going price, which companies makes the best ones, throughput snake oils to look out for, etc. Most of us at work or at home are tired of having the NIC card being the bottleneck too. The effective bandwidth of the PCI, the memory, the hard drive all seems to be perfectly capable of pushing through at least 200-350Mbps, my understanding is that gigabit NIC cards right now does 400Mbps effective, what's everyone's opinion on this?
Thu 22 Jan | Li-fan Chen | Baby switches: DGS-1005D and D-Link - DGS-1008D, inexpensive and very popular; NIC cards goes for USD$25+, CAT6 or CAT5e are usually just a slight premium over no name CAT5s. You'll have to ensure your PC is fast enough to transfer and receive at this rate though, not all PCs are equal.
Fri 23 Jan | null fame | Note that some of the cheaper ones (like Linksys's "gigaswitch", IIRC) consist of one gig-E port and the rest are 10/100--I guess you're supposed to put your gig-E server on the 1000 port and your 10/100 clients on the rest.
Fri 23 Jan | christopher baus (www.baus.net) | I've noticed that.  There are some 5 ports by DLink and Linksys that are < $90.
SOFTWARE CANNOT BE GIVEN AWAY! | Thu 22 Jan | the artist formerly known as prince
In the microsoft writes linux thread one poster said I can volunteer my time. I am not arguing whether it is good or bad to give things away, just trying to point out that software, by its very nature, is able to be given away, for better or worse. I just think its interesting that there is nothing which requires software to be commercial. Wrong, templates for software can be given away, but there is a difference between software for softwares sake and actual usefull software solutions. Yes we have oracle, access, excel ... but these in themselves are not software solutions to real world problems! You still need people to implement solutions, sometimes this means software from scratch, sometimes this means adding on to existing software, sometimes it means weaving together existing applications. But in every case people are needed. We lament free software, and pre made solutions, this is ridiculous, most people in the constuction field would kill for free bulldozers, and we have them, but guess what bulldozers are useless to non-builders just as mysql,linux,a blank spreadsheet ... is useless to a non techie who does not know how to use them!!! IT people need to start thinking of existing software as building blocks to bigger and better things in a field of infinite possibilites rather than as competition ... yes the database has been made, now go build something usefull on top of that database. I will give one quick example, my company, Farmers Insurance has a quoting application built on top of MS Access and Windows (3 layers up), but agents now want to use that application for CRM purposes- birthday cards, tracking customer demographis etc ... We have a component, but there is always some need for information that is unmet! that is our job to meet it!
Thu 22 Jan | Mike Swieton | Tell me why, again, that I cannot volunteer more of my time to write an app on top of a free database I wrote? If you concede that I can create one building block for no money, than can I not create another?
Thu 22 Jan | John Rose | That's right. As developers, I see 'free' software as a boon to our job, not as competition. I don't see 'free' software as ever replacing commercial software. The two will always co-exist. There is room for both. And even Microsoft admits this- they've referred to free software's place in the 'ecosystem' before. Free software isn't stealing anybody's lunch. To some extent it's taken away some of the market for shink-wrapped commerical software packages. But I think it's done far more good than bad overall. The market for shink-wrapped software is nothing compared to the market for people who can make solutions out of, and on top of, existing software- whether that software is free, commerical, or a mix of both. The availability of free and open software creates competition for commerical applications, forcing those applications to be better. Do you think that Microsoft's IIS, Access, SQL, Office, and OSs themselves would be as good as they are now without Apache, MySQL, Postgres, OpenOffice, and Linux distros to worry about? And look at consumer products that use free/open software as a base, like TIVO. Without the ability to use Linux as a base, there's a very good chance TIVO would never have existed. I'm speaking as a Microsoft guy, here, by the way. I've installed Linux a couple of times and played with it, but my skills and my paycheck depend on using Microsoft tools. That's something that *I* think is in a better place because of free and/or open-source software.
Thu 22 Jan | T-90 | Sorry, I missed the point altogether. Could you please summarize what you're trying to say.
Thu 22 Jan | the artist formerly known as prince | Sorry mike didn't mean to pick on you, and didn't actually mean to take that part of the quote, What I did mean- You are certainly free, and able to create software for free, but you are not putting me out of a job doing it, as I am able to improve, complement, extend your software for money (or free).
Thu 22 Jan | the artist formerly known as prince | Sorry t-90 no I cant
Thu 22 Jan | Rhys Keepence | Because apart from commodity software, most software is highly specialised. Free software authors usually do it for the fame (for example, to gain better employment). There is no point working on an application that is highly specialised, since it won't be well known. Also, being a specialised app, it would be worth selling because it wouldn't be in a highly competitive market.
Thu 22 Jan | John Rose | 'Tell me why, again, that I cannot volunteer more of my time to write an app on top of a free database I wrote? If you concede that I can create one building block for no money, than can I not create another?' ----------------- Of course, there is nothing stopping anybody from doing this. But not even the craziest open-source advocates suggest that it should be so... at least not to my knowledge. Guys like RMS are not blind to the need for people to earn a living in the software world- they basically believe that, generally speaking, code one writes ought to be recycled back into the software ecosystem so that it can be used by and further improved upon by others. This results in better software for everybody because people spend less time reinventing the wheel, and more time creating SOLUTIONS. At a time when the U.S. is hemmoraging jobs overseas due to the higher costs of labor in our own country, I think that the ability to use free/open source software as building blocks for our solutions is one of the few things which actually helps to level the playing field when I'm competing against some guy overseas who can do my job for 1/3 of the money.
Thu 22 Jan | Rhys Keepence | BTW - My first paragraph was in response to Mike :)
Thu 22 Jan | Sum Dum Gai | 'Yes we have oracle, access, excel ... but these in themselves are not software solutions to real world problems!' We also have ie, word and powerpoint, which ARE solutions to real world problems (web browsing, word processing and presentations respectively). So some software falls into your category, and some doesn't. I appreciate your point, but you've gone a bit too far to the other extreame. The best way to combat a strawman argument against open source is not to respond with your own strawman about the nature of software. ;)
Thu 22 Jan | no name | 'SOFTWARE CANNOT BE GIVEN AWAY!' It already is.
Thu 22 Jan | Nicky | The ugky stench of desperation...
Thu 22 Jan | Vlad Gudim | Saying about having software which is real world problems solution and contrary just a base for solution you probably mean difference between applications and platforms. Joel has a good article somethere about it. Doesn't suprise that some package may be an application and the platform at the same time (MS Word for text editing VS MS Word with VB for Applications)
Thu 22 Jan | Just me (Sir to you) | 'Guys like RMS are not blind to the need for people to earn a living in the software world' No, people like that just think sofware development should not be financed by making products people are willing to pay for, but rather by razing a tax that you have to pay, wether you want to or not.
Thu 22 Jan | Confused | 'At a time when the U.S. is hemmoraging jobs overseas due to the higher costs of labor in our own country, I think that the ability to use free/open source software as building blocks for our solutions is one of the few things which actually helps to level the playing field when I'm competing against some guy overseas who can do my job for 1/3 of the money.' Are you saying that if we write free software the overseas developers won't use it? Or if they do use it, is it a give and take thing or just one way? Is a lot of innovative open source and free software being developed in India and China right now? Or is most free and open source software being developed in other areas?
Thu 22 Jan | Confused | 'people like that just think sofware development should not be financed by making products people are willing to pay for, but rather by razing a tax that you have to pay, wether you want to or not' A software tax is coming? Damn this is worse than when I had to pay for that stupid 'artwork' with the piss in the jar. I certainly don't want the government forcing me to pay for software I have no use for. This really sucks. Got any references? I want to write my congressman.
Thu 22 Jan | Just me (Sir to you) | From the GNU Manifesto ( http://www.gnu.org/gnu/manifesto.html ) Under: 'Programmers need to make a living somehow' '... All sorts of development can be funded with a Software Tax: Suppose everyone who buys a computer has to pay x percent of the price as a software tax. The government gives this to an agency like the NSF to spend on software development. But if the computer buyer makes a donation to software development himself, he can take a credit against the tax. He can donate to the project of his own choosing--often, chosen because he hopes to use the results when it is done. He can take a credit for any amount of donation up to the total tax he had to pay. The total tax rate could be decided by a vote of the payers of the tax, weighted according to the amount they will be taxed on. ...'
Thu 22 Jan | christopher baus (www.baus.net) | Quotes like that support the theory that Stallman is too extreme, to put it kindly.
Thu 22 Jan | Stephen Jones | Perfectly reasonable; you can disagree but thee are plenty of other examples; road tax in the UK or the television license for example. The argument in favour is the same as the argument for free health care. That the equivalent amount of care under a government funded scheme costs two-thirds or less of the equivalent cost funded privately, or by a labyrinthine insurance system.
Thu 22 Jan | christopher baus (www.baus.net) | I don't know what the television license is, but if it is what I think it is (tax paid to program providers -- BBC?), I am not in favor of it. What if I hate the BBC and don't watch any of it. I am forced to pay for something I don't want, while lining some bureaucrats' pockets. My guess is by the time that government is done divvying up the money I will make less than a developer overseas. 'Hmm let's see, innovative network security product. How about a whole $500USD.' Thanks, but I'll let the free market decide what my software is worth. Don't get me wrong I use OpenSource software (use not develop) all the time, but I think Stallman is a fruit loop who has the misguided belief that all programmers should live in an office paid for by MIT.
Thu 22 Jan | Stephen Jones | I suspect the idea of a software tax came around when hardware was a lot more expensive. I have to repeat there is nothing extreme about the idea. Whether it is the best way of a government funidng public use software, and whether the government is doing it is another matter. With regard to TV licenses you can at least choose not to have a TV. With ad-sponsored TV you get to pay even if you never watch anything (and of course with satellite TV filling the airtime with ads you get to be shafted twice over, as you're actually paying to watch them!)
Thu 22 Jan | Andres | I don't support a software tax either, but the argument that you wouldn't use it is a bad one. There is hardly a public service used by everyone, some people don't have children to school, or cars to drive or whatever so if that argument was taken to the worst case scenario, there would be not public services at all. And anyway, if there was such a software tax there would hardly be any other kind of software, so, yes, you would use it.
Thu 22 Jan | christopher baus (www.baus.net) | Re: using government supplied services. If the government taxed me and supplied housing in return, I would use it, even though if I had my money back and, to borrow a quote from Friedman, was 'free to choose,' I probably wouldn't choose the housing option that the government provided. I can choose to not buy a TV, or I can choose to only watch DVD with out commercials. I still don't support the government taxing me to provide a service I don't want. Give me my money back, and I decide what to do with it myself, thank you very much. Although, while I might be a fiscal conservative, I will still vote against the Republican war machine this year, but that is another story altogether ; )
Thu 22 Jan | M | From the GNU Manifesto 'Programmers need to make a living somehow' We hold these truths to be self-evident, that all men are created equal, that they are endowed by their Creator with certain unalienable Rights, that among these are Life, Liberty, the pursuit of Happiness and Free Software. I cry every time I collect a paycheck.
Thu 22 Jan | tapiwa | I am totally an ardent capitalist. Part of that means dealing with competition in all its forms. Competitors are free to charge as they please for their products. Sometimes the price is Zero. £0.00! Deal with it. while you are at it, ask MS how much they were charging for IE when they were competing against Netscape.
Thu 22 Jan | sgf | Actually I'd love to see taxes "razed". :)
Thu 22 Jan | no name | Well, you can see the quality of television programming provided when people choose what to pay for themselves.
Thu 22 Jan | A cynic writes | For information The TV licence, which is received by the BBC, is about a £100 / year / household and pays for 2 analogue TV channels, 6 (ish) digital TV channels, 5 (ish) analogue national radio stations, some digital radio stations, god knows how many local radio stations and the biggest bloody website in the country. You need a TV licence to run a TV - but any TVs in the house are covered. Parliament sets the cost of the licence fee, but has little control on the BBC otherwise. The government can order the BBC not to transmit something, but can't stop them telling everybody that it's been stopped. The BBC has a royal charter which requires it to 'inform, educate and entertain'. Personally I don't think the case transfers to software, but it seems to work for telly.
Thu 22 Jan | the artist formerly known as prince | Sum Dum Gai powerpoint, still needs people to create presentations, word still enables managers, students, secretaries, and I can't begin to tell you how many software jobs the web browser has created.
Thu 22 Jan | Jim Rankin | 'I certainly don't want the government forcing me to pay for software I have no use for. This really sucks. Got any references? I want to write my congressman.' Well, the tax has been around for awhile, but all revenues are collected by Microsoft. The federal government looked into this a couple of years ago, but decided there wasn't any problem.
Thu 22 Jan | Knowledge maker | I'd really like to see a Music Tax / Music License in the UK whereby the BBC would commision music and buy the rights to copy music in the UK for which we'd pay a monthly licence fee. benefits - i) it would cost less per person ii) it would deliver more money to the music industry iii) it would vastly increase the amount of music people could legitimate copy and listen to. iv) it would eliminate the waste and inneficiency inherent in a market economy way of funding music production and distribution. v) there would be less advertising Similarly for books/films and any easily reproducable IP. Including software.
Thu 22 Jan | pdq | Do you think the government would really pay to produce what people want to hear/see/read? Are you that naive? The Soviet Union tried all of this and look where they are now... The free market works and if some poor schmuck wants to write software and give it away, it's up to him. He shouldn't go around looking for a government handout. Sheesh!
Thu 22 Jan | the artist formerly known as prince | Knowledge maker, except then the BBC would decide what gets published ather than the people, and that is BAD!!!!!!!!! but, if there was a small tax to allow more access to instruments, practice sapce that would be good
Thu 22 Jan | christopher baus (www.baus.net) | Ok I'm going to take the bait here... > Well, you can see the quality of television programming provided when people choose what to pay for themselves. We've tried this. It is called totalitarianism. I don't prefer it myself. What no more 'Queer Eye for the Straight Guy?' I'm sure we could find a reason why the government wouldn't pay for this show, but in the US it is one of the biggest hits of the year. > 'I certainly don't want the government forcing me to pay for software I have no use for. > This really sucks. Got any references? I want to write my congressman.' > Well, the tax has been around for awhile, but all revenues are collected by Microsoft. The federal government looked into this a couple of years ago, but decided there wasn't any problem. I'm not sure there is a problem. If Linux isn't everything you want, the Mac should be most of it. In one post we have complaints about free software, in the next complaints about the costs of Microsoft software. I think there are a lot options there. > The TV licence, which is received by the BBC, is about a £100 / year / household Does this really pay for all said programming, or is the BBC further subsidized by other taxes? I still hate the idea. I have a TV. I don't have cable. I use it only to watch DVDs, and soon to be a monitor for my MP3 player. Why should I have to pay a tax? We shouldn't prevent people from wanting to work of give something away for free.
Thu 22 Jan | Knowledge maker | >Knowledge maker, >except then the BBC would decide what gets published >ather than the people, and that is BAD!!!!!!!!! I agree with you there - but this depends on the mechanism - what if people and companies were free to produce and distribute what ever they wanted under such a licence but could only claim from the license fund it if it proved popular? >Do you think the government would really pay to produce >what people want to hear/see/read? Are you that naive? I am naive. This is true...but this is a model that works - public service broadcasting in the UK is fantastic. The US makes some excellent entertainment television. I don't think the Soviets had BBC TV - maybe that's why it went so badly wrong. >The free market works It does - but it has inefficiencies - having massive amounts of software/music/films that people want to use but can't afford is a waste - it doesn't make communism better, but recognise waste where you see it.
Thu 22 Jan | David Clayworth | The BBC does indeed work. While the US produces decent entertainment, its documentary, news and current affairs programmes are terrible. And I resent that everytime I buy a Coke (or a computer) some fraction of that money has gone to make Friends, or Entertainment Tonight or some such, and I have to choice in the matter. Seriously, I wonder how it would work if we applied that to computers? We could put a small levy on every piece of hardware, and use to ti fund basic software development that would then be available free to everyone. You'd write a stable, usable operating system (use Linux as a base if you like) and a basic word processor, browser, and then expand into a spreadsheet or image processor. Where the investment went would be guided by how many peoiple downloaded each application. Worth a thought.
Thu 22 Jan | M | 'its documentary ... are terrible' Obviously you have never seen American Chopper! :)
Thu 22 Jan | the artist formerly known as prince | or crock hunter
Thu 22 Jan | Sum Dum Gai | 'powerpoint, still needs people to create presentations, word still enables managers, students, secretaries, and I can't begin to tell you how many software jobs the web browser has created.' That's a silly argument. By your view, a TV isn't a finished product, because you still need a broadcaster to make some shows and beam them into your living room. You can break everything down like that though. The can opener isn't a complete product, because it's useless without cans to open. Soap isn't a complete product because you need water to wash with. Need I go on? Yes, everything is interdependent in this world. But some products directly require developers (like the database systems mentioned by the original post), where as others may require extra developers, but are perfectly usable for non-development tasks out of the box (like word).
Thu 22 Jan | the artist formerly known as prince | Word is, unless you need to automate some task via VBA, but you are right some products are more complete than others.
Fri 23 Jan | no name | '> Well, you can see the quality of television programming provided when people choose what to pay for themselves. We've tried this.' Who's this 'we'? 'It is called totalitarianism.' Oh good grief. 'What no more 'Queer Eye for the Straight Guy?' Preferably not. 'I'm sure we could find a reason why the government wouldn't pay for this show, but in the US it is one of the biggest hits of the year.' And is utter drivel. Which pretty much sums up the quality of much private TV. There are some good shows but they are very few and far between. We have 30-odd channels at home, and the chances of finding anything decent on during 'peak' viewing time are very slim. Imported dubbed American drivel or home produced copied American format drivel. Soemtimes, if we are very lucky, we get home produced copied British format drivel. '> The TV licence, which is received by the BBC, is about a £100 / year / household Does this really pay for all said programming, or is the BBC further subsidized by other taxes?' It pays for enough quality programming that they can sell it to other countries, which brings in revenue, which...
Fri 23 Jan | Just me (Sir to you) | Most industries had to be denationalized because they where burocratic to the extreme and could not be moved with a hot poker into providing any innovation or cost reduction. the very few examples there are around of decently operating state owned utilities only got out the rot under severe treath of denationalisation and strong private competition, and mostly only in preparation of a privitazation. Here some of you are proposing 'nationalization' of an industry that is operating incredibly well (so well in facxt that most seem to have taken the incredible advances in technology over the last 20 years, the widespread availability and the massive industry that has sprung up around it for granted). My guess is IBM's prediction of a world market of about 5 computers (or was it 10?) was in a state-provided-computing scenario. They could have been right.
Fri 23 Jan | no name | Good Lord. Yes, just consider how wonderful the British railway companies are.
Fri 23 Jan | Just me (Sir to you) | I didn't say every privatization was a success story, did I? British Rail is generally taken as the poster child for how to really set up a privatization for disaster. Now even if every privitization was a disaster, that still would be no excuse for trying to nationalize a fantastic private sector success story.
Fri 23 Jan | A cynic writes | mmm...since we seemed to have wandered off into nationalisation...there is an overhead (granted) of bureacracy in a nationalised industry - however there is a similar overhead of sales, marketing and accounting in a free-market industry. The relative cost of the overhead should be looked at on a case by case basis. A more compelling arguement is that of rationing. It's possible to consider money as a very flexible form of rationing. In a free-market industry services are distributed on the basis of wealth, where nationalised goods *can* be disributed on the basis of need. What's appropriate would depend on the industry, rather than political dogma. Again, I don't feel that software is an appropriate industry for a tax-driven environment. It needs the flexibility that the free market requires. But if someone wants to give it away from a charitable impulse good luck to them.
Fri 23 Jan | no name | 'What's appropriate would depend on the industry, rather than political dogma.' Naturally. But don't tell the politicians.
Fri 23 Jan | veal | Giving away a piece software does, in fact, eliminate programming jobs if there was a commercial market for that class of software and buyers will accept the free product as a substitute. There can be no debate on that issue. However, so far most of the free software has been mediocre and incomplete, and the momentum of mindshare is considerable, so the effect has been rather smaller than it could be. There's no great surprise that the most vocal proponents of open-source software, Stallman, Raymond, O'Reilly, are not salaried programmers facing harm by this threat. (O'Reilly would lose the most if every programming job vanished, but he's already made his fortune from us.) TIVO, absent Linux, would have been built on VxWorks, which is excellent and easily cheap enough to keep TIVO profitable. TIVO exists not at all because Linux exists, but because the world holds hundreds of millions of braindead TV-watchers with enough disposable income to want such a device. Open-source has its virtues. The openness of it is more important than the free price. By having basic technologies like operating systems as open-source, we're less likely to have to suffer vendor's secretive or totalitarian antics, such as trying to decide for us what we can and cannot do with the products we have bought from them. If the software is open, we can easily remove any such controls. One thing the open-source people don't seem to do well is differentiate between giving software to corporations, and giving software to their fellow humans. The latter case might be a gift of *capacity* to someone who may have no such means otherwise. Think Gimp, an artist's tool available to people who can't afford Phototshop. That's virtue. The former case is nearly always ultimately a gift of *cash* to organizations that have that cash and would otherwise be spending it on a commercial product. That's not virtue. Now the decision of what to write rarely stems from consideration of the ramifications of that gift. As a programmer, I am intimately familiar with the forces at play, and one very common tendency I know is to see a piece of software and think 'hell, I could write something like that in a couple months'. Further, for those few that truly have the capacity to deliver on such an urge, the thrill of building is their greatest reward. So it takes no great virtue to give it away, if giving it away lets them see it used without all the messiness of business gobbldeegook. So while the giving is not virtue, it's also not malice. What we have is complexity at play, nature plain and simple. But when we know a little about nature, we may often bend it a bit or adapt.
Linux as a Disruptive technolgy | Wed 21 Jan | Prakash S
This might be a really brilliant idea or the dumbest idea ever...(its kinda late), either way here it is: Linux as we all know is a disruptive technology (Disruptive as in defines by Clay Christensen in his book The Innovators Dilemma). What if Microsoft started its own version of Linux and starts selling it for a fraction of the price windows sells for. The biggest competitors to Microsoft’s products like word, windows are previous versions of Word & windows. 10 years down the line it is going to be difficult to sustain the kind of revenue generation they currently have. As everyone on this board knows it takes 10 years to make good software, so if Microsoft started now they will still be doing fine in 2014. The other likely scenario is that someone elses (Novell) does this anyway, and Microsoft loses. Thoughts!
Wed 21 Jan | Brad Wilson | 'The other likely scenario is that someone else's (Novell) does this anyway, and Microsoft loses.' Novell bought SuSE (the most popular Linux distribution in Europe). They'll still fail, because it's not technology that wins these battles.
Wed 21 Jan | www.marktaw.com | Let's see, Clayton Christensen's solution (not that I've read the sequel which came out this year titled The Innovators Solution) seems largely to be to redefine what it is you're actually doing. So railroad companies realize they're in the *transportation* business and get into airplanes and cars instead of just trains. What is it that Microsoft is doing that Linux is really disrupting... It seems to me Linux does largely the same things as Microsoft, just for free.
Wed 21 Jan | Mike Swieton | The more interesting point, I think, is that software doesn't have to cost anything. What will that mean for the industry? It will be interesting to find out. Consider it, really: If I write a book, it needs to be published on paper to gain recognition (the internet doesn't count, because it is not the major venue for disseminating novels). If I design a new mousetrap, it must be manufactured. All of these are significant costs, but with software, I can decide to give it away for free via the internet (costs of bandwidth are negligable for many projects, and donated bandwidth has sufficed for many major projects). Now, it still costs me time to develop, but I don't need to charge for it. I can volunteer my time. I am not arguing whether it is good or bad to give things away, just trying to point out that software, by its very nature, is able to be given away, for better or worse. I just think it's interesting that there is nothing which requires software to be commercial.
Wed 21 Jan | www.marktaw.com | I thought we paid for service - knowing someone will fix our problems if we pay them.
Wed 21 Jan | Prakash S | Brad, I agree marketting plays a BIG part in too. Mark, I haven't read the Innovators Solution either. Microsoft has a better software development process (IMO) and are way better are marketting. Linux is making major inroads where various flavours of unix and solaris resided. Guess who's next!
Wed 21 Jan | Prakash S | Mike - agreed. Mark, Imagine annual licenses for Linux being handed out by MS...
Thu 22 Jan | Nigel | Can you explain how Microsoft makes money by creating (or adding to) a new product, selling it for a fraction of what they're getting now, all the while advertising said product as Linux, which is free advertising for the hundreds of other companies selling linux and linux services? At the same time, they're doing all this while creating a platform that has little in common with what all their certified 'engineers' and MVPs have studied for, and a platform that makes it difficult to enforce any sort of tie-in to their existing products. I haven't read that book you're talking about, but why exactly is this a good idea? As well, why does it take ten years to create great software, and why would it take ten years to make a great Linux product?
Thu 22 Jan | www.marktaw.com | I dunno, explain how IBM does it.
Thu 22 Jan | Alex.ro | Long post, who's gonna read this stuff... In the 1950s, the Russians, of all nations, were leaders in computers. Their pioneering BASM machines (built with vacuum tubes and later with transistors) were the most powerful in the world. For a brief time, Russian computers ruled. But progress is slower where there is no incentive for progress, and the Americans caught up, and in the 70s and 80s the Russians were reduced to cloning IBM mainframes, then cloning the 8080, then cloning the 8088, then (as the pinnacle of their industry) cloning the 286. That was it. Now, *American* 3-GHz CPUs with hyperthreading and 128-bit data buses are the norm. The Russians can still only make 286 clones. My point? The Linux people are so ecstatic about their KISS philosophy, and how you recompile the kernel every time you replace the mouse, and how you can pipe commands, etc... Sure, *today* Linux is stable and powerful, but how far away is Windows from that ideal, really? I haven't rebooted my XP in weeks, and this is just XP, not the end of the road. Okay, Linux is better for some tasks like web hosting, but what huge technological hurdle is there to Microsoft rolling the same quality *tomorrow*? Exactly as my Russians above, Linux thinks it's 'a competitor' to Windows. But the truth is... They really are just catching up to Windows. Everything on Linux is a panting, out-of-air response to Microsoft's fire and motion. But it gets worse.... Actually here is my point The amount of features that future Windows versions will pack will leave Linux dead in the dust. Biometrics, micropayments, multimedia. And it's not that the open source people can't 'volunteer time' to catch up again. It will just be increasingly difficult: for one, there will be a shitload of proprietary formats and protocols. If cloning Word was hard, think about cloning -- or duplicating -- Passport. To sum up... Linux == Lotus Improv.
Thu 22 Jan | Nigel | I've never read IBM financials, but the idea I get is that IBM is orienting itself towards services. As well, you can certainly sell software for linux platforms; not everything has to be GPLed.
Thu 22 Jan | Sum Dum Gai | Alex: Most of the important development on Linux isn't done by volunteers. Your notion of Linux is unfortunately about 10 years out of date. Linus Torvolds, Alan Cox etc all have jobs that pay them to work on Linux. They're not just doing it for kicks anymore.
Thu 22 Jan | unnamed | Alex.ro, you're also wrong with your Russians metaphor: http://www.wired.com/news/technology/0,1282,18024,00.html
Thu 22 Jan | Simon Lucy | Microsoft delivering Linux wouldn't make any difference, they already have all the licenced technology they need to deliver a *nix, they choose not to. Well not to any great extent anyhow. Unless and until MS develop applications for *nix again there is no benefit to them at all. Word and Multiplan were both available for Xenix and both dropped when Xenix was dropped in favour of OS/2. If the trend oif public institutions and government bodies adopting a Linux desktop continues (or even if its a real trend), then they may reconsider their position. But for them to build cross platform applications now on top of the current codebase would be a gargantuan task. Not beyond their means but its the kind of move that can break corporations. Word and Multiplan were both cross platform applications, the actual application code was, if I remember aright, the same and delivered in pcode.
Thu 22 Jan | fw | Great topic, way to bring out the clueless muppets. The chances of getting something useful said on a thread like this are tiny. Just let stupid topics like this die and not start them again. Jesus.
Thu 22 Jan | no name | You mean you guys don't remember Xenix?
Thu 22 Jan | one programmer's opinion | fw, Why don't you enlighten those 'stupid muppets' you mentioned in your post with your wisdom? Everybody is clueless about something including you.
Thu 22 Jan | Cow Orker | > Linux == Lotus Improv. Improv is still my favorite spreadsheet for moderately complicated multidimensional financial models. It had problems, but the dev team had a good handle on solving them when Lotus pulled the plug. It's amazing how companies will throw away awe-inspriring products like Improv, yet keep pushing utter crap like Notes for decades. If Improv had been Free or Open Source, I'd be using it on my Linux workstation right now!
Thu 22 Jan | Bobo | Recompile the kernel every time you change mice? Beware the strawman...
Thu 22 Jan | Cluless muppet | It's pretty clear to me that MS's strategy against free commodity Unixes is to continue to add features to differentiate Windows. Longhorn is full of stuff that can potentially give Windows a big lead over Unixes. This is of course in addition to the massive fud that they spew.
Thu 22 Jan | Junkster | Linux is more an accidental disruptive technoloy. UNIX was dying a slow death in the late 80s. People wanted something better. I was a UNIX user back then, and while I freely admit it was the most stable system available, it was also obviously very behind the times in equally many ways. Then Linux came along and thrust UNIX back into the forefront, but at the same time didn't really improve things much. Throughout the 1990s, PCs got dramatically faster, which made UNIX much more attractive than it once was, but at the same time there wasn't much advancement. Sure, we've got better versions of gcc and Perl. Sure we have some desktop environments that look more like Windows. But real movement forward just wasn't there. Now you have Microsoft making dramatic, sweeping changes to the next version of Windows, and Linux is just puttering along same as it always was, without any boldness. And really, no one wants boldness, because Linux is just trying to be good old UNIX. So the disruptive nature is a peculiar hanging on to yesterday's tech, much of that hanging on caused by a dislike for the vendors of other products. Personally I like some aspects of Linux, but I think there needs to be a lot less blind praise and zealotry for it.
Thu 22 Jan | Prakash S | Nigel: MS would make money on windows as well as Linux - instead of some other company making money on linux. It is a good idea, because if they don't do it - someone else does and MS loses amrket share & money. THat ten years thing was in refernce to one of Joel's articles, look in the archive. Alex.ro: we make the same points.... if MS chooses to adopt Linux..they would make it easy enough for my mom to use. When MS sells windows and linux - people can decide if they want to pay more for more features (windows) or use Linux which would be cheaper and get most things done. Simon: Every platform needs applications to surive, why can't MS iuse openoffice ? Doesn't have to be cross platform, (3 rd part applications can be written to make word documents compatible with windows & unix.)
Fri 23 Jan | Eric Lippert | > Linus Torvolds, Alan Cox etc all have jobs that > pay them to work on Linux. Out of curiosity, how many people are in that 'etc'? (In case it's not clear, that's not a rhetorical question -- I really have not the faintest idea how many people are paid to work on Linux full time. I'd be interested to know how that number compares to the couple thousand devs, testers, PMs, user educators, media designers, etc, etc, etc who are presently pumping about 50MLOC into Longhorn.)
Fri 23 Jan | Egor Shipovalov | Then you need to compare that 'etc' to Microsoft kernel deparment exclusively. Linux is just kernel. Most of a functioning Linux system is indeed cross-platform and doesn't depend on Linux. For example, Bind (Linux's default DNS server), has been around for a while before Linux. You can even run Bind to drive a Windows Server domain (many do).
Fri 23 Jan | Just me (Sir to you) | 'When MS sells windows and linux - people can decide if they want to pay more for more features (windows) or use Linux which would be cheaper and get most things done.' Prakash, Why would a system around a Linux kernel be cheaper? Is there some 'magic' to that 5 letter incantation that makes stuff appear out of thin air? And why on earth would MS need a second kernel? The development of the current one seems to be very far ahead of the alternative you suggest. The one thing the Linux world has over the Windows world at this point is its wide configuration options that play well to some scenarios. You can find or make lean semi-dedicated setups by picking and choosing for many tasks. I do believe MS is very well aware of both the advantages and the disadvantages of tightly integration the platform. I hope that the giant R&D machine of MS will come up with solutions that can give us the benefits of integration without incurring the disadvantages.
Fri 23 Jan | Bill | I wish all these little Linux losers would piss off out the back and do whatever they do so we can get on with work.
Metric Units on Windows | Wed 21 Jan | Dave B.
I have been attempting to display a grid, measured in millimeters, on the screen. If you have ever tried this before you would soon discover that the grid is not quite perfect. Im guessing this is because of the rounding errors that occur during display. Even when using the Windows mapping modes MM_LOMETRIC or MM_HIMETRIC, the grid is still not perfect. It may also be because Windows measures the display in pixels per inch not pixels per (insert metric unit here). Ive come to the conclusion that it is impossible to display a nice even metric grid on a display device under Windows because it does not natively support the metric system but I thought Id ask in case it is possible or in case anyone has run into this problem before and can offer some advice. (*)Maybe someone could also point me to a resource that explains why Windows and physical devices measure units in units per inch rather than or in addition to units per metric measure. I would guess the answer lies in the origins of the development of Windows, Printers and other devices and their need for backward compatibility. * For example, it may be convenient if the screen device driver could change the screen format and report 96 pixels per inch or 20 pixels per centimeter. I dont know if this would require a hardware change or not. (i.e. Are monitors physically made to have 96 pixels per inch).
Thu 22 Jan | Sum Dum Gai | Monitors can be set to display multiple resolutions. Does that answer your question as to whether they're manufactured to show a certain number of pixels per inch? ;)
Thu 22 Jan | no name | You mean you undserstand all that mapping mode sh*t? You may be the only one. Or I may be the only one that doesn't.
Thu 22 Jan | Simon Lucy | Twips Twentieth of a point, this is 1/1440th of an inch and 1/567th of a centimetre. There are algorithms to convert from twips to pixels in the desired resolution, and whilst twips varies in physicial size on the screen depending on its resolution it will always be a twentieth of a point for printing purposes. It seems there's a do it all digital ruler which I haven't used or have any experience of at http://www.basta.com/ProdReglo.htm
Thu 22 Jan | Peter Ibbotson | MS is really screwy Metafiles are natively in 100ths of a millimetre. The print preview stuff I did a while ago may help you here (Must finish the notes section). http://www.ibbotson.co.uk/vbprint/vbprinting.html However when printing to Postscript printers the native mode is in points. The native screen resolution on most (it's changeable) windows machines is 96 dpi which if convert you it into twips gives a nice round 15 twips per pixel.
Thu 22 Jan | Dave B. | Hrm... I guess it's hard for me to explain it any simpler than I have but I can try. As Peter mentioned there are 15 twips per pixel on a 96 dpi screen. 1440 twips per inch / 96 pixels per inch = 15 twips per pixel. Now let's try to determine how many twips there are per millimeter. We know there are 96 pixels per inch and 25.4 millimeters per inch so we can now calculate how many pixels per millimeter. 96 pixels per inch / 25.4 millimeters per inch = 3.779527559 pixels per millimeter. We know from our earlier calculation that there are 15 twips per pixel and 3.779527559 pixels per milleter. 15 twips per pixel * 3.779527559 pixels per millimeter = 56.69291339 twips per millimeter. The result, 56.69291339 twips per millimeter is obviously not a nice round number like 1440 twips per inch and does not map nicely to 15 twips per pixel. This is because the whole thing is based on inches and not millimeters (or whatever metric unit suits your fancy). If Windows or the hardware (i'm not sure which is at fault) would instead provide separate modes for inches and millimeters so that they would report 96 dpi or X dpm (or something similar) then the calculations would turn out nice and even and would not suffer from rounding errors.
Thu 22 Jan | Philip Dickerson | Dave, Wouldn't you have similar discrepancies in the displayed grid using inch measurements? For example, if you wanted to draw a grid spaced at one-tenth inch intervals, then each grid-line would be 9.6 pixels apart so the lines on the screen would be drawn to the nearest pixel and therefore spaced at 10 pixels, then 9 pixels, then 10 pixels, 9, 10, 10, 9, etc. I haven't used them, but I thought the purpose of the mapping modes MM_LOMETRIC or MM_HIMETRIC (and MM_LOENGLISH, etc) was to allow you to draw on the device context using virtual units in the selected measurement system and then allow Windows or the device driver to map appropriately to the device. That is, using MM_HIMETRIC for example, if you want to draw a 1mm square then you draw it with dimensions of 100 'units' (because MM_HIMETRIC is mapped to 0.01mm).
Thu 22 Jan | Dave B. | If you choose to draw in 10ths or 100ths of an inch then yes you may run into those problems. If you choose to draw in the standard units of measure, (i.e. the ones you find on a ruler or tape measure) such as 1/2, 1/4, 1/8, 1/16, 1/32 of an inch then no you do not run into those problems because it maps evenly down to 3 pixels. 1 / 1 in. * 1440 = 1440 / 15 twips per pixel = 96 pixels 1 / 2 in. * 1440 = 720 / 15 twips per pixel = 48 pixels 1 / 4 in. * 1440 = 360 / 15 twips per pixel = 24 pixels 1 / 8 in. * 1440 = 180 / 15 twips per pixel = 12 pixels 1 / 16 in. * 1440 = 90 / 15 twips per pixel = 6 pixels 1 / 32 in. * 1440 = 45 / 15 twips per pixel = 3 pixels 1 / 64 in. * 1440 = 22.5 - precision stops here Of course this is based on 72 points for a 1 inch high font. Millimeters OTOH are based on units of 10 and that does not evenly map to 72 points per 1 inch because there are 25.4 millimeter per inch. The above is the reason why the ticks of a ruler drawn on the screen using standard units appear evenly spaced and the ticks on a metric ruler are not even, instead some are closer together and some are further apart. When you specify 'number of units of .1 mm' to the windows functions, windows must internally map these to 96 pixels per inch. Given there are 254 units of .1 mm in an inch and they map to 96 pixels per inch: 1in. = 254 units of .1 mm = 96 pixels 1/2in. = 127 units of .1 mm = 48 pixels 1/4in. = 63.5 units of .1 mm = precision stops here for millimeters Sorry if I'm not making myself clear and perhaps I just answered my own question (if I haven't lost site of it), but the history of why all this stuff is so, would be interesting and would give meaning to it and would perhaps help in understanding it better. (i.e. Why does Windows choose to use inches to map pixels, 96 pixels per inch) I suppose it's because of the historical value of 72 points per inch for a font one inch high.
Thu 22 Jan | Dave B. | Forgot the English Units chart - 1 level more precise than metric 1/1 in. = 100 units of .1in = 96 pixels 1/2 in. = 50 units of .1in = 48 pixels 1/4 in. = 25 units of .1in = 24 pixels 1/8 in. = 12.5 units of .1in = precision stops here
Thu 22 Jan | Dave B. | Oops... looks like I should have .01mm and .01in. (HIMETRIC & HIENGLISH) and the metrics would have the same precision as the English because it would be: 1in. = 2540 units of .1 mm = 96 pixels 1/2in. = 1270 units of .1 mm = 48 pixels 1/4in. = 635 units of .1 mm = 24 pixels 1/8in. = 317.5 units of .1mm = precision stops here
Thu 22 Jan | Dave B. | Ok last post should also read .01mm. /sigh
Thu 22 Jan | mb | or you could just scale, declare that the monitor is something like 200pixels/cm, draw as appropriate, and save as mm. most monitors aren't actualy 96px/in anyway.
Fri 23 Jan | Mike McNertney | It doesn't really make sense to try to draw a correct measure on a monitor.  Windows knows the resolution, but it doesn't know the physical size of the displayed image, which in general has little relation to the number of pixels displayed.  Even with a single monitor at fixed resolution, you can stretch and shrink the image.
Microsoft SFU & Cygwin | Wed 21 Jan | Andrew Burton
Does anyone here know if... Has any one here tried... Is it possible to run Microsoft Services for Unix on a machine with Cygwin? I like Cygwin as a means of having an SSH daemon on my Windows machines, but SFU looks rather interesting. Am I looking at a world of hurt if I try running both on one machine? Thanks in advance. :)
Wed 21 Jan | Mike Swieton | I've not touched SFU, but my thoughts are this: your area most likely for conflict are probably network ports (i.e. SSH, if SFU provides it). It ought to be trivial to simply not install the cygwin ssh server, if the other is available.
Thu 22 Jan | Just me (Sir to you) | I have no idea, but since SFU runs as a different subsytem to the kernel whereas Cygwin just runs on top of win32, I guess they should stay out of each others way pretty much. BTW, does anyone care that SFU is now a free download? Is NT a Unix now? (only slightly joking here).
Fri 23 Jan | A cynic writes | NT has a native POSIX subsystem (though I think it's incomplete) so depending on your definition of UNIX....maybe. 
Fri 23 Jan | Just me (Sir to you) | SFU 3.5 should be a more complete replacement for that. Some people seem to like it http://www.dashes.com/anil/2004/01/19/microsoft_nix
Fri 23 Jan | A cynic writes | mmm...that's interesting  -  it might be worth setting up a test environment to compare the two.  Thanks for that.
How Does GPL Work with Commercial Linux Distros? | Wed 21 Jan | Bored Bystander
Here is what I mean. I was under the impression that the presence of any GPL (not LGPL) code linked into a program tainted that program with open sourceness and that the programs source *must* be made available to the products purchasers (presumably in a form that would allow the exact same commercial application to be built from that source). I have rather neurotically pursued this issue on two different contracts simply to assure my client and myself that we werent turning a commercial product that I was helping to develop into a piece of freeware by adopting some GPLd code. So, I see that the Xandros distribution is only available commercially; same with SuSe. There appears to be no free ISO download version of SuSe, etc source code available. So how do these commercial vendors stay within the obligations of the GPL without giving away their own IP? Do they retain a semblance of control by simply making it difficult to obtain the source or the make files and by restricting the distribution of source to purchasers? Ive always wondered how this works...
Wed 21 Jan | Tom H | As I understand it, 'Free' doesn't mean 'No cost'. It means you get the source. But I'm not a lawyer... http://www.opensource.org/licenses/gpl-license.php 'When we speak of free software, we are referring to freedom, not price.'
Wed 21 Jan | El Macho | Does it work? Only Redhat makes profit, yet RH Linux was always fully downloadable for free.
Wed 21 Jan | Simon Lucy | On suse's ftp server at ftp://ftp.suse.com/pub/suse/i386/9.0/suse/src you can find the rpms for that build, including the kernel.
Wed 21 Jan | Dennis Forbes | 'Only Redhat makes profit, yet RH Linux was always fully downloadable for free.' A paranoid might think that Redhat intentionally releases their distros on the most god awful, underpowered servers imaginable to convince someone just to give up and pick up a copy at Best Buy. Having said that, RedHat convey(ed/s) a 'big business' image, and for large corporations that want to feel that they have a vendor who's balls they can bust it's important that they're 'bought' someone. Hence Redhat making money.
Wed 21 Jan | Dan G | It was my understanding that you only had to give the source to those who have purchased it from you, and then only if they request the source.
Wed 21 Jan | Herbert Sitz | Go to: http://www.cheapbytes.com There you can download a CD set of virtually any Linux distribution (including Red Hat and Suse) for $5 to $10. These aren't the 'Official' release versions, which may also include some non-gpl'd stuff, but they do include all of the gpl'd stuff in each distribution. The price paid for programs that are licensed under the gpl is never paid for the license itself (which is always free), but only for the cost of distribution, or warranty or support provided by the distributor. Companies are free to charge whatever they want for their distribution, but no part of the charge may be a cost of licensing a program that is published under the GPL.
Wed 21 Jan | SC | ...but what about the obligation to provide access to the source code? As the original poster mentioned, Xandros doesn't seem to provide access to the source code despite being derived from GPL code.
Wed 21 Jan | Mike Swieton | The thing is that the GPL is per-product. So SuSE, who's installer is closed, if I recall correctly, are obligated to provide the source code to the kernel, the compiler, system libraries, and the various open parts of the system. But their tools, such as YaST (and that godawful bicapitilization) are a seperate product, under a seperate license. The fact that it shares a CD with the kernel is irrelevant and immaterial. Each package in the distribution is licensed seperately.
Wed 21 Jan | Almost Anonymous | 'I have rather neurotically pursued this issue on two different contracts simply to assure my client and myself that we weren't turning a commercial product that I was helping to develop into a piece of freeware by adopting some GPLd code.' This is common misunderstanding. If you mistakenly have GPL code in your product, it does not automatically make your product GPL'd (free for the taking). Essentially it would be a straight forward copyright violation (distributing the GPL code without a license) and the authors could sue you. Your main recourse would be to simply remove the offending code from your product. At no point would you be forced to open source your product.
Wed 21 Jan | Tayssir John Gabbour | You have the right to sell GPLed programs for as much as you want, and GNU encourages it: http://www.gnu.org/philosophy/selling.html If you distribute binaries without source, this will be interesting to you: http://www.gnu.org/licenses/gpl-faq.html#WhatDoesWrittenOfferValid The original post wasn't clear (to me); should we understand that Xandros either refuses to either package GPLed binaries together with sourcecode, or doesn't honor a 3yr written offer? They get to choose between GPL section 3a or 3b, but as I understand not 3c since they're not commercial.
Wed 21 Jan | SC | What about the following line in the GPL licence? 'b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.' Can somebody explain to mean the ramifications of this clause? Does this mean that, if I develop a program that makes use of GPL'ed code, I will have to make that program 'licensed as a whole at no charge to all third parties under the terms of this License.'? BTW, though it sounds like I'm trolling, I'm not and I genuinely wish to find clarification. Cheers.
Wed 21 Jan | Sum Dum Gai | The rules are simple really: If you link to GPL code, your program must have a GPL compatable license. These include the GPL (duh), the BSD license, the LGPL license, and several others. If you just happen to distribute a GPL program with your product (eg you build a program to run on top of Linux, but you want to distribute the Linux kernel as a convenience to your users), then your program can have whatever license you please. You must abide by the terms of the GPL for the GPL components you distribute, of course. If you distribute GPL binaries, you must allow anyone access to the source. This doesn't mean you have to give them the source up front. It also doesn't mean you have to make the source publically available. Your only responsibility is that, if someone asks, you provide them with the source, and charge no more than the cost of the media and shipping. Remember if your program is forced under the GPL due to linking GPL code, you'll need to include your modifications too! You can sell a product covered under the GPL for any cost the market is willing to bear. Of course, since the first person you sell it to can go and give it away for free to as many people as they like, there is a practical limitation to selling programs that are released under the GPL. However, there is no legal limitation. IANAL, blah blah blah.
Wed 21 Jan | SC | Is the following correct then (Forgive my poor examples:-))? If the GPL code is, say, a pdf generation program called GPdf, if I produce a program, called MyProg, that passes data to GPdf for processing which it then uses, then I can use whatever licence I like for MyProg. If say, GPdf is a dll then if I use it in MyProg, then MyProg needs to be GPL'ed. If I incorporate some of GPdf's code say the pdf reading function in MyProg, then MyProg needs to be GPL'ed.
Wed 21 Jan | _ | There was a discussion about this on the Linux Kernel mailing list last year concerning the Monta Vista distribution http://www.cs.helsinki.fi/linux/linux-kernel/2003-05/0633.html
Wed 21 Jan | Herbert Sitz | The issue of whether a non-gpl program can link to a gpl program without violating the gpl is a disputed one. Richard Stallman claims that even dynamic linking of a gpl'd dll by a non-gpl program implicates the gpl. In my opinion, a saner view is described here by Lawrence Rosen, general counsel for the Open Source Initiative: http://www.nusphere.com/products/library/gpl_0401openmag.pdf Rosen advocates an interpretation of the GPL in which static linking of a gpl'd library by a non-gpl program violates the gpl, but dynamic linking does not.
Wed 21 Jan | _ | > Is the following correct then (Forgive my poor examples:-))? Yes.
Thu 22 Jan | Almost Anonymous | Herbert, If dynamic linking was allowed than all apps would dynamically and the GPL would be useless. In which case, a future release would just explicitly include dynamic linking. The issue is NOT dynamic vs. static linking. The type of linking is relevant. It's a question of derivative works. A derivative work is not a GPL concept it's a copyright concept. It keeps me from publishing my own startrek episodes. If your work is the derivative work of some GPL code, then your usage of that code is under the license. This is exactly why non GPL programs can run on Linux. In a sense, any Linux application is dynamically linked to the kernel. That doesn't make them derivative works of the kernel. However, if you write some application that 'wraps' a DLL then that's a derivative work, literally, of that DLL.
Thu 22 Jan | mb | so if I write an invoice program that generates a PDF by calling into a GPL'd DLL, is that a derivative work? how about if it calls 'lpr' or whatever it's called now days to write it to a printer?
Thu 22 Jan | Stephen Jones | Why are people so paranoid about any GPL code, yet happliy use proprietory code that works under the same copyright laws. How many people have been sued by the Open Software Foundation? How many disputed patents is MS distributing?
Thu 22 Jan | _ | mb, Calling a GPL'ed DLL creates a combined work; your work must be GPL'ed If you use the standard Unix mechanism (pipes, sockets etc) for communicating between programs then you're not required to GPL your work (at least that's the theory). Most of this stuff is covered in the GPL FAQ http://www.gnu.org/licenses/gpl-faq.html
Thu 22 Jan | mb | oh, i've heard that distinction before, and the workarounds (create a stub command-line program). my question is, how is one a derivative work and the other not? i understand how modifying source is derivative, but not how calling a program with LoadModule() is (inherently, obviously it could be.)
Thu 22 Jan | Sum Dum Gai | The real answer is that nobody can be sure what does and doesn't qualify as a derivative work, because it's never been tested in court. We're just relying on the best guesses of the lawyers. However, if the holder of the copyright says that calling it from the command line is OK, then they're going to have a pretty hard time convincing a judge if they later turn around and say it's not OK. So the fact that the FSF say it's allowed makes it a pretty safe bet to assume that it is indeed allowed.
Thu 22 Jan | Just me (Sir to you) | 'Why are people so paranoid about any GPL code, yet happliy use proprietory code that works under the same copyright laws.' Are there many proprietary code licences that ask you to publish your code and let it be republished by anyone for free? I guess if someone really wants to know what the GPL means the only way to get some sort of idea is take it to court.
Thu 22 Jan | Stephen Jones | No, these licenses ask you to pay instead. You can refuse to pay, just as you can refuse to release source code, and the penalties will be the same. What people are arguing about here is inadvertent copyright infringement, but this ocurrs equally with proprietory code (with the difference that 'owners' of proprietory code do often send you solicitors letters threatening to sue). So if you write a program using SQL server and MS is using code that is proprietory and has not paid the full license for it, then you can be sued for copyright breach. ---'I guess if someone really wants to know what the GPL means the only way to get some sort of idea is take it to court. '----- Err, wrong way round! If you disagree with aspects of MS's license you don't take them to court! You do what you consider just and wait for them to take you to court. Exactly as with the GPL or any other license!
Thu 22 Jan | Stephen Jones | The problem is that copyright law was not written with software in mind. The result is that the legal precedents are based on literature and music, and to a lesser extent the visual arts. The result is that there is not really yet any applicable case law.
Thu 22 Jan | Tayssir John Gabbour | Herbert, there's a problem with Rosen's argument that dynamic linking isn't subject to the GPL. It implies that anyone can make the trivial step to convert a static lib to a dynamic one -- a gaping loophole. This probably even damages other licenses than just the GPL. Am I missing some legal argument, or misunderstand some specific technical point?
Thu 22 Jan | Just me (Sir to you) | Stephen, I was thinking more in terms of preemptive litigation.
Thu 22 Jan | Just me (Sir to you) | 'No, these licenses ask you to pay instead.' Yes, and I can haggle, and pay up. End of story. They don't go: 'All your codez are belong to us!'
Thu 22 Jan | Just me (Sir to you) | 'So if you write a program using SQL server and MS is using code that is proprietory and has not paid the full license for it, then you can be sued for copyright breach.' Call me naive. I rest assured MS would indemnify its clients.
Thu 22 Jan | A cynic writes | Let's see, would MS indeminify - maybe, maybe not. There was a relevant case - but I don't know the outcome, and I couldn't bothered to look for any link beyond this one. Perhaps I should leave that as an exercise. ( http://www.theregister.co.uk/content/53/29419.html ) Dynamic linking - I think you'll find that's why the LGPL (originally the 'Library' GPL now the 'Lesser' GPL)was created. If you avoid GPLed libraries you should be OK. If you do make a cockup and someone yells then you need to replace the library with one not GPL. The actual question - well a distro is in the same position as a cd on the front of a magazine. The precense of a GPLed application doesn't make all the other applications on the disk GPL. So - if you get a Xandros disk any GPLed application they've customised is GPL and you can ask for the source code, any they've written themselves they can impose whatever licence they please.
Thu 22 Jan | A cynic writes | memo to self - learn to spell ( "presence" not "precense" )
Thu 22 Jan | _ | > 'No, these licenses ask you to pay instead.' Yes, and I can haggle, and pay up. End of story. They don't go: 'All your codez are belong to us!' So you remove the offending GPL code. End of story.
Thu 22 Jan | Phillip J. Eby | The GPL is not a contract. You don't sign it. You don't agree to it. However, nothing gives you the right to copy a GPL'd program, except the GPL. Therefore, if you don't follow the terms of the GPL, it's copyright infringement, *not* a breach of contract. What's the difference? The difference is that you can't be *compelled* to open your source code, if found infringing. However, it *is* a federal offense, punishable with hefty fines. Therefore, relicensing one's code might well be the cheapest remedy, compared to either rewriting the code or paying the fines (plus treble damages for willful infringement, if you knew what you were doing) and/or jail time. Of course, I view the best approach of all as being to simply avoid GPL and LGPL libraries altogether, and shop around for BSD-licensed alternatives. However, since command-line programs are specifically excluded from 'derivative work' issues, I don't have issues with using GPL development tools, command-line scripts, etc., or even using GPL applications for personal use. I also don't have issues with contributing code to GPL projects that I actually use. I just don't want any 'commercial' work I do to be encumbered by GPL terms.
Fri 23 Jan | null fame | Late to the party, but what the hell-- 'A paranoid might think that Redhat intentionally releases their distros on the most god awful, underpowered servers imaginable to convince someone just to give up and pick up a copy at Best Buy.' I happen to know the guy who runs RH's ftp servers and can assure you that it has more to do with the fact that RH is such a popular distro. God's own server would bow under the weight of ten million people trying to download three 650 MB .iso's the first day they're out. That's why He created .torrents. :-)
Fri 23 Jan | Sum Dum Gai | 'That's why He created .torrents. :-)' I thought they were created for porn & piracy, like most p2p apps. ;)
Home Brew PVR update. | Tue 20 Jan | Wayne
Hey guys, just wanted to let you all know that Ive gotten this little project under way, and so far Im really impressed with what you can do with the ATI All In Wonder card. TV quality is excellent thru S-Video. The TV Tuner is better than the one that came with my TV (you can flip stations faster) TV On Demand (pause/rewinde live TV) works great!! Free TV listings on screen thru Gemstar GuidePlus+. with scheduled recording ability thru Remote or Windows GUI. Recording/Playback quality is excellent. Included remote control is outstanding, programmable, etc. My setup is: Athlon XP 2000+ MSI K7N2 Delta Mobo 512MB DDR400 RAM ATI AIW Radeon 9600 Pro WD 120GB HDD Windows XP Pro The Gemstar program could use some work, and there is one feature on the remote (Flashback to previous channel) that I cant find. Also, the driver/software install was not flawless, but after a few hours I figured it out. Now all thats left is to try out myHTPC or maybe make this a media server...woohoo!
Tue 20 Jan | Almost Anonymous | I recently purchased SnapStream Beyond TV which is a great replacement for Gemstar's crappy TV listing and scheduling software. You might want to look into it.
Tue 20 Jan | christopher baus (www.baus.net) | It is possible to use Linux with the All in Wonder?  I've been think about using the TV for display of my MP3 player.  Sort of like a XBox MP3 player.
Tue 20 Jan | Almost Anonymous | 'Linux with the All in Wonder?' Last I checked, the answer was yes.
Tue 20 Jan | sgf | I'm in the process of building a MythTV PVR. According to the link below All-in-Wonder does *not* work. Check carefully before you buy. <<< NOTE: The ATI All-in-Wonder cards (which are not the same as the ATI TV Wonder, TV Wonder VE or TV Wonder Pro) will not work as a MythTV capture device because the GATOS http://gatos.sourceforge.net drivers that are available provide only a limited subset of the V4L API. The TV Wonder series of cards are supported by the Bt8x8 Video4Linux driver. >>> from: http://mythtv.org/docs/mythtv-HOWTO-3.html#ss3.1 I picked up a PVR350 from Happauge. Still have to get the TV-out to work. But that's where the fun is! :)
Tue 20 Jan | Zahid | Wayne - Can you tell us how much time and how much money you've spent on this project?
Tue 20 Jan | Almost Anonymous | I had an older All-in-wonder card (Rage series) and it's also supported (same chipset as the TV wonder).  Oh well, I guess I won't be building a MythTV box with my new Radeon card.
Wed 21 Jan | Li-fan Chen | The AIW card are great, for me the biggest limitation include: * Sometimes the TV functionality won't work, the window won't pop up because it believes someone else has hold of the DirectX draw box or something. So you can't run TV on systems with Terminal Services, but even without Terminal Services it sometimes just refuse to work. * You can see caption, and on Pause I think you can still have caption, but for regular capture caption is just plain gone, the PVR won't burn it into the final mpeg.
Wed 21 Jan | no name | PVR? Is that some kind of recreational pharmaceutical?
Wed 21 Jan | TheManWhoWouldBeKing | PVR - Personal Video Recorder.  And yes it is a recreational pharmaceutical. :)
Wed 21 Jan | Simon Lucy | Though entirely insoluble...
Wed 21 Jan | Wayne | So far I think I've spent around 20 - 30 hours of my time building this machine (including research of all hardware and software). As for dollar amount, I personally spent only $250 because I got the hard drive and video card for christmas. However, even if I didn't get certain parts as gifts, I would have spent the money because this is more of a hobby. I like building this thing more than I like actually using it! (My girlfriend uses it more now :) For people that just want something that works out of the box, I recommend buying a Tivo or ReplayTV with a lifetime subscription (around $500).
Wed 21 Jan | B | OOoh, I have been really wanting to make my on PVR. I've been looking at MythTV. Its soo pretty. What I really want is a parts list so I can shop around for the best deal. And of course I'd want dual ( if not triple ) tuners. Who wants to do the research / experimentation for me?
Wed 21 Jan | M | All this to record TV? Granted there is some good tv to watch, but really - why do you need this as opposed to a VCR?
Wed 21 Jan | Bobo | Never used a Tivo before, eh M?
Wed 21 Jan | Almost Anonymous | I currently have my computer set to record every eposide of Farscape. Every few days, I burn 2 episodes to DVD and watch them on my TV. A VCR just couldn't do that. I also have it set to record a few shows that I occasionally miss (or forget to watch) in case I need to.
Wed 21 Jan | M | Good guess. Never had the ROI for me considering subscription costs and my lack of TV time. I am just curious how one who needs to records things when they are not there has the time to watch it, since they are not there very often (hence the reason to record). Or, are people into archiving their favorite shows?
Wed 21 Jan | christopher baus (www.baus.net) | Ok I'm going to jump on the band wagon.  I'm going to take o