[]RSS

About Archives Artwork Comic Contact Philosophy Projects Tags

Six things that Windows does right that Linux still doesn’t

[Comment]

October 9th, 2007 in top10

brainAs a follow-up to last year’s top10 list of things Linux does well, I figured I should write about what the Windows platform does right.

And as I’ve said before, I’ve been developing software for Windows and *nix on a daily basis for more than a decade. I’ve also used OSX (and earlier), WinCE, PalmOS, and many other operating systems. Each system has things that work well, and each has things that will suck the life out of you. Looking at the differences is a great way to learn about what works and what doesn’t.

Note to Digg readers: Windows succeeds as a platform because it’s everywhere, and it’s easy to build software for, something that’s only possible due to their great vendor support (and chair-fueled monopoly). And while Linux vendor support has improved vastly in the last 10 years, it is still no match for the base Microsoft has built. So what? Linux will get there (and it’s my home platform), it’s just not there yet.

What do I think Microsoft Windows does well?

  1. Snappy application startup and windowing. I dual boot most of my systems, and on equal systems (with reasonably optimized packages) Windows beats Linux hands-down in general snappiness (outside of older tools like vim). Recent Linux distributions have improved a lot, but they still lag in snap (especially startup times, window resizing, etc.). This goes for both KDE and Gnome applications. My definitive test? Firefox on both platforms: 250ms on WindowsXP, 1.5s on Ubuntu 6.10. This is partly a Gnome problem, partly an XFree problem, and partly a gcc problem. And if you haven’t noticed the difference, try measuring it yourself.
  2. 3d and wireless drivers. Hands down, most hardware vendors support Windows best. Linux still wins with most of the tangent hardware (printers, scanners, nics, etc.), but it tends to fall on itself with the proprietary mess of new-fangled 3d, capture, and wireless hardware. Some vendors like NVidia have improved their Linux support greatly (and I actually prefer NVidia’s newer XFree driver package over their Windows package), but in terms of support and performance, Windows XP’s vendor support has Linux beat.
  3. Stable ABI and APIs. While the Win32 APIs are a mess, they are binary stable. The nature of Gnu and OSS prefer source-stable APIs (which is also good). Binary compatibility, though, is handy for writing commercial software. Yes, commercial software can be written for Linux, but it makes more sense to release sources on Linux than to aim for widely-compatible binaries.
  4. Games. I’m not a PC gamer, but if I was XP (or 2k) would be the place to do it. Personally, I prefer my hand-held and console games.
  5. Specialty applications. Software development of nearly any specialty software is still cornered in the Windows market. We’ll all be happy when these vendors start supporting Mac, Linux, and web platforms, but that’s still years off. Until then, most people need to keep a Windows machine around. It’s not that custom Linux applications aren’t possible, it’s just that they’re so pervasive in the Windows world: every shop I’ve consulted at has a handful of custom applications that are Windows-only, and no longer maintained. This makes it very difficult for businesses to consider switching away from Windows.
  6. Browser plugins. Flash, for example, even on the newest Linux distros will stop working after a few months of updates (or may not work at all for some architectures). This is especially annoying now that Flash is actually useful, as sites like uTube and Google video use it to package video online. To contrast, I’ve never seen plugins stop working in IE or FireFox on Windows. Flash on Linux has lagged behind the other platforms too, and is not available for 64bit builds of Firefox.

5 ways to be totally unproductive

[Comment]

March 26th, 2007 in top10

brainHave you ever had one of those days filled with email, IM, and office debate, where none of it gets anything done? Communication is useless on its own–if it isn’t metered, focused, and intelligent. A lot of what slows us down is due to simple, standard corporate ways of doing things. But just because it’s common doesn’t mean that it’s productive.

So in that vein, here are five ways to be totally unproductive.

1. Passively ask for help

“Who would be responsible for managing EULAs?”

When you ask for something passively, you’re really wishing that something gets done without requiring any of your own effort. You know that something needs to be done, but are too lazy to figure out the who, the what, or the how. It’s like you don’t even care if it gets done, but you know enough to cover your ass. The problem is that when you don’t care, things only sort of get done … if at all.

So say what you want, and be willing to help it along. You do care, don’t you?

“Who wrote the EULA for the last release? Do they have time to update it, or should I?”

If you can’t say what you really want, then you don’t want it enough. If you’re not willing to do a bit of work to get it done, then you don’t deserve to have it done for you. Don’t be so lazy: your own success rides on the success of everyone around you.

2. Don’t give a real opinion

