Posts

Archive for the 'Computers' Category

How to Not Be a Software Pirate

by peterb

Because I’m a glutton for punishment, occasionally I’ll read a thread at some internet forum or other. Often in game forums, but also in more surprising places like this, the topic of software piracy comes up. These threads inevitably result in 20 pages of back-and-forth involving hundreds of people which reduce, in the end, to this exchange:

Person 1: “Hey, stop stealing software. That’s wrong.”

Person 2: “Don’t call me a thief! Copyright violation isn’t theft. Anyway, I really need to use this software, so that makes it OK.”

Beyond the obvious observation — that Person 2 is a dickhead — there’s something more subtle going on here. Today, it dawned on me. The Person 2s of the world aren’t just pirating software because they are bad people. They’re pirating software because they haven’t learned how to not pirate software. It’s not simply an ethical issue, it’s a personal failing, sort of like not knowing how to stop after one or two drinks.

Therefore, today, I’m going to teach you how to not be a software pirate. Let’s call today “Come Clean Friday”. Today’s the day you’re going to become a better person. I’m going to help. Read the rest of this entry »

Marginal Added Value

by psu

There are two universal rules about people who work in software:

1. Inexperience breeds an unrealistic optimism towards the power of new tools.

2. To offset (1), experience breeds an unrealistic hatred of all tools.

We have seen this cycle play out over and over again in the design, implementation and adoption of instruction sets (remember when those still mattered?), programming languages, operating systems, and end user applications. Back when I was younger and more optimistic about the power of new tools, I used to tinker a lot with scripting languages of various kinds. Over about ten years or so what this experience taught me was very valuable in my later career. The main lesson was this: pick one, learn it, and then stop paying attention. The one I picked to use most at the time was perl. Since then, perl has become a popular punching bag for newer and shinier scripting tools, but I have stuck to my guns. I know perl, therefore there is no reason to learn another scripting language.
Read the rest of this entry »

Boycotting MacHeist

by peterb

…or “Good software is worth paying full price for.” Read the rest of this entry »

A Small Milestone

by psu

Today I installed Leopard on my home laptop. As usual, installing a new version of the OS broke the Xemacs build I keep around for the one thing I do with Emacs. Normally I have the fortitude to get it working again, but not tonight. In a final step away from the brain damage of Emacs as a tool to use every day, I deleted the install and will not bring it back. It turns out that for what I needed to do, I don’t really need to carry Emacs around with me anyway. So it’s gone.

Note: yes I know that there is a built-in version of GNU Emacs in Leopard. For reasons that are too painful and stupid to go into, it really isn’t usable for this particular application.

“Backing up 998,532 files.”

by peterb

I bought a new disk drive to use with my shiny new iMac, specifically for use with Time Machine. Picking out the right drive to buy was itself educational. Read the rest of this entry »

Keyboard Perfection

by psu

I’ve used many keyboards in my time on this Earth. I think the very first one I used was attached to an old manual typewriter that I used to use to type up certain homework assignments in junior high. The first one that I used that was connected to a computer was the collection of square calculator keys that Commodore called a keyboard on the PET 2001. After that, there were the TRS-80s, the Apple II, the VT-100 in the high school, the Adm-3a, Tektronix, and some horrific unified APL terminals at Umass, and who can forget the Concept 100s at CMU.

And all these before I ever owned a computer of my own.
Read the rest of this entry »

The iPhone in Pittsburgh

by peterb

In Shadyside tonight I noticed that the queue for the iPhone has already started:

Waiting for iPhone

I took the opportunity to do a quick on-the-spot interview with the guys who dared to be first. The video and audio quality is pretty poor, but nonetheless…here it is.

Why Cooperation With RMS Is (Still) Impossible

by peterb

It’s not just the free software song, but that every interaction with the man is like playing Simon Says with a malicious 6 year old. Read the rest of this entry »

Telerama: Standing Eight Count

by peterb

My internet provider of choice (and former employer) Telerama has been having a few problems lately. This has engendered some morbid conversations, Irish wake-style, among some folks about whether and when the business will completely give up the ghost.

Regardless of what happens to Telerama — and I hope it’s around for a long time, and regains a solid financial footing — I think it brings some lessons that are of interest to anyone who wants to run a small business. I’m going to wander far afield and talk about some of these, and also talk a little bit about Telerama.
Read the rest of this entry »

True Conversation

by peterb

