|
|
By now everyone's seen the first two Microsoft ads of their $300 MILLION DOLLAR campaign with Jerry Seinfeld and Bill Gates (except, didn't he retire?) If you haven't, count yourself lucky and move on.
The first ad, the shoe store, was bad. Pointless. And ends with the existential horror of Bill Gates wiggling his ass at the camera. Really, DO NOT WANT.
The second MS commercial is… it's even more Seinfeld "nothing"-like. Even more condescending and awful. Bill keeps secret games from the world, Jerry clips his toenails on your bed, and both are too snobby for your good home cooking. These are not positive qualities. I would not want a computer represented by these people in my home.
Apple's "Get A Mac" ads are vastly more charitable to the PC played by John Hodgman. PC is portrayed as bumbling, incompetent, confused, and very bad at creative work. But while I wouldn't want PC in my home making my home movies, he might be fine at work (in reality, PCs are just as awful at work as at home). The Mac is useful, gets stuff done, and puts a nice creative touch on his work. That's a computer you wouldn't mind having around. How is it that Apple is nicer to the PCs than Microsoft's own ads?
Oh, and there's a blatant, unbelievably stupid lie in the 2nd MS ad. PCs take 2-5 minutes to power up and power down. Bill's "robot" is WAY too fast. It should be more like "power down. POWER DOWN, BILL! Shit, ctrl-alt-del. Cancel program. CANCEL! Oh, fuck this, I'll just pull the plug out." Reboot. Wait 5 minutes before you can do anything again.
All day Sep 11 2001, I was sitting in my tiny apartment, writing code (either Umbra, or the start of Hephaestus). I hadn't hit USENET or the web at all. Hadn't really eaten anything.
Late that afternoon I staggered outside, looking for food. And the streets were empty. All the stores and restaurants were closed. No idea why. Total zombie apocalypse scene.
Finally I found the Chinese restaurant I usually went to very late at night, still open, and went in. They were in there watching the news on a big-screen TV. I got some food.
All of us, mostly the staff and a couple other customers, sat there talking about it and watching the TV, all of us sort of dazed and confused and angry. Who would ever do that? Why? At the time, it was inconceivable that anyone would want to attack us; we were, with very rare exceptions, The Good Guys. Finally it dawned on us, and soon to the TV reporters, that the same people who'd tried to blow up the World Trade Center a decade before might've done it.
And we waited for something, any sign of intelligence or leadership from Bush. As we now know, there was none. He kept reading "The Pet Goat" for minutes while planes crashed into buildings. He eventually got Afghanistan right as one source of the attackers, but then committed fraud to make Iraq a target for his own personal reasons.
You never know what a big historical event means or will lead to until it's over, until you have at least a few years of perspective on it. What it showed was the malicious, venal incompetence of the Republican party. What it showed was that there's evil in America, too.
Today, the malicious, venal, incompetent governor of Alaska threatened war with Russia if they invade another country (never mind that in reality, Georgia began the war, and was committing genocide in Ossetia, and Russia was defending them). War. With Russia. The word "psychotic" doesn't begin to describe this. Why is this lunatic anywhere near the election?
We don't need external enemies to threaten us this 9/11, we have our own home-grown evil psychos.
Reading about JavaFX just makes me sad. It's very nice, it's what Sun should've done in 1998 instead of Swing.
But today? It's pissing in the wind. Flash owns the "installed everywhere, brute-force rich client", and HTML 5 owns the future; those of us using WebKit in Safari, iPhone's Mobile Safari, Chrome, or several other browsers are already living in this future.
There are three kinds of applications: Local-only desktop apps, Internet desktop apps, and Web applets.
Local desktop apps (word processors, high-power games, etc.) indisputably work best as native applications; you need to be able to use them even if you can't reach the Internet, you need local file access, you need fast drawing speed, and you need native OS integration (drag-and-drop files, for instance). While people have tried to shoehorn these into other categories (Google Apps), it's never worked as a general replacement, and probably never will.
An Internet desktop app will be better and more pleasant to use if built with platform-native technologies. It might be kind of like a web browser in parts, like the iTunes Store, but you would have a very hard time building iTunes in Flash, HTML, etc.
Web applets don't require speed or flashy graphics, just some interactivity and a web server. These are easier to build (and especially, easier to find semi-competent developers for) and get people to use if they use Flash or HTML 5.
So there's just no place for JavaFX and Silverfish and Adobe AIR. They either compete with an installed base of Flash and Flash developers, or the future base of HTML 5 and web developers, or the existing base of native app developers, and in every case, they lose that fight.
DungeonDice is finally released!
New software gallery blog post: 2008-09-07: DungeonDice released, at long last
I've started a new Mark Damon Hughes Software Gallery Blog over on my software site, and I plan to put all professional content over there.
This blog will continue to host my unprofessional non-professional content, and I'll post links here to there whenever I post there, like:
New Post: 2008-08-23: Entering the Nexus Worlds
Macgasm asks, "A stylus, really?". Yes, really.
I have a Pogo iPhone Stylus. I don't use it all the time, but it it sometimes beats greasy fingers.
You need a stylus if:
- Your fingers are oily, or covered in dirt, or are artificial prostheses.
- In cold weather, people wear gloves. The iPhone touchscreen doesn't respond to normal gloves.
- Women with long fingernails can't use the iPhone at all.
- Men who don't have dainty little fingers that come to a sharpened point find it hard to use.
Men with dainty and non-oily hands who live in tropical climates might not need a stylus. For the rest of us, it's a useful accessory.
The comic relief version of this was Xiaxue's Guide to Life: EP16 - The iPhone, a crazy Singaporean blogger who can't use it at all.
It may be typical of the pro-Obama Dungeons & Dragons crowd to disparage a fellow countryman's memory of war from the comfort of mom's basement, but most Americans have the humility and gratitude to respect and learn from the memories of men who suffered on behalf of others. John McCain has often said he witnessed a thousand acts of bravery while he was imprisoned, and though not every one has been submitted into the public record, they are remembered by the men who were there (one such only recently reported by Karl Rove though it escaped mention in any of Senator McCain's books). But as Swindle said, this is a "desperate group of people trying to make something out of nothing."
- Michael Goldfarb on johnmccain.com , 2008Aug18
"pro-Obama Dungeons & Dragons crowd"? I mean, that's true enough, but how did they know? Are gamers a giant lobbying power and nobody told me?
See also Dork Tower
See also the t-shirt
The newest version of my iPhone game Castles, version 1.2, is now available in the iTunes App Store.
Castles 1.2 adds:
- Three difficulty levels: Easy, Challenge (original game), and Nightmare (OMG, they KEEP COMING!).
- Occupied rows which earn gold are highlighted, so you can plan your advance more easily.
- Arrows from archers are now visible, making it easier to tell what they're shooting at.
This addresses all of the serious responses I've received: That the game is too hard (though one complained the original was too easy! If so, Nightmare will leave you broken and twitching!), or that it's impossible to tell what archers are doing, or how you're earning gold.
What's ahead? There will not be many new units, since the current game is very carefully balanced, but I may add engineers with the ability to place traps and repair walls. There will almost certainly not be individual unit stats or hit points; that makes the management of forces massively harder and slower ("now, which one of these 30 identical pikemen was I levelling up?"). I may do a graphical upgrade at some point, with an animation for all barbarians and the archers, and maybe very short animations for moving/attacking castle units. Animations have to be carefully considered to avoid turning a 15-minute game into a 30-minute game.
Off in the far future, I might revisit it as a two-player game. Finding and matching a nearby player, and then keeping them there for 15 minutes, can be challenging. I certainly don't want to run a central server for the games, so... there's issues there.
The price won't be changing for a while; I think $4.99 is entirely reasonable for a totally new game (not a port from some other platform), the first and one of the only strategy wargames on the iPhone, and it's on par with what Apple charges for iPod classic games, and the game would be $9.99 or $14.99 on the desktop, or $40 as a DS cartridge.
That said, I'd like to do a promotion, but Matt Drake changed the price of Wine Pad, and had serious problems with Apple's lack of synchronization between stores.
Unfortunately, there's no way to remove old reviews. So fair or not, current or not, and whether or not they're from paying customers who know what they're talking about, those reviews are stuck on my app. If you like Castles, please go leave a nice review for me.
In my Macs Make Programmers article, I listed a handful of introductory books for Python. Any one of those is a great way to get started. But what can you learn with beyond the starting level?
I learned the hard way: by writing challenging Python programs, in particular Umbra, but of course by then I was a decades-experienced programmer, and I still made a lot of mistakes based on false assumptions and invalid mental models of Python. If I'd learned more first, I might have done better.
Looking around at the field, I can't find too many advanced Python books.
- Programming Python ***
- Spends a lot of time revisiting the introduction to the language, and it stays at the junior tutorial level even when addressing more complex subjects. I didn't find it to provide enough detail.
- Python Cookbook ****½
- This can be extremely valuable: real-world, advanced Python examples to learn from. This goes the other way from PP; it doesn't have enough chatty tutorial material, too often it just presents the code and you either figure out what's going on or you don't. Overall, though, if you want to be a serious Python programmer, you should get and study this book.
- Foundations of Python Network Programming ****
- An excellent, detailed, in-depth study of one really specific area of Python coding: network protocols. Since everything uses the 'Net somehow these days, you really want this book, but it is relentlessly tightly focused, and the Python Cookbook and Programming Python cover some of the same material.
- Data Structures and Algorithms with Object-Oriented Design Patterns in Python ***½
- Bruno R. Priess has a series of books on DSaAwOODP in (C++|Java|C#|Python|Ruby), intended for college students. While it's very dry and mathematical, it's a solid computer science book. As a Python book, it suffers from attempting to shoehorn generic CompSci solutions into the language, when idiomatic Pythonic solutions would be better.
If you want to do graphics, there are books on Tkinter, wxPython, PyQt, and so on, but in my opinion any of those are a mistake; all of the "cross-platform" GUI libraries just look bad and work poorly on every platform. Instead, writing portable model code and then writing platform-specific view/controller code (in Python/Cocoa, for instance) is far more effective.
I've got both praise and feedback to Macs Make Programmers. "Feedback" being a precise technical term here: echoing noise that squeals and whines, but doesn't mean anything, and should be edited out.
The reason I don't have comments on my blog is that 90% of all people who comment on essays on the Internet are retarded, insane, trolling, or tragically ignorant. Nowhere is this more evident than on sites like reddit, digg, and slashdot, where intelligent conversation doesn't just go to die, it is stabbed and sodomized to death by a self-reinforcing mob; they are living proof of John Gabriel's Greater Internet Fuckwad Theory: "Normal Person + Anonymity + Audience = Total Fuckwad". Or "The IQ of a mob is the IQ of its most stupid member divided by the number of mobsters."
To those I can only say, "shame on you". To those few who were rational, or at least said something meriting a response, however:
First is a misunderstanding of the current OS market. Linux basically doesn't exist on the desktop. The very few people who do have a Linux desktop are probably programmers, or relatives of programmers. Linux has decent programming tools (inferior to Mac OS X, but good enough to create new programmers), but it doesn't matter, because non-programmers will almost never have Linux.
According to Market Share by Net Applications, as of July 2008, Mac had 7.76% browser share, Linux had 0.82%. 2 years ago, the Mac market share was only 4.34%, and a couple years before that, it was 1-2%. This is measured by browser share, which is a pretty accurate count of people actually using it on the desktop. The Mac number is going to go up significantly; the Linux number MIGHT reach 1-2% someday, but not until makes a desktop system and suite of apps that doesn't suck. I don't think Windows is going to die off, sadly, but we are seeing a return to the market of the '80s, where there were multiple competing computer systems; some software was ported, some was platform-specific. While I'm only writing iPhone apps now, cross-platform languages like Python and Java are going to make a lot more sense for most people.
Second is the nature of Xcode. Xcode is for intermediate and advanced programmers. It's really not a great beginner IDE, though the 'xed' editor might be useful. I've always had to install it from DVD, or as developer previews, but it turns out it's actually shown as an option when you use the install DVDs on a new machine. So it's somewhat easier than I thought.
Even so, the five languages I listed as preinstalled -- Python, Perl, Java, Ruby, and AppleScript -- are all high-level languages which are much easier to learn than using Xcode. Those five languages DO NOT require any optional installs, they are always in every copy of Mac OS X.
Third is the notion of using JavaScript as a starting language. This is full of terrible problems:
- JS is inconsistent between browsers.
- JS fails silently, so your entire script just stops running if something goes wrong, and even the Safari and Firebug error consoles are not all that helpful, so debugging is VERY hard.
- JS has no file manipulation or way to save anything. You can use SQL-like queries for a database in Safari, and there's an equivalent but different hack in Firefox, but nothing in IE.
- JS has no cross-browser graphics or drawing tools. The Safari canvas tag works about 50% on Firefox, not at all on IE. There are hacks to simulate it, but no newbie will know how to do that.
- The "normal" way to get persistence is by writing a webapp, probably in PHP or Java, that talks to a SQL database. Not an option for a beginner.
- HTML layout and positioning is an incredibly hard problem, and is all but impossible cross-platform.
No, JS as a starter language is a non-starter.
Fourth, it turns out MS does ship a C# compiler buried deep in the bowels of .NET on Vista. But A) nobody has installed Vista, B) C# is a massively harder language to learn than Python, and C) compiling, packing, and shipping a .NET program is massively harder than writing and mailing a Python script to someone else.
Fifth, I discount programmable shells like bash, because they're hard to do real programming in, or even basic math, and have a lot of very subtle quirks. I could also count awk as a real language, in which case both Mac and Linux have one more, but really if you're thinking about awk, you may as well use Perl instead. Some idiots suggested Windows CMD or BAT files; I wish they were joking, but I know that they weren't.
Sixth, anyone still bitching about Java 6 on Mac is an ignorant fool. Java 5 is the default version on every Mac running Tiger and Leopard. You can build your app to use Java 6, under Leopard, but you're almost certainly better off shipping production apps in Java 5, since they'll run everywhere, and there are VERY FEW new features in Java 6. No novice would ever run Eclipse, but if you do, it runs fine in Java 5, and can run the Java 6 compiler on your code from it. That's what I do every day at work.
Americans are considered crazy anywhere in the world.
They will usually concede a basis for the accusation but point to California as the focus of the infection. Californians stoutly maintain that their bad reputation is derived solely from the acts of the inhabitants of Los Angeles County. Angelenos will, when pressed, admit the charge but explain hastily, "It's Hollywood. It's not our fault--we didn't ask for it; Hollywood just grew."
The people in Hollywood don't care; they glory in it. If you are interested, they will drive you up Laurel Canyon "--where we keep the violent cases." The Canyonites--the brown-legged women, the trunks-clad men constantly busy building and rebuilding their slap-happy unfinished houses--regard with faint contempt the dull creatures who live down in the flats, and treasure in their hearts the secret knowledge that they, and only they, know how to live.
-"And He Built a Crooked House", by Robert A. Heinlein
British Channel 4 is currently showing Richard Dawkins "The Genius of Charles Darwin"
Sadly, it's only broadcast (or iPlayered) in the UK and Ireland. Happily, people have been posting it to YouTube.
The first episode gives the horrific statistic that 40% of the British believe in creationism, and do not acknowledge that evolution is a fact. Far from a non-religious culture, that's on par with the more civilized areas of the U.S. According to the 2001 census, 71% identify as "Christian", and only 15% as non-religious, and yet another survey on the same site shows less than 40% admitting a belief in "God". Something's either very seriously wrong with these surveys, or there's self-deception on a massive scale. Just informally, I suspect that it's fashionable in England to be "non-religious", and people may not attend church, but religious belief is still deeply rooted in a lot of them.
You don't get that "I believe in my Holy Book" kid unless there's religion infecting your country at a low level.
For another great Dawkins presentation, see Waking Up in the Universe
Mac OS X comes with something important that Windows doesn't: development tools.
(continued beneath the break)
A standard install of Mac OS X Leopard has:
(plus various scriptable shells like Bash, and near-programming tools like Automator, and with a little effort you can get PHP up and running on the built-in Apache web server)
On the install DVDs, under "Optional Installs", is Xcode, the primary development tool for Mac OS X. Xcode is a professional IDE (Integrated Development Environment: an editor, compiler, debugger, profiling tools, and project management tools all integrated into one big tool) for Objective-C/Cocoa, C, C++, PyObjC (Python for Cocoa), Java, RubyCocoa, AppleScript. The Xcode you get free is the same one Apple uses, the same one I use. It's as good or better than the $3500 IDEs I used just a few years ago.
Of all those languages, Python, Perl, Java, Ruby, C, and C++ are standard and portable to any platform (Objective-C is specific to the Mac, but it's VERY powerful). You can make a really good living from any of them (Objective-C, Python, Perl, and Ruby are a little harder to find jobs in, but they pay well; Java is easy to find work in and pays very well), but more importantly, learn any of those and you develop the programming skills to learn any other language.
Getting started in Python is almost as easy as BASIC was on the Apple ][ 30 years ago:
- Open /Applications/Utilities/Terminal.app
- Type python
- Type print "Hello, World!"
To go past "Hello, World!", Python has a useful
documentation site,
and great books like
Think Python (free online, and soon in print),
Learning Python,
and Core Python Programming.
Obviously, I'm a big fan of teaching Python to new programmers (and it's fun and useful for experienced developers, too!), but the above applies to all of the Mac languages.
Linux
All Linux distributions ship with Python, Perl, C, and C++. Some have others around, but you can't rely on that, and almost none ship with a usable Java. Linux is certainly programmer-friendly, or at least hostile to non-programmers, but very few kids or programming novices are going to be exposed to Linux; mostly it sits quietly in data centers and serves web pages.
Windows
But MS Windows ships with nothing. No BASIC. No C compiler. You're trapped, stuck playing with Solitaire and MS Paint.
If you poke around the Microsoft site, you can find out about "Visual Basic Express 2008", try downloading it, installing it, and then reading
incomprehensible tutorials full of screenshots and generated code. No non-programmer is going to go through that just to see a "Hello, World!".
Back in the '80s, Microsoft shipped QBASIC with DOS, just like every microcomputer maker did. But in the '90s, they stopped developing the classic BASIC, and went to Visual BASIC. Visual BASIC is a superficial copy of the NeXTstep and Turbo Pascal environments, but they got some things fundamentally wrong: "code-behind" and generated code from wizards made it impossible to build large systems, and kept people from playing with the internals; changing generated code would just ensure that the tools would break or your code would be wiped out. Getting real development tools for Windows is expensive, and they perpetrate the same kind of generated-code sins as Visual BASIC.
Hobby programming, on Windows, died out.
That sounds melodramatic, doesn't it? But for the last 10-15 years, Microsoft hasn't shipped a real language with Windows, and their "introductory language", Visual BASIC, became increasingly useless for newbies, only suited to gluing together Access, Word, and Excel. It became the domain language of corporate "code monkeys", just as COBOL had been 20 years before. With VB.NET, the last pretense of it being "BASIC" were dropped, and it's now just an ugly, incomplete syntax for the much more complex world of .NET.
Even if you learned it, all you can do after Visual BASIC is more Visual BASIC, getting paid half as much as real programmers for the rest of your life. Visual BASIC is madness, and teaches nothing about real programming.
There are other starting languages for Windows (even Python, etc.), but all of them have to be downloaded and installed, and sharing your Python or Java program with another random Windows user is a pain (they have to download and install Python or Java, too). While Turbo Delphi is free, the pro version necessary to even try another language is $900.
To become a professional programmer on Windows is even worse. Microsoft's serious tools aren't free, they cost $300 for the lowest-end version, with no support, $1200 for minimal MSDN support, $2500 for full MSDN support. So in other words, you work for a large corporation which can pay for it; hobby programming for Windows is a waste of a significant amount of money.
The result is that kids raised with Windows today don't generally have programming tools available.
Hobby Programming
So why is hobby programming, especially getting instant access to programming on a computer and teaching kids to program, important? Because that's where new programmers come from.
There's a massive shortage of younger programmers now. Some people blame this on the dot-com bust scaring kids out of computer science. That's obvious nonsense to anyone who knows programmers; once you teach someone to program, it's completely addictive. They'll do it every chance they get, until they die, regardless of consequences. You can't beat programming out of someone who got it in their system as a kid.
If you wait to teach them until college, it's almost always too late; adult brains generally can't form the deep structures necessary to learn real programming, only rote copy-paste code monkeying. Before microcomputers, most programmers were mathematicians, because math is similar enough to leave the brain receptive.
In the '80s, there were many competing microcomputers, almost all of which included BASIC or Pascal or LOGO, or HyperCard on the Mac. Hundreds of millions of kids and teens were exposed to programming. Millions got "infected", and became programmers.
In the '90s, Microsoft murdered everyone except Apple (and Apple only barely survived), just as they were also putting an end to hobby programming on Windows.
It is not a coincidence that we're low on programmers now, 10-15 years later. It has nothing to do with a temporary economic problem. It has to do with Microsoft's incompetence and negligence smothering a generation of young programmers in their cribs, and they're still at it.
The One Laptop Per Child (OLPC) project tried to put Linux and Python in the hands of millions, maybe billions of poor kids, to make a Mouse Army of programmers, but they failed, and now if any OLPCs ship, they will ship with Windows, with no programming tools.
Everyone with a Mac has a really great development environment, full of the best languages and tools available. If you know a smart young person, give them a Mac and show them Python.
Yet again, the enemies of freedom are trying to redefine reality with their NewSpeak.
First, some context:
A couple weeks ago, the "Free" Software Foundation put out another of their communist rants against people making money from the products they produce (or just read it being angrily dismantled by the Angry Drunk). This isn't news of any kind; the FSF shouts out their schizophrenic drivel on a daily basis, and it deserves no attention.
[Update: The "OpenMoko" phone the FSF is pushing can be seen in these OpenMoko Train Wreck videos... I don't think iPhone has anything to fear here.]
John Gruber of Daring Fireball proves the screed to be false in even its least insane point, that you can't write GPL software for the iPhone, by pointing to GPL software for the iPhone.
FSF apologist Aristotle Pagaltzis then claims "John Gruber doesn’t understand freedom"...
Yeah, he does. Everyone understands freedom:
n 1: the condition of being free; the power to act or speak or
think without externally imposed restraints
2: immunity from an obligation or duty [syn: exemption]
What WordPress and Gruber may or may not have misunderstood are the precise legal terms of the GPL, which is an extremely unclear and legally unsound document. But everyone understands the word "freedom"... Except the "Free" Software Foundation. The GPL is, by definition, a violation of real freedom: it imposes restraints on what you can do, such as distribute software to certain app stores. It's discriminatory against all commercial enterprises.
This has to stop. Children, crazy people, and communists like the FSF should not be permitted to redefine the language used by adults who work for a living. Freedom means freedom, it does not mean "stuff Richard Stallman would like".
As I've said before, if you use the GPL, you give crazy people power over what you can do with your own work.
The root problem is that the GPL has been marketed as a free software license, when in fact it is nothing of the sort, it is filled with restrictions and poison pills to make sure you cannot use it in any productive, commercial fashion. The solution is simple: stop using the GPL. If you want to give out source, use the BSD or MIT license. If you only want to give out source to people you like, say so up front and give them an individual license.
Over the next weekend, I should be able to get two more iPhone utilities packaged up and out.
- A programmer's RPN calculator, with base 10 and 16, a full set of binary operations, basic trig operations, history, and memory, and more coming. I was worried Apple would stomp on me with their Calculator's sideways "scientific" mode, but it turns out to not have RPN, and anyway, they don't have the functions I and other programmers need.
- An RPG dice roller.
Then I can get back to work on my big iPhone RPG. Stay tuned!
The iPhone App Store is open now, and my first game for the iPhone is out:
(direct link to the app store)
However, the categorization still leaves a lot to be desired, since only 15 games show up in the App Store tool (but 199 Entertainment items!?), and Castles isn't one of them!
Anyway, I'm still really excited! Come buy Castles! It's an insanely addictive little wargame.
I wanted to sign up for Uli Kusterer's mac-gui-dev mailing list.
I have an old Yahoo!® account, but I plan to get rid of it because it's a giant spam bucket. So I make a new one. Here begins my tale of woe.
I pick my standard trashcan account for the "alternate address", and go immediately to the marketing page and turn OFF all the dozen+ junk mail lists Yahoo!® sign you up for when you create an account.
I join the group, that works fine. Now I try to add a new list-collecting address at one of my sites as another alternate address. And the form just silently fails. Nothing happens.
I submit a problem report, and frankly at this point I don't expect anything to happen, I expect they'll just ignore it and continue fucking up like the bunch of yahoos that they are at Yahoo!®.
So for now, I need to use Yahoo!®'s mail reader. When I get into the web-email client, I don't see my inbox. First, I get assaulted with a bunch of modal dialogs pointing out the features I didn't ask for, didn't want, and have fuck-all to do with my email. Underneath them is a page full of ads and news links and every damn thing except email. There's no way to turn this off and go straight to the inbox.
Then when I manage to fight my way to the inbox, I get assaulted by a giant red blinking "YOU ARE ALREADY A WINNER" circa-1996 banner ad. Who the fuck is stupid enough to click on one of those? Are they just trawling for lonely, confused old pensioners and stealing their money? Yahoo!® helps con artists steal money from your gramma. This is a fact.
Every single step of this process is filled with hate. I'm not going to be favorably inclined to anyone stupid enough to advertise there, I'm going to despise them and buy from their competitor. Almost every part of the site is hideous and bad.
I'm clearly spoiled by Google's nearly perfect Zen design. It's mellow, simple. Plain text, no garish colors, no blinking, no image ads. They focus on the content you want, with some other stuff off to the side you can look at if you want. Even the customized, art-themed iGoogle page is an order of magnitude simpler than the Yahoo home page, and it's entirely optional.
Yahoo!® is no damn good at anything. They betray their customers to the Chinese dictatorship to be imprisoned and tortured, they spam and infect PCs with viruses, and they can't even get something as simple as webmail right. Yahoo!®, please die.
The Firefox 3 release is out, and... it's awful. I suppose Linux and Windows users don't notice this, they probably think it's great, because they have no taste. To a Mac user, it's repulsive and dysfunctional.
- I will give them this: it's a proper DMG without an installer, just drag the Firefox.app into your Applications folder, or wherever you want it. This concludes the positive items of this "review".
- Even launching FF3 sucks: FF icon appears and bounces, then vanishes from the Dock, then a new FF icon appears and bounces, and after a second bounce it comes up. Ah. Upon further experimentation, it seems that if you switch between FF versions, it does this. Since I'm a web developer by day, I'm going to be going through this a lot. HATE.
- The obvious first thing about the window is the
"Evil Eye" back/forward buttons, which are just creepy. Make it stop leering at me! HATE.
- Unlike a real Mac app, right-clicking on these buttons doesn't give you the customize toolar menu. It just does nothing, if you don't have a history. Clicking on other buttons does work. HATE. When you find the customize panel, you can use small icons, and the buttons look less insane.
- Dragging the gray gradient "metal" parts of the interface on any modern Mac app will drag the entire window. This works in all of Apple's apps, and most 3rd-party Mac apps. It's a free behavior in metal apps created with Xcode. However, this isn't a real Mac app, it's an empty window painted entirely by Firefox. So dragging the window around doesn't work when you expect it to. It has a smoothed single menu bar/toolbar look, but only the Apple-controlled menu bar actually lets you drag. HATE.
- Right-clicking on text to look something up in Dictionary or Spotlight doesn't work right. None of my Services menu options work; in particular, I use BBEdit's "New Window with Selection" and Mail's "Send Selection" items several times an hour. These features don't work, because Mozilla aren't using the real Mac text components, and didn't bother to finish the OS integration. HATE.
- In Safari, Cmd-1 through Cmd-9 activate the first 9 toolbar bookmarks, presumably the ones you use the most. I use that constantly (I have them labelled 1 gmail, 2 Twitter, 3 GNews, etc.)... There's no equivalent in Firefox. HATE.
- The form controls are grossly broken and wrong on the Mac. They look like crap, and don't behave like real Mac controls. HATE.
- I don't even want to get too far into performance. On a Flash-heavy, JS-heavy site, FF is currently using 97% CPU, Safari 37%. Both around 120MB RAM. Haven't done any long-term performance/memory testing, but I would expect Safari to continue being massively faster while using less CPU power. Speed isn't just in a number-cruncher's interest, it's a key part of making an app responsive. Every new release of Apple software is faster than the previous, while every new release of Mozilla software is slower. HATE.
- [update 2008-06-20] Dragging a bookmark out of the bookmark bar doesn't destroy it in a puff of smoke, like dragging things out of the Dock, or Safari's bookmark bar, or any toolbar in Mac OS X. HATE.
The whole thing is typical of everything Mozilla does. Left to themselves, they make ugly, unusable trash. If the users complain enough (like about not matching the Leopard light bg/dark fg theme), they can copy how something looks, but they're utterly incompetent at copying how it works, and the only user testing they do is with autistic Linux nerds. We already knew this, of course. Look at Bugzilla, and you'll quickly discover that user experience is job 65535.
Sadly, I have to test my work on Firefox before release, though I use Safari for most of my work. I would never survive using Firefox as my real browser now.
I wasn't this negative about previous versions. I used to LIKE Firefox. It was probably just as bad as the current version, but that was before Safari showed us how a browser could not suck.
Yesterday morning, I ordered everything Paizo's Planet Stories had that I didn't (I've long since read every Michael Moorcock and Robert E. Howard story). They arrived this morning (DAMN fast shipping, but of course we're in the same city):
- Gary Gygax: Anubis Murders, Samarkand Solution
- C.L. Moore: Black God's Kiss, Northwest of Earth
- Henry Kuttner: Elak of Atlantis
- Leigh Brackett: Secret of Sinharat
Yeah, some good old-fashioned swords & sorcery (and swords & planet) stories!
The upcoming Planet Stories novels look great, too, and publisher Erik Mona has a great list of pulp authors he wants to add.
I've been working on my new tabletop RPG, both for use as a real tabletop game, and as the background and game system for my iPhone game. The plan is for the story to begin on the iPhone, and then provide a jumping-off point for tabletop play. I also have some online gaming tools I've been working on to make it easier for gaming groups to play even if far apart. Think of it as a whole party of webcam players from Full Frontal Nerdity.
The game's name is Torchbearer, implying both the lowly henchman who creeps along behind the hero holding a torch so the hero can fight something terrible in the dark, and Prometheus, carrying fire down from the gods to humanity and paying terribly for his mercy and heroism.
(if you're reading this in a feed, click More for the rest of the post)
The RPG is based on swords & sorcery, the good stuff: Edgar Rice Burroughs, Robert E. Howard, Fritz Leiber, Michael Moorcock, Clark Ashton Smith, and Karl Edward Wagner. Civilizations fat with wealth, but corrupted from inside by serpent-men and cultists to dark and terrible gods. Barbarian cultures, primitive and brutal but honorable. Horrific monsters lurking in every tomb, dark wood, and dark temple. Priests sacrificing virgins as their minions chant, and heroes cutting them down like wheat with their insane, soul-drinking intelligent magical swords...
As for setting, I'm adapting early Imperial Rome, the Mediterranean, and the barbarian lands surrounding civilization. Historical accuracy will be almost totally ignored, and where it makes for a better setting there'll be about 5 centuries of history crammed together, but the flavor of the period will be kept. I really don't get why everyone uses medieval Europe OVER and OVER and OVER. Rome has cities and merchants and strange unexplored lands full of barbarians and monsters, the Mediterranean is, as Odysseus/Aeneas found out, a lot more difficult to sail than you'd think. I recently started reading the Robert Fagles translation of The Aeneid, and it's damned good. David Drake wrote a great series of fantasy/science fiction stories set in Rome, which make use of both the mysteries of the ancient world and the politics of Rome. And of course, the greatest Greco-Roman mythology movie ever, The Clash of the Titans, animated by Ray Harryhausen.
The Roman Empire has some serious virtues for gaming. The frontier is vast and unexplored. The center of the Empire has all the civilization you could want, as do the cities in most provinces, but there's room for a hero to follow his own path. There's real diversity when you travel, since every province was allowed to maintain its own laws and religions, and religion was syncretic, pantheistic, and tolerant (except of Christians, of course, who were quite rightly fed to lions). Once you leave the Empire, things get really weird and different.
What it's not is D&D. Dungeons & Dragons, and all the computer RPGs based so very blatantly on it, are not swords & sorcery. Real swords & sorcery ultimately requires three elements:
- Swords. The solution to a problem is almost always to chop its head off; finding the right person or thing to kill may require some quick thinking and perception to find, but strength and brutality are the answer. Careful planning, organization, these are anathema in S&S. If you waste your time on planning and preparation and sitting around healing, the evil high priest will sacrifice the pretty virgin and end the world. Battle is disorganized, chaotic, and a single sword strike can kill anyone, if you can reach them. Defenses and fatigue and escape options are worn down in a fight, not hit points.
D&D is about planning and organization, with mono-skilled people who fill precise party roles that have to be managed like a corporate office. Combat is just an accounting exercise in whittling the enemy's hit points down to zero before yours; in MMORPGs like EverQuest and World of Warcraft, people compute "DPS": Damage Per Second. Healing is a matter of sitting around forever, waiting to heal, or expending centrally-managed resources. At least the MMOs add some special maneuvers and chained attacks for combat, but D&D combat is just "Roll d20. Compare to a target number. Roll dice for damage. Accountant marks down remaining HP budget. Repeat." I may die of boredom.
- Sorcery. The opposition uses dark and terrible magics. Sorcerers may well have some direct-attack spells, but most of the magic is ritualistic, takes hours to perform, and can be disrupted at the last minute. Powerful magic is incomprehensible to an honest barbarian mind. Magic is not reliable, and does not follow strict rules.
In D&D, magic is mechanical and soulless. You have to choose exactly which spells you'll use ahead of time (a magic system copied from Jack Vance's humorous parodies of swords & sorcery... it's meant to be preposterous and stupid, and yet 30 years of D&D players have taken it seriously!). Magic always works, exactly the same way every time. The spells are rigidly specified all the way up through Wish. A wish, in literature and movies ever since 1001 Nights the most free-form, random event possible, has been reduced to a legal exercise in D&D.
- Mystery. The hero of a swords & sorcery story may never understand what really happened, what the monster was or where it came from. Even the reader is left unsettled, unsure of the foundations of the world.
Dungeons & Dragons has no mysteries. Everything is statted out in the rules, down to the last hit point, treasure type, and "% in lair" chance. Magic items are just a more exclusive catalog than the equipment section, the "Sky Mall" and "Sharper Image" of their world. There is no existential horror. There is no chance of anything beyond the scope of the rules happening. It's just routine. Another Orc guarding a chest. Another Owlbear. Another Gelatinous Cube. Troll? Get out the acid and a torch. Pass me another sheet of graph paper, I need to map this section of the dungeon in 10'x10' squares. They have sucked the mystery dry and left a lifeless husk.
The original D&D introduction is fantastic, but so very ironic considering how bureaucratic, mechanical, and wargamey the later editions became, and how few gamers these days have even read the authors named:
These rules are strictly fantasy. Those wargamers who lack imagination, those who don't care for Burroughs' Martian adventures where John Carter is groping through black pits, who feel no thrill upon reading Howard's Conan saga, who do not enjoy the de Camp & Pratt fantasies or Fritz Leiber's Fafhrd and the Gray Mouser pitting their swords against evil sorceries will not be likely to find DUNGEONS AND DRAGONS to their taste. But those whose imaginations know no bounds will find that these rules are the answer to their prayers. With this last bit of advice we invite you to read on and enjoy a "world" where the fantastic is fact and magic really works!
-E. Gary Gygax, 1 November 1973
As far as rules go, obviously, I think there's a lot wrong with AD&D. D&D 3.0/3.5/OGL/D20 still has everything that was wrong with AD&D, plus it's a bookkeeping nightmare. D&D 4.0 looks to be a catastrophic mess, more collectible card game or minis game than an RPG at all.
I do have some respect for the Holmes edition of Dungeons & Dragons. This is what I learned with, back in 1978, and on recent re-reading, it holds up well as a role-playing game, and as a swords & sorcery game, better than any later edition. The white box is too disorganized and has the flaws of being the first attempt ever to codify role-playing into rules, and the Tom Moldvay Basic/Expert/Companion/Master/Immortal D&D series was too polished and abstracted and dumbed down for children, almost more of a boardgame than an RPG.
John Eric Holmes (also the author of Mahars of Pellucidar, an excellent E.R. Burroughs sequel) put together a D&D that was easy to learn and play, loose and mysterious enough that you weren't trapped in an accounting or research hell, and actually approaches swords & sorcery. Many of the flaws of D&D are irrelevant in it. Because it only covers levels 1-3, and advancement is BRUTALLY slow (one level every 6-12 long sessions, probably 20 shorter "adults with jobs" sessions), you don't ever have gigantic stacks of hit points to wear down, and a hero can at best take 2-3 sword thrusts instead of 1. Mages are not artillery, clerics are not endless healing machines. High-level spells and magic items beyond the basics provided would be left up to the Dungeon Master's discretion. While it does have the dry bestiary problem, statting up all the monsters to high levels, most of them are so powerful that you cannot ever fight them head-on without an army. The sample adventure is surprisingly good, and ties into Holmes' Dragon Magazine short stories and his fantasy novel, "Maze of Peril".
There are people around who play this edition as if it was a complete game, sometimes augmented to level 9 by a "supplement" built from other editions (see Retro Roleplaying).
That's not to say it's without flaws. It has the idiotic Vancian magic system, which combines with low levels to make mages useless. Mages should be less powerful than swordsmen, but not crippled as they are in this D&D; 1-3 spells at most, and they're done, useless in combat and without any other skills. At least clerics can turn undead and fight once they've expended their meagre set of spells. The slow, bordering on non-existent, advancement means that all you are, all you ever will be, is what you are now. Equipment thus becomes disproportionately important. The very low stat bonuses in it do discourage min-maxing, but they also mean that almost everyone with the same class is identical in ability. It has rigid classes, and very few of them, so there aren't any real choices. Fighting Man, Thief, Cleric, Magic-User. That's it. Dwarfs and Halflings can only be Fighting Men or Thieves, Elves can only be multi-classed Fighting Men/Magic-Users. Apparently the gods don't like demi-humans enough to let them be Clerics.
Even if I put aside my disdain for the Tolkien setting elements, and the decades of terrible TSR fantasy "novels", there's no way I could ever actually play this again. Still, it's interesting, and looks fun aside from some problems, in a way that few later Dungeons & Dragons products ever have been.
So. Torchbearer's game design so far is very simple, and unlike my previous indie games, deliberately uses D&D-isms where they make sense, but still throws them out where they don't. I'm hoping to make it easy to convert D&D adventures over, and the conversion system will be as much about changing the tone to swords & sorcery and correct Roman citizenship as about changing the mechanics.
The stats are similar to D&D, and yet adjusted to distribute their value more evenly. The one time D&D ever tried to change its stats was with the addition of Comeliness, which just made Charisma even more useless. Torchbearer's stats are: Strength, Health (just a shorter name), Agility (as it represents physical coordination more than manual dexterity), Intellect (as much perception and education as intelligence), Willpower (no relation to Wisdom; Willpower enables resistance to magic and aids in survival), and Presence (used by priests, and made significantly more useful than D&D's "dump stat" Charisma). These are all 3-18 scores, rarely going up to 19 (or 20 for gods and godlike monsters), but they can be improved in play. Modifiers are significant in the game, but any decent stat will get a bonus, so I'm hoping a fair set of 3d6 rolls remains fun.
The races aren't Tolkienesque (no Elves/Dwarfs/Halflings! Ever!), they're Roman: Civilized Men, Barbarians, several kinds of Nymphs, Centaurs, Satyrs, and more. I've found some interesting ways to differentiate the races and balance them.
Torchbearer is skill-based; there are no classes, and anyone can develop any skill as well as anyone else (subject to stat differences). In most skill-based games, there are dozens of skills and it takes forever to allocate points among them. Not so here. There are currently 9 skills: Armor, Artifact, Athletics, Burglary, Lore, Magic, Melee, Missile, Prayer. I might have a couple more by the time I'm done, but these are pretty near complete already. By mixing your skill selections, you get very different character types. If you want a thief who can fight well, focus on Melee and Burglary; if you want a wizard, Magic and Lore; if you want a wizard-thief, Magic and Burglary. You won't get many skill points per level, but every skill rank really matters, it's not just a small chance of success upgrade.
It is level-based, both for compatibility and because I do find that levels help the Judge balance encounters, and force a smoother distribution of power, rather than a character focusing on ONE skill at the expense of all others. Experience can be earned by fighting, but also by exploration, social advancement, magic, role-playing, puzzle-solving, and so on; a totally peaceful campaign should be possible, though certainly that's not the main-line choice.
Combat will be rather different from other games. A deck of cards is used to give the player choices in duelling strategy. Miniatures and a battle map are NOT to be used; foes may occupy different range bands, and advance or retreat along them, but are presumed to be very mobile throughout the area during a fight. Damage, too, is very different and more dangerous than in most other games. While not "everyone dies in every fight" lethal, it is considerably more dangerous regardless of level than an accounting game like D&D. Warriors win by intimidation, trickery, quick strikes, and defenses, NOT by being able to absorb dozens of blows before falling. Watch the swordfight in The Princess Bride. How many hits does anyone take?
Magic is unreliable, but spells can be shaped in many different ways, rather than having a laundry list of specific effects. Monsters use a construction and/or randomization system, so there will never be a "standard bestiary".
When complete, the game will be available as a low-priced PDF from an online store, and I may be able to set up print-on-demand. This won't happen for some time; I expect to get the iPhone game out this summer, and the tabletop game will follow it, possibly coinciding with the online tools.
|