“I guess that feature would be nice.”

Do you want it or not? When you can’t say what you want, you’re doing a few things: wasting my time, making me think about what you’re saying, and forcing me to question your intelligence. When I ask you what you think, I actually want to know what you think and why. And if you really don’t care, then just say so.

“We need that feature, because of X. “

Say what you want and why; you’re not going to offend me. You’re helping me understand if something is important, based on your area of expertise. You do know what you’re doing, don’t you?

3. Respond with only opinion

“Whoever did it last time should do it again.”

This is another tool of the I-don’t-care-enough mindset. It doesn’t get anything done, and it doesn’t answer any part of what’s required to get that thing done. In fact it does nothing other than give someone more work to do. Hey, go and ask other people more questions.

“Joe should do it because he’s a ninja.”

It’s clear that you want to influence things, but you don’t have the time or energy to actually help. Your best bet is to either take a few minutes to do the leg work (and actually help), or shut up and save your breath. Either approach is better than adding noise to the problem.

4. Complain about something that’s really your fault

“Boy that company is retarded.”

There’s a complainer hidden deep within all of us. The complainer deflects responsibility, pollutes the thinking space, and brings down the team. Is it really someone else’s fault? I doubt it. Most of our failure is our own, and complaining about it certainly doesn’t get anything fixed.

“You know, we could have done better there. No matter, we’ll do X next time.”

Shut up and reflect on the problem. Study it. And learn from it. Then talk about it–only when what you plan to say has a chance of making people laugh, think, learn, or actually get something done.

5. Make fun of the complainers (meta complain)

“Ha, they’re not retarded, you are!”

Be careful when you mock the complainer, as they’re unlikely to hear you. You’re really just complaining too, which doesn’t change much. The mocking, while entertaining, is mostly spam in the work environment.

If you have to chastise the complainer, then make damned sure that you’re accurate and brief. If you fail to be either, your message will fall flat.

Even better than mockery: do something to prevent that thing from happening again. Show people how they can change, or put practices into place that encourage measurement and analysis. If you really want to improve things, then you’ll look for ways to help. And you’ll participate in the fixing.

6. (Bonus) Rant about the whiners, the complainers, and the spineless

Yes, I’m writing about a the lame communications I see every day. Yes, I’m wasting time. And yes, I’m complaining about it. But I’m making fun of the insanity in a semi-entertaining form. The problem is that I’ve never groked why the standard corporate culture cultivates such a meaningless, passionless, passive way of saying things. Frankly, I’m surprised that it works at all.

At least the whiners, the complainers, and the spineless offer us something great. They give us the opportunity to kick their asses, as it’s easy to say what you mean and do what you say.

Ten things Linux distros get right (that MS doesn’t)

[Comment]

December 30th, 2006 in Rants. top10

brainI use Windows and Linux every day. They’re both competent operating systems, each with reasonable applications and windowing systems. I find myself more productive on a Linux system, though, because of a few very simple differences.

So what are the differences?

  1. A useful terminal emulator. So what if it’s only useful for developers: I’m a developer. I like a terminal with capable cut-and-paste, tabs, and resizing.
  2. All-in-one application sources. Man, I love my apt (or yum, or distro-specific tool of choice). Finding and downloading applications for Windows is a crap-shoot in almost every way. I find this especially handy when building new systems: it takes far longer to build, update, and add needed applications on a Windows system than on most Linux systems.
  3. Cut-and-paste, and focus handling. Middle-click cut-and-paste is even more useful than middle-clicking a URL to a new tab, and XWindows does scroll-wheel window focusing right (scrolls the window under the cursor).
  4. Frequent, painless patches and new stuff, all the time. I’ve had a 3d desktop (compiz) and funky search (deskbar) for more than a year now (and I avoid the bleeding edge).
  5. Multi-desktops. Using a single desktop now is a lot like working at a grade-school desk: it’s just too small to be useful.
  6. Good, free tools. Like vim (or emacs). I know they’re old and crusty, but they both live and breathe text editing.
  7. No reboots. I rarely have to reboot a Linux system when patching. Windows is getting better about reboots, but they’re still too frequent.
  8. Open formats and protocols. My stuff (and my network) is mine, locking my stuff in proprietary, costly formats doesn’t work for me.
  9. No need for paranoia. I don’t like the anti-malware tax: the cost, the CPU cycles, and the wasted fear. Signed application bundles are a big part of how Linux gets this right: you don’t have to fear installing new stuff (the rest is in frequent patching and limiting possible damage).
  10. Respect. Don’t tell me what or how to do it: give me choices. And don’t treat me like a criminal, because I’m not.