Me: “Hey, Nat, do you know what this ‘Azureus magnet link’ thing is?”

Nat: “Oh, I think of that as ‘That thing that when I click on it, doesn’t work.”

Me: “Hey, me too.”

Status: Bitter

by peterb

…because my ancient laptop, through an unfortunate misadventure involving a Senegalese circus troupe, now has a cracked LCD.

My plan is to spend the rest of the weekend obsessing over whether I should try and fix this thing myself, or just give up and buy a new machine.

Not Just Coding

by psu

We were driving home tonight, and NPR was interviewing some Robert Frost scholar about the publication of a book of Frost’s cryptic notebooks. It took the guy five years to put the thing together. I was drifting into a nice NPR doze while they droned on and on, when suddenly the host went from relating a story about Frost at the Kennedy innaguaration to talking about a talk that the book editor had given at the dedication of the Robert Frost library in “Am-Hurst.” At this point my ears perked up. The Robert Frost library is in Amherst, MA, the town in which I grew up. You pronounce the name with a silent H. Pretend you are saying “Amerst”. To this day it pains me physically to hear people say this the wrong way.
Read the rest of this entry »

iTunes Rules

by psu

iTunes told me today that it has 440 albums in its database. That number seemed high to me, but I have been ripping the occasional disk once in a while ever since I got my iMac two years ago. And, every new disk I buy generally goes into the machine. After bootstrapping the one true indexing system, I have been more motivated to actually rip and catalog the disks. While iTunes is not the ideal catalog database, you can muddle through by following some simple workflow rules. The goal is to have the music be easy to browse and search on both the main iTunes machine and in the iPod.
Read the rest of this entry »

This Is What I Do

by psu

Once in a while, in the midst of casual conversation, someone will ask me what I do. When I was a graduate student, I would mutter something about computer science research, algorithms analysis and by the time the word “geometry” came out of my mouth after “computational” their eyes would glaze over and they would back away slowly. When you work in research, you can scare people away with the power of your abstraction.

I don’t work in research anymore. I work in software production and once in a while I will spend some time trying to figure out how to boil the essence of the job down to a simple sound bite. With a few release cycles behind me, I finally came up with the right catch phrase. If you work in software engineering, and you are actually shipping something, you spend most of your time doing one thing: fixing bugs.
Read the rest of this entry »

Wiiblogging

by peterb

Surely, I must be one of the first people to post to their blog from a Nintendo Wii. I’ve only found one other Wiiblog entry so far.

To type, you use the Wiimote like a laser pointer. It’s a bit ponderous. But editing is quite easy.

Hmmm. I wonder how much work it would be to attach little Mii icons to each post…

The user-agent comes across as “Opera/9.00 (Nintendo Wii; U; ; 1309-9; en)”

Happy festivus, everyone.

Computer Scientists and Cruciverbalism

by kosak

It seems to be a reasonable childrearing principle that you should give kids a break in order to foster their creativity.  “Look, Mummy, I’ve made you a dinosaur out of cotton balls and toothpicks!”  “Oh Billy, that’s so precious.”  And it is.  But at some point, say after Billy has gotten his PhD in computer science, you need to finally expose him to the idea that the world is a competitive place and he needs to be a harsher critic of his own stupid ideas. Read the rest of this entry »

Web 2.0 Picoreview

by peterb

“All the power of WordStar with all the hardware requirements of Windows 95″. And all the flexibility of VAX/VMS.

The Computer Science D&D Spellbook

by peterb

We can’t help it. We’re doubly cursed: we program computers and we spent all our time in Junior High School playing D&D while you were having sloppy makeouts at the good parties we weren’t invited to.

So let’s do this thing.
Read the rest of this entry »

Selected Problems in Computability

by peterb

Sometimes, we do hardcore research in computer science. It’s in our blood. Here are some of the papers we have submitted to various academic journals at the moment.
Read the rest of this entry »

Small Details

by psu

Today I am happy because I can again use a utility that I had been deprived of for the last few months. Liteswitch X has always been a fixture on my Macs. Originally, it provided features in a keyboard app switcher that the Dock did not. Later, I kept using it just because I was used to it. But I stopped using it when I got an Intel Mac because there was no Universal version of the Preferences panel, so I had to wean myself off of the tool.
Read the rest of this entry »

The Soul of A New Machine

by psu

