Perilar for the iPhone is completed!
New software gallery blog post: 2008-10-05: Perilar completed!
| Mark Damon Hughes | Topic: News |
|
Perilar for the iPhone is completed! New software gallery blog post: 2008-10-05: Perilar completed!
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 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:
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.
"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:
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.
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.
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:
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.
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:
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. LinuxAll 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. WindowsBut 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 ProgrammingSo 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:
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.
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: Castles(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.
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):
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.
|