Domain: joelonsoftware.com
Stories and comments across the archive that link to joelonsoftware.com.
Comments · 1,628
-
Re:You've gotta love the blame game
Software [...] supply is LIMITLESS
Only once it exists. Getting software to exist is an expensive and time-consuming process.
Just look at the cost of CAD or other design and engineering software. The prices are utterly ridiculous!
The prices usually correspond to the value that it provides to the users, factoring in the initial costs of making it, and factoring in the competitive landscape.
Here's an excellent plain-english explanation of software pricing and some of the factors therein.
-
Re:Reason why?
Name one that will do this with software that you tried.
Fog Creek (#7 in the list)
-
Re:four clicks
You read the warning. That puts you in a separate category from 90+% of users. Then you understood it. Now you're in the top 1%. Many UI designers fail to understand that users do not read dialog boxes, warnings, error messages, or anything else. Years of windows "Exception 0xFFEEABA1432534 at 0xFA582446774645 have caused the thingamabob to bignumber2sopbyybasoutb." type errors have made users ignore even clearly written dialog boxes and instructions. Read User Interface Design for Programmers to get a better idea of this and how it matters.
-
A usability issue so widespread I lost all hope
One doesn't have to look far to find small but serious usability issues in open source software.
For example, did you hear about Fitt's Law and "mile high menu bar"/ "infinite size widget" effect?
For detailed description, see e.g. this Ubuntu bug.
It turns out that while the Windows and Mac software got this right (at least with respect to scrollbars), massive amounts of OpenSource software (even high profile projects for Gtk/Gnome and Qt/KDE, like Gnumeric, Gnucash, OpenOffice, Konqueror or Kword) add an idiotic small border to their document area that seems to serve only one purpose - prevent this usability effect and make all users' lifes harder.
BTW, I highly recommend Joel Spolsky's "User interface design for programmers" - that's the very least a coder could do to educate himself in the area of usability. The book is very interesting, easy to read and quite short.
-
Re:Well, there's your problem.
Essentially "Hallway Usability Testing", right?
-
Joel Spolsky's writings
While it's not a tool, Joel Spolsky has written a long and detailed series of articles on how to correctly design a user interface. It's worth your time to check it out, even if it doesn't speed things up.
Here's the first chapter -
Re:Because they canThe parent poster has nailed it.
The fact is that the costs of goods production (more often than not) do not bear any resemblance to the actual sale price. Goods are sold by the price people are willing to pay for it.
That so many people believe that prices are set based on production costs is, IMHO, a major shortcoming of modern education programs.
Here is a good text by Joel talking about market segmentation and software pricing: http://www.joelonsoftware.com/articles/CamelsandRubberDuckies.html
-
Re:Mac OS X ...Server?
But on OSX, we'd see non-ASCII chars simply garbaged with no obvious pattern.
My guess is you were using a codepage instead of Unicode. I've had issues with old MP3 files ripped over the years - for example Björk
:). There are several converters for filenames (and ID3 tags). After switching everything to UTF8, all my systems (mac, win, linux) produced consistent results. Unicode is the future, convert now or die. :)http://www.joelonsoftware.com/articles/Unicode.html
http://unicoderewriter.sourceforge.net/
http://www.unicodetools.com/
http://www.linux.com/feature/58689 -
Re:Give me a break
As painful as it is to admit it, Yale has a pretty good CS program.
Joel Spolsky went there.
-
Re:Unbelievable
Yes but Vista gives you 15 different ways to log out / shut it down including nine on the start menu alone (7 actual menu items that branch off a little triangle next to an icon and two additional shutdown/logoff icons).
-
Re:BIND rewrites
Sorry, I guess I should have been more explicit. I have seen the claims that BIND v9 was a major rewrite. What I haven't seen are (1) claims that BIND 8 was a major rewrite, or (2) evidence that BIND v9 wasn't a major rewrite. Those are both new claims to me.
That's all right. It should have been parsed as:
- That's from the guy who lied about BIND 8
- That's from the guy who (made) BIND 9 a complete rewrite
BIND 9 was a major rewrite, but not that a major rewrite is a good thing. Completely rewriting your code base is generally considered bad. A majority of BIND 4 and BIND 8 vulnerabilities could have been fixed by mandating chroot, no-root, port randomization, and separate cache+content servers.
BIND 4 was a mere 10,255 lines, but BIND 8 is over 58,288 lines. Of course, it's more fun to simply load it into git and compare the two versions of the named directory- the patch is 20,548 lines changed alone.
BIND8 wasn't insecure because of "design flaws", or because "it was too complicated", or because "it was written in a different time by different people", but because it was written by people who frankly weren't very good programmers.
Paul is a very smart guy, but a lot of the problems with BIND are simple overengineering and complexity issues.
As for my own investigation, I know, looking at the security advisory history for BIND, there have continued to be a steady stream of vulnerabilities due to implementation errors found in BIND 4 and 8, but very little due to implementation errors in BIND 9. (I'm considering CERT VU#800113 and similar to be design errors, which a rewrite wouldn't fix.)
Except, other nameservers don't have the vulnerability.
The ADDITIONAL-section processing has been the root cause of almost all poisoning attacks. DNS caches that don't have additional-section processing have always been immune.
I'm somewhat willing to forgive the BIND people for certain things, but an outright lie would be another matter entirely.
I'm not. The BIND group has made a number of enormous design errors over the years that have been defended by hubris and ego. I don't trust them at all.
- 2001.01.29 23:25:06, Paul Vixie*, on bsdi-users: ``See BIND9. Written by a new team, sharing no code with BIND8. Two years in the preparation. 6+ months of testing.
... BIND9 is a complete rewrite by completely different (read: better) people.'' (In fact, the team was not ``completely different.'') - 2001.02.04 06:32:01, Paul Vixie*, on bind-members: ``We've spent more than $2.5M on BIND9, which is a complete rewrite, and which took a dozen senior or supersenior DNS software experts over two years to complete.''
- Finally, at least Michael Graff worked on both BIND 8 and BIND 9
Ignore for a moment that the claim was wrong, and just bask in the stupidity of the claim that the super senior DNS software experts had never written a name server before (because they didn't work on BIND 4 or BIND 8).
-
Extreme programming and Joel Spolsky
Think extreme programming and agile programming for programming constructs used in small to medium groups:
Of course, there's also different types of development models, such as object-oriented, aspect-oriented, et al. ad nauseum. Find a comfortable programming environment for your skill level (expression engine might be a good fit if you're a designer by nature), and keep it simple. Stay away from complicated constructs.
Also, read Joel on Software:
Get the book, he's a good, entertaining writer.
-
Extreme programming and Joel Spolsky
Think extreme programming and agile programming for programming constructs used in small to medium groups:
Of course, there's also different types of development models, such as object-oriented, aspect-oriented, et al. ad nauseum. Find a comfortable programming environment for your skill level (expression engine might be a good fit if you're a designer by nature), and keep it simple. Stay away from complicated constructs.
Also, read Joel on Software:
Get the book, he's a good, entertaining writer.
-
Re:Hungarian Notation
You should read about the real Hungarian notation, instead of the pointlessness that got propagated as Hungarian.
-
Re:Well hungarian notation...
Hungarian notation has a bad rap because the idiots who propagated it didn't understand English.
Read Spoksky's article that talks about Hungarian, then come back and say it's harmful.
-
Re:Hungarian notation
Apparently, the bastardized version of Hungarian Notation got popular: http://www.joelonsoftware.com/articles/Wrong.html
zm -
Fast
"And, yes, it is very fast â" at least an order of magnitude faster than XML."
Just wait for the XML zealots to come crashing and not believing that XML is not the fastest, best, solution to all the world's problems (including cancer) and of course people at Google are amateurs and id10ts and WHY DO YOU HATE XML kind of stuff.
Or, as Joel Spolski once said: http://www.joelonsoftware.com/articles/fog0000000296.html
No, there is nothing wrong with XML per se, except for the fans...
-
Re:Mac OS X font is blurry...
their idea of text smoothing is to apply Gaussian blur to it and smudge it a bit. They do not use advanced manipulation like clear type does
LOL!! Incorrect. The Mac uses subpixel anti-aliasing just as ClearType does, but it uses a slightly different hinting algorithm. Of the two, the Apple way is probably better subjectively for most people. More info here: Font smoothing, anti-aliasing, and sub-pixel rendering and here: Texts Rasterization Exposures -
Re:glassdoor.com
I think that's 'cause some of the ./ crowd seems to buy into cartoon stereotypes of the evil adman. I've done lots of pr for non-profits, mostly to recruit people or raise money for a good cause.I headed PR for my high school's robotics team and I wasn't trying to sell anyone anythying; I just wanted to get us cash (in the form of sponsers) so we could buy the parts we needed for our robot and some girls 'cause they look good to sponsers/US FIRST. I do the same thing for my college robotics club and team 'cause well a bot costs money and it helps to have people to build it and in any school sufficiently large there's no way people will know what's going on without telling 'em.
Out in the real world, good marketing's a large part of why the 'buntus are going strong Canonical's got a great marketing team that knows how to sell the product and to who, which is why it's slowly picking up market share and reaching a lot newbies. Joel on Software makes a point about how Torvalds "evangelized" linux, which is really another way of saying marketed it. Slashdot posters play into the game all the time with the pro-FOSS, anti-MS rethoric; they play right into the new word-of-mouth marketing strategy that's become all the rage.
-
Re:Honest Attempt
Joel Spolsky explains why the Office formats are so complicated
I believe that same article was covered on slashdot a while ago. -
Re:Flaws
-
Re:Honest Attempt
Read this article:
http://www.joelonsoftware.com/items/2008/02/19.html
Summarizing how Office file formats were made super complex without anybody necessarily doing anything wrong, or anybody writing bad code.
-
Why the documents are so long
Raymond Chen (well known Microsoft blogger) linked to Joel on Software today about Why the MS Office file formats are so complicated
-
Old News
Isn't this old news? I mean, it's been covered on Slashdot at least twice now. (Dear timothy, I'd like to introduce you to my friend Google.)
Yes, the formats are large and complicated, but for a variety of good, if antiquated, reasons. I'd suggest anyone interested read Joel Spolsky's blog post on it (which, being posted last February, isn't news either but hey, this is Slashdot).
-
Re:don't bother
I hope a learned CS major can provide the link, as I'm drawing a blank on the author.
I'm not sure, but perhaps you mean this piece by Joel Spolsky?
(Note: I'm not a learned CS major, so I hope I'm eligible to provide the link.)
-
Re:don't bother
This may or may not be the exact article you are referencing, but Joel on Software covered rewriting from scatch. Of course, when I think "complete rewrite", I think of pretty much what Joel describes himself doing.
-
Re:Then STOP releasing the product!Also, "I reboot my computer
... why should I have to reboot my computer?" I find it hard to realize that he wouldn't know the technical difficulties in replacing a dll while the system is running, and possible ways around this, and the current state of affairs. However, maybe I'm giving too much credit here. Say what you like about Gates, but he is, actually, a geek. I don't want to give the man credit, but Joel Spolsky wrote about his first Bill Gates review.Short form, there was a 'bug' in Excel that was there for compatibility with Lotus 123, which erroneously treated 1900 as a leap year. This broke January and February of that year, but otherwise worked perfectly.
Spolsky found the bug after sending his spec to Bill Gates, who, apparently, not only read the whole thing, but marked it up with notes in the margins. At his review with Bill, the questions kept getting harder, until finally he asked if the date and time stuff was going to work properly. Joel's answer, of course, was 'Yes, except for January and February, 1900'. This satisfied Gates, and he got up and left.
Gates knew the problem was there. He knew that was a gotcha that was in the code, and he likely knew why it was there and who put it there. He's a programmer, like it or not. His company makes shitty products for a variety of reasons, but Gates himself is (or was) a programmer.
I'm certain he knew full well why he had to reboot. His point wasn't to try to fill in information, his point was to outline the absurdity of restarting your system, over and over and over again, just to make a movie. Sounds pragmatic to me.
-
I see no mention of Joel Spolsky in this thread.
He called it waaaaaay back in 2001: http://www.joelonsoftware.com/articles/fog0000000022.html
-
Obl. Joel on Software
Simple calculations of how much time is cost indicated long ago that disrupting highly skilled workers was detrimental to their work. http://www.joelonsoftware.com/articles/fog0000000043.html
-
My feeds
Here are some of the blogs I read:
Joel on Software
Introversion - an indie games company
The Old New Thing - Raymond Chen of Microsoft
The Daily WTF - how not to code
The Consumerist
FAIL Blog
Not Always Right - for people who [used to] work in retail -
Re:Code Complete
Personally, I think Joel Splosky has a lot to offer on this topic. see ===> http://discuss.joelonsoftware.com/?joel
-
The Joel Test
From one of the most respected developer/managers in the business, The Joel Test is a checklist that may help you with your ideas. http://www.joelonsoftware.com/articles/fog0000000043.html
-
Re:This is going nowhere.
The user doesn't know the spec
... tell users they were idiots for not understanding the spec ... A non powered hub may well limit downstream power, so USB hard drives won't work if you connect them to it. Or the PC will detect overcurrent and disable the port. Or you'll end running the host port way outside its max power rating. This is a place where it would be correct to enforce the rules because not doing so may actually destroy the host. ... OR, you could enforce the rules all over, forcing companies to produce compliant USB devices (or their customers will return them for not working) instead of leaving the user to wonder why they can't plug their "cheap USB gizmo" in and have it work (and STILL be returned for not working).
And then, instead of having to know all of the corner cases of the spec with regards to various types of hubs and devices, it would all just work and the user wouldn't have to know the spec at all. Ok, you start to do that. And I won't. And I'll take all your customers ;-)
http://www.joelonsoftware.com/items/2008/03/17.html
The point is that market forces strongly discourage companies from taking the line you suggestto the point that if only one company is willing to not take that line, that company will get 100% market share and all the competitors will go bankrupt. -
Re:Anything else out there?
-
Everyone will say "Aeron" -- for good reason:It is the best in a way that's hard to describe without sitting in one for eight hours a day, as I've done for the last two years. But you don't have to take it just from me and the numerous other commenters who are sure to appear -- Joel Spolsky of Joel on Software loves them too, and uses them as a recruiting advantage:
Let me, for a moment, talk about the famous Aeron chair, made by Herman Miller. They cost about $900. This is about $800 more than a cheap office chair from OfficeDepot or Staples.
They are much more comfortable than cheap chairs. If you get the right size and adjust it properly, most people can sit in them all day long without feeling uncomfortable. The back and seat are made out of a kind of mesh that lets air flow so you don't get sweaty. The ergonomics, especially of the newer models with lumbar support, are excellent.
They last longer than cheap chairs. We've been in business for six years and every Aeron is literally in mint condition: I challenge anyone to see the difference between the chairs we bought in 2000 and the chairs we bought three months ago. They easily last for ten years. The cheap chairs literally start falling apart after a matter of months. You'll need at least four $100 chairs to last as long as an Aeron.
So the bottom line is that an Aeron only really costs $500 more over ten years, or $50 a year. One dollar per week per programmer.
A nice roll of toilet paper runs about a buck. Your programmers are probably using about one roll a week, each.
So upgrading them to an Aeron chair literally costs the same amount as you're spending on their toilet paper, and I assure you that if you tried to bring up toilet paper in the budget committee you would be sternly told not to mess around, there were important things to discuss.
The Aeron chair has, sadly, been tarnished with a reputation of being extravagant, especially for startups. It somehow came to stand for the symbol of all the VC money that was wasted in the dotcom boom, which is a shame, because it's not very expensive when you consider how long it lasts; indeed when you think of the eight hours a day you spend sitting in it, even the top of the line model, with the lumbar support and the friggin' tailfins is so dang cheap you practically make money by buying them.
Notice his comment: The Aeron chair has, sadly, been tarnished with a reputation of being extravagant, especially for startups. The Aeron isn't extravagant -- it's wonderful, and people who sit in chairs for most of their lives ought to have a good one. I don't get the people who spend $30K on a car and $100 on a chair and $200 on a bed, when allocating a very small amount of capital from the first to the second two could lead to a dramatically improved quality of life, given how much time one spends wrapped in each. I use similar reasoning when I justify an amazing $70 Customizer over a typical $20 mushy keyboard.
Joel's not the only one with Aeron love, by the way. Check this review from game nerds:
With that said, there is no doubt in our mind that when you sit in an Aeron, you will honestly feel like you are sitting in a thousand-dollar chair. It exudes quality and comfort. While it may not be to everyone's taste, there's no denying that it's of the absolute highest quality-and given its price, that's something you would expect.
-
Re:This time
Probably shouldn't feed the troll, but
...
His argument was against your assertion that 'everybody thinks javascript just doesn't cut it for current web apps'.
This plainly isn't true as lots of people are actually very impressed by the javascript language, and just a bit frustrated that IE6 / IE7 / IE on Safari work so differently to everything else. For internal work I just ignore IE, and target Firefox only.
Even Joel has praise for javascript - take a look at his 'Can Your Programming Language Do This?' article at
http://www.joelonsoftware.com/items/2006/08/01.html
A better option than Javascript would be great, but Ruby hardly looks like the best option. A much better use of time for Microsoft would be making their Javscript engine for IE more standards compliant. -
Re:don't let the door
Please read this article: DOS Ain't Done Till Lotus Won't Run. It does a good job of debunking this myth. So does common sense. Why would Microsoft make an OS where a product used by the lion's share of users won't run anymore?
In fact, until the Vista release, Microsoft has had an insane commitment toward backwards compatibility. Read some of the horror stories from Raymond Chen's blog. You'll hear about how the core Windows 95 code was modified so that a bug in SimCity could be side-stepped. You'll read about how Excel developers purposefully added buggy behavior to Excel so that it would make the same mistakes as Lotus 1-2-3!
Granted, today Microsoft appears to be less in tune with this mantra of backwards compatibility. Joel Spolsky has a passionate diatribe on this matter: How Microsoft Lost the API War. Personally, I think that Microsoft is going to be just fine long term. They make great developer products, have a huge install base, tons of cash in the bank, and some very smart people at key positions in the company.
-
Re:Once again - The Alternatives:
I used to be a Python programmer. I even tried to build a serious site on Zope. It has some really cool ideas, but if you think this is what Rails "wants to be when it grows up", you must have a strange idea of what grown-up means.
For a while, it wasn't even possible to figure out which Zope to download. Zope 2 was mostly stable, but unsupported, because they decided they needed to rewrite a bunch of things and call it Zope 3. Then somebody saw that having "stable, ancient, unsupported" and "unstable, new, unfinished" were not really good options, so they started The Five Project to combine them. Unfortunately when your problem is "too many distributions", adding another distribution is not always the answer.
Zope was killed by the same thing that Netscape was: they said "everybody in the world, stop what you're doing so we can rewrite it". It's so sad to see this Pattern repeated so many times.
Say what you will about Rails (and I've got pages and pages of rants about stupid things they've done), Zope is not the ne plus ultra web framework.
Rails is what Zope wants to be when it grows up: useful, and used. -
Re:Optimism
I find it funny you emphasized 'really', considering most research shows our brains to be terrible at context switching:
http://www.joelonsoftware.com/articles/fog0000000022.html
http://www.codinghorror.com/blog/archives/000691.html -
Re:Let's Bash Microsoft!
Read this
http://joelonsoftware.com/items/2008/03/17.html
The web standards camp seems kind of Trotskyist. You'd think they're the left wing, but if you happened to make a website that claims to conform to web standards but doesn't, the idealists turn into Joe Arpaio, America's Toughest Sheriff. "YOU MADE A MISTAKE AND YOUR WEBSITE SHOULD BREAK. I don't care if 80% of your websites stop working. I'll put you all in jail, where you will wear pink pajamas and eat 15 cent sandwiches and work on a chain gang. And I don't care if the whole county is in jail. The law is the law."
On the other hand, we have the pragmatic, touchy feely, warm and fuzzy engineering types. "Can't we just default to IE7 mode? One line of code ... Zip! Solved!"
Secretly? Here's what I think is going to happen. The IE8 team going to tell everyone that IE8 will use web standards by default, and run a nice long beta during which they beg people to test their pages with IE8 and get them to work. And when they get closer to shipping, and only 32% of the web pages in the world render properly, they'll say, "look guys, we're really sorry, we really wanted IE8 standards mode to be the default, but we can't ship a browser that doesn't work," and they'll revert to the pragmatic decision. Or maybe they won't, because the pragmatists at Microsoft have been out of power for a long time. In which case, IE is going to lose a lot of market share, which would please the idealists to no end, and probably won't decrease Dean Hachamovitch's big year-end bonus by one cent.
And long filenames is different. Win16 applications were still presented with the aliases (C:\PROGAM~1 and C:\DOCUME~1). In fact they still are. Win32 ones weren't. But you needed to recompile (and do a lot of other stuff) to go from Win16 to Win32 anway, the fact that MAX_PATH changed wasn't really noticable.
And older Win32 applications worked on NT which always had long filenames.
They didn't push long filenames onto old applications, because that would have been stupid. Win16 applications could use a special API to get at LFNs, but they had to opt into it, just like web pages should opt into to a standards mode which will break pages that are designed for IE6. -
Joel on Software: Idealists vs PragmatistsJoel on Software published an excellent article about web standards a few months ago, and it brings up a lot of great, great points. The article is a bit on the long side (and gets side-tracked with an odd analogy), but it is well worth reading. A couple excerpts:
So you have to "test" in your own head, purely as a thought experiment, against a bunch of standards documents which you probably never read and couldn't completely understand even if you did.
Those documents are super confusing. The specs are full of statements like "If a sibling block box (that does not float and is not absolutely positioned) follows the run-in box, the run-in box becomes the first inline box of the block box. A run-in cannot run in to a block that already starts with a run-in or that itself is a run-in." Whenever I read things like that, I wonder how anyone correctly conforms to the spec.The precise problem here is that you're pretending that there's one standard, but since nobody has a way to test against the standard, it's not a real standard: it's a platonic ideal and a set of misinterpretations, and therefore the standard is not serving the desired goal of reducing the test matrix in a MANY-MANY market.
-
Commoditization of Complements
As Joel wrote, a good business strategy is to drive the price of the complements of your product down to commodity levels. Decreasing the cost of operating systems will make laptops more profitable, so a lot of the companies entering the subnotebook field will be stimulating linux (and other open source) development. We've already seen this from VIA; I can't wait to see if some big US brands start openly supporting linux development.
-
Re:You can lead a horse to water...
Not only that, but Excel "interprets" all kinds of things about numbers that you may not mean for it to (I run into this ALL the time). incorrectly.
-
Re:The prefect blueprint?
As long as the programmers are completely, entirely, aware of the psychological and strategic importance of the decision, I'm fine with it. The problem is, most people don't recognize NIH when they see it-- they really do think the code is a total mess, and that there's no way out other than a total rewrite. I've refactored some relatively large programs from C into C++ (about 100,000 lines) without ever creating a broken version in the process. It takes a long time, but it's a lot shorter than it takes to re-write and it maintains all those "hairs" that represent bug fixes as well.
If you read Joel's review of Netscape 6: http://www.joelonsoftware.com/articles/fog0000000027.html you'll see that in this case, he was entirely right. If Mozilla/Netscape used their existing test-cases, it sure didn't show in the final product which was more of a flaming pile of shit than Netscape 4 was, regardless of how much "cleaner" the code was. -
Re:The prefect blueprint?
It's kind of a weird feedback loop. The only reason Firefox is competitive now is because IE didn't get worked on for several years; the reason IE didn't get worked on is that it had no competitive browsers.
BTW, I'm not sure you're aware of this, but Joel Spolsky wrote an article about rewriting software from scratch, titled "Things You Should Never Do": http://www.joelonsoftware.com/articles/fog0000000069.html Personally, I'm with you, I agree with every word he says.
(He also writes a later article, I can't find it at the moment, where he describes Netscape release schedule:
* Release whatever you have with no cleanup or testing, call it version x.0
* Whenever there's a bug severe enough to get covered in the New York Times, bump the version number up a point
Sadly, far too many open source projects use that same release philosophy.) -
Re:The prefect blueprint?
This article is usually referenced whenever the subject turns to complete rewrites. I agree - they're over-rated and done too often. As Joel in the article points out, it's easier and more fun to write code than to read it.
-
Re:WowWhy they didn't write one portable VBA engine for Windows and Mac I don't know.
Ask Spolsky, he invented the thing
:) -
Re:Workspace disconnect
-
Re:Workspace disconnect
-
Re:I'll keep my desk
It's also because they're too stupid to read Joel on Software regarding offices and his own office. Instead, many of them keep doing things that are poison to "knowledge workers," a phrase I hate but that nonetheless describes the kind of people discussed here.