I read The Soul of a New Machine for the first time when I was in high school. It is the best book I have ever read about computers. It is one reason I ended up working in software engineering. If you have not read this book, you should go and buy it now, and read it, and then come back here. Ready? OK.

Read the rest of this entry »

Change is Bad

by psu

Earlier this week, I tried the Beta of the new tool from Adobe called Lightroom. The lesson I learned was: never try new tools.
Read the rest of this entry »

The PC is Dead, Long Live the PC

by psu

Pete, as usual, has generated a lot of comment traffic with his recent rantings about whether or not it is the fault of the developer when a game on a PC is a crashy piece of crap. For the most part, the battle lines are drawn along the question of whether the PC as a platform is just too complicated and intractable to make an enjoyable and reliable vehicle for interactive entertainment.
Read the rest of this entry »

How To Upgrade Your Computer

by peterb

There seems to be a lot of confusion among people who should know better about how to upgrade one’s computer. I am here to help. I’m pleased to present The Tea Leaves Guide to upgrading, which can help even the most ten-thumbed person improve their computing environment for the most reasonable cost, in just four easy steps.

Step 1: Open your old computer (you will probably need a Phillips’ head screwdriver to do this), and remove any add-on cards, disk drives, RAM, and (if removable) CPUs that are currently in it.
Step 2: Take all that stuff and throw it away.
Step 3: Place the old computer on your back porch. Come springtime, the hollowed-out chassis will make a fine decorative planter.
Step 4: Go to Apple’s or Dell’s web site, depending on your tastes, and buy a new computer. Make sure, when selecting a machine, that you choose one that doesn’t have “expansion slots,” or any other features that you will never, ever, in a million years, use.

Read the rest of this entry »

The Mis-Design of Everyday Things

by psu

We in the computer business tend to have a complex about ease of use. “Computers are so powerful and yet so arcane” is a constant refrain in our lives. Well, I am here to say that I don’t think that we should feel too bad. I have been investigating the world of HDTV because we are thinking about buying a big TV for Christmas. Compared to what you have to go through to get a decently usable TV, setting up a home wireless network is like falling off a log.
Read the rest of this entry »

Required Complexity

by psu

I was generating a new movie for a friend of mine this weekend, and got reacquainted with Final Cut Pro. When I started using FInal Cut, I always found the clip logging interface to be baffling. It seemed to me that Final Cut should emulate iMovie, and find the shots itself rather than make me do it. Having now made a few short movies with the software, I see that there is an inner logic to the logging system, and it turns out to be a net win in the long run.

Read the rest of this entry »

My Robot Overlords

by psu

Back in the day, I served two useful purposes in the car: pick the next tape to play, and keep track of the navigational information on the road map. The iPod has long taken over the first of these duties, leaving me with nothing to do but dictate the next turn. Except for the occasional tendency to reverse right from left, I believe that i have always done a credible job. We’ve found obscure restaurants and other locations in places ranging from North Central PA to North Carolina to San Francisco. But now my last job in the car has been taken from me.

Read the rest of this entry »

Schadenfreude

by peterb

Allume, the publisher of facehuggerware product Stuffit has been acquired, for $11 million in cash and $2 million in stock. To put those numbers into context, realize that it is less than half of what Microsoft books in earnings, on average, every day.

Maybe there is some justice in the world, after all.

Stating the Obvious

by peterb

Those who can, write code.

Those who can’t, wank about Open Source Licenses.

A Short Commentary on Our Times

by psu

We drove from Pittsburgh to Burlington for a friend’s wedding over the 4th. We drove through 3 states and stayed in 3 hotels and one cousin’s house in 4 different towns. The towns ranged from medium sized college towns to a small Albany suburb, to a rural population center in the middle of nowhere in northern New York. This last place was small enough to not even have a Starbuck’s.

Every single place we stayed had high speed network. Two of them wireless. Two out of three hotels gave us the service free (ok, the cousin’s house doesn’t really count). Surely this is a commentary on our times. A geek toy like the interweb, which only a few freaks had heard of a little more than ten years ago, is now more ubiquitous than a triple venti two pump decaf vanilla no whip mocha with sprinkles.

Take This .sit and Stuff It

by peterb

Dear Mac Developers:

I know very well that software developers are creatures of habit. Given a tool that does roughly 80% of the job we need to do (such as Emacs, or the X Windowing System), we are inclined to grab on to it with both hands and refuse to let go until we are forced to.

Today I would like to try to force Mac developers to stop using Stuffit. Stuffit is evil, and must be destroyed.

