Domain: joelonsoftware.com
Stories and comments across the archive that link to joelonsoftware.com.
Comments · 1,628
-
Re:Oh come on.... strawman
The idea that consumers would specially pick out Microsoft for criticism, when basically everyone does it, is laughable.
No, the reason we pick on MS is because they do it to such a ridiculous extent. SIX EDITIONS?!?
Fun info about variable pricing here.
-
Re:another crippleware outrage
Businesses who can't just copy data solve this by giving out coupons or having a sale or similar. Differential pricing works fairly well, but it works better when you ask people to self-select.
You should read Joel. Joel here
-
Competitive support for W3C Standards?
No? What's that? Microsoft closed out the bugs as "works as intended?" Fail.
Something to credit Microsoft for
In case it's not clear, I have a firey hatred for IE8. Not so much the product itself, but what it represents. What it represents is a flagpole in the ground stating, "We're going to stand in the way of progress for our own selfish reasons".
While I can understand that Microsoft feels that the market is slipping from their grasp, I cannot support their methods of attempting to compete. Which is to say that they are using their power to prevent competition rather than building a superior product. As Joel pointed out in his excellent article on the Windows API being lost:
Which means, suddenly, Microsoft's [Windows] API doesn't matter so much. Web applications don't require Windows.
It's not that Microsoft didn't notice this was happening. Of course they did, and when the implications became clear, they slammed on the brakes. Promising new technologies like HTAs and DHTML were stopped in their tracks. The Internet Explorer team seems to have disappeared; they have been completely missing in action for several years. There's no way Microsoft is going to allow DHTML to get any better than it already is: it's just too dangerous to their core business, the rich client. The big meme at Microsoft these days is: "Microsoft is betting the company on the rich client." You'll see that somewhere in every slide presentation about Longhorn. Joe Beda, from the Avalon team, says that "Avalon, and Longhorn in general, is Microsoft's stake in the ground, saying that we believe power on your desktop, locally sitting there doing cool stuff, is here to stay. We're investing on the desktop, we think it's a good place to be, and we hope we're going to start a wave of excitement..."
If you truly want to understand what is wrong with this browser, take some time and go through these examples:
http://www.howtocreate.co.uk/wrongWithIE/
Those only scratch the surface of what is really wrong with IE and Microsoft's stance on improving their web browser. For further reference, RC1 of IE8 gets a 20/100 on ACID3. This compares poorly to FireFox3's 56-59/100, Webkit nightly's 100/100, and Opera dev version's 100/100(!).
Developers need to band together and stop hacking our sites for IE. Users who wish to use IE should either be directed toward download links for one of the many alternatives, or forced to deal with a degraded view of the site with a polite comment to upgrade. And by degraded, I mean "it works, but looks awful". If that right there doesn't sell users on getting an alternative browser, I don't know what will.
(Yes, I am aware that many businesses can't take the hit. But we have to start somewhere. And that somewhere can easily be everything from your personal site to your new venture that's betting on early adopters of advanced web technology. IE's market share is already plummeting. If we can get enough momentum, we can near-eliminate this unsightly browser from the web. Remember Netscape 4's inability to keep up? This is the exact same situation all over again, except this time the solution is not a total mono-culture.)
-
Re:Geeks onlyThe conventional wisdom these days seems to be, "don't try to upgrade a working XP machine to Vista, but if you get a new machine and it has Vista on it, it's OK to use." Which is basically Joel Spolsky's advice from two years ago, but he also says "don't buy a new computer just to get Vista, if your old one is working well enough." Good advice at any time.
It remains to be seen how Win7 will change the balance of this equation. Will it be a viable upgrade path from XP on XP boxes? Best answer for that seems to be "watch and wait for the production release."
-
How to sell Win 7 to me
The critical non-selling point for me with Vista was the blatant market segmentation. Vista Home, Vista Home Premium, Vista Business, Vista Ultimate, Vista IE-free, Vista Lite, Vista Media Center, Vista This, Vista That. The only version you could count on to have the features you needed was Vista Ultimate, the most expensive by far. It was just a con, and I walked away from it because of that.
If Microsoft wants to avoid insulting its users, it should stick to one version, or if its bean-counters say it must, a normal version and a cheapo crippled version.
-
Re:Is this a joke?
Does Dell ship these with their Ubuntu machines? Their existence is irrelevant if they aren't available to the user out of the box.
Users don't read manuals and those that do would buy the books.
Your points are getting really weak now, just admit you're wrong so we can all move on.
That blog post was fscking awesome. He gets bonus points for ripping on the nerd horde.
Awesome for what? Creating a troll post, making out that it was Abbie that blamed Ubuntu, who is now infamous for being an idiot. Yeah he's so awesome.
From what I can tell, most people I've seen running ubuntu have neckbeards and acne. I wish I were kidding.
If you mean running [work for] then you're just making it up.
http://uk.youtube.com/results?search_type=&search_query=UDS
Thats pretty much all the people who work for Ubuntu at the UDS. None of them are as you describe.
-
Re:Wow
How about the fact that the functions provided in excel are broken. http://www.joelonsoftware.com/items/2007/09/26b.html
http://support.microsoft.com/kb/214058.Now I understand that these bugs have been fixed or there are work arounds but the whole problem with excel is that it exposes extremely powerful analytical functions to users who are expected to not know when one of the calculations is wrong. There is no QA process around spreadsheets and typically there is not even any technical review of the work sheets that are used to create some of the data used by companies for very important decisions. The tool is too powerful and unfortunately US Corporate culture allows individuals to get away without understanding what these calculations actually mean
-
Why OS XWhy pay more for OS X?
- Unix security: they won't break the system from their account.
- Share screen: a built-in VNC will let you admin his computer.
- Built-in camera: senior citizens will appreciate a video chat with their sons.
- iPhoto: No other program comes close in simplicity and usability. Specially that cheap windows software included with each camera.
- No need for antivirus: one real virus in the last 10 years speak for itself.
- When you explain how an iPhone works, people smile with pleasure because the mechanics of dragging with your fingers just make sense on their heads. The same will happen with OS X (except when you drag a CD to the trashcan
:P that one is counter intuitive).
In general, an out of the box mac is ready to work for stupid users because it aims for simplicity. In comparison Windows software has complex interfaces in the hope that users will do more after they finish learning how the UI works, or simply because their creators don't know better. See Every time you provide an option, you're asking the user to make a decision.
-
C++ Books by Scott Meyers, and others...
Effective C++ and More Effective C++. I haven't read Effective STL, but I'm guessing it's good as well.
Also remember: The Art of Unix Programming and of course Joel Spolsky is a favorite, too.
I guess everyone should read The Fifth Disciple, as well.
And then there's of course Crucial conversations
-
Your list seems to cover the popular books
But programming book lists crop up all over the place. In this Stifflog interview with Yegge, Torvalds, Hansson, Norvig, Thomas, Van Rossum, Gosling, Stroustrup and Bray the interviewees mention their favourite books (of the most popular I think only K&R and Programming Pearls weren't on your list).
Many people have Knuth's Art of Programming on their shelves (but it's harder to find people who have read all of it).
One of the Kernel Hacker Bookshelf series on LWN recommends Unix Internals.
One of the consultants who taught at my University said that the Mythical Man Month and Peopleware were good. I've read these too and can also recommended them (although they are more about managing programmers rather than programming per se). The consultant also recommended Design Patterns (although he said not to read the book cover to cover but rather to just be aware of them so you could refer to them later).
Reddit has a Must Read Programming books thread.
I've heard the "Dragon Book" (Compilers: Principles, Techniques, and Tools I think is the 2nd edition) being talked of favourably.
What is the single most influential book every programmer should read? thread on Stackoverflow.
Many people seem to recommend reading Godel, Escher, Bach...
Joel Spoolsky's list of books every programmer should read.
Maybe someone will collect the 20 most popular books into one easy to read post rather than the scattershot of links I've given you here...
-
Re:dogfood?
It shocks me that so many techies commenting on this story don't know what "eating your own dogfood" means. I expect more from Slashdot.
http://www.joelonsoftware.com/articles/fog0000000012.html -
One-sided advice.
So you asked how to handle programmers on a forum where programmers hang out. The answer you got is: GAAAH BLAH BLAH BLAH don't bother me BLAH BLAH I'm the best programmer in the universe leave me alone BLAH BLAH what's that? status reports? I'm waaay too good for status reports BLAH BLAH oh, btw, buy me all this stuff because you should BLAH BLAH BLAH I don't wanna hear about anything that doesn't affect me personally all that "business" mumbo-jumbo bores me to death just sign my fat paycheck already
How unsurprising... And one-sided.
Somehow, I get the feeling that the answers would have been different if you had posted your question on a forum where managers hang out (if there is such a thing).
I'm not a manager myself but knowing that it could happen one day and because I like to read what people have to say about my industry and their ideas on how to make it better, I have read a couple books from Joel's and Jeff's reading lists.
So should you.
-
Re:Ah My Eyes!
If you believe this guy, antialiasing is bad.
-
Two ways
A very good read related to this is "The Perils of Javaschools" by Joel Spolsky. http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html
I think that paradigm choice is secondary compared to teaching in a way that will stretch the student's mind.
C++ was the language I used when I started getting serious about programming. Before that I used Basic dialects. My experience learning to program in C++ wasn't very enlightening. There were just a lot of compile-time errors, and I spent a lot of time looking for them. If I'd had a teacher it would have been much easier.
I think that if you're going to go imperative, the best choice is a bottom-up approach, in which you start out pretty close to the metal and go up from there, not focusing so much on computer science theory than on pointers.
You don't really appreciate garbage collection unless you have had the pain of managing the memory manually.
The approach that I think is best, is to start with a very high level language in which you can teach basic computer science without the language getting in your way. Preferably a functional language =) -
Re:its not about 'like'
Dude, comon, it's not about books or making money. I am a former PHP programmer who has switched to Rails; and as far as I'm concerned, it *is* the better platform (that said, if you like PHP, I think it's a fine platform too). I not only like the elegance of the Rails framework, but I like many things about Ruby including the easy use of anonymous functions. Now you may discount anonymous functions as syntactic sugar, but it comes in very useful in so many situations to the point where I don't understand how I lived without it. You could argue it's even a critical part to many applications and even the foundation of Google's Map-Reduce algorithm (Joel on Software has an excellent blog entry about functional programming here: http://www.joelonsoftware.com/items/2006/08/01.html) As for Twitter, that is not a good example because they had a bunch of other issues going on. I happen to work personally at times with the guys from Powerset.com (who use Ruby + Rails extensively). As it turns out, they had a discussion with the head developers at Twitter when they went with Rails and they found out that Twitter's issues were not a result of Ruby or Rails. Don't believe me? Check out point #3 here http://glu.ttono.us/articles/2007/06/21/powerset-to-launch-front-end-on-ruby.
-
Re:Contracts are premature
In Sales, this is called 'filling the pipeline'. As an entrepreneur, you're the company salesperson, so you have to do sales-related work. (See The Development Abstraction Layer.)
Your jobs as an entrepreneur fall into four categories:
- Jobs you've completed
- Jobs you're working on now
- Jobs you've gotten but haven't started yet
- Jobs you haven't gotten yet
You don't want to wait until categories #2 and #3 are empty before you start working on category #4, because it can take a long time for a job to move up from #4 to #3. You've got to work constantly on #4 to keep #3 full, so that when you're done with #2 you'll always have something billable waiting for you in #3.
This goes for every self-employment field. For example, my wife is a Real Estate Agent, and she works almost exclusively by referrals from past clients (category #1.) She's got homes that are currently listed, and buyers that are currently looking for a new home (category #2). Every month she sends out mailings, makes phone calls, and does in-person visits with past clients in order to keep in touch with them, to generate referrals and turn #4 into #3 and #2. This works really well; at least once a year she'll have an active buyer who's looking for something specific, and one of the potential sellers in #3 has a perfect match. She'll be able to go to that seller and say "If you're still thinking about selling your home, I have a buyer who I think would be very interested in making an offer." This often converts a potential seller into an active listing, and the offer goes through right away, eliminating most of the marketing cost of listing the home for sale. (Saves the seller money, and they don't have to live for weeks/months trying to keep the house spotless and having strangers visiting and walking through all of the time.)
-
Re:usually not worth saving
A re-write from scratch is nearly always the wrong approach.
I'm tired of hearing Joel Spolsky's opinion touted as an irrefutable fact.
"Never rewrite anything" is great advice for those who have no hope of ever understanding what their code actually does, or---more importantly---what it should do. It's not surprising that Joel, an ex-employee of Microsoft, would give that advice, but that doesn't make it universally applicable.
The reality is that it depends on a number of factors, including on how much technical debt the project has accrued and how this impacts the organization's flexibility. Having simple feature additions blow up in your face because nobody really understands the current code base is an excellent reason to ditch that code base at the earliest opportunity.
There are many other factors to consider, but what I've written suffices to show that a blanket statement like "rewrites considered harmful" is simply wrong.
-
Not if...
Not if the federal government bails out the hammer factory manufacturers in time!
-
Re:start small
I'm not saying that I don't agree with you to a certain point, and I do lack a formal degree as well and still work as a programmer to some extent, but I think Joel Spolsky has a point worth considering his article "The Law of Leaky Abstractions" [1].
In short; the point is that the shit will inevitably hit the fan at one point or another. The abstractions you are using will leak. And at that point, your ability to roll up your sleeves and dig into the details -- some of which will put those "CS-y" skills you claim not to have any interest in learning to the test -- can be what separates you from the pack.
That said, I also agree that there's a good amount of common sense to being a successful programmer or sysadmin in the real world.
[1] http://www.joelonsoftware.com/articles/LeakyAbstractions.html
-
Re:Contrary to popular opinion...
Zing, that's correct. The real question these guys should be asking themselves: are we really sure that management and the "sales drones" are fundamentally incompetent, and that we are fundamentally better? What makes them think that 10 years down the road their company would be any different? Perhaps selling a product to lots of different customers is just hard and hosted vs standalone is not, ultimately, such a big deal?
They should definitely read The Development Abstraction Layer before moving this beyond just talk.
-
Re:Yes. It is a race to zero.
"Nonesense. Most s/w companies couldn't survive the first year without some type of revenue. You can't sell licenses without having a product to deploy."
Did you not understand that when I talked about selling licenses..it was to software that has already been developed and ready for sale?
"MOST startups are either two guys living off their parents while they develop that initial product, or they are SMART business people that sell their services to get started. Three of the four startups I have worked for were customized software projects that the founders negotiated rights to the source code (or at least shared ownership with the initial customer). "
You forgot about the third that get bank-loans to finance their ideas. The fourth are people that run a software-only business while working a full-time job (ex: http://www.joelonsoftware.com./
"Notice that EVERY SINGLE product you listed above started as a small open source project not tied to any company."
My point was that you may be able to start out small, but because of the nature of open source, you will need a larger company to survive (one that does not sell software only). I see you couldn't provide an example of a large open source project that was not backed by a large company/entity. I don't think one exists.
"Okay, when you get your startup to the point where you can compare yourself to being at least 1% of these two giants, let's talk about business models."
to see my point, just compare some OSS companies (not ones backed by larger corporations) and ones that sell proprietary software with licenses. OSS companies will always be limited because service and support requires more man-power.
"If you are trying to build a business based on their current models, you have lost me completely."
you mean selling software and charging for the licensing fees? thousands of companies do it every day..successfully. In most companies, money is a factor, but time is even more important. Can software X save the company time? Open source apps usually require lots of time to learn, install, configure, and debug..which equals more time spent. Most business owners, if they could, would rather just pay to get something that works right out of the box.
"MySQL (the company) lost their way from the OSS community. However, the purchase by Sun is likely going to bring them back inline with the initial view of MySQL (the project)."
It's closer to: mysql (the company) couldn't survive on services alone and had to start selling licenses. Now that sun owns mysql (the project), they don't have to sell licenses anymore because they have other, non related sources of income that are subsidizing it.
Even though this is the case, I don't think sun will just suddenly stop selling licenses to mysql. It's guaranteed revenue.
-
Re:features mythWhy does Microsoft, and apparently Apple, believe what we've been waiting for is more features?
Because consumers pay for features, and if you have nothing to sell, you'll eventually not be a company anymore. Regarding consumers and features, see Joel Spolsky's Strategy Letter IV: Bloatware and the 80/20 Myth.
-
Re:A bit smarter would be welcome
I have often wondered why the Windows Explorer takes ages to show a directory
-
Re:Betas and RCs of Windows are ALWAYS faster
Oh... we know what happens. Scroll down to the bit about SimCity.
-
Re:Make the UI reflect the total state of the app
Also on a forum on Joel's site, there was a brief discussion on this subject just a week ago:
http://discuss.joelonsoftware.com/default.asp?joel.3.692342.7
-
Doing it from scratch has other dangers...
Sometimes you feel that working from scratch "would have been better". But you might be missing lot of details you have taken for granted or even never knew they were there, and you will have to face them.
There is a great article from Joel related to this... he actually speaks about saying "this sucks, let's rewrite it" so it's not exactly the same, but the points have a lot in common with your case. I recommend you to take a look at it.
-
Re:Really
The problem is that Ubuntu's strengths don't carry over to Ubuntu Server, especially when you deal with SysAdmins that know what they're doing.
And that group does not include most Windows Admins running Windows servers.
Ubuntu's GUI tools other successes on the desktop make it a direct competitor to windows desktops, and these same features make it a direct competitor to windows servers. Windows servers have nothing else to offer apart from their GUI interfaces and integration with clients. But with the demise of the backwards compatibility camp at Microsoft, the latter feature is in question, leaving Ubuntu primed to usurp not a few Microsoft shop data rooms in the near future.
-
Re:Migrate, migrate, migrate...
I don't believe in this proprietary format FUD either - if the proprietary format is no longer supported, you migrate
No, what is needed is for all data to end up in a "long term stable form". PostScript and Portable Digital Format (PDF) will probably be readable 100 years from now using systems that exist then. Why? It's an open format, with lots of content, and everybody and their dog has a reader for it. Will Word documents exist then? Maybe. Will they be rendered with high fidelity? Nope! They lack open fonts, or internal font storage (lots of things open correctly, but on any number of them render completely wrong due to different font metrics).
Will Office documents render correctly 100 years from now? Probably a lot of them. Maybe even most of the important ones. However, if you use clever OLE things, do I think the embedded Visio diagram will "work" 100 years from now. Not a chance. Will the embedded Excel? Maybe. Will the cross reference, and cross linked documents? No.
PS and PDF will be readable and renderable 100 years from now with very high fidelity if for no other reason then both of them are mostly human readable *PROGRAMS*. PS literally is a programming language, PDF isn't but fairly close. Reverse Engineering and comprehending the Word format that are optimized to fitting into old computers.
Sounds like a like the situation that is going happened at NASA according to this story about tapes about Apollo 11 moon landing data.
Now, I agree that it's less likely because somebody will become motivated to make the money of recovering the data.
-
Re:the big diff
Wrong. PC users always insult Mac users for having "been had," for being "chumps" and "gullible" and "sheeps" [sic] and whatever other asininity they can come up with.
I like having a real Unix machine with fonts that don't make my eyes bleed and the ability to play DVDs out of the box. I don't want to have to tinker, I don't want to have to reinstall my OS every 6 months, and I don't want to have to break the law just to watch a movie. And frankly, I shouldn't have to.
Honestly, the problem is that gadget freaks and tinkerers have infiltrated the field of software engineering, leading to the proliferation of bad engineering and tweakable settings ad nauseum.
If you can read John Siracusa's review of OS X Tiger and not be impressed (particularly with respect to the versioned kernel interface system, something Linux would do well to mimic), then you're probably not a real Slashdotter. Getting excited about hardware specs is all fine and dandy when it pertains to what you can do with it, but people without a design outlook are engaging in "my GHz is bigger than your GHz" p*ssing contests.
-
Re:I fail to understand where you're going with thYou failed to mention one category:
- Has dealt with Java-only programmers, and their sloppy and REALLY SLOW practises. (Very long development time.)
I'm pretty sure any competent programmer can write good code in any language, and do it fast, including Java, but Java-only programmers seem to be almost as far from that as VisualBasic6-only programmers.
And using Java in your project seems to attract a lot of such programmers.
Besides that: what's the point of having a HelloWorld class and a speak method?
Your code seems unnecessarily engineered, just what a Java-only programmer would have done. -
Advice I have heard: Never sign such a thingJoel Spolsky, who writes the Joel on Software blog, says that don't agree to sign certain types of NDA or a non-compete contract. You're not some hot-shot sports player or CEO making several million dollars a year.
How much are they paying you? In my opinion, If it's less than high six or low 7 figures a year, they aren't paying you enough to agree to a non-compete contract. Here's a piece from Joel's article:You can win on this one. Highly skilled technical employees are in too much demand, and it's too easy to get a job. You don't have to accept this clause in your contract. If the employer absolutely, positively insists that you promise not to go work for a competitor when you leave your job, you can tell them: "fine. You don't want me to work for a year after I leave, that's fine, but if I'm going to be 'on the beach', I want you to keep paying me my salary for one year after I leave, until I can legally get a job that you approve of."
-
Re:Sony could have learned from Microsoft
Joel wrote a great article on these uptime measurements a while back. When you think of the 99.9% being 8 hours downtime per year, trying to add more nines doesn't make that much sense. Beyond that you're often looking at one off faults, where you're not too sure exactly what is going on. The faults are rare enough that the statistics stop making sense, and you can't be sure how long it will take to fix.
In those circumstances a fault can easily take a day to fix. A fully redundant cluster doesn't help if a software fault has put bad data into the system that has been copied all over the place. And completely eliminating software faults is close to impossible.
I think assuming 100% uptime is a major flaw. Most of your examples of 100% uptime are not 100% uptime. They are just reliably failsafe. This means they have assumed less than 100% uptime and put in place measures to avoid further problems from the downtime.
I've regularly been unable to pay by card due to network problems (Spain and Greece mainly - but once in the UK). The thing it must never do is complete just half the transaction. It needs to either do the whole thing or do nothing - and that's a lot more complicated than it sounds.
I've been unable to book holidays because the Sabre back-end was down for maintenance. Had to return the next day to try again. If it had thought it was working and given me a confirmation but not done the booking I'd have been much more annoyed!
As you say, the cost of downtime itself is often not really that great. But the cost of screwing things up as the system goes down can be horrifyingly immense.
PS: here's Joel's article: http://www.joelonsoftware.com/items/2008/01/22.html
-
Re:String f**k up
Reading the release, they have decided to really push 16-bit strings (they call this "Unicode" but it really is what is called UTF-16). I think this is a serious mistake.
The proper solution is to use 8-bit strings, but any functions that care (such as I/O) should treat them as being UTF-8. Most functions do not care and thus the treatment of "Unicode" and "bytes" are the same.
I'm going to try once more, slightly differently. Two other people apparently have tried and failed.
Python 3.0's handling of strings is basically the same as Java's, because it has proven to work quite well there.
For webapps, and the rules may be a little different on the desktop, "best practices" in Python for some time have been that you use unicode objects everywhere internally when you are representing text. When you hit a boundary (a file on disk, the net), you encode that unicode string into whatever encoding makes sense (often UTF-8). So far, so good, I hope?
Python's internal representation of unicode objects is only relevant in that you need it to support whatever code points you care about. I don't think there are any code points that you can represent in UTF-8 that Python will screw up after decoding/encoding. I'm sure there are many people who would be interested to see such a test case.
If you have a bunch of bytes that *might* be UTF-8, you're screwed. "process data that is likely to be text but must not be altered"? What do you mean by text? 7-bit ASCII? UTF-8? And where is the text coming from? Unless you tell Python the encoding of the file, you're going to get bytes out, not unicode objects.
The whole point is that Python unicode objects know how to represent code points. If you have get a set of bytes from somewhere you *have* to know what encoding it is in order to be able to treat it as a bunch of text characters. Python unicode objects will not be "bad UTF-16". How they're stored is not generally important. What's important is that Python internally keeps track of the code points and will either successfully convert to whatever encoded sequence of bytes you want or it will raise an exception because the encoding you've chosen doesn't have one of the characters in your string.
Python 3.0 makes this all clearer. When you talk about a "string", you're talking about a bunch of unicode characters. Anything else is a collection of bytes.
By the way, you can specify what encoding a Python source file is in so that your string literals are all properly decoded.
For further reading...
http://www.joelonsoftware.com/articles/Unicode.html -
Re:Go with the flow
I recommend two articles by Joel Spolsky: "The Joel Test" and "Getting things done when you're only a grunt."
The Joel Test lists twelve things that are ideal for developers. Implement the recommendations as much as you can. There are some good tips about implementing the guidelines in the Getting things done when you're only a grunt article.
Others have said it, and I agree: Maintenance of code is a lot harder than writing it to begin with. So if you can, write your code with an eye towards maintenance.
And for crying out loud, use the preferred coding style and guidelines. They exist for a reason.
-
Re:Go with the flow
I recommend two articles by Joel Spolsky: "The Joel Test" and "Getting things done when you're only a grunt."
The Joel Test lists twelve things that are ideal for developers. Implement the recommendations as much as you can. There are some good tips about implementing the guidelines in the Getting things done when you're only a grunt article.
Others have said it, and I agree: Maintenance of code is a lot harder than writing it to begin with. So if you can, write your code with an eye towards maintenance.
And for crying out loud, use the preferred coding style and guidelines. They exist for a reason.
-
Re:Too constrained and academic
There's a more in-depth article on Javascript's functional capabilities here:
http://www.hunlock.com/blogs/Functional_Javascript
Other stuff I pulled out of Google for your perusing:
http://dankogai.typepad.com/blog/2006/03/lambda_calculus.html
http://math.ucr.edu/~mike/lc2js.html
http://www.joelonsoftware.com/items/2006/08/01.html
http://www.ibm.com/developerworks/java/library/wa-javascript.htmlWhat this all means is that Javascript is the most widely deployed functional language in existence! And that's a fact you can take to the bank.
-
Re:Expert sex change, again?
That's his goal. (To be useful, not to be like EE.) Joel has written about the development of S-O several times on his site and mentions this almost every time. From the most recent post:
You know what drives me crazy? Programmer Q&A websites. You know what I'm talking about. You type a very specific programming question into Google and you get back:
- A bunch of links to discussion forums where very unknowledgeable people are struggling with the same problem and getting nowhere,
- A link to a Q&A site that purports to have the answer, but when you get there, the answer is all encrypted, and you're being asked to sign up for a paid subscription plan,
- An old Usenet post with the exact right answer--for Windows 3.1--but it just doesn't work anymore,
- And something in Japanese.
If you're very lucky, on the fourth page of the search results, if you have the patience, you find a seven-page discussion with hundreds of replies, of which 25% are spam advertisements posted by bots trying to get googlejuice for timeshares in St. Maarten, yet some of the replies are actually useful, and someone whose name is "Anon Y. Moose" has posted a decent answer, grammatically incorrect though it may be, and which contains a devastating security bug, but this little gem is buried amongst a lot of dreck.
Well, technology has gotten better since those discussion forums were set up. I thought that the programming community could do better...
Basically, he (and some others) said "this could be better" so they went ahead and made it. And no, he is absolutely 100% against experts-exchange style trickery. He just saw a need he wanted to fill, saw something that he wanted to exist so he made it. He's got the money to run it ad-free forever.
-
No can do.[...] it is something I would want, but googling doesn't find me anything similar. My programming skills are not amazing, to say the least, but I can design and QA.
This is the sort of thing one encountered in dot coms: a bunch of MBAs who couldn't code had an idea and figured they just needed implementation help. This approach was and still is so wrongheaded that it's almost impossible to believe the number of investors who fell for it. Understanding what's wrong with it has been much covered elsewhere; see Joel on Software, especially here and here and here. Actually, you should spend an afternoon reading everything in his archives.
Then mosey over to Paul Graham, where you should read this and this. Actually, read about half his archive, including all the computer-related stuff. Chances are you could spend about a day with both; then read The Mythical Man Month and Peopleware. Once you're done with all four, you should have a much better idea of why what you're describing is virtually impossible--something many others on this thread are dancing around, but which I'll come out and say.
-
No can do.[...] it is something I would want, but googling doesn't find me anything similar. My programming skills are not amazing, to say the least, but I can design and QA.
This is the sort of thing one encountered in dot coms: a bunch of MBAs who couldn't code had an idea and figured they just needed implementation help. This approach was and still is so wrongheaded that it's almost impossible to believe the number of investors who fell for it. Understanding what's wrong with it has been much covered elsewhere; see Joel on Software, especially here and here and here. Actually, you should spend an afternoon reading everything in his archives.
Then mosey over to Paul Graham, where you should read this and this. Actually, read about half his archive, including all the computer-related stuff. Chances are you could spend about a day with both; then read The Mythical Man Month and Peopleware. Once you're done with all four, you should have a much better idea of why what you're describing is virtually impossible--something many others on this thread are dancing around, but which I'll come out and say.
-
No can do.[...] it is something I would want, but googling doesn't find me anything similar. My programming skills are not amazing, to say the least, but I can design and QA.
This is the sort of thing one encountered in dot coms: a bunch of MBAs who couldn't code had an idea and figured they just needed implementation help. This approach was and still is so wrongheaded that it's almost impossible to believe the number of investors who fell for it. Understanding what's wrong with it has been much covered elsewhere; see Joel on Software, especially here and here and here. Actually, you should spend an afternoon reading everything in his archives.
Then mosey over to Paul Graham, where you should read this and this. Actually, read about half his archive, including all the computer-related stuff. Chances are you could spend about a day with both; then read The Mythical Man Month and Peopleware. Once you're done with all four, you should have a much better idea of why what you're describing is virtually impossible--something many others on this thread are dancing around, but which I'll come out and say.
-
Re:Firefox Damage Control Is More Than Enough
Firefox gives me themes. Let's talk when Chrome offers them.
You just answered ALL of your questions right there. CHROME HAS BEEN OUT LESS THAN A WEEK! Does anyone here realize that Netscape was open-sourced and became Mozilla OVER A DECADE AGO?!?!? And their browser has only been really usable in the last few years. Netscape 4 mostly sucked, and then Mozilla spent many years making a huge, bloated, SLOW suite before finally realizing FIVE YEARS LATER that "hey! maybe people just want a good, fast browser!" Then they took two more years to reach 1.0. And yet here's Google, receiving metric tons of shit on Slashdot because Chrome isn't perfect on day 1.
Despite all the Google haters that are coming out of the woodwork on Slashdot these days, I think that Chrome will have more market share than Firefox by the end of the year. Even with this first release, I can see that it has MOUNDS of potential. It is already MUCH faster than Firefox on many JavaScript-heavy sites--which is to say, almost every single popular site on the Web today. (Last time I checked, the front page of eBay had a third of a megabyte of JS code.) And not just faster on page loads, it's faster and more responsive when closing and switching among tabs. I can see this in just a few hours of usage. I can't wait to spend more time with it and see how it holds up after a several-day-long browsing session, which makes Firefox and Safari crawl. That said, I've already seen several pages that it renders incorrectly, and there are some UI changes I'd like to see, but there comes a point where what it lacks in usability in one area (UI) can be made up for in another area (lack of delays.)
-
Re:Firefox Damage Control Is More Than Enough
Firefox gives me themes. Let's talk when Chrome offers them.
You just answered ALL of your questions right there. CHROME HAS BEEN OUT LESS THAN A WEEK! Does anyone here realize that Netscape was open-sourced and became Mozilla OVER A DECADE AGO?!?!? And their browser has only been really usable in the last few years. Netscape 4 mostly sucked, and then Mozilla spent many years making a huge, bloated, SLOW suite before finally realizing FIVE YEARS LATER that "hey! maybe people just want a good, fast browser!" Then they took two more years to reach 1.0. And yet here's Google, receiving metric tons of shit on Slashdot because Chrome isn't perfect on day 1.
Despite all the Google haters that are coming out of the woodwork on Slashdot these days, I think that Chrome will have more market share than Firefox by the end of the year. Even with this first release, I can see that it has MOUNDS of potential. It is already MUCH faster than Firefox on many JavaScript-heavy sites--which is to say, almost every single popular site on the Web today. (Last time I checked, the front page of eBay had a third of a megabyte of JS code.) And not just faster on page loads, it's faster and more responsive when closing and switching among tabs. I can see this in just a few hours of usage. I can't wait to spend more time with it and see how it holds up after a several-day-long browsing session, which makes Firefox and Safari crawl. That said, I've already seen several pages that it renders incorrectly, and there are some UI changes I'd like to see, but there comes a point where what it lacks in usability in one area (UI) can be made up for in another area (lack of delays.)
-
Re:It wont even install for me
Damn them for not making their codebase absolutely perfect from day one! Software should spring into life fully formed, like Athena from Zeus' forehead!
Actually it should. It's not in vogue right at the moment but it's called testing BEFORE release. Do you really think for more critical stuff that the developers can afford to release untested crap and say "oh well it's beta"? Think of mission critical stuff - aircraft and spacecraft, power industry, telecommunications.
Good software takes 10 years to write.
There's a reason "mission critical" software costs millions of dollars to develop and license. And there's a reason that free software, for which it's impractical to spends millions of dollars on development, has a few warts.
Nevermind the fact that a browser must be fresh -- if you don't support all the latest standards, you're useless; and if you do, then you are, necessarily, somewhat hastily developed.
You wouldn't *want* to use a browser developed to operate to "mission critical" standards. It'd have a feature set comparable to Lynx.
-
Mile-high Tab Bar
Interesting. Chrome omits the menu bar, much like IE7+; but since it keeps the tabs at the top of its window, when it's run maximised, you get the benefits of a "mile high" tab bar. You can just slam the mouse to the top of the screen to pick a tab, much like the much-touted Mac OS menu bar.
I wonder if this violates any Apple UI patents? I have heard that Apple patents are one of the main reasons why Windows attaches menu bars to windows in the way it does.
It also doesn't bother with a status bar at the bottom; hyperlink destinations get a sort of "slide-up notification" at the bottom, but the space is generally used for rendering the page. Good idea.
All in all, it seems to be a fine product - but I will keep using Firefox until Chrome gets some extensibility, I think. Hopefully Chrome's good ideas will be adopted by Firefox as well!
-
Re:Yeah, and we should be surprised of this becaus
Rebuilding from the ground up sounds good, but there are a lot of problems with it -- the main one being that, while you throw away all your mistakes, you also throw away all your bugfixes. Joel Spolsky has a great article on how this applies to software development, but it's true in other areas too.
-
So you match to the Heuristics chosen
BORING! They could have Neural Networks, or or some upper bounded "Advanced Beginner" and acheive the same result
::
When you define perfection(tm), you can acheive it. Then you realise your perfection(tm) is not actual perfection, but some management person's project signoff of perfection.
Seems like the same old consultant $$$ trick. The dificult portion is picking to best heuristics, and is trivial to game. -
Re:tier?
"Smart and gets things done" would be Joel Spolsky. He also wrote a book with the same title.
-
This was predicted
This was predicted back in March by Joel Spolsky, but looks like they've got a good compromise going if it applies only to the Intranet. Don't know as release time comes, whether they will stick to it.
-
Re:No, intranets are not the web
I like Opera much more the IE or FF, but this whole "breaking web standards" rant is retarded. IE implemented features before there was a standard way to do them. The standards came later and did things differently. Lots of sites used the Microsoft version and ignored the 'standard'. Microsoft would be dumb to break those sites, and if they did people just won't upgrade.
Here's a good article
http://www.joelonsoftware.com/items/2008/03/17.htmlThe 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.
I hope they do the pragmatic thing.
-
Some hints for your situation
I'm in a quite similar situtation, and perhaps I can provide a few hints from what we're currently doing.
I'm working for a relatively well-known institute in academia (biotech field), with a group that among other research projects, also provides web-based services to the research community. Funding is partially tied to the operation of the services, so there is actually enough pressure to make sure that they work and work correctly at all times.
Still, until about a year ago, development was very ad-hoc, in a mix of languages, and with many "islands of knowledge", where some parts of the system were only known to one post-doc, and other parts could only be fixed by the group head (who, as they are, was usually busy with many other things...). After some hard times and near-misses, we started looking around for ways to improve our development.
I was quite attracted by the ideas of Agile, and I believe that they're a good fit to the kind of processes you find in science, as well as in software engineering. We initially had a professional Scrum coach come in and talk with us about software development practices, and then decided to apply Scrum to our processes.
It's now a bit more than 1 year since then, we're still using Scrum with a few adaptations to fit the academic environment (we're also using Scrum for projects that are really science and research, not software development). In a recent secret poll among the team, Scrum got high marks for making the team more productive, and for creating an environment where code and knowledge is shared. People are happy with the structure that Scrum provides, and we always know where the project stands. Incidentally, we also write better software faster.
But we're still improving the way we work. The transition is slow and painful, and we're only slowly adopting things such as test-driven development, automated builds and pair programming. In my experience, there's a lot of resistance against these "newfangled" methods in the academic culture, especially that of people who weren't trained as software engineers, but rather as physicists, chemists, biologists, but now find themselves producing software.
Some hints on what I've found useful in re-shaping our work environment:
- You can't change the whole structure in one day. Get permission to run a small, isolated project in "the new way", and use this to demonstrate the advantages. Remember, there are many metrics for success: Code quality, timely delivery, not having single points (persons) of failure, as well as team velocity and personal satisfaction. Try to make a case from this small project (and gain experience while doing so), and then grow it out slowly.
- I would not advise to do some clever "breaking the build, and thus showing everybody how fragile the system is" exercise. This may not be seen as constructive.
- Instead, provide convincing evidence by example that your way is more productive and more certain. Bugs that are fixed stay fixed, and don't creep in later again. Timelines are better kept. That sort of thing...
- If you can get someone in to talk about the current best thinking in software development, do so (someone else mentioned this already). It's good to hear an outside opinion, and to understand that these practices are not theoretical but used by large companies world-wide.
- I found Joel Spolsky's 12-point assessment very useful to find out where your organization stands: http://www.joelonsoftware.com/articles/fog0000000043.html
... These are also good points to whisper into management's ears.