last updated:23 Aug 2004 10:43 UK time
Joel On Software Discussion Forum
JOS Statistics - Recent Comments
(Comments added for week ending Sun 22 Aug 2004) | View Other Weeks
New dot com companies | Sun 22 Aug | Puzzled
Is the dot com company returning? See http://www.plaxo.com/css/about/news/040615.html Can someone please explain how a company that connects peoples address books (without an obvious source of revenue) is worth a pre-money valuation of $7 million and manages to raise $20 million in investments? Am I missing something here, or are we back to the dot com days of measuring a companys value by the number of eyeballs it attracts? What are these investore seeing in a company like this, versus a company like Fog Creek, which has real sales, real revenue and real profit?
Sun 22 Aug | TheGeezer | Hmm, that so-called 'big idea' sounds like a crock of shit to me. Address books that automagically update - BFD. Also, irrespective of the fact that Bambi Fransisco (?!!) writes for CBS marketwatch I also couldn't see any disclosure of interest...
Sun 22 Aug | Pythonic | Simple - people want to communicate. Any ideas to connect them better are and should be well-appreciated. This is where you'll earn a lot of money in the coming few years.
Manual vs. Automatic Transmission | Sun 22 Aug | Tim Long
I was a long-time devotee of the manual transmission, considering automatics to be less responsive and wasteful on fuel. Here in the UK, manual is the norm so maybe Im biased. I drove a few automatics during my 3 year stay in California and I have to admit that they work really well with cruise control. However, I have been forced to reconsider my position. Enter the TipTronic gearbox. My car, an MCC Smart ForTwo ( http://www.thesmart.co.uk ) uses this sytem and it is just the best of both worlds. Fully automatic with kickdown on the accelerator pedal, but also with a gear stick that simply and intuitively overrides the automatic system. I get around 60 miles per UK gallon (which is a bit bigger than an American gallon) and I can beat most other cars from a standing start at the traffic lights (despite only having a 3 cylinder 750cc engine). --TPL
Sun 22 Aug | Crackhead | That is a goofy looking golf cart.
Sun 22 Aug | anon | <snicker>
Sun 22 Aug | Fabio | Next time I want to lose all sense of masculinity, I'll consider purchasing this vehicle.
Sun 22 Aug | Mitch & Murray (from downtown) | If it's not a Hewland, it's not a 'manual'. Dog rings rule.
Spanish text translation | Sun 22 Aug | Neo
Hey there everyone. I know this isnt really software related but Im hoping some of you might have a good resource to share and that its okay to ask this here. Have any of you ever used a professional service to translate website text into Spanish? If so, who? Ive got a client who wants their site translated into Spanish by a professional. When I google it, I get lots of hits and lots of different pricing. Im just wondering if anyone has had any good experiences they could tell me about. Thanks.
Sun 22 Aug | trollop | http://www.sbs.com.au/language/
Sun 22 Aug | Neo | Thanks Trollop.  Did you use them?
Sun 22 Aug | JWA | My wife was born in Cuba, grew up in Havana, Madrid, and Buenos Aires and is a certified English-Spanish translator. She does some freelance translation for software and web use. If you'd like a quote send me an email. --Josh
Sun 22 Aug | CF | I worked previously for Hillsborough County, Florida (www.hillsboroughcounty.org). We did a lot of research into methods of translating our site into Spanish. Though we ended up going with a automated service (WorldLingo - you can see the translations at the bottom of the page) we did do a significant amount of research on manual methods. If you email me, I'll be more than happy to provide you with a contact there who can get you more information than you would probably care to know. Cory
Anti-anti-virus | Sun 22 Aug | Gwyn
I dont get the anti-virus movement. Ive been connected for the net for 10 years this October. Never used AV software. Never ever had a virus. Had a couple of worms; but now live behind a router with NAT - no more worms. Router doesnt even have the firewall turned on because NAT seems to take care of it. My last experience with AV software is that it caused many more problems than it solved. The number of strange problems Ive seen on peoples machines which were eventually solved by turning off the AV scanning... well, lots. It works for me. I dont open messages from Anna Kournikova telling me that she loves me. I dont open attachments from someone I dont know without checking them out first (a. am I really expecting anything? b. is it executable?, c. look inside exe with notepad - usually some suspicious literals). I recently helped a friend in the village out with her PC. New PC connected through an ADSL modem for 5 days. 43 viruses & worms according to Symantec website free virus scan. Rebuilt the machine. Reconnected to the Net. Within 40 minutes the worms were back (this was spooky). Downloaded (with the bandwidth the worm would let me have) latest Norton AV on trial. Eventually managed to download and eventually managed to run it (nasty things kept trying to close the window. I was watching cmd.exe keep getting kicked off in task manager which seemed to be followed by some odd named tasks (such as ms32cfg.exe)). Got it running. various viruses detected / removed. Eventually the AV software reckoned it was finished, fully scanned, nothing nasty going on... and yet still there was a pesky nasty in the system busy writing itself into the startup list as soon as I removed it and doing things in the background. Anyway, the solution? Another rebuild and a proper ADSL router. Worth paying the money for I reckon (I really dont understand how it got infected so damned quickly after rebuilding)
Sun 22 Aug | J. D. Trollinger | The one time I was infected with a nasty trojan (a keystroke logger/password stealer, as it turned out), three different AV programs failed to detect the trojan.  I eventually removed it manually.  At least, I _think_ I removed it.
Sun 22 Aug | Aussie Chick | I am with you Gwynn. I don't use any AV protection. I just back up regularly. If I somehow manage to contract a virus, then I will reformat.
Sun 22 Aug | Peter | Some of the worms/attacks are coming through RPC and open ports. The halflife of an uninfected windows machine with no updates or patches is about 20 minutes on the internet. My advice is to get one of the update discs from MS, and the next time you wipe a drive, install the updates from the disc BEFORE connecting to the internet. Should cut infections down by a significant margin.
Sun 22 Aug | Jack of All | In the corporate world there are too many Lusers. You have to have anti-virus software because people will open anything and everything.
advertisement blocking with hosts entries | Sun 22 Aug | hoser
I think this was a topic a little bit ago, but even if it werent, I found this web sites hosts file entries quite useful for blocking advertising content: http://www.topqualityfreeware.com/AdBlocking.htm Scroll down to bottom.
Sun 22 Aug | Almost Anonymous | Firefox with the ad block extension is FAR superior than trying to block ads with hosts file entries.
Sun 22 Aug | Fred | ... and proxy filters like Privoxy are yet superior to ad blockers, as they let you rewrite HTML pages on the fly before passing them to the web browser :-)
Sun 22 Aug | J. D. Trollinger | I'm very happy with Proxomitron. It truly revolutionized my web-browsing experience. http://www.proxomitron.info/
How to view existing Cron jobs? | Sun 22 Aug | Petra
How can I view existing cron jobs? This is bugging me as a server I hereited occationally does quirky things - searches in google did not lead to an answer. Thanks, Petra
Sun 22 Aug | mb | cat crontab ?
Sun 22 Aug | trollop | man crontab then, depending on what you're wrestling, possibly crontab -l to list the table (and that's a lowercase L)
Creating an Outlook Like User Interface | Sun 22 Aug | Apex
Is there a wizard on Microsoft Studio .NET which allows you to quickly put together a Oulook like UI ? If not is there some code samples available somewhere on the internet ?
Sun 22 Aug | no name | Should it work with Exchange as well or you don't have that many requirements in one sentence?
Sun 22 Aug | Chris Altmann | The next version of VS.Net (VS.Net 2005 aka Whidbey) has such controls. There are betas (or the 'Express' version betas) available. The screenshot here: http://www.windowsforms.net/default.aspx?tabindex=4&tabid=60 shows a sample app that I've seen mentioned. I don't know if the code for that sample as available with the betas or elsewhere. If you need it to run on the current VS.Net/Framework, there are myriad 3rd party controls that emulate the Office Look and Feel.
Sun 22 Aug | Oren | There most certainly is not. One of the most-desired features from Microsoft is to update MFC with a better UI toolkit. I had thought MFC 7 would get it, but they just added a RegEx class. Right now you have to write your own GUI extensions, or find samples in www.codeproject.com, or buy a 3rd-party toolkit. Welcome to the we-must-reinvent-the-wheel-with-every-app club. Happy programming!
Sun 22 Aug | JWA | You might be interested in DotNetBar - http://www.devcomponents.com --Josh
Sun 22 Aug | Tim Sullivan | You may want to look at the Developer Express components for .NET: http://www.devexpress.com/?section=/Products/NET XtraBars + XtraNavBar + XtraGrid should probably get you most of the way there. Also: if you're using VS.NET and you're not using CodeRush, you're wasting time. :-)
Sun 22 Aug | Herbert Sitz | DevExpress also makes available a 'best practices' application framework that has a menu bar area at top of window, outlook bar to left, status bar at bottom of window, and main area where forms are loaded and unloaded as 'modules'. In addition to the Bars, Grid, and NavBar controls, the best practices framework requires the Xtra Printing System. http://www.devexpress.com/?section=/bestpractices/SAP-NET
Sun 22 Aug | Annoyed English major | If you had put a hyphen between "Outlook" and "like", I would have understood the subject line the _first_ time I read it (instead of the third).
SICP | Sun 22 Aug | Mathie
I just finished reading SICP for the second time, and wow what a great book. I think I was able to appreciate it more this time because I had a bit more background in math and computer science. In that sense, it reminded me of Michael Spivaks Calculus: now that I have some Analysis under my belt I can look at it as a fantastic book about rigorous mathematics, but coming into it with no background I had to work _very_ hard to get anything out of it. For those not familiar with SICP, in the course of 5 chapters you will: - Write a symbolic algebra system - Learn a number of different programming techniques (wherein you may realize that object-oriented programming is just one small tool in a huge toolkit) - Learn and implement methods for concurrent programming - Build a database system - Write a garbage collected Scheme compiler - Learn a bunch of other stuff like huffman encoding, graphics programming, etc. I can name a few math books that evoke this same sense of greatness: eg. Hardys A Course of Pure Mathematics, the aforementioned Calculus by Spivak, Courants What is Mathematics? But is there another computer science book that even comes close to SICP?
Sun 22 Aug | Ged Byrne | For those not familiar with SICP, the full name is 'Structure and Interpretation of Computer Programs.' More details, and the full text, are available here: http://mitpress.mit.edu/sicp/
Sun 22 Aug | alricb | I'm not a great programmer/read a whole lot on computer science, but when SICP is mentioned, you usually hear of the recently published Concepts, Techniques, and Models of Computer Programming, and of Russel & Norvig's book on AI CTM: http://www.info.ucl.ac.be/people/PVR/book.html Norvig & Russell: http://aima.cs.berkeley.edu/
Install XP in 5 hours | Sun 22 Aug | Canadian Bacon
http://diveintomark.org/archives/2003/08/04/xp Is Windows XP that bad? Or is Mark Pilgrim just an idiot?
Sun 22 Aug | no name | For me, a normal install for WinXP w/ SP1 is about an hour, maybe a couple minutes more for patching.
Sun 22 Aug | Gern Blaansten | After reading the article, yes he is an idiot. However, it does take a while to install Winodws, even you if you are not an idiot. I've done several installations over the last couple of years and my experience with XP has been: Actual installation: 25 minutes Delete all the unnecessary crap and arrange things the way I like them: 30 - 45 minutes Install drivers (printers, scanners, etc) and applications and tweak everything the way I like it: 2 hours About 3 hours from start to finish.
Sun 22 Aug | no name | Read his list. Idiot.
Sun 22 Aug | mb | what, specifically, is idiotic about his list? of course, the missing last step is to take an image of the system so next time this happens it's a straight restore. but that's just not the point of the article.
Sun 22 Aug | pastor of muppets | Installing Windows can be a pain, but there are ways to make it less painful. It's called 'Work smarter, not harder'. How to install Windows in 10 minutes: Copy your Windows CD to your hard drive, add a folder containing all your drivers and favorite applications, throw in a text file that contains the serial numbers for all your favorite applications and burn the whole mess to a bootable DVD. Now when you install, you've got everything you need in one place. Once you get Windows installed and all tweaked out just the way you want, use Ghost (or other disk imaging program) to make a copy of your hard drive and save it to another drive (or another partition). Next time you want to/need to re-install, just restore the Ghost image -- takes 10 minutes on my computer.
Sun 22 Aug | no name | It's idiotic because it's a fucking false list. What emacs has to do with XP? In this case 5 hrs is irrelevant. It took 5 hrs to setup all apps he need with all settings he need. It has nothing to do how many minutes xp setup needs. That's why it's idiotic.
Sun 22 Aug | no name | Oh yeah... he's an idiot.  I don't even agree with his basic assertion that XP has a "half life".  I got my XP laptop in November 2001 and it still runs surprisingly well.  The sercret?  I keep it virus free and run a registry cleaning utility every 6 mo.  My experience is probably unusually fortunate, but it shows that it isn't an inherent property of the system itself.  Besides, anyone who ends an article with the expression "suck my left tit" doesn't exactly scream of competance.
Sun 22 Aug | Justin Johnson | I've experienced Windows half-life in all its forms, and yes, Windows does have a half-life, including XP; however, my XP half-life was 18 months, not 9. His article highlights the reason that I've become a default user of computers. I reject almost all customization just to avoid massive re-customization every time I re-install or move to another computer. I've always thought it was the mark of a mature user that he doesn't have to get everything 'just so'.
Writting all the comments then writting the code | Sun 22 Aug | Apex
When I program, I first write all the comments, read the comments, make sure that the way the comments are structures is a perfect fit for what Im tryinng to achieve then I write the code. Do you think its an effective way of working ? If not, please explain me why
Sun 22 Aug | CF | The term you are looking for is pseudocode: http://www.webopedia.com/TERM/P/pseudocode.html and, like every other technique on the planet, if it is what gets you to write good code that you can maintain and solves the domain problem with the least amount of bugs, then you are doing just fine. Personally, I like an approach similar to it, but am starting to really look into Test-Driven Development, mainly because it is a fascinating approach to structuring things.
Sun 22 Aug | Thom Lawrence | Sounds to me like you're over-commenting. If you're commenting on the whole structure of your code and saying "do this, then do this, then do it again if it's yellow," then you're writing a specification, not commenting.
Sun 22 Aug | Apex | I did learn that trick after reading one of Steve Mc Connell Book He call that PDL : >> DDJ DDJ : How is PDL different from pseudo-code? SM: I use the term PDL pretty loosely in 'Code Complete.' There are people who would say that there needs to be a stricter use of that term, but the way I use it PDL is about the same as pseudo-code or about the same as structured English. I do agree that at a low level this is taking a top down approach. Programmers who use the technique I describe --writing out what you want the routine to do in English, converting those statements to comments, and then filling out the code below each comment-- find that it has a lot of benefits. It produces, it makes the coding go very quickly, it makes the coding relatively free from errors, and it leaves comments in your code when you're done that you don't have to go back and put comments in later. They're already in there just by virtue of the way you went about writing the code in the first place. So I think there are a lot of benefits. It's a good example of a technique that's actually very simple and somewhat deceptively so, in that it produces some really major benefits, considering what a simple practice it is. << Cut
Sun 22 Aug | Thom Lawrence | Hm, I suppose I've done that. I just got rid of the original comments afterwards. :)
Sun 22 Aug | Len Holgate (www.lenholgate.com) | I do that sometimes, but I always delete the comments once I've written the code. Either the code and the comments say the same thing or one of them is wrong; either way it's duplication. If you cant understand the intention of the code without the comments then 95% of the time you just need to rewrite the code until you can and 5% of the time you need a nice block comment that explains the intent rather than the actual process. YMMV.
Sun 22 Aug | bah_humbug | Sounds like Donald Knuth's Literate Programming to me. Background information and an excellent tool at http://webpages.charter.net/edreamleo/front.html I think it's a great concept provided it's not taken to excess
Sun 22 Aug | Synder | I've done that and deleted the comments afterwords as well. Upon reflection, I think I am going to stop deleteing the comments. I am going to spend a few minutes putting them in sync. Often, I write my first idea for an algorithm in comments. Then write the algorithm in code, then re-code, then test, then re-code, then delete the comment. *sigh*
The Practice of Programming BOOK - Kernighan/Pike | Sun 22 Aug | Apex
Does this book is still worth reading today : http://www.amazon.com/exec/obidos/ASIN/020161586X/qid=1093196256/sr=ka-1/ref=pd_ka_1/002-6720471-5107238 Other question, is there a FAQ or thread here about the MUST READ BOOK LIST teaching how to design better more reliable code ? Ive already been advised the Pragamatic programmer.
Sun 22 Aug | anon | Look into Code Complete 2 for a comprehensive and sound treatment of software construction. Ten years from now you will still learn things from this book.
Sun 22 Aug | Apex | Code Complete 2 is already on my Amazon.com Wish List ;-)
Sun 22 Aug | no name | Code Incomplete
Sun 22 Aug | another recommendation | I'd add 'Object Oriented Software Construction' to any such list: http:\\www.amazon.com\exec\obidos\asin\0136290493
Sun 22 Aug | Dennis Atkins | > Is there a FAQ Yes, Joel has a list of books. > or thread here about the MUST READ BOOK LIST teaching how to design better more reliable code ? Yes, there are over 38 threads that have discussed best books for programming. There is a new service from a company named google that will actually enable you to SEARCH for these threads effortlessly - no more manual searching one message at a time.
Sun 22 Aug | Dennis Atkins | And yes, The Practice of Programming is a classic that is relevant and worth reading.
Sun 22 Aug | wish list | A while ago i started adding books refrenced on threads here to an Amazon wish list. Look up the wish list for 'jos-amazon'. Just don't buy books for that fictional account! A number of them match Joel's list. I haven't kept it up to date at all. If anyone wants, they can add to it too, though i'll have to figure out what the password is.
Looking for JOS reader in central NJ | Sun 22 Aug | bankstrong
Im in a bit of a pickle. Ive been programming at night for a while now, hoping to eventually find customers, partners, money, and all of the rest of the necessary parts of running a business. A couple of weeks ago, I quit my day job even though I had not yet landed a customer. Now, I realize that I still dont have anywhere near enough time. Once that I started calling around on business seriously, I never seem to have any time for programming. And Im on the hook for making a product N-O-W. The business idea behind the software seems to have legs. It can help 1500 companies across the country make millions more per year. Ive got cant-believe-my-eyes-amazing people lined up for sales, finance, and client services. Some good established partners that sell complementary software in the same market are interested in working together. And some good links to getting VC money. Ive got a third meeting with a multi-billion beta client (paying, if they sign on) on Thursday (this time, an online demo) and an extremely tight schedule for both the beta product and launch date. On the other hand, Ive speced out the UI pretty well and was blowing through programming before business started taking precedence. Im looking for someone who is proficient in VB6, cares a lot about good user interface, and Gets Things Done. If you are a regular JOS reader, youve already impressed me as being concerned with many of the same issues that I am. And chances are, youre far more technically proficient than I am (Im a business guy with some software knowledge). It wouldnt hurt if you know something about statistics and linear programming, but Im far more interested in a flexible mind. Finally, Im looking for someone who not only works hard, but has a great personality. So far, the others involved in this company are literally people that I would trust to raise my daughters if I died in a car crash. I dont expect the same level of trust with a stranger, but I do expect complete integrity, focus on the customer, as well as teamwork with sales, customer support, testing, etc. I need someone to crank away immediately and get the product to launch. You will interface with an external testing firm that Ive worked with in the past. After launch, the position becomes more of a CTO role - converting from technical development run by a conscientious but overwhelmed founder into an organization that can deal with customer requests, features cut out of version 1, and planned product extensions. I aim to treat developers the same way that Joel does - private offices, good development practices, etc. Minuses: - business plan has had so many holes knocked into by reality that I wont share it until it is reworked. - everything is currently being funded out of my not-too-deep pockets. - Some important software practices recommended by JoS are not being implemented yet. Interested? Send me a resume and contact info. Sorry if this is an inappropriate use of this forum - as I said, Im in a crunch.
Sun 22 Aug | muppet | Is this a joke?
Sun 22 Aug | Ethan Herdrick | Sounds interesting.  Best of luck.
Sun 22 Aug | bankstrong | Muppet - This isn't a joke - I have a real need and I'm hopeful that I might get lucky. There are a lot of high-quality posters here and anything has to be better than getting flooded by Dice resumes. Mike
Sun 22 Aug | hoser | Good luck to you. This is the kind of stuff I don't have the cajones for. I hope you make it to the top of your pile! BTW: I would expect that a new idea like yours would be severely behind the Joel best practices curve.
Sun 22 Aug | patrick | i don't get why you would n't do it right from the beginning? this may be your only chance. before you know it you will have customers demanding things. a project is good, until you have clients.
Sun 22 Aug | bankstrong | Hoser - 'I would expect that a new idea like yours would be severely behind the Joel best practices curve. ' Your guess is correct. That isn't by design. I would like to find someone that will gradually move to best practices once they get a chance to take a deep breath. Patrick - 'a project is good, until you have clients. ' From a purely technology pov, sure. From my perspective, a project is only good once that someone is using (and paying for) it. Mike
Finding Time to read & indentifying what's worth . | Sun 22 Aug | Apex
There are so many books release every week (on all subjects) How do you keep up with the information overload ? How do you make sure you only puchase the books which are worth reading ? (ie: checking the customer reviews on Amazon.com ?) How many books do you read per month ? I find that Joel read an anwful lots, I wonder where he finds out the new books which are worth reading
Sun 22 Aug | www.marktaw.com | 'Worth' is a very subjective measurement. I liked a lot of books that you would probably hate, and v.v. Spend more time in book stores. :-)
Sun 22 Aug | kc | Before I got married, I averaged about 3 books a month. Since then, I average about 2 books a month, so I'm a bit more selective. I make a point of alternating between technical, fiction, religion, political, etc. I also keep a running list of books that I'd like to read and if I see something interesting, I add it to the list, I rarely pick it up immediately. Therefore, I can always have a running list of my interests and determine what's relevant/important and what my priorities happen to be. My 0.02.
Sun 22 Aug | sgf | Well, I recently broke my ankle. Got more reading done for about 6 weeks. I don't recommend it though, as there are disadvantages too.
Sun 22 Aug | fool for python | I never find time to read. I make time to read. Put it first on your schedule and fill in around it. I keep ~100 items in my Amazon Saved Items list and add/purge to/from it several times a week. When I have completed all but one or two of my current reading list, I purchase a few more books (and always a CD - mostly jazz). I don't purchase exclusively from Amazon. I use their list and read the reviews (with plenty of salt grains). I put Joel's current recomendation, 'The Curious Incident...', in my Saved Items list and then found the paperback on the shelf ($12) during my Saturday morning book store rounds and purchased it. Purge. I purchased the book, not just on Joel's recomendation but after reading many reviews. I had considered Thomas Malone's 'The Future of Work' but it never bubbled to the shopping cart and I eventually purged it from my list. After some recent blogging activity about the book, it went directly to the shopping cart for my latest purchase. The short list changes almost daily. Anyhow, that's what I do.
Sun 22 Aug | www.marktaw.com | I buy what I'm in the mood for, otherwise my mood shifts and I never get around to reading the book. Only what I want to read now. Otherwise I end up with a pile of books I haven't read and don't want to read.
Sun 22 Aug | Apex | Do you keep all the books your purchase or do you keep everything ? Or simply just sell the more technical oriented (ADO 2.0)
Sun 22 Aug | CF | 'Do you keep all the books your purchase or do you keep everything ?' I recently got married and moved to North Carolina. My wife has been through one masters degree and working on a second, and I am a geek, and it s amazing the number of books we have. I keep meaning to donate the technical ones, but every time I go to I end up needing it. For example, my current position happens to involve a mess of a system written in ASP 3.0, a set of books I was ready to donate. As far as what I read, we go to the local library about once every three weeks and check out a mess of books. My current selection has some computer history, animal beahviorism, finance, and photography. I just don't have time to keep up with the new books, and am finally getting to a point in my life where I don't feel the need to stay on the bleeding edge of every technology subject. I think another poster hit it right, if I tried to find time I never could. But I make time at various points throughout the day, and that's how I get it done. Bathroom, few minutes before bed, etc.
Sun 22 Aug | www.marktaw.com | 'computer history, animal beahviorism, finance, and photography' That sounds about like the kind of spectrum I typically read. I live in NYC so reading was usually done on the train on the way to work. One of the benefits of not driving, but if I drove you can be sure I'd listen to books on tape in additino to music. I eat way too much fiber to actually spend a significant amount of time in the bathroom. I was thinking of getting one of those readers-digest-esque bathroom readers though. 1 page summaries and interesting factoids. I think Zig Ziglar is a big promonent of putting a dictionary in the bathroom. I guess one of those vocabulary builders would be more focused.
Sun 22 Aug | no name | Reading in the bathroom can be a crappy experience.
Sun 22 Aug | Peter | I commute via public transport, so I get about 1-3 hours worth of reading per day, depending on how awake I am.
Not-so-hypothetical a situation | Sun 22 Aug | somewhat conflicted
Lets say you work on embedded systems for network infrastructure. Its mostly maintenance of existing code where its not unusual to debug a stack dump or have to break out a logic analyzer. You also freelance in creating DB/web apps and have just been offered a full time job doing it in the gaming industry. The pay might be a little less, but considering that its in an industry that youve always loved and follow very closely, you think you could be happier there. How much would you miss the low level, bits and bytes of real time systems programming vs. web apps and database stuff? Is there a difference in the credibility of being a software engineer instead of a web developer?
Sun 22 Aug | Sid | I tried going from the low level stuff to web apps/database programming, and I absolutely hated it with a passion. I really don't want to do that again. I'd consider a career change before I did so, unless the job paid substantially more than I could get elsewhere..
Sun 22 Aug | matt | I've done some low-level games stuff before and am now doing web development. Yeah it's not exactly gripping, but the work's relatively easy to find. And what's more you can outperform all the webdev monkeys quite easily in terms of time to complete stuff, if you use your hacker smarts to build good high-level / modular tools for the job, and abstract away any boring parts of the job that start to get on your tits. You'll find you can put together a decent custom CMS and database interface in a few hours once you have a decent codebase to build from. Still dull but hey. NB: I intend to do much more exciting music tech / AI-related things once I've finished a masters :)
Am I too old to be a video game programmer ? | Sun 22 Aug | Juergen Zeinier
I was reading this thread : http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=134347&ixReplies=29 Im 35, for the last past 10 years I was working on ERPs, doing customizations and developing add-on modules. I would like to work in the video game industry as a developer. Do you think its too late for me ? due to my (advanced) age, inexperience in developing video games. After browsing the Net a lot of peole still stays that the video game industry is full of people with big egos and still very immature, this scare me a little bit to make the jump ...
Sun 22 Aug | Juergen Zeinier | Ho yes, one last question : If you're writting video games could you give somes hints & advices on the skillset I should learn (AI, 3D, maths)
Sun 22 Aug | . | Your age has nothing to do with it. These days there are many different types of programmers working on video games. Not all of them need 3D and maths expertise. You would definitely need to know C though.
Sun 22 Aug | Sassy | Are you prepared to potentially work 80-hour weeks? 
Sun 22 Aug | Anonx | What kind of game programming do you want to do? I dont know much about the high end FPS and graphics but if you want to work on some independent game projects take a look at this link below. http://www.dexterity.com/articles/
Sun 22 Aug | www.marktaw.com | http://www.igf.com/ look at these games. Not everything is Doom or Tomb Raider.
Sun 22 Aug | Sid | At one of the programming contests I was in they had a guy from 3DO explaining how working in the game industry was. He showed us pictures of himself sleeping on the couch in his office, and basically said that he didn't have much of a life outside of work, and that few people did. Regarding salaries, he said that a _senior_ developer could hope to make maybe $100k or thereabouts. In California. For spending all your time at work. SCREW THAT!
Sun 22 Aug | - | Didn't the guys who made "Neverwinter Nights" do so in their spare time and then sold it to some game company?
Sun 22 Aug | www.marktaw.com | Isn't NeverWinter Nights basically an MMORPG kind of thing? I don't know how flashy the graphics where 'back in the day' but it probably could've been hobby thing. This is probably one of the most involved video games out there, but it has zero graphics: http://www.adom.de/ It's a rogue-like game that's been developed by one guy pretty constantly for over a decade. Though some poor choices it seems he was never really able to make it profitable for himself. This kind of game has pretty much fallen out of favor and I doubt he'll be able to sell it or make any money on it now. For a programmer I suspect graphics would be the hardest part of a game to work on, and any 3-dimensional mechanics. And once you get into that area, you have to think about building the world, which becomes pretty involved. So I guess the answer is: What kind of video game programmer do you want to be? It's probably not as glamorous as you think, you're still working for someone else on somene else's projects and fighting tight deadlines.
Sun 22 Aug | anon | Neverwinter Nights has an online multiplayer mode, but it's not a MMORPG.  It allows for a maximum of only 64 players and doesn't take place in a persistent world.
Sun 22 Aug | anon | It wasn't made by a bunch of people in their spare time either. The developers behind this game are every bit as professionals as you are.
Sun 22 Aug | TJ Haeser | The problem is that every aspiring programmer wants to work on games, and not on database related monkey work. As a result, there's lots and lots of game programmers to choose from, which means they can be abused and underpaid because there will never be a shortage on the market.
Sun 22 Aug | Bilge Rat | No, you are not too old.  But you have a hell of a lot of catching up to do...
Open source usability is a *technical* problem... | Sun 22 Aug | Otto Octavius
... that we can solve on our own. So says this clue-deprived dude: http://programming.newsforge.com/programming/04/07/07/1640244.shtml?tid=25&tid=26&tid=2&tid=31 Heres an example: Konqueror, KDEs file and web browser, has a menu entry called smbUmount. I dont need a laboratory with video gear to figure out that this is nearly impossible for non-hacker users to understand. All it takes is to think once about each little item like smbUmount. If the changes to this and other items that are obviously not user-friendly are made, most of our usability work will be done. We dont need usability reports. We need each developer to devote as little as one single thought to usability. He makes it sound as if usability is a one size fits all thing. That all projects are interchangeable. If it works for one, it will work for the other. Is it any wonder open source products have such low usability?
Sun 22 Aug | Thom Lawrence | Good treatment of this at OK/Cancel: http://www.ok-cancel.com/archives/post/2004/07/oss_sos_how_hci_killed_open_source.html
Sun 22 Aug | MT Heart | Usability isn't something that you "spray on" after a project is completed - it must be very carefully considered right from the beginning. If the project meets all the functional requirements but users hate the thing, it's useless.
Sun 22 Aug | trollop | write the help file first. then the spec. then the code.
Sun 22 Aug | Andres | 'We need each developer to devote as little as one single thought to usability.' Which is the complete opposite of saying 'one size fits all'. Why don't you try to criticise poeple for what they say instead of whatever you want your enemies to say?
Sun 22 Aug | kc | It's these obtuse menu options that tick me off more than anything... they are *BY FAR* the easiest things to change. If the option said 'Disconnect Network Share (smbUmount)', it would be useful for everyone. Arg.
Sun 22 Aug | Thom Lawrence | Apart from people who don't know what a 'Network Share' is, and what disconnecting the one called 'smbMount' would achieve. :)
Conflict between Norton Antivirus And SP2 | Sun 22 Aug | JDA
I have norton antivirus 2003, and it happens to be conflicting with the latest SP2. http://service1.symantec.com/SUPPORT/sharedtech.nsf/docid/2004070814522613?OpenDocument&tpre=reg_eu&csm=no&src=con_web_eu Symantec has fixed this problem, but you can only get it via liveupdate and it seems to be enabled only for the 2004 versions. Another low tactic of the growing arrogance of Symantec to get users to upgrade. Right now Im trying to get hold of the wmi file, which users on forums have claimed it works for 2003 and 2002 versions. http://www.neowin.net/forum/index.php?showtopic=202998 Does anyone know where I can get a manual download of this file?. I know I can get it from here, but the file comes out corrupted. Although it could be my pc, as everyone is reporting success with the download http://www.neowin.net/staff/RadishTM/Norton_WMI_Update.rar
Sun 22 Aug | Angry Al | I'm having the same problem with my norton 2003, looks like microsoft and symantec conspired on this one. Whatever the case, I need that patch,without having to upgrade to 2004.
Sun 22 Aug | We shall get what we paid for | I hope they solve this one, because all our Norton AV licenses are valid until December 2004. If they do not provide a patch for NAV 2003, then it is adios NAV.
Sun 22 Aug | Brad Wilson | AVG is high quality and free... :)
Sun 22 Aug | www.marktaw.com | I like AVG too.
Interviewing at Microsoft | Sat 21 Aug | Electro
I found this web page about interviewing at Microsoft http://www.sellsbrothers.com/fun/msiview/#Some_of_the_Interview_Process_Filmed I found something there interesting: -- MS rarely asks logic/riddle questions anymore. Theyre not a good indicator of a good employee. -- They dont? Personally, Im very happy. What do others have to say about this? (You too, Joel!)
Sat 21 Aug | ronk! | They ask coding problems for their interviews now. I interviewed there last December. 2 days, two jobs, 13 different interviewers 13 different codng questions. It was pretty grueling.
Sat 21 Aug | muppet | Logical/riddle questions are essentially hit or miss.  Just because a potential employee can't determine how to get 3 ducks, a goose, and a coyote across the river in a canoe in only three trips doesn't mean they don't understand the intricacies of .NET.  I much prefer to look at the interviewee's past accomplishments and evaluate their personality to see how they will fit into the organization.
Sat 21 Aug | muppet | At some point in time, somebody decided that logic/riddle questions would help them identify exceptionally clever people. And so they became all the rage. Finally, slowly, they are beginning to realize that this method isn't all that it's cracked up to be.
Sat 21 Aug | SW | I get the impression that every interview is different. It depends on who you happen to interview with. I interviewed last fall and had a good mix of questions. I had a 3 of the logic riddle type problems, and a bunch of the more typical questions. Only two coding questions. Good luck in the interview, and make sure you get lots of sleep...I was there for 6 hours straight. Not only was it a long day, it was mentally taxing. I went back to the hotel room and just had to sit and stare for a while before I could even order room service to eat.
Sat 21 Aug | mackinac | So you guys that interviewed, did you get a job offer?  And what did it take to get an interview?
Sun 22 Aug | Bad Interview in Germany | I had an interview recently with a company that obviously had read about the old Microsoft approach. They even finished with 'How are M&M's made?' I was stunned - didn't they realise that this is a well-known interview question from Microsoft, and that many candidates knew it? It seemed to me all that was being tested was whether I had read about this question already. As I left the interview I decided I was not interested in working for them. I was interviewing for a coding position, and the only coding question was a riddle. I found a solution easily so they asked for a solution using a constant memory. The answer was definitely an Aha! solution - once you heard it it was obvious, otherwise it was damn tough.
How the Internet is different from Real Life | Sat 21 Aug | Ged Byrne
http://www.bsd-unix.net/seitz/funny/RvB_NYC2.mov Amusing. Not entirely unlike this board.
Sat 21 Aug | Master of the Obvious | Stating the obvious is not humor.  Wearing stupid costumes while stating the obvious does not make it funny.
Sat 21 Aug | Ged Byrne | It doesn't have to be funny, I just have to want it to be funny.  That's how it works.
Sat 21 Aug | Sassy | marginally humourous, sorta, but not really.
Sat 21 Aug | Alex | great stuff!
Sat 21 Aug | dover | It's a ripoff of Dave Chapelle's skit.. and you should have mentioned that it is that lame red vs. blue series.
Sat 21 Aug | ronk! | I thought it funny. Not ROLFLMOA, but funny.
Sat 21 Aug | Ged Byrne | I had never heard of the Red vs Blue series before. I've just spent some time going through the archives and splitting my sides. It's a lot better than that Final Fantasy film was.
Sat 21 Aug | Peter | >It doesn't have to be funny, I just have to want it to be funny. That's how it works. LMAO. I love this one. I laugh so hard I bust a gut. If you don't like it, well, that's your opinion and I respect it.
Sat 21 Aug | Master of the Obvious | 1994 called.  They want their usenet joke back.
Sun 22 Aug | Ged Byrne | I suppose there isn't anything new in there. The reason I posted it here was because every time that guy runs into the background and shouts something abusive, I thought of Muppet.
Sun 22 Aug | nonUniq | I thought it was funny, especially the spoof of internet political discussions...spot on.
Sun 22 Aug | random_num | Here's a video from the Red Vs. Blue guys that discusses this topic: http://files.redvsblue.com/NYC2/RvB_NYC2.mov .
How to verify a company's claim of being No.1? | Sat 21 Aug | Skeptical Sam
Can someone please enlighten me about the claim made at this site.. http://www.wsicorporate.com/profile.asp ranked the #1 Internet Services Business in the world and the 4th fastest-growing International Franchise What exact criteria exists to verify that such a company is number one?. Where would I go to verify such a claim?. Its not just this claim thats raising eyebrows, but other things too. Has anyone ever heard of this company if it happens to be Number one!?
Sat 21 Aug | John | I'm sure they're ranked by the same Entity that gives out "awards" to all the "award-winning" sites.
Sat 21 Aug | www.marktaw.com | Um. Anyone can rate them #1, including a compay they create that rates internet services. Why don't you ask them what their source is?
Sat 21 Aug | www.marktaw.com | In other words without the 'by' the claim could be bogus, and actually makes them look worse. 'Ranked #1 by The Wall Street Journal' would carry much more weight than an unsubstantiated 'Ranked #1.'
Sat 21 Aug | no name | I remember when our company once bought a title like this.
Sat 21 Aug | Skeptical Sam | amazing where this wsi pops up.. http://www.finance-onthenet.co.uk/finance/internet/making_money/making_money_scam.html
Sat 21 Aug | Hank | I am currently selling the title for "#1 Internet Financial Web Site" for US $20,000. Please contact me if your company is interested.
Sat 21 Aug | www.marktaw.com | From WSI's homepage: 'WSI has cracked the Web Genome learn more about WSI's executive Modular Development Technology!' What does that even mean??????? Did they just use http://www.dack.com/web/bullshit.html ??
Sat 21 Aug | Fluff | Or check the CEO's bio at www.maestrocms.com/About_us/Management.aspx
Sat 21 Aug | Ce que nous devons à la Grèce antique | How can you dare selling #1 in financial services. Our company holds that position since ages ago.
Sat 21 Aug | Sassy | my company once paid to have a "study" done which stated this.
Sun 22 Aug | pastor of muppets | I have a t-shirt which says I am #1. end of debate.
Sun 22 Aug | Matthew Lock | You look good in that tshirt too! http://www.ilbaluardo.com/Cover/Audio/F%20-%20G%20-%20H/FATBOY%20SLIM%20-%20You've%20come%20a%20long%20way%20baby%20-%20Front.jpg
Sun 22 Aug | Matthew Lock | Whoops, try this link: http://tinyurl.com/2o6ks
Sun 22 Aug | hoser | Awesome.
MS Office oddity; is this progress? | Sat 21 Aug | Practical geezer
I was just working on a machine with Office 2003 and was looking for some option to change. I was surprised to find that the options dialog does not have a help button, nor does it respond to right clicking a subject. F1 brought me some sort of help window, but the subject was merely the options dialog, not the option I was on and not even the active tab. Anybody have a thought on why we should consider this progress? And while I am at it, can anyone explain why Office insists on saving to disk when I close my drawing? And then doesnt save anything? The drawing is an embedded ms word figure. I never had to save anything explicitly in office 2000. This is a fresh install on a new PC. And I cant seem to find anything about it on Google.
Sat 21 Aug | unhappy camper | I've noticed this trend of user interfaces getting worse with each update in other softwares as well. It's not just MS... Also the nasty trend of useful features being removed during a apparent rewrite, only to be restored 2 or 3 versions down the road for an upgrade fee...
Sat 21 Aug | Art Vandelay | I have seen a pattern in many programs over the years. Version X is quite good but has a few nasty bugs. Version Y fixes the bugs but also eliminates or significantly changes many of the features that I had come to depend on in Version X.
Sat 21 Aug | muppet | It's an axiom of programming that after ten years of development software products reach their apex of usability.  MS Office has been around for more than 10 years, so expect each successive iteration to be less and less useful.   
Sat 21 Aug | muppet | it's getting really old, now.  Why not, you know, get your own name?
Sat 21 Aug | Albert D. Kallal | Gee, I never noticed this change! If you hit the small “?” mark in the upper right, you now get a help screen. (before. you could then click on what option…and get help). To be fair, the help screen that does come up has a very good explain of each individual options…but it certainly is a change in behavior (this change is due to building a help system that can work “on-line” or “off line”). Albert D. Kallal Edmonton, Alberta Canada kallal@msn.com http://www.attcanada.net/~kallal.msn
Sat 21 Aug | Steve S | Practical Geezer, 'the subject was merely the options dialog, not the option I was on and not even the active tab. Anybody have a thought on why we should consider this progress?' We tend to make the help less context sensitive over time in our products too... All the context sensitve stuff is a bear to QA, and is an extemely tight coupling between the engineering, QA, and documentation groups...
Sat 21 Aug | Mr.Analogy (ISV owner) | 'All the context sensitve stuff is a bear to QA, and is an extemely tight coupling between the engineering, QA, and documentation groups... ' Same here. We used to have context sensitive help. But nobody reads the help file. (We had a mention of winning a free prize in the help file . Only one customer out of thousands has EVER mentioned it). Now, instead, we put that time into making the UI clear enough so that no one needs the help file. WE still have help, but we don't worry about making it 'super'. Its' there more for reference. (We include a toll free tech support line if anyone has any problems. This creates a feedback loop: if our UI isn't clear, we find out about it quickly. Few people call with useability questions). It's just cost/benefit analysis. A super help file is the wrong solution to the manual. it's like Ford making crappy cars and then having steller service centers. If they just make steller cars that don't need service centers (like Honda) it's cheaper and customers are happier.
Sun 22 Aug | trollop | Thank you all - this has cleared my much muddled thinking on help, particularly the points about QAing context-sensitive help. Our own c/s help was a lulu to implement, but QA was pretty easy (click on , click on button, read) as it's pretty small compared with, well, anything. Now I'm told no-one is going to read it! However - the discipline of writing a help file forced the reevaluation of some of our interface - if it could not be explained in a straightforward fashion in help, there was something cockeyed in the way we were going about the application. (Writing the help alongside the spec may save a lot of abortive code). I agree systems should work without needing to provide distractions from the task at hand like help files. Nonetheless, magazine reviewers like to see them there.
comment.it service | Sat 21 Aug | Zepp
Will it be nice to have service, which allows add comments to any web page? For example you use Internet Explorer when you are at some web page, you can see comments of others to that page at sidebar and add yours?
Sat 21 Aug | . | Quite a good idea, but where to get that kind of storage and server power? It is well known that comments tend to accumulate and exceed the content until it suffocates under their weight - it's a law of nature... and we are not talking about a pamphlet here, but the whole Net!
Sat 21 Aug | Slough Bloke | Have a look at http://www.alexa.com - Alexa has been around for ages and their toolbar (yes, someone else wanting to stick their toolbar in your browser) provides info on websites including - apparently - other people's reviews. I've never tried it though...
Sat 21 Aug | www.marktaw.com | I saw something like this a couple of years ago. I don't remember where though.
Sat 21 Aug | Jacob | I always thought it would be useful to have some sort of sidebar which shows you independent information about a company when you're at their web site. For example, it could collect information from various agencies about the company's environmental record, hiring practices, etc. (assuming there are reputable agncies that provide these kinds of ratings). User comments might be a bit much because, as other people have noted, there would be too many of them. But some ratings from known, trusted organizations would be helpful in deciding whether to do business with someone.
Sat 21 Aug | Kent | Wasn't there some sort of Post-it note type service a few years ago ? I think you installed something on your PC and left comments so that other people with the same software would see your post it note comment.
Sat 21 Aug | www.marktaw.com | A slashdot style version of this could be good. This way you get the notes the most people voted on. But it would break on too many dynamically generated pages. Anyone notice how Amazon's homepage has no Google rank? It would even break on this forum (not the homepage, but in the discussion threads). I guess you could do it on the domain level. But I swear I saw this very same idea a few years ago. Anyway, it would require a significant marketing campaign in order to gain enough of a share to be of any use. Aren't there other services that let you notate a website and share it with your friends? Like that thingy Google just bought, but for websites, not photos.
Sat 21 Aug | mb | it was around about 4 years ago, can't remember the name of the main company offering the service was Third Voice. even microsoft had a variant on it (smart tags in the html could have been used in a similar way) lots of companies raised a big stink about it. now what remains is adware. http://www.wired.com/news/business/0,1367,42803,00.html
Sat 21 Aug | mb | (this board need edit functionality... though i'm sure you can figure out the meaning and history of the nonsense sentence above...)
Sun 22 Aug | www.marktaw.com | Wow, sounds like I was right on the money about the marketshare thing. I guess these guys don't understand marketing in the internet age: Use the software to do really controversial stuff and wait for slashdot to pick you up.
Web sites for buying technical books | Sat 21 Aug | Not God's gift to women, I'm more of a consolation prize
Anyone know of any good Web sites for buying technical books? Only one I can think of is www.bookpool.com.
Sat 21 Aug | Dennis Atkins | That's a nice guerilla ad. You may also want to try these lesser known sites: amazon.com bn.com ebay.com
Sat 21 Aug | yet another anon | addall.com is great ( http://www.addall.com ). It's not a bookstore - it searches all the major ones online and returns the price, availability, shipping, condition (new/used), and a link directly to the book's web page at each site.
Sat 21 Aug | Not God's gift to women, I'm more of a consolation prize | No guerilla ad, Dennis, although in retrospect, I should've thought of how my original post would be perceived by the more cynical of posters.
Sat 21 Aug | Not God's gift to women, I'm more of a consolation prize | And when I wrote "good Web sites", I meant ones that offered lower prices for technical books than amazon.com, bn.com, etc.
Sat 21 Aug | <sigh/> | It may not have been intentional, but it was a plug. I am suspect. Why did you feel it necessary to mention a site at all? Especially in light of the fact that the site mentioned is (ahem) less than well known. Including the link doesn't increase the probative value or clarity of the question. I doesn't need to be cynical to arrive at conclusion the you have some involvement with aforementioned site. (See, you can write three or four sentences, ask questions, withouth plugging a URL).
Sat 21 Aug | <sigh/> | I apparently can't proofread either ... big sigh.
Sat 21 Aug | Saturday the 2st | The Idiot Clown Geek Police Still Ride! Amazing. Someone asks an innocuous question about book sites, and some moron actually posts a message telling him not mention web sites. A suggestion for the the Idiot Clowns: Why not try North Korea for a while? There's a country with no marketing and very few web sites that discuss books (except long dissertations on Juche). Amazing.
Sat 21 Aug | Kent | Overstock.com ? http://www.overstock.com/cgi-bin/d2.cgi?PAGE=CATLIST&PRO_SUB_CAT=735&PRO_SSUB_CAT=2169
Sat 21 Aug | mackinac | I have purchased quite a few books from bookpool.com. Their service has been good and they usually have the best price. OTOH, their selection is quite limited. I often buy elsewhere because they are out of stock or just don't list the book I am looking for. I had not heard of addall.com before, so decided to give it a try. A search for the book 'Numerical Recipes in C' produced some interesting results. Bookpool showed the best price for a new book. Strangely, addall.com did not list either new books at amazon.com nor bn.com. Going directly to their web sites shows that the amazon.com price is only $4 more than bookpool.com. There was only one other store listed by addall.com with a price less than amazon.com. Considering that amazon.com has a free shipping option, the final price may end up being second only to bookpool.com. bn.com was charging full list price for the book. A few years ago amazon.com didn't provide significant discounts on technical books, but my impression is that they have gotten more agressive about competing in that area and their prices are only slightly higher than bookpool.com. If you really want to save a few more dollars there are used book sellers. Be careful. Following the links provided by addall.com I found some dealers selling used books for more than the discounted new price.
Sat 21 Aug | David Jones | Yet another is http://www.anybook4less.com/ Bonus for non-Americans: it factors in exchange and shipping. I'm in Canada, and the best price on one book I wanted was from the UK of all things. More recently, however, amazon.ca is blowing the competition away.
Sat 21 Aug | anon | +++I am suspect. Why did you feel it necessary to mention a site at all? +++ Because he's not an idiot like you.
Sat 21 Aug | <sigh/> | I see the intelligencia have arrived.
Sat 21 Aug | www.marktaw.com | Besides a good geurilla ad would be: Does anyone know of a good place to buy technical books? - Some guy with a question Yes, try my site. - Some guy with an answer Don't you guys know anything about geurilla advertising? And to answer the OP these are some stores without a technical book focus: half.com (ebay) powells.com abebooks.com http://www.google.com/search?q=technical+books -> bookpool.com -> opamp.com -> lindsaybks.com -> sdtb.com -> qtb.com -> www.technical.powells.portland.or.us (????) -> etc.
Sat 21 Aug | kc | Bookpool is by far the best. I've ordered from them 3-4 times over the past 15 months and they've always had a great selection and good shipping. I'm not affiliated with them or any other book seller in any way.
Sat 21 Aug | one meeeellion dollars! | And Amazon doesn't have a good selection and shipping?
Sat 21 Aug | Dot For This One | I like Powell's - their selection is almost as vast as Amazon's and, well, they aren't Amazon. The advertise in magazines I like so that's why I give them my patronage.
Sat 21 Aug | yet another anon | mackinac - that's a good catch on Addall not listing Amazon's new books. I never noticed that before. One other note on addall - it's great for academic texts. Some of the booksellers they search specialize in school textbooks (e.,g. eCampus) and you can save $10 here or there. The other thing to watch out for is the low priced new texts. a lot of them turn out to be international printings - thinner paper and cheaper (smelly) ink, so read the fine print. +1 for Powell's. I buy used books from them all the time. Of course, I have the advantage that I live near the brick and mortar store. So I check the prices online, then go to the store to inspect the condition before buying. But, most of the used books are in good condition, and if they're not they have a deeper discount.
Sun 22 Aug | www.marktaw.com | I passed through Portland, and I definately want to go back. It's supposed to be a cool place... huge park, interesting people, bad weather, etc. Powells is the world's largest bookstore (it's the whole block). I'm not nearly as enamoured with book stores as I once was, but if I was in Portland I'd definately check it out 'just becuase.'
Sun 22 Aug | fool for python | Powell's rules. The tech bookstore is down the street a block or two from the main store and is by far my favorite tech bookstore. And Jake's is a short walk. And the brewery's are nearby.... CTL+L www.orbitz.com
Sun 22 Aug | www.marktaw.com | Well... I'd probably make a tour of the whole western seaboard if I were to go to Portland. There's a lot of places I want to see.. San Fran, Taos, Portland, maybe parts of Montana again, maybe Boulder again. Life's too short to take a vacation to just one city.
Client education - finding a way to charge for it | Fri 20 Aug | Neo
I constantly find myself in a position of having to educate my clients. I often spend a great deal of time letting them know what they *can* do in order to identify what they *want* me to provide a cost proposal for. I usually pad those hours back into the estimate on the first job so its not a big deal.  However, as they remain my client and call back asking for small adjustments/add ons, this happens again and again. I have to spend time educating them. Then, the modification they want done is small and its tough to pad into the 2 hours quoted for the small job.  At the same time, I dont want to lose the client.  Has anyone else been here?  Any suggestions?
Fri 20 Aug | Bored Bystander | HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA Surely you jest! Seriously. I think the prominent consulting authors like Jerry Weinberg have addressed points like this. Unfortunately, only a 'true consultant' is paid for his advice. Being service and 'labor' providers, we aren't supposed to know more than the customer, right? :-( I hope someone else has a better answer to this than 'if you're any good, it comes out in the wash'.
Fri 20 Aug | the artist formerly known as prince | My dad is in the appliance repair business (San Francisco Area), he charges 40 bucks to come out and talk to them, and check out their appliance. In the long run it depends- you can compensate in 1. A Flat Consultation Fee 2. Charge for the artifact, i.e. Them-we need a Database you OK, the completed design docs will cost X. 3. Simply bump up your hourly rate 4. not take on small projects, or if they really are 2 hour projects higher a lower paid assistant.
Fri 20 Aug | no name | Neo, sadly, this is a common problem for consultants, especially if you deal with lots of small firms. There are a couple of solutions. 1. Whenever they ask you for advice, offer to consider their requirements and to give them a written report on the subject. This makes it more obvious you're doing something for them, and people can understand why you're charging for a report. If they say no but still want you to answer, you have to tell them you would need to look into it properly. That is actually not a bad idea anyway, because the quick answer you give for free might be wrong, in which case they will judge you harshly, even though you were doing them a favour. 2. Offer to be their regular consultant for a small monthly fee (retainer.) If they take up this option, make sure you still charge by the hour.
Fri 20 Aug | no name | Neo, does Queen Bee do this to you?
Fri 20 Aug | trollop | 'The only defence a man has against overwork is the size of his fee'. A lawyer said that. Lawyers seem to get rich. Folks LOVE free stuff and the folks who give it to them. But by definition, it's not billable. You won't lose the client if you ask for a retainer to cover the nickel'n'dime time, or a flat fee per call, or a flat fee to study the next development problem. But watch the 'education' cost, to you, and to your client. Shotgunning options at folks in the hope that one takes root and turns billable is less time-effective for both parties than addressing problems as they bring them to you. Get paid for your advice. Give the right advice. Get a reputation for good advice. Get recommended. Get more clients. Start harvesting. When you are run off your feet , you won't have time to 'educate' ... and you can increase your fees .
Sat 21 Aug | hoser | One company I worked for was billing $5,000 per day for UI changes based on one software engineer's day.  A thing of beauty.
Sat 21 Aug | I knew this was gonna happen | Obviously this is the first rude awakening from Neo's Queen Bee love affair. I am giddy with glee.
Sat 21 Aug | Snort, chortle | Oh, yeah, I forgot about that! You can't live anything down on this board.
Sat 21 Aug | Neo | These are some really great ideas. I'm not sure some of my small clients would go for a retainer. However, that's certainly worth suggesting to those who call just about every month with questions. I like the idea of the written report which makes the answer seem more formal. That's great. Thank you all very much. And no, I'm not talking about my experience with the Queen Bee as you like to call her. For one thing, I've only worked with her for just over a week and that's not enough time to have the problems I'm describing which occur with my other clients. However, working with her for the past week has been great. I've been presented with specs that are written out in great detail. For the work I have to do, every screen is mocked up or an example provided to me. So far, this has been a very pleasant experience. I wish all my clients were like this.
Sun 22 Aug | Matthew Lock | Beyond the very first meeting I charge $50 per hour for any and every reason I have to go to the client site. I'll answer some basic stuff for free over the phone, but if the client wants my time they are going to pay for it. You need to be strict about this else some clients will suck all your time for nothing. The bright side is that all my clients understand this and are happy with it.
Sun 22 Aug | Matthew Lock | Oh, and when the client calls you for free advice give them a 5 minute time limit then tell them you are too busy to talk right now and suggest you to come and talk to them on site. Then charge your hourly rate for that.
Sun 22 Aug | Neo | Matt, a lot of my clients are in different states so I can't go see them. Have you ever tried the same principle but setting up a phone appt to talk to them at a specified time?
Sun 22 Aug | no name | Try doing what lawyers do. They get their customers to sign an agreement that says they agree to pay for work conducted for the customer. Whenever the customer rings up, the lawyer adds it to the bill. Five minutes is $50, and so on. Each month they send out the bill. Seems to work.
Sun 22 Aug | Neo | Has anyone done this successfully?  (I'm referring to the last suggestion about what lawyers do.)
Book similar to the Asperger's one | Fri 20 Aug | Patri Friedman
There is a book by SF author Elizabeth Moon called "The Speed of Dark" which is written from the point of view of an autistic person.  Very interesting.
Sat 21 Aug | Dave | This book reminds me of an interesting story I heard on NPR once about a very bright autistic woman who has a career in animal husbandry. She helps(helped?) design machines for slaughterhouses that treat steers humanely. Something like that anyway. Anyone recall this? I'm pretty sure she wrote a book about her experiences.
Sat 21 Aug | Dave | Maybe she had Tay-Sachs, not autism. I forget.
Sat 21 Aug | Will | The woman you were thinking of is Temple Grandin, a researcher in 'livestock behavior, design of facilities, and humane slaughter.' http://www.grandin.com/ http://en.wikipedia.org/wiki/Temple_Grandin She's been a major force in the livestock industry, reforming the way that slaughterhouses work. She's also become famous as a prominent example of a high functioning autistic adult who has become an advocate and public speaker on the topic. A good book in which she is featured prominently is Oliver Sacks' 'An Anthropologist on Mars'. P.S. I've read both books. I really liked 'Curious Incident' in particular. While we're on the subject, it reminded me of the classic novella 'Flowers for Algernon' by Daniel Keyes (1959).
Sun 22 Aug | Dave | Thanks Will. Gotta add a book to my Xmas wish list.
Card shuffling routine | Fri 20 Aug | Poker
Eric Sinks solitaire program got me thinking about how to write a card shuffling routine. Id like to see other peoples routines or algorithms on how you think it should be done and what provides the best randomness. The routine below picks a random slot for each card and then swaps the cards. It does this 100 times. Please dont tell me to go look on google for routines etc.. I want to see your ideas for shuffling a deck of cards. I remember in the early to mid 90s there was a company that would advertise that they would give you a job if you could write the most innovative card shuffling routine. void Shuffle(void) { Card Temp; int j; srand((unsigned) time(NULL)); for (int k = 0; k < 100; k++) { for (int i = 0; i < 52; i++) { do { j = rand() % 52; } while (j == i); Temp = Cards[i]; Cards[i] = Cards[j]; Cards[j] = Temp; } } }
Fri 20 Aug | Noname | Collection.shuffle(deckOfCards);
Fri 20 Aug | Christopher Wells | Take a deck, pick a card at random move the picked card to the top of a second (initially empty) deck ... repeat until every card has been picked and moved. http://www.pagat.com/misc/52pickup.html
Fri 20 Aug | Lou Franco | assuming rand() is random, I think this accomplishes the arbitrary goal of each card having an equal opportunity to be in each position (assume a function swap, that works as expected) void Shuffle(Card cards[]) { srand((unsigned) time(NULL)); for (int i = 0; i < 51; i++) { int j = rand() % (52 - i); if ( i != j ) { swap(cards, i, j); } } }
Fri 20 Aug | old_timer | Las Vegas has determined that after 7 shuffles by the dealer, the cards are sufficiently random that a normal person would never be able to see a pattern. Why would you need an algorythm to randomize them 100 times? Your game is being played by people, not other computers. A one-pass randomization is plenty good enough.
Fri 20 Aug | Edward | In fact, after a few thousand iterations, chaos theory would start to grab hold, and you'd start to see more patterns emerging ;-)
Fri 20 Aug | Poker | old_timer, You can simply change the 100 to a 7 if that suits you. I was simply giving an example.
Fri 20 Aug | redwagon | Assign a random weight (value) to each card, then use any algorithm of your choice to sort the cards based on the weight of each card. It's simple but effective.
Fri 20 Aug | Captain McFly | 'Assign a random weight (value) to each card, then use any algorithm of your choice to sort the cards based on the weight of each card. It's simple but effective.' This is what most online card houses do nowadays.
Fri 20 Aug | Peter | Once, there was an online casino that offered texas holdem games. They thought they were being slick by posting the shuffle code for folks to see. What they did not realize was that there was a pretty hefty bug in their code, so that instead of 52! (about 8*10^67) possible shuffled decks of cards, they had about 5000. As a result, players could determine in 5 cards (or less) what the deck was (thus knowing the position of all 52 cards in that deck), and what they should bet. If this is homework, the answers by the other posters above are good enough. If real money is involved, then you better do some digging for either a real (hardware) RNG or look up some decent RNGs like Yarrow. http://www.developer.com/java/other/print.php/10936_616221
Fri 20 Aug | Dutch Boyd | This thread is amazing. Everything written is basically wrong or badly misguided. So here we go: Time() isn’t a suitable seed for dealing a random deck of cards. Hint: How many possible configurations of a deck are there? Most library implementations of rand() aren’t suitable for cards. They’re usually badly biased in some way, frequently the low order bits aren’t very random. There is no reason to shuffle 100 times. This is like sorting a list 100 times. The reason Vegas uses 7 shuffles is because the way cards are shuffled by humans; divided into 2 piles and then interleaved back together. There is no reason to shuffle a computer deck 7 times. The solution: Pickup Knuth Vol 2. Use the Knuth shuffle or if you want to be a little more efficient an incremental Knuth shuffle. Use a real random number generator not a standard library routine.
Fri 20 Aug | Ron Porter | How about approximately simulating the riffle shuffle used by most people: 1. Split the deck by randomly selecting a split point from a smallish range whose bounds are equidistant from the middle. 2. Randomly pick a starting 'half' 3. From that half, pull a smallish random number of cards in order from next to the split point and place on stack 4. Do the same thing with the other half (i.e. smallish random number of cards), putting the cards pulled on top of the stack 5. Repeat from (3) until all cards are consumed. 6. Deal from top of stack. Note that you probably need to do several shuffles before dealing--perhaps another smallish random number.
Fri 20 Aug | devinmoore.com | Why even resort to random numbers? I'll show you a routine that still produces a random shuffle, and i did it myself, just now,as I'm writing this. 1. Take 1 card from the top,and put it at the bottom. 2. Using increasing amounts of cards, take N cards from the top and insert them N cards from the bottom. Thus, at the midpoint, you'll be taking the bottom 26 cards, and insert them between cards 13 and 14 of the other 26. 2. Increase N until N = 52. 3. Repeat, using N-1 cards from the bottom, mod the number of cards, until you cycle around again. Voila, deck shuffled, no random numbers. Remember to 'collect' the cards from the players in the order they're returned, so that you get a different shuffle every time. Of course, if they draw the same cards, you get the same cards back out, but you can always repeat the algorithm a few times. (a random number of times perhaps? Heck no! use a GUID.)
Fri 20 Aug | Dot For This One | Dutch Boyd - You are right. Amazing thread. The guy who said pick a card at random, put it in another deck, then another card at random, ... His works. Just it isn't in place two decks are needed. I'm going to tell Mitch and Murray downtown about you guys. One on-line poker site does this: High quality cryptographically secure random number generator. Frequently re-seeded from physically random sources. For each shuffle: Attach a 256 random bit vector to each card. Sort the deck based on the 256-bit vector. For less demanding - Assume 52 cards. for I = 0 to 50 J <- Pick a random number between I and 51 Swap item in position I with item in position J The quality of the shuffle depends on the quality of your random number generator. The seven shuffle determination was made by the statistician Persi Diaconnis, not by Las Vegas. I don't know about Vegas, but at California poker clubs, 90% of the dealers don't come close. Some clubs are installing automatic shuffling machines. One reason: They collect $3 a hand. Anything that speeds up play is desirable.
Fri 20 Aug | Christopher Wells | > The guy who said pick a card at random, put it in another deck, then another card at random, ... His works. Just it isn't in place two decks are needed. Alternative is to move the picked card to the top of the first (only) deck ... and exclude the top (i.e. the already shuffled) portion of the deck when you pick the next card to be moved.
Fri 20 Aug | Blackjack Bob | You're all wrong! Card shuffles are NOT random (e.g. because of card clumping and sticking, and uneven rifling between left and right hands), and there is a great deal of research into it (google on shuffle tracking). Blackjack card-counters who also shuffle-track have done a lot of study and shuffle simulation to help predict clumps of face-cards in multi-deck shoes, especially right after new decks are introduced when the cards do not end up shuffled fully. It's not just random distribution!
Fri 20 Aug | 30 Days | I was actually just researching this very topic for an Auction 45s game I am working on. This is a good link about shuffling a list: http://okmij.org/ftp/Haskell/perfect-shuffle.txt and I settled on using this algorithm for my own game: ;; list-remove : list number -> list ;; returns list l with element at idx i removed ;; example: (list-remove '(1 2 3) 1) -> (1 3) (define (list-remove l i) (if (zero? i) (cdr l) (cons (car l) (list-remove (cdr l) (- i 1))))) ;; shuffle : list -> list ;; returns a randomly shuffled list ;; example (caar (shuffle (fresh-deck52))) -> c ;; example (caar (shuffle (fresh-deck52))) -> d ;; exmaple (cadar (shuffle (fresh-deck52))) -> 4 ;; example (cadar (shuffle (fresh-deck52))) -> a (define (shuffle l) (if (null? l) '() (let ((idx (random (length l)))) (cons (list-ref l idx) (shuffle (list-remove l idx)))))) This will shuffle a 'deck' of 'cards' tht are stored in a scheme list like this: ((H A) ... (H 2) (D A) ... (D 2) (C A) ... (C 2) (S A) ... (S 2)) It works by starting with a list of size M and picking a random number from 1 to M, and moving the card at that index to a new list. It repeats the same routine for M-1, M-2 ... 1. When it is doen the old list is empty and the new list contains a shuffled 'deck'. Here is the original thread that I found to get me started: http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&c2coff=1&safe=off&threadm=ad5sfl%245av%241%40oravannahka.helsinki.fi&rnum=1&prev=/groups%3Fhl%3Den%26lr%3D%26ie%3DUTF-8%26c2coff%3D1%26safe%3Doff%26selm%3Dad5sfl%25245av%25241%2540oravannahka.helsinki.fi And this is the post that gave me the algorithm I chose to use: http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&c2coff=1&safe=off&selm=ad5sfl%245av%241%40oravannahka.helsinki.fi
Fri 20 Aug | 30 Days | Oh you mentioned not to use google. Sorry I should proably read thing more thoroughly. The actuall Idea was one I got from hearing about shuffling machines. What they do is have a machine that can shoot a compressed stream of air through a port the width of a playing card. Fill the machine with a 52 card deck, and it moves the port to a random spot (1/52) and blows that card into a collector. It then picks a new random spot (1/51) and repeats until there is only one card left. So really I just used google to figure out how to acomplish this in Scheme, but the thread I stumbled across is a very interesting discussion on rngs and card shuffling. Oh, and don't worry if you don't understand the Haskell in Oleg's post, I don't either :)
Fri 20 Aug | Dot For This One | 30 days - that works well when lists are natural for the language. When you work with arrays and want to sort in place, then the algorithm I outlined seems about as good as it gets.
Fri 20 Aug | Reply to "Card shuffling routine" | My approach was always to use qsort() with a callback function based on a random number generator. It's much simpler, even if not the most efficient algorithm. (It's likely to degrade to O(n^2).)
Fri 20 Aug | 30 Days | Ah yes, to sort in place is another beast entirely. Your solution to assign each 'card' an additional random value and sort based on that value is very elegant. However if you are using 256bits per value aren't you more than doubling the size of your card array (assuming your 'card' data structure is < 256bits in size)? In which place carrying around an extra array of 52 'card' sized elements could possiby use less memory. Of course if your card dat strucutre also contains say the image of the card, than I think 256bits is very cost effective. And I bet using qsort is much faster than my version for multiple shuffles...
Fri 20 Aug | Code Monkey | http://www.daylight.com/meetings/emug98/Sayle/sample.c I know the OP said to not provide links but this one explains it best. The base idea is to have a deterministic algorithm which generates numbers between 1-52 sufficiently randomly but which does not generate the same number twice or miss any number. The same logic is behind doing pixel fading of pictures.
Fri 20 Aug | matt | An interesting question in probability theory (group theory too, as we're dealing with permutations) is how manyconsecutive independant uniformly-randomly-chosen two-card swaps are needed to bring the resulting distribution of pack orders sufficiently close to uniform amongst all possible orders? Essentially how many cards do you need to swap randomly to get a 'fair' shuffle ? If you're interested I can dig up some links.
Sat 21 Aug | Dot For This One | 30 days, The algorithm with the 256 bits is used by an online poker site. They obviously need higly randomized shuffling. The method which I showed for having one step for each card in the deck is in-place, and mathematically valid, assuming the 'random number generator' is in fact random. It also does about the least work one can imagine for shuffling.
Sat 21 Aug | Danil | Going right brained for a moment: what are we shuffling the deck for? Althought there are 52! orderings of a standard deck, there aren't necessarily that many relevent orderings. For example, in bridge, each of four players receives 13 cards, but the order those cards are received doesn't matter, so the total number of unique deals D = 52! / ( 13! ) ^4. In Texas holdem, the order of the undealt cards, the order the players receive the cards, and the order of the flop don't matter. So if you have N players, you are only dealing M=2N+5 cards anyway, and have D = 52! / [ (52-M!) * 2^N * 6 ] distinct deals to worry about. Simply pick a number in the interval [0,D), translate to a deal, move on to the next.
Sat 21 Aug | Bella | Just swap each card in the deck with a random card in the deck. For i = 0 To 51 n = Int(Rnd * 51) temp = deck(i) deck(i) = deck(n) deck(n) = temp Next i
Sun 22 Aug | scruffie | ... which is exactly the algorithm that the developer.com article linked above shows is wrong.
Sun 22 Aug | Bella | Very nice article !
Is there a term for this? | Fri 20 Aug | Frank "Grimey" Grimes
We have a dialog where you need to check some list items before clicking a Generate button to execute calculations on the checked items. I set it up so that the button would be disabled if no items were selected, and would enable when items were checked. My manager suggested we enable the button, and warn if no items were selected. I dont want to do that -- Id rather rename the button Generate Checked Items than create what Id call User Interference (as opposed to User Interface). Does User Interference sound good, or is there another name?
Fri 20 Aug | Christopher Wells | I like your manager's comment. It annoys me when an button or menu item that I want to press is disabled, and I can't figure out what I must do to enable it: by enabling it, you have an opportunity to present a helpful dialog ("I realize that you've just pressed the button, but really you should select some items first before this will have the effect you desire").
Fri 20 Aug | Harvey Pengwyn | "pissing people off" is the normally accepted term, though there does need to be a term for it, lots of people here are keen on the 'here is a tit-bit of information about the software I sell / support / develop I have just discovered and I now think that the users, who probably know a lot more about the software than I do, should have a message box inflicted on them every time this particular sitiation arises, even though I have got one after about 8 months and they will probably get 50 a day' approach to UI design which I think it strongly related to what you are talking about
Fri 20 Aug | Was that so difficult Grimes? | Don't disable a damn thing.  If the SOB user clicks the damn generate button and nothing is checked simply pop up a Message Box saying 'No items selected.'  Then, when they click the ok button on the msgbox they default back to the screen.
Fri 20 Aug | Aussie Chick | Actually I agree with the OP. While the first time this may be annoying (ie why can't I click the button...). If a user uses this more then once and is presented with a dialog box for every mistake...it becomes annoying. However I do agree anothe way could be found. It is 2am in the morning here, so don't take my suggestion with too much seriousness, it could be crap when I wake up! However about some sort of display on the form that makes the user aware of what is needed to continue. I mean really, we all deal with this sort of disabled button when we install programs (ie the 'next' button is so often disabled until we fill in the required fields).
Fri 20 Aug | Greg Hurlman | If the 'Generate' button performs its generation, after which the user continues down the form before clicking 'OK' to close it, the disabling is fine.  If 'Generate' effectively closes the form, then it needs to be enabled, and a messagebox stating something along the lines of "You have no items selected for generation - Please select at least one item before clicking 'Generate', or just click 'Cancel' to exit this task".
Fri 20 Aug | Edward | I don't know if such a term exists, but User Interference indicates that the User is causing the interference, to me at least. I much prefer disabling buttons that don't do anything. In this case, a simple 'Select one or more items for calculation' message would help the user along, instead of having to close pop-ups every time they did something inappropriate. In my experience, it's much better to help the User using information on the panel itself, instead of correcting them through error/warning messages. Getting many of these messages can quickly frustrate a user.
Fri 20 Aug | Frank "Grimey" Grimes | The Generate button does close the dialog. I think there is something wrong with giving the user an option to do something you know is an error well in advance. Clicking a button that won't do something doesn't help the user get their work done. Another message box telling them they did bad doesn't help them get work done. My opinion is if there is ambiguity, then there's problem with the dialog, and it shouldn't be pushed off to users. I thought about renaming the button, but I hate long buttons. I will likely add a text message about checking items before clicking generate.
Fri 20 Aug | Harvey Pengwyn | We have actually thought of having an 'enable the buttons and menu items then tell me why the action can't be done' mode in our software. Sometime the actions and the conditions for them being enabled can be quite esoteric. Then, of course, there is the danger that the users won't find / won't be told about / won't read about the mechanism for changing the mode and be annoyed for ever after that this is the way it works...
Fri 20 Aug | Rob Mayoff | Get rid of the "Generate" button.  Instead, show the results alongside the list.  When the user checks a list item, immediately update (or start updating if it's a long operation) the results based on the new selection.
Fri 20 Aug | Alex | Disable the button, but when you hover over it, pop up a tooltip 'You Need to Enter some Info First'. No messageboxes, it's 2004.
Fri 20 Aug | Rob VH | If it doesn't take ages to refresh the screen, the suggestion about doing away with the button entirely is the right one. Otherwise, this is easy... have something selected by default. Then if the user unchecks all boxs, and the button is greyed out, it's obvious what is necessary to re-enable the button. I'm never a fan of giving users a button or menu that _looks_ like it does something, when in fact, it presents a message saying 'You can't do that'.
Fri 20 Aug | Clay Whipkey | I agree with Alex. Disable the button, but explain why its disabled with a tooltip. When less savvy users get messageboxes, they sometimes think the software is broken. That probably has a lot to do with the Windows sounds, and that they will hear the same obnoxious noise if they prematurely click the Generate button as they do when they get the illegal operation error right before they shut down and lose 3 hours of work. (Assuming they have speakers turned up, and it always seems like less savvy users play music CD's on their computer.) 'User Interference indicates that the User is causing the interference' Not necessarily. In football, Pass Interference does not refer to the pass interfering with the receiver. I think User Interference is clever enough. Grimey should blog about it and preserve himself some credit for coining the phrase.
Fri 20 Aug | Edward | No argument there Clay I just meant that that's the first thing that jumped in my head. How many phrases do we need that mean 'Bad Design'? ;-)
Fri 20 Aug | old_timer | Aussie Chick says: > If a user uses this more then once and is presented > with a dialog box for every mistake... > it becomes annoying. I should think if the user is so stupid as to get the same warning message over and over again, he/she really needs it. My vote goes for the boss. Enable it and pop up a Msgbox for dummies.
Fri 20 Aug | meanie | Electrify mice so users can be severley punished for to omanty stupid clicks....
Fri 20 Aug | meanie | or to omanty typos  :)
Fri 20 Aug | e | Without seeing your screen, I have yet another suggestion: 'Hide the button until the user has checked off the items' But the best thing would be to get some users to try the form and see what they do.
Fri 20 Aug | John C. | I think virtually any UI designer would tell you that users should be prevented from performing the task (i.e., the button should be disabled) rather than presented with an error message after clicking it. I'd go further and wager you could pick up any decent usability book and it would include this recommendation, thus bolstering your case. Or try this. Open the Save dialog in Word, Excel, etc. Delete the file name. Notice that the Save button is now disabled, because you can't save a file without a filename. Having an apparently active button that doesn't actually do anything except insult the user is a recipe for frustration. Don't do it.
Fri 20 Aug | Albert D. Kallal | What great topic here. I see nothing wrong with giving the user a dialog box. In the case of the button being disabled, then I do think that “most” users will learn that to highlight a box, something “has” to be done, but then how do they discover this answer? The example showed (word’s “save as” dialog) being disabled might not be a fair comparison, as you talking about users navigating a menu hierarchy (but then again, it might be a fair comparison!!). Navigating a menu hierarchy is a different UI problem then that of a button on a form…but they certainly share many same concepts. However, one can easily make the case that if you did click on the save as with no document, a message explaining that you need to create a document likely would be far more user friendly then simply confusing the user as to why the save as button is broken. Further, you could at that point actually ask the user if they want to create a document (or save a blank document!). This is far more user friendly then some poor sop who has to now figure out why the save-as button is broken. So, the best case for keeping the button enabled is that you can then take action and DEAL WITH the reason as to why the action cannot be taken. So, you can help the user create a that new document, or perhaps offer a dialog to select all options No category’s selected…report on all of them? (yes) (no) So, the advantage here is that you can take action based on a user mistake, where if you disable the button, then you can’t help the user much at all. You might have some lame bubble help, but that is passive helping the user…not active helping the user. Further, depending on your development tools, context driven menu bars might be a pain…and thus I would accept some dialog box explain why the option/feature can’t be used (but even better then the dialog is to have the code deal with “why” the button can’t be used!). If you disable the buttion, then you don't have to write code to explain the problem, or write code to deal with the problem. I think often a button is disabled to save programmer and development time, not because it is a better UI. Albert D. Kallal Edmonton, Alberta Canada kallal@msn.com http://www.attcanada.net/~kallal.msn
Fri 20 Aug | Frank "Grimey" Grimes | But it's not the *user's* mistake that they don't know what to do. It's the programmer's mistake they didn't provide the right affordances (to steal terminology from Joel's writings). It's 'wrong' to push the programmer's bad design to the user. After discussing this with some others, we have figured out the real problem: the Generate button is in the wrong place. The checkedlistbox is on the left in a column, and Generate is bottom right where you'd normally find OK/Cancel. (Right column contains settings for the list items). I'm currently refactoring the UI to correct this. Yes, it'd be easier at this point to put in the message box, but I'm not against a wall on time, and I can't let myself take the easy road out.
Fri 20 Aug | lh | Users learn things easier if the behaviour is consistent to other things they experience. What happens on your TV if you use the remote to change to the channel you are already on? The TV just does it and doesn't comlpain that is where you already where. Press an elevator button for a floor you are already on? The elevator goes nowhere, but doesn't compain. Press the radio station button to the station you are already on? What happens, nothing. Click the save icon on a file that hasn't changed. No error messages. It just saves anyway. All these behaviours emphasize to the user that *they* are in control. So if they 'generate' on an empty list. Go ahead and generate and come back with an empty report. Unless some really serious errors are going to result from generating off an empty list, just go ahead and do it.
Fri 20 Aug | bpd | LH, your examples all differ from OP's problem in one very important aspect: The TV station, elevator, radio station and saved file don't change - nothing new, nothing different yet desired; but pressing the button creates (generates) an empty report - something new, useless and unwanted. I prefer disabling the button.
Fri 20 Aug | ; | I didn't see it in this thread, but is there a way to back out of this dialog without generating anything? I would agree that disabling the button without putting something else is bad form. I don't agree with the tooltip because they take time before they display, and people don't wait before pushing a button like that. If it's invalid to press 'Generate' with nothing selected, then disable the button and give them an alternate button that says 'Cancel' or 'Back' or something like that they can use to escape. If it is valid to press 'Generate' with no data, then disable the button and put a check box that says 'Generate with no data' or something similar that enables the button, while still having the 'Cancel' or 'Back' button. That's my $0.02. And probably about worth that much.
Fri 20 Aug | Kevin | What about disabling the button, and then taking whatever text you were going to put in the message box and put it right next to the button?  Now nobody is bothered by message boxes popping up, and nobody is confused about why the button is disabled.
Fri 20 Aug | van pelt | Things I've learned: 1. Less than half of users will read a block of text that explains what to do, and those are usually the ones that would have figured it out just fine without the text. 2. In a debate about disabling vs messageboxing, half will prefer disabling, the other half will prefer the messagebox, and the last half will come up with thirty alternative suggestions. 3. You're going to piss off somebody no matter which way you go. The best compromise is to be more or less orthoganal with other dialogs in your app, go for consistency. With any luck, most users who will figure things out after one or two attempts.
Fri 20 Aug | Neo | Personally, I always think it's better to err on the side of generating a message box and annoying repeat users. Your choice is to leave someone sitting there scratching their head going 'huh' and I never think that's a good solution. Take my opinion and a quarter and you still can't buy a coffee at Starbucks though!
Fri 20 Aug | example | >> After discussing this with some others, we have figured out the real problem: the Generate button is in the wrong place. << I was going to ask what the proximity between the list and the button was. If it's way over on the other side of the dialog, then there's no visual clue to the user that the unchecked list and the greyed-out button are related in some fashion. If you have ever played Myst, there are a series of switches on the island which must be thrown before a big event can happen. Every time you throw one, there is some feedback (either visual, auditory, or both) that you're on the right path. You want to do the same thing with your dialog -- give the user the idea that the two are related, and positioning the button by the list does that.
Fri 20 Aug | Wayne | If you look at any standard Windows 'Options' dialog (with OK, Cancel, Apply), the Apply button is usually disabled until you update an input control. It's easy to do. In VB, I usually do it like this: Private Property Let ChangesMade(bNew as Boolean) cmdBtn(fciCmdApply).Enabled = bNew End Property Private Property Let ChangesMade() as Boolean ChangesMade = cmdBtn(fciCmdApply).Enabled End Property Private Sub txtFld_Change(Index As Integer) If mbLoading Then Exit Sub Select Case Index Case fciTxtSomeSetting ChangesMade = True End Select End Sub Private Sub ApplyChanges() If Not ChangesMade Then Exit Sub ' Save the changes ... End Sub
Sat 21 Aug | Dennis Atkins | > 'User Interference' Yes, there is a formal term for it in the field of UI. It is called 'excise', like an excise tax you have to pay but which does not help you achieve your goals. Any actions that the UI requires of the user which do not help him attain his goal are 'UI excise'. See About Face by Cooper for an entire chapter introducing this idea followed by an entire book elaborating on it. Regarding your design, I agree with you and not your manager. However, this specific thing is a ongoing debate in the UI community and was even discussed here about 1.5 yrs ago, with Joel coming out favoring your managers view, if I recall correctly.
Sat 21 Aug | Dennis Atkins | Oh and a good suggestion is to set up your ToolTips so that they explain WHY an item is disabled.
Sat 21 Aug | Donald Norman | I prefer the Windows 3 approach: wrong input==GPF and all work lost. Pretty soon the bastards (users)  start to learn about doing things properly.
Sat 21 Aug | Alex | The tooltip does take ~1 sec to pop up, and some people may not hover over 'Generate' for so long. But you could write your own, which pops up the instant you roll over. Or hide the button altogether and put some bold red text 'Make A Selection in Order to Generate' right there on the dialog -- golly, you'll have to subclass! :)
Sat 21 Aug | _ | The tooltip idea is a bit mouse-centric. What if the user is operating the software using keyboard only? In that case you also need to consider what the Enter key does when the default Generate button is disabled.
Sun 22 Aug | anon | put a text like 'select items and then click 'generate'' in bold or if the button is enabled at first, when he clicks it, popup a non modal tip like 'select items' or select some items by default. My $0.02
Sun 22 Aug | no name | We need to ask "Mr. Usability UI design Joel Himself Mister Master" about this issue.
Asperger's or just INTP's? | Fri 20 Aug | BDKR
Joels comment along these lines seems like an amazing oversimplification based on the logical conclusion of untrained observation. Based on his statement, many people that we know of as INTPs are instead mildly to somewhat autistic (in some way shape or form)? Ive know a good number of mathmeticians, engineers, programmers, and even linguists, that all fit the INTP temperment type, but only one can I actually say displays any of the symptons associated with Aspergers. I suppose the only reason I care to point this out is due to the fact that anyone could easily mistake an INTP or what some call extreme INTPs as one who suffers from Aspergers syndrome. Then again, I could see how someone could look at all the heavenly bodies going by and logically asume we are at the center of things. :-) mas informacion aqui. http://www.typelogic.com/intp.html
Fri 20 Aug | Dr. Real PC | You can call it INTP or Asperger's, or whatever you like, it's just a label. People are not all the same and they don't all fit the ideal of their culture. The US loves extroverts, other cultures prefer introverts. I myself am INT[PJ] (I don't really understand the difference between P and J), so I am not the cultural ideal or the majority. I feel I am on a different wavelength from everyone I know. Things that other people never see can be perfectly obvious to me, while what is obvious to everyone else can be a complete mystery to me. I think being INT is fun, because I never run out of things to think about, can never get bored with life. However, I am sure I don't have Asperger's because I am very empathetic. I could probably make a living as a fake psychic. However, I do know some people who fit the diagnosis -- utterly in their own world, obsessed with their projects, perfectionist, easily frustrated, highly intelligent, etc. But giving something a name does not make it a disease. People are different, to each his own, etc. But I admit that trying to get along with them is a challenge.
Fri 20 Aug | Herr Herr | The Myers-Briggs personality stuff is good in that it helps you be more aware of how others see you and your own strengths and weaknesses. But I would suggest you don't take it too seriously. It is based on theories, not on hard proven facts. A lot of the insights people gain from it is just rabbiting back what they chose on the questionnaire. 'Do you find parties draining?' is the quesion, and then the feedback is 'You find parties draining'. Well, yes, that's right, that's what I wrote! Results can differ depending on your mood, stress levels, nature of your work and relationships at the time of taking the questionnaire. When I first did the Myers-Briggs thingy, I was classified as an 'I' but so border line that if I had answered a couple of questions differently I would be an 'E', therefore apparently with a entirely other temperament. Yet when people hear I am an 'I' they might make possibly erroneous judgements about me based on that.
Fri 20 Aug | Herr Herr | Hey Dr. Real PC I also don't understand the difference between P and J. Glad to hear I am not the only one.
Fri 20 Aug | Aussie Chick | When I was 20-ish I went through a phase of doing lots of personality tests, and reading books etc. I agree with Dr PC, they are just labels. For me the benefit of doing these tests was that is was a process of understanding that other personality types do exist. I know it made me a better person, But then I have never been one to run around spouting this kind of knowledge out loud, I prefered it as a tool to understand rather then label. I was at highschool today (prac experience) with two staff members heading somewhere. We passed a gril sitting on the steps. It was immediately obvious to me that this girl had no friends, and very likely wasn't going to gain any quick. He was a girl, who without any serious one-on-one help will probably not function in society. We walked passed her and one of the ladies that I was with told her to move, she shouldn't be sitting there because we had to walk around her. The lady told me later that this girl had Aspergers, and that she wouldn't make friends. I was somewhat shocked at the almost hateful attitude, it felt like something out a black/white movie set in Alabama in 1950 or something. Not sure how pertenant that little tale is, I guess I am agreeing with Dr PC, there are some people who clinically need help, others just feel unsocial and rather not make phonecalls.....the difference is important. Labels for the sake of labels are not.
Fri 20 Aug | _ | The P goes on the bottom half of the sandwich and the J goes on the top. Unless you drop them, in which case they both face downword and stick to the floor that, incidentally hasn't been swept recently as evidenced by the cat hair and rice grains under the lip of the cupboard in front of the sink.
Fri 20 Aug | Strangelove | Doctor Real isn't really a doctor.  He just plays on on JoS.
Fri 20 Aug | BDKR | Well folks, I'm not agreeing that it's 'just a label'. If you consider that labels are what people (in groups or otherwise) use as a foundation for how to treat one another, then it becomes important to either not label at all, or make sure we accurately label. Cheers, BDKR
Fri 20 Aug | www.marktaw.com | 'hasn't been swept recently as evidenced by the cat hair and rice grains under the lip of the cupboard in front of the sink.' Woah, who told you about my kitchen?
Fri 20 Aug | Jon | So not wanting to talk to people is normal for some people? I'm a much happier person now. :-)
Fri 20 Aug | Dr. Real PC | I guess everyone has a different ratio for how much time they want to spend alone vs. talking. I think mine is 80/20. I often prefer reading because you get more new and interesting information, whereas when talking to people you hear the same old stuff, usually. However, you need to talk just for the emotional contact, to not feel completely alone on earth.
Fri 20 Aug | Dot For This One | I'm an ENFP, as I am dealing with some health problems getting more and more extraverted, which means that one gets energy from being around other people. Unfortunately the most common profile for software is exactly the opposite in all four categories. No wonder I feel like I'm in the wrong business.
Fri 20 Aug | jdm | My wife the psychologist assures me that, although Asperger's can be treated with medication, there is so far no cure whatever for being INTP.
Fri 20 Aug | Neanderthal man | You seemingly intelligent people actually BELIEVE in Myers-Briggs? Gosh, it's scary. http://skepdic.com/myersb.html
Fri 20 Aug | BDKR | 'My wife the psychologist assures me that, although Asperger's can be treated with medication, there is so far no cure whatever for being INTP.' LOL! I gues I have a tough road ahead of me.
Fri 20 Aug | indeed | Here's a question about the I/E letter in the MBTI: How do online conversations that take place while one is at a computer factor into the I/E? i.e. can the interaction that takes place in AIM be considered part of the 'energy' involved in intro- vs. extroversion? Would an introvert feel 'drained' by online human contact? How about message boards?
Fri 20 Aug | jdm | I suspect that online interaction is popular with INTPs, etc. precisely because it _isn't_ particularly draining on the emotions. This draining effect is probably due to the difficulty some of us have in trying to discern what the other person is thinking/feeling when intereacting with us. Since our intuition in this area is practically nil, we just get frustrated. As an aside, I find that the older I get, the more extraverted I become. Probably because the older I get, the less I give a sh*t.
Fri 20 Aug | Rainman | Myers-Briggs is a crock, because there are definitely more than 16 personality types in the world, and each of the four letters they use are definitely not orthogonal to each other. Definitely.
Sat 21 Aug | Dennis Atkins | Actually... the Myers Briggs has been carefully calibrated so that each of the 4 axes really are independent. It's a very impressive piece of work. None of the similar spin off tests are as consistent either.
Sat 21 Aug | Burned Out | I still prefer "Who's your favorite Beatle?"  I think I'm a George.
Sun 22 Aug | T. Norman | People are too different for one 4-letter combination to sum up their personality. However, there really is some meaning to it. The way it correla