Read the rest of this entry »

Welcome, Ineffable Tiger Wu

by peterb

Now that Mac OS X 10.4 (”Tiger”) has been unleashed, it is only right and proper that I make available The Inscrutable Denominator of Heaven’s Dashboard, ready for your Dashboard-using pleasure. It requires, of course, Mac OS X 10.4. Download, unzip, and double-click to install and run.

On the one hand, it’s still the same garbage code, and the random number generator doesn’t quite work right. On the other hand, I ported it in to Dashboard in just about 10 minutes, and most of that was spent dorking around with the background image. I didn’t edit the code at all — it was a straight cut and paste job.

That, I think, convinces me of Dashboard’s worth. It is so incredibly trivial to get something useful(*) in to Dashboard, that I have no doubt that there are going to more cool widgets than we can possibly imagine at this point.

(*) Yes, I understand that this particular widget is, in fact, not at all useful.

Emacs Key Bindings Make You Retarded

by psu

The other day, I stopped using Firefox for gmail. Part of the reason is that Firefox under MacOS feels slightly wrong and renders funny because it is still using older Carbon interfaces. But, the real reason I stopped was because the text widgets don’t have Emacs key bindings the way normal MacOS text widgets do. What I find sad about this is not that Firefox is lacking this feature, but that my nervous system is so crippled that even 20 years down the line, I can’t purge the need for this stupid text editing user interface from the tips of my fingers. My conclusion is that Emacs makes you retarded.
Read the rest of this entry »

Code Reviews

by peterb

You might think I don’t proofread my articles carefully before I post them. Every time I post an article — every single time — about 5 minutes after it goes up, one of my friends will point out a spelling mistake, or a typo, or some sentence where I left out a verb. But I do proofread. And I always miss some of the errors. I think the problem, in large part, is that I’ve written and read the article so many times in my mind that it’s difficult to read the article on the screen before me. I’ll read the sentence with the missing verb, and my brain will helpfully supply it. “No problem!” my brain says. “That looks great!”

This is why I like having all the code I write go through code review.
Read the rest of this entry »

No Free Silver Bullet Lunch

by psu

So Pete took me to lunch today with some fellow software engineering buddies. While munching our rather excellent Indian buffet food, one of the engineers related an incident that happened to him on vacation. He was walking back to his hotel room, and he overhears one side of a phone conversation that is going like this:

We can either fix more bugs to make the system more stable or we can develop new features but not both.

Anyone who has done any level of commercial software development is familiar with this conversation. What I do is very different from what Pete’s buddies do, but the conversation was completely familiar to me. It doesn’t matter if the project is the next PS2 game or the control system for the next Airbus airliner. If you sit in a room with the developers and the managers, they are probably having this conversation. My theory about the origin of this conversation is overly simplistic not filled with deep insight. But, here it is anyway.
Read the rest of this entry »

Axiom of Choice

by psu

I have been fortunate enough to get my hands on an iPod Shuffle. I was mostly seduced by the look of the item, but wasn’t sure how the screenless shuffle-only interface would really work out in practice. Surprisingly, the Shuffle is by far my favorite iPod device for day to day use. In particular, its shuffle play is much more enjoyable in the car than shuffling with the normal iPod. This seems odd, since on the face of it there should be no difference between playing songs at random on a Shuffle and doing the same a normal iPod. However, it turns out that they are different in subtle and important ways, and therein lies the reason I find the Shuffle to be more enjoyable.
Read the rest of this entry »

Baroque Works

by peterb

In the beginning was Ti Kan, who wrote a little CD player app for X windows called xmcd. Like some other players at the time, it had support for entering disc and track names, and remembering them later. Ti went a step further, though; he provided support in the application to submit track names to a central server, the CD Database, or CDDB. Users could download and install the entire CDDB on their hard drive, which would then allow them to magically get track and disc names for discs that anyone else had entered data for. Later, Ti added support to look up track names on the internet. I was an early xmcd user (in fact, I even distributed a binary version for BSD/OS, a fact that I’d completely forgotten until I googled for it.)

Eventually, Ti looked for a way to monetize the CDDB. I don’t blame him. The database eventually ended up in the hands of Gracenote, where it remains to this day. Gracenote licenses an SDK and access to their CDDB to companies that want to include it in their product.

Many computer MP3 players that have support for ripping CDs also support looking up CD track names in the CD Database.