Update - Someone dugg me, though the server is holding up well (thanks Dreamhost). Remember folks, top 10 lists are for fun.

Update - 2007 - Someone dugg me again. I guess Digg users have a short memory.

Also check out Three more things Linux does right (or that Windows does grossly wrong).

5 things I don’t want to see on your weblog

[Comment]

November 12th, 2006 in Rants. top10

flowerI don’t usually do the top-ten shtick, but I’ve seen too many horrible personal websites linked from , , and this week to resist. There are just a few things that you don’t do in a weblog (and satire is good for the soul).

#1 - Pictures of yourself

Your momma may like your mug, but it doesn’t add anything to your writing. In fact, your picture shatters any hope that I might imagine you as more interesting or intelligent than you are. Let your posts paint it, and stay hidden well behind the curtain.

It’s difficult to undo the effects of prejudice, especially when it’s the result of one of the lower-order inputs like sight and sound. Once I’ve seen your face, my subconscious draws its own conclusion. After that, anything I read is filtered through that picture and what my mind has made of it. And if you’re the average geek, the picture ain’t that pretty.

Let me decide if I want to see behind the curtain. If you decide for me, it’s going to take a lot of great writing to change what my mind’s eye has already seen.

#2 - Hubris (be yourself)

Don’t try to be too cool, too corporate, too fancy-shmancy, or too anything that you’re not. Figure out who you are and write from that. If you’re not honest, I’ll see it and move on.

Advertising is another hint of hubris. I know that you have to pay the bills (don’t we all), but don’t be greedy. If the ads hinder your content, to the left, right, and everywhere, I’ll curse you for your arrogance. If you want to make more money from your site, here’s a hint: write more, and write better — or be creative.

A noisy site is another sign of an inflated view of self. I think it’s cool if you work on other stuff. I’m interested in the things you’ve read. But don’t push it in my face all at once: it’s loud and it’s abrasive. Just avoid the noise. A front page full of dozens of different things doesn’t highlight any one of them well.

Be balanced, be humble, and be yourself. Everything else just gets in the way.

#3 - Ignorance (duh)

I know that we’re all learning, but there are a few sins of ignorance that I find especially repulsive. I wont stick around long if all I find is sloppy, ignorant, senseless drivel.

To start, you need to write clearly and correctly. Bending the rules can be fun, but IM-speak or plain-old lazy writing is just lame. Learning to write well takes time and effort (I’m still just a hack), but if you want to be widely read then it’s a requirement.

Your reasoning needs to be sound too, or at least interesting. A good rant is golden, but a rant rife with logical fallacy is painful to read. One you can write clearly the holes in your thinking become apparent. Fill in the holes (or be more creative), and people will find your writing more interesting.

#4 - Stolen, crappy, or ugly content

Blatant dishonesty is worse than arrogance, and presentation (while superficial) makes the first impression. If it’s not yours, if it’s crap, or if it makes my eyes bleed, I will never be back.

I’m always up for a good 101 Reasons Ruby Sucks rant, but only if the writing is clear, the reasoning is balanced, and it all makes sense. A good rant is useless if you don’t know what you’re talking about. An incoherent rant is even worse as it’s unbearably annoying. And any rant rendered in #0F0-green on black with comic-sans will make me run screaming. It doesn’t have to be beautiful, but it does have to be readable.

Due to the magic of , I skim thousands of posts monthly. I’ll k-line you as soon as I see link-jacked or lifted content. I’m only interested in original content, so if it’s not yours then why return to your site?

Link logs are cool if you add something to the links, and you make it clear that the stuff is located elsewhere. Never make me click through the RSS to your site just to get at the links, as that’s an obvious cash-grab. And always give credit where it’s due, especially when it’s from another blogger. Links are a dime-a-dozen and I’m only going to return if I see something unique or interesting.

Learn to write well. Learn to reason well. Learn to find the interestingness in your opinions. Find a clear, simple presentation. Do that, and I might just read your site every day.

#5 - 404s, server-down, and bandwidth exceeded

I love to read, but I can’t read what I can’t see. I don’t care if your server has gone down in a huge ball of flames, or if your webhost is holding your offspring hostage for payment: keep the site up. Good hosting is cheap, as is reasonable weblogging software.

And don’t submit your site to the major aggregators unless you can handle it. It used to be funny when a site was , but now it’s just sad. If you wan to play with the big boys, be prepared for it.