There are two interesting things about the CDDB (and really I mean “the CDDBs”, since there are databases other than Gracenote’s): first, the data in them is provided by the users, rather than by the music publishers, and second, the database is full of errors.
Read the rest of this entry »

Mediocrity Begins at Home

by peterb

There’s no shame in bugs.

Really. In consumer-grade software, there are bugs. I wish it wasn’t so, but it is so. I can’t think of a product I’ve used in the past 20 years that hasn’t had a bug or two.
Read the rest of this entry »

X11, Part Deux: Why It Blows

by psu

In a recent flame war about X11, a comment suggested that using Emacs under X11 and then saying that X11 was “primitive” was like judging modern Windows by using Windows 3.1.
Read the rest of this entry »

It’s 2005. X11 Still Sucks

by peterb

Copy and paste in X? That’s easy! Just highlight the text you want to copy, and choose “copy” from the menu, then paste it into whatever application you want to paste it into, assuming that application supports clipboard copy and paste. If it doesn’t, then just highlight the text you want to copy, and then click the middle mouse button, thus copying the primary selection. It’s also an important part of the X Window Experience to make sure that you always forget which buffer it is that you’re trying to paste, and so accidentally paste the “wrong” one, thus making any copy and paste operation take twice as long. Like salmonella in chicken dishes, this adds exotic glamour to your boring workday.

X Windows.

Read the rest of this entry »

iPod Shuffle Summary

by peterb

…courtesy of Dave Rochberg:

THOSE LIARS. They say “240 songs. A million different ways.”
But they clearly mean “240 songs, 40678853636470581204935759214868853
10172051259182827146069755969081486918925585104009100729728
52292382089024587009865914715605190573256314738159909845924475348
246302768811570537170462828632662123845654330726760861254
3777966913875945176039596821742361795433073703416459649696398651683
817722252221059768080852489940995605579171999666916004042
3896799800598079985264195119506681577622056215044851618236292196529
36960000000000000000000000000000000000000000000000000000000000
different ways.” Although it could be that their PRNG is entropy limited.

More Software Engineering Terms

by peterb

From time to time, I share certain terms that I find useful in my space-age-au-go-go career as a software developer. This is one of those times.
Read the rest of this entry »

Chasing the Dragon

by peterb

It was just last week that my friend told me he was going to build his own computer. I asked him to understand in advance that in the weeks to come, after he put it together and it either didn’t work or suffered from a string of ongoing stability issues, I would mock him cruelly. But I would be doing so out of love.

Last night he IM’d me: “OK, you can start laughing now.”
Read the rest of this entry »

Bonaguil source release

by peterb

Work has been super-busy, so I haven’t had any time to hack on Bonaguil. Therefore, I’m releasing the source code for people to look at and/or play with. All right are reserved at this point; consider this free (as in beer) for personal use, but not in the public domain or GPLable. If you produce a derivative work based on Bonaguil, please give credit accordingly and include the URL of this weblog. Bonaguil may not be included on any archive of games or software being sold for profit; if you want to do this, you’ll need to contact me and arrange a separate licensing agreement.

So if you care, you can download a jar file that includes all resources, including source code. The AI interface is fairly well-isolated, so it should be trivial to implement AIs that are much smarter than the two demo AIs I provided here. If you end up implementing an AI and send it to me, I’ll include it in the next release, if you like.

10 Things I Hate About Tcl

by peterb

I really, really, really don’t like Tcl. Here are some of the reasons why.
Read the rest of this entry »

Looking in to the Eyes of God

by peterb

…that’s how I feel tonight, because my fabulous employers gave me, as a gift, a 19″ flatscreen monitor. It’s a ViewSonic VX910.

It’s pretty. Oh yes, it is pretty.

The big problem, though, is that now I am having the feeling that I need to upgrade my computer so that I have a game playing box worthy of the monitor.

The other problem is that I’m running Win2k, so I don’t get any ClearType antialiasing love. How painful is upgrading from Win2k to Windows XP? Will it throw me into a dimension of transinfinite pain? Assume for the sake of argument that I’m not willing to do a clean install, but must do an upgrade install. Because I’m not.

Excuse me, I need to go stare at my screensaver for a while now.

Bug Triage

by peterb

The number of people that know how to effectively debug and triage problems in a complex software product is upsettingly small.

I don’t know why this is. Debugging has always seemed to me a very simple, straightforward task. Start at the top: figure out if the problem is reliably reproducible. If it is, start eliminating codepaths. It’s basically the Holmes Principle applied — when you’ve eliminated every other explanation as impossible, whatever is left, however improbable, is the explanation. Of course there are some bugs that are harder than others — usually, the worst are the ones where you can’t actually describe the conditions under which it happens. But even if we forget about those, I still see people who should know better whose preferred approach seems to be simply flailing at the problem until it goes away.
Read the rest of this entry »

Never Send a Human To Do a Robot’s Job

by peterb

In my article Software Development Considered Harmful, I talked about a number of mistakes that are often made by developers who should know better. I’d like to expand on one of them here.

Never send a human to do a robot’s job.

A lot of the code we have to write to make programs run on modern platforms is code that can be more effectively generated by programs than by a human. This is particularly true of things like XML files or other structured data. Let me put it simply: if you’re editing a file that contains structured data by hand, you’re making a mistake. You’re editing the Info.plist in a Macintosh application bundle by hand using vi? You’re making a mistake. Editing your DNS/BIND zone info files by hand? You’re making a mistake. Creating RSS feeds by hand? You’re making a mistake.

I’m overstating the case a little, of course, but not by much.
Read the rest of this entry »

Pittsburgh Apple Store Update

by peterb

According to Apple’s web site the Pittsburgh (Shadyside) store should go live the weekend of September 4th.

Quoth people who have walked by and looked in the window: “Hmm. the store didn’t look like it was 2 weeks away from completion when I went by yesterday. Must look more carefully.”

I’ll try to post some photos tomorrow evening; check this space then.

Update: The photos are here.

Eclipse

by peterb

Last night I downloaded the Eclipse Java IDE to try to make a little progress on Bonaguil.

Wow.

Suffice it to say that I was bitter that I had to go in to work today and work in an environment without it. It is the best IDE I’ve ever used, and I’ve tried quite a few. It’s like music, love, and cookies all rolled up into one convenient package and available for free download. And I haven’t even tried the CVS integration yet.
Read the rest of this entry »

Software Development Considered Harmful

by peterb

Those of us who develop software are familiar with all sorts of bonehead mistakes. I use “bonehead” in this context as a term of endearment — we all do stupid things like forget to initialize some value or forget to close a brace now and then. And there are plenty of discussions, in books and elsewhere, about the sorts of mistakes that new programmers make.

That’s not what I’m going to talk about today.

What I want to talk about today are the most common mistakes I see experienced software developers make on a somewhat regular basis. Not every developer makes all these mistakes, of course, but if you work for a big enough company you’ll see all of these at different times. They bug me. I’ve committed some of the sins in here myself, and I bug myself when I realize that. Note that I’m deliberately keeping this list fairly low level, and not addressing larger questions of design. The overall problems I’m aiming for are the sorts of things when you’re reading someone else’s code (or your own) and have that “What? Didn’t you go to school and have 10 years of experience that should have told you not to do something lame like this?” moment.

I’ve heard things like this referred to as “antipatterns,” but I think that’s an unnecessarily highfalutin’ name for what can more accurately and concisely be described as: screwups. So here we go.
Read the rest of this entry »

The Problem with Data that is Meta

by psu

Talk to geeks the world over, and they will wax lyrical about all the ways in which meta-data will save the world.

It will make your disk searchable.

It will provide a semantic framework for WWW content.

It will allow tools from different vendors to manage your workflow and asset files.

It can form the basis for archiving your digital life.

Sadly, it’s all a lie.
Read the rest of this entry »

Gmail Invites: Going for a Song

by peterb

It makes me somewhat disgusted that people are still trying to profit off of gmail invites, “selling” them on craigslist and elsewhere for $5, $10, etc. I mean, how desperate do you have to be? What happened? Did the blood bank stop accepting your plasma? Did your attempt to corner the suburban lemonade stand market fail when some sixth graders moved in on your turf? Did no one join your Ponzi scheme?
Read the rest of this entry »

Famous Last Words

by peterb

If you’re a software developer for long enough, you’ll hear certain things throughout your career that almost never, ever, ever turn out to be true. Here’s a partial list of some of the more popular lies and simply wrong things you’ll hear.
Read the rest of this entry »

Software Engineering Terms: A Lexicon

by peterb

Software engineering is a scientific discipline, as well as an art. Like many such fields, it has developed specific terminology and jargon, whose meaning may be subtly different or even completely opposite to what one would guess. In the interests of spreading enlightenment among budding software engineers, we have prepared this brief lexicon that covers some of the more important terms you may encounter in your career in software development:
Read the rest of this entry »

Software Engineers: A lexicon

by psu

I’ve been working at software companies for the last 15 or so years of my life. In this time, I’ve worked with a lot of people who call themselves software engineers. The following is a collection of shallow, unfair, insulting and overly general classifications of the types of people you will run into if you get into this business. It’s up to the reader to figure out which category I fall into.
Read the rest of this entry »

Why Google Mail is Better than Mail.app

by Hugo Malcovich

Mail.app is a desktop mail application for NeXT/Macos with a long development history. It does POP, IMAP, and so on. Has a rich UI. But it blows and Google mail does not.
Read the rest of this entry »

Stop me

by peterb

Stop me if you think that you’ve heard this one before: Once again the consumer bit of my brain has gotten the sickness, and I have the urge to upgrade my “gaming” PC. I am fighting it tooth and nail.

Those really are derision quotes around “gaming,” since most of the games I actually want to run on my PC — like Warlords II — don’t actually run on modern versions of Windows. And because I never use my gaming PC because it is loud, and takes 5 minutes to boot up, and is in the wrong room, and is big and ugly, and because I can’t play on the couch, like I can with the Xbox.
Read the rest of this entry »

Gmail

by peterb

On the confusingly named Google Blog — the one not run by Google — Aaron Schwartz opines that gmail’s security isn’t strong enough:

…[Gmail] should use public-key encryption. (This part will be a
bit technical.) When you create a Gmail account, your computer creates
a keypair. The public key is sent to Google. The private key is
encrypted with a password you choose, and the encrypted version is sent
to Google. (Important: Google never gets your password.) When an email
is received for your account, the server encrypts it with your public
key before saving it. When you log into read it, you download your
encrypted key, decrypt it with your password, and then your computer
decrypts your mail with the resulting key as it’s downloaded. (Already,
all your mail goes through Gmail’s JavaScript client to get processed
and turned into HTML, so this won’t be too hard to add on the
client-side.) In this way, your mail is never stored in a way Google
has access to.

This is a really bad idea. SSL — which gmail provides — is a no-brainer, but this is a bad idea.

Read the rest of this entry »

C64 vs. Atari 800

by peterb

The thing about boys and their toys is we’ve just got to argue about whose is bigger.
Read the rest of this entry »

Gabba Gabba One of Us

by peterb

I finally stopped resisting and bought an iPod, the 15 gigabyte model.

Although I was probably doomed to buy the “regular” iPod rather than the Mini, simply because Minis are not readily available enough to satisfy my desire for immediate consumer gratification, I did actually go use a Mini before making the choice.
Read the rest of this entry »

Pittsburgh Gets Apple Store

by peterb

In the “taking away things I like to whine about” department, Apple Computer will apparently be opening a retail store in Pittsburgh. Now I have no excuse for not buying that iPod.
Read the rest of this entry »

Brief Intro to Pointers

by peterb

I’ve been toying with the idea of writing an article about pointers and why we use them. When I was first learning about them, I understood the hows just fine, but couldn’t ever find a lucid explanation of why one should use pointer. With an air of superiority, however, psu instructed me that the cool kids of today with their crazy dances don’t condescend to worry about anything as low level as mere pointers, and I’d merely be making myself look old and unfashionable.

But I haven’t worried about looking unfashionable yet, so why start now?
Read the rest of this entry »

What Programming Language?

by peterb

I hear this question a lot, typically from kids who have just discovered that there’s more to a computer than a web browser, and who are curious about where to go for here. The people who ask this question typically don’t have any specific project in mind; if they did, it would be a lot easier to answer them. Instead, they’re really saying “I don’t know much about programming, but I think it might be kind of fun. Where’s the best place to start?”

An experienced programmer on a dark day might answer the question “What programming language should I learn?” with “None. Learn to play a musical instrument instead.” Today is not a dark day, however, and I’ll do my best to answer it.
Read the rest of this entry »

Perforce SCM on OS X

by peterb

At the behest of one of the commentators here, I decided to try to download and install Perforce on my OS X laptop and see how the experience compares to installing it on FreeBSD or Windows. It worked fine for me, but I can understand how one would find the experience confusing, particularly if you’re not familiar with the unix side of the world. Here’s some notes on the experience.
Read the rest of this entry »