# Steve Yegge

Random whining and stuff.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Java, Kotlin, and the Challenges of Android Development

DevFeed: [Java, Kotlin, and the Challenges of Android Development](<https://devfeed.tech/articles/why-kotlin-is-better-than-whatever-dumb-language-you-re-using-38780.md>)

Original publisher: [Read original article](<https://steve-yegge.blogspot.com/2017/05/why-kotlin-is-better-than-whatever-dumb.html>)

Author: Steve Yegge (noreply@blogger.com)

Published: 2017-05-17T21:06:00Z

Content type: opinion

Language: en

Sources: [Steve Yegge](<https://devfeed.tech/sources/steve-yegge.md>)

Topics: [android-development](<https://devfeed.tech/topics/android-development.md>), [Android](<https://devfeed.tech/topics/android.md>), [Java](<https://devfeed.tech/topics/java.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [ios](<https://devfeed.tech/tags/ios.md>), [java](<https://devfeed.tech/tags/java.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [language](<https://devfeed.tech/tags/language.md>)

### AI overview

The author discusses choosing a language while developing an Android version of an existing iOS game. The supplied excerpt criticizes some legacy Android APIs and contrasts Android and iOS development, while framing Java's slow evolution as part of the language-choice problem.

### Source excerpt

Ah, clickbait. Where would the internet be without it? The answer will shock you! But seriously, I didn't mean to insult your favorite language... much. After all, your language of choice is probably getting better at a glacial pace. Right? If your language isn't dead, then it's gradually getting better as they release updates to it. How slowly, though? Well... If the language you're using happens to be Java, then you've no doubt realized that by the time Java becomes a really good language, you'll be dead. Loooong dead. I know we don't like to contemplate our own mortality, but when you plot the trajectory of Java from its birth 20+ years ago to its full knee and hip replacement with Java 8, you can't help but wonder, "Am I going to be stuck with this for literally the rest of my life? What if this is as good as it gets?" Anyhoo, I ran across the old language question again because I finally tried my hand at Android development. I have an iOS client for my old game Wyvern, and I decided somewhat recently to take the plunge and write an Android version. I didn't realize that it would turn into a language question (as in, "What the hell am I doing with my life?") But then, if you've done any Android programming at all, you'll know that this is in fact a burning question in Android-land. My first attempt at doing Android was last summer, and my god it sucked. I mean, they warned me. Everyone warned me. "The APIs are terrible", they all said. I can't say I wasn't warned. How terrible could they be, though? It's just Java, right? Legacy Yuck Unfortunately -- for long complicated legacy reasons that nobody cares about -- some of Android's core APIs really are bad. I mean baaaaad bad. Shut the book, take a deep breath, and go out for coffee bad. The warnings were spot on. It's a mixed bag, though. A lot of their APIs are just ducky. I found plenty of things that are hard in iOS and easy in Android. Product flavors, the Downloads service, findViewById(), the Preferences acti

## The Monkey and the Apple

DevFeed: [The Monkey and the Apple](<https://devfeed.tech/articles/the-monkey-and-the-apple-38779.md>)

Original publisher: [Read original article](<https://steve-yegge.blogspot.com/2016/11/the-monkey-and-apple.html>)

Author: Steve Yegge (noreply@blogger.com)

Published: 2016-11-17T07:11:00Z

Content type: opinion

Language: en

Sources: [Steve Yegge](<https://devfeed.tech/sources/steve-yegge.md>)

Topics: [Mobile](<https://devfeed.tech/topics/mobile.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [iOS development](<https://devfeed.tech/topics/ios-development.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Google](<https://devfeed.tech/topics/google.md>)

Tags: [cloud](<https://devfeed.tech/tags/cloud.md>), [google](<https://devfeed.tech/tags/google.md>), [ios-development](<https://devfeed.tech/tags/ios-development.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [open-source](<https://devfeed.tech/tags/open-source.md>)

### AI overview

The author describes turning an older game into a mobile MMORPG with a cloud backend. The project required substantial work involving cloud development, iOS APIs, and open-source technologies, and was opened for beta testing on supported iOS devices.

### Source excerpt

It's been a while! I took a couple of years off blogging because I felt I didn't have much left in the way of interesting things to say. So I've been just been programming, and studying, and learning this and that. I've been doing a bit of Cloud development, and I taught myself iOS development, and after years in the Google cocoon I poked my head out and learned how people do things in the real world with open source technologies. And lo at long last, after some five years of tinkering, I finally have something kind of interesting to share. I wrote a game! Well, to be more precise, I took an old game that I wrote, which I've perhaps mentioned once or twice before, and I turned it into a mobile game, with a Cloud backend. It has been waaaay more work than I expected. Starting with a more-or-less working game, and tweaking it to work on Cloud and mobile -- I mean, come on, how hard can it be, really? Turns out, yeah, yep, very hard. Stupidly hard. Especially since out of brand loyalty I chose Google's cloud platform, which 3 or 4 years ago was pretty raw. And let's face it, iOS APIs have evolved a ton in that timeframe as well. So even as "recently" as 2013 I was working with some pretty immature technology stacks, all of which have come leaps and bounds since then. And now I have all sorts of stuff to share. Definitely enough for a series of blog posts. But I also have less time than before, because it's all happening in my non-copious spare time, all late nights and weekends. And running an MMORPG is a fearsome task in its own right. Incidentally, I've just opened the game up for beta testing. So if you want to try it out while you read along, visit http://ghosttrack.com to request an invite. (Edit, 12/13/16 -- BETA IS NOW CLOSED.) You'll need an iPhone, iPad, or iPod running iOS 10.2 (Edit: 9.2!) or later. I'd love to do Android and PC, but there's only one of me. For now. So where do I start? I guess the logical thing to do would be to start at the beginning, but

## Steve Yegge Discusses Quitting a Google Project and Hacker News' Misrepresentation of His Speech

DevFeed: [Steve Yegge Discusses Quitting a Google Project and Hacker News' Misrepresentation of His Speech](<https://devfeed.tech/articles/hacker-news-fires-steve-yegge-38776.md>)

Original publisher: [Read original article](<https://steve-yegge.blogspot.com/2011/07/hacker-news-fires-steve-yegge.html>)

Author: Steve Yegge (noreply@blogger.com)

Published: 2011-07-27T19:33:00Z

Content type: opinion

Language: en

Sources: [Steve Yegge](<https://devfeed.tech/sources/steve-yegge.md>)

Topics: [Google](<https://devfeed.tech/topics/google.md>), [Job](<https://devfeed.tech/topics/job.md>)

Tags: [google](<https://devfeed.tech/tags/google.md>), [job](<https://devfeed.tech/tags/job.md>)

### AI overview

Steve Yegge humorously addresses a misleading Hacker News account of his OSCON Data keynote, clarifying that he announced quitting a project near the end of the talk rather than quitting Google during the speech. He also encourages readers to consider working at Google while criticizing limitations in its interview process.

### Source excerpt

I woke up this morning...ish... to discover that Hacker News had finally had enough of me being at Google, so they forced me into early retirement. On Monday I was honored to be able to deliver a keynote talk at OSCON Data. In the talk, I announce at the end that I am quitting a project that I had very publicly signed up for, one that I am not passionate about and don't personally think is very important to the human race. Though others clearly do, and that's a legitimate viewpoint too. But the power of suggestion can make you see and hear something entirely different. If, for instance, someone tells you that I gave the talk wearing a gorilla suit, then when you watch it, I will magically appear to be wearing a gorilla suit. It's actually a gray jacket over a black shirt, but you will perceive the jacket as the back-hair of a male silverback gorilla! And to be honest the talk could have benefited from the judicious application of a gorilla suit, so no harm there. Similarly, if someone on Hacker News posts that "Steve Yegge quits Google in the middle of his speech" and links to the video, then you will watch the video, and when I say the word "project" at the end of my speech, a magical Power of Suggestion Voice-Over will interrupt -- in a firm manly voice totally unlike my own quacking sounds -- with "Gooooooogle". And then you will promptly sink into a 15-minute trance so that the voice-over can occur in the middle of my speech where Hacker News said it happened, instead of 96.7% of the way through the talk where it actually happened. I am going to harness this amazing Power of Suggestion, right here, right now. Here goes. You are going to come work at Google! You are going to study up, apply, interview, and yes, you are going to work there! And it will be the most awesome job you've ever had or ever will have! I hope for your sake that this little experiment works, because Google is frigging awesome, and you'll love it here. And they'll be happy to have you here.

## eBay Patents 10-Click Checkout

DevFeed: [eBay Patents 10-Click Checkout](<https://devfeed.tech/articles/ebay-patents-10-click-checkout-38775.md>)

Original publisher: [Read original article](<https://steve-yegge.blogspot.com/2011/07/ebay-patents-10-click-checkout.html>)

Author: Steve Yegge (noreply@blogger.com)

Published: 2011-07-22T10:36:00Z

Content type: opinion

Language: en

Sources: [Steve Yegge](<https://devfeed.tech/sources/steve-yegge.md>)

Topics: [ui](<https://devfeed.tech/topics/ui.md>), [passwords](<https://devfeed.tech/topics/passwords.md>)

Tags: [password](<https://devfeed.tech/tags/password.md>), [payment](<https://devfeed.tech/tags/payment.md>), [paypal](<https://devfeed.tech/tags/paypal.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

A satirical commentary describes eBay and PayPal's purported patent for a cumbersome "10-click" Buy It Now checkout process, mocking repeated logins, upselling, payment steps, and misleading interface labels.

### Source excerpt

San Jose, CA (Reuters) -- Online auctions cartel eBay (NASDAQ: EBAY) and its collections and incarceration arm PayPal announced that on July 21, 2011, the two companies had jointly been awarded United States Patent No. 105960411 for their innovative 10-click "Buy it Now" purchasing pipeline. The newly-patented buying system guides users through an intuitive, step-by-step process of clicking "Buy It Now", entering your password, logging in because they signed your sorry ass out again, getting upsold shit you don't want, continuing to your original destination, accepting the default quantity of 1 (otherwise known as "It"), committing to buy, clicking "Pay Now", entering a different password than your first one, clicking "Log In" again god dammit, declining to borrow money from eBay's usury department, reviewing the goddamn purchase details since by now you've completely forgotten what the hell you were buying, and finally confirming the god damned payment already. The 10-click checkout system, known colloquially as 10CLICKFU -- which many loyal users believe stands for "10 Clicks For You" -- was recently awarded top honors by the National Alliance of Reconstructive Hand Surgeons. 10CLICKFU incorporates a variable number of clicks ranging from eight to upwards of fifteen, but eBay's patent stipulates that any purchasing system that lies to you at least nine times about the "Now" part of "Buy It Now" is covered by their invention. The patent award came as a surprise to many analysts, since several of eBay's related patent attempts had been rejected on the basis of prior art. In one well-publicized filing, eBay had tried to patent a purely decorative, non-operational "Keep me signed in" checkbox, but Sony's PlayStation Network already had one just like it. And another eBay patent claim for excruciating page load times was rejected because the iPad App Store is still loading. But eBay's boldest and potentially furthest-reaching patent attempt was for "100% Inaccurate Butto

## Haskell Researchers Announce Discovery of Industry Programmer Who Gives a Shit

DevFeed: [Haskell Researchers Announce Discovery of Industry Programmer Who Gives a Shit](<https://devfeed.tech/articles/haskell-researchers-announce-discovery-of-industry-programmer-who-gives-a-shit-38774.md>)

Original publisher: [Read original article](<https://steve-yegge.blogspot.com/2010/12/haskell-researchers-announce-discovery.html>)

Author: Steve Yegge (noreply@blogger.com)

Published: 2010-12-01T21:16:00Z

Content type: opinion

Language: en

Sources: [Steve Yegge](<https://devfeed.tech/sources/steve-yegge.md>)

Topics: [Haskell](<https://devfeed.tech/topics/haskell.md>), [Java](<https://devfeed.tech/topics/java.md>), [Reddit](<https://devfeed.tech/topics/reddit.md>), [Computer science](<https://devfeed.tech/topics/computer-science.md>)

Tags: [computer-science](<https://devfeed.tech/tags/computer-science.md>), [haskell](<https://devfeed.tech/tags/haskell.md>), [java](<https://devfeed.tech/tags/java.md>), [reddit](<https://devfeed.tech/tags/reddit.md>)

### AI overview

A satirical article describes Haskell researchers allegedly discovering Seth Briars, an industry Java programmer who follows Haskell news. It uses the fictional investigation to joke about Haskell's small community, Reddit voting, type systems, and programming culture.

### Source excerpt

The worldwide Haskell community met up over beers today to celebrate their unprecedented discovery of an industry programmer who gives a shit about Haskell. On Wednesday, researchers issued a press release revealing that 27-year-old Seth Briars of North Carolina, a Java programmer at Blackwater accounting firm Ross and Fordham, actually gives a shit about Haskell. "Mr. Briars has followed every single one of our press releases for years," the press release stated. "Probably even this one." Haskell researcher Dutch Van Der Linde explained how they had stumbled on the theoretical possibility of Briars and his persistent interest in Haskell. "We knew that there are precisely 38 people who give a shit about Haskell," said Van Der Linde, "because every Haskell-related reddit post gets exactly 38 upvotes. It's a pure, deterministic function of no arguments -- that is, the result is independent of what we actually announce. But there are only 37 of us on our mailing list, so we figured there was a lurker somewhere." "That, or it was an off-by-1 error not detectable by our type system," Van Der Linde added. "But we don't, uh, like to dwell on, I mean with good unit testing practices we can, um... sorry, I need to get some water." As Van Der Linde stumbled off in a coughing fit, his fellow researcher Bonnie MacFarlane outlined their basic dilemma: "Finding a person who gives a shit about Haskell is an inherently NP-complete computer science problem. It's similar in scope and complexity to the problem of trying to find a tenured academic who didn't have the bulk of his or her work done by uncredited graduate students. So even though we suspected Briars existed, we needed a strategy to smoke him out." She explained the trap they set for Briars: "We crafted a fake satirical post lampooning Haskell as an unusable, overly complex turd -- a writing task that was emotionally difficult but conceptually trivial. Then we laced the post with deeper social subtext decrying the endemic s

## Satirical announcement about modifying access modifiers in open-source Java projects

DevFeed: [Satirical announcement about modifying access modifiers in open-source Java projects](<https://devfeed.tech/articles/wikileaks-to-leak-5000-open-source-java-projects-with-all-that-private-final-bullshit-removed-38773.md>)

Original publisher: [Read original article](<https://steve-yegge.blogspot.com/2010/07/wikileaks-to-leak-5000-open-source-java.html>)

Author: Steve Yegge (noreply@blogger.com)

Published: 2010-07-28T20:40:00Z

Content type: opinion

Language: en

Sources: [Steve Yegge](<https://devfeed.tech/sources/steve-yegge.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Code](<https://devfeed.tech/topics/code.md>), [Java Language](<https://devfeed.tech/topics/java-language.md>), [class](<https://devfeed.tech/topics/class.md>), [constructor](<https://devfeed.tech/topics/constructor.md>), [deprecated](<https://devfeed.tech/topics/deprecated.md>), [Perl](<https://devfeed.tech/topics/perl.md>)

Tags: [class](<https://devfeed.tech/tags/class.md>), [code](<https://devfeed.tech/tags/code.md>), [constructor](<https://devfeed.tech/tags/constructor.md>), [deprecated](<https://devfeed.tech/tags/deprecated.md>), [java](<https://devfeed.tech/tags/java.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [perl](<https://devfeed.tech/tags/perl.md>), [projects](<https://devfeed.tech/tags/projects.md>), [source](<https://devfeed.tech/tags/source.md>)

### AI overview

This satirical article describes a purported Wikileaks announcement to re-release open-source Java projects after changing access modifiers, removing most final and deprecated declarations, adding public constructors, and exposing fields.

### Source excerpt

EYJAFJÖLL, ICELAND -- Java programmers around the globe are in a panic today over a Wikileaks press release issued at 8:15am GMT. Wikileaks announced that they will re-release the source code for thousands of Open Source Java projects, making all access modifiers 'public' and all classes and members non-'final'. Agile Java Developer Johnnie Garza of Irvine, CA condemns the move. "They have no right to do this. Open Source does not mean the source is somehow 'open'. That's my code, not theirs. If I make something private, it means that no matter how desperately you need to call it, I should be able to prevent you from doing so, even long after I've gone to the grave." According to the Wikileaks press release, millions of Java source files have been run through a Perl script that removes all 'final' keywords except those required for hacking around the 15-year-old Java language's "fucking embarrassing lack of closures." Moreover, the Perl script gives every Java class at least one public constructor, and turns all fields without getters/setters into public fields. "The script yanks out all that @deprecated shit, too," claims the controversial announcement. Longtime Java programmer Ronnie Lloyd of Austin, TX is offended by the thought of people instantiating his private classes. "It's just common sense," said Lloyd, who is 37. "If I buy you a house and put the title in your name, but I mark some of the doors 'Employees Only', then you're not allowed to open those doors, even though it's your house. Because it's really my house, even though I gave it to you to live in." Pacing and frowning thoughtfully, Lloyd continued: "Even if I go away forever and you live there for 20 years and you know exactly what's behind the doors -- heck, even if it's a matter of life and death -- plain old common sense still dictates that you're never, ever allowed to open them for any reason." "It's for your own protection," Lloyd added. Wesley Doyle, a Java web developer in Toronto, Canada is m

## A programmer's view of the Universe, part 2: Mario Kart

DevFeed: [A programmer's view of the Universe, part 2: Mario Kart](<https://devfeed.tech/articles/a-programmer-s-view-of-the-universe-part-2-mario-kart-38768.md>)

Original publisher: [Read original article](<https://steve-yegge.blogspot.com/2008/12/programmers-view-of-universe-part-2.html>)

Author: Steve Yegge (noreply@blogger.com)

Published: 2008-12-27T11:32:00Z

Content type: opinion

Language: en

Sources: [Steve Yegge](<https://devfeed.tech/sources/steve-yegge.md>)

Topics: [Embedded Systems](<https://devfeed.tech/topics/embedded-systems.md>), [systems](<https://devfeed.tech/topics/systems.md>)

Tags: [computer](<https://devfeed.tech/tags/computer.md>), [embedded](<https://devfeed.tech/tags/embedded.md>), [embedded-systems](<https://devfeed.tech/tags/embedded-systems.md>), [games](<https://devfeed.tech/tags/games.md>)

### AI overview

This second installment of a discussion series examines embedded systems through examples including fish tanks and computer games. It describes them as self-contained ecosystems operating within a host system and introduces the One-Way Wall as a central concept.

### Source excerpt

This is the second installment of a little series of discussions. They're not much more than that, just discussions. And I hope I'm inviting discussion rather than quenching it. But I'll be honest -- the goal of this series is to pound a stake through the heart of a certain way of thinking about the world that has become quite popular. If my series fails in that regard, I hope it may still provide some entertainment value. Part one, The fish, was about a twisty line and a fish's examination of it. Today we move to a twisty plane. Embedded Systems There are many kinds of computer programs, and many ways to categorize them. One of the broadest and most interesting program categories is embedded systems. These systems are the centerpiece of today's little chat. Embedded systems are a bit tricky to define because they come in so many shapes and sizes. Loosely speaking, an embedded system is a little world of its own: an ecosystem with its own rules and its own behavior. So an embedded system need not even be a computer program: a fish tank is also a kind of embedded system. We call them embedded systems because they exist within the context of a host system. The host system provides the machinery that allows the embedded system to exist, and to do whatever it is that the embedded system likes to do. For fish tanks, the host system is the tank itself, which you may purchase from a pet store. A tank has walls for holding the water in, filters and pumps for keeping the water clean, lights for keeping the fish and plants alive a little longer, and access holes for putting your hand through to clean the tank. There's not much to it, really. The embedded system is everything inside: the water, the plants, the rocks, the fish, and the little treasure chest with bubbles coming out. For computer games, another popular kind of embedded system, the host system is the computer that runs the game: a PC, a game console, a phone, anything that can make a game exist for a while so that

## Fable II Review: Stability Improved After Installing the Game to the Hard Drive

DevFeed: [Fable II Review: Stability Improved After Installing the Game to the Hard Drive](<https://devfeed.tech/articles/fable-ii-arguably-better-than-getting-your-head-crapped-on-38767.md>)

Original publisher: [Read original article](<https://steve-yegge.blogspot.com/2008/12/fable-ii-arguably-better-than-getting.html>)

Author: Steve Yegge (noreply@blogger.com)

Published: 2008-12-25T14:39:00Z

Content type: opinion

Language: en

Sources: [Steve Yegge](<https://devfeed.tech/sources/steve-yegge.md>)

Topics: [Xbox](<https://devfeed.tech/topics/xbox.md>)

Tags: [gaming](<https://devfeed.tech/tags/gaming.md>), [xbox](<https://devfeed.tech/tags/xbox.md>)

### AI overview

A personal review of Fable II describes frequent crashes during initial play. Installing the game to the Xbox hard drive eliminated the crashes, but the reviewer ultimately found the game playable yet forgettable and not very good.

### Source excerpt

I finished Fallout 3 maybe six or eight weeks ago, and it was hands-down one of the best games I've ever played. A game like that gets you in the mood for more gaming, so I thought to myself: "Hey, I should plop down $160 for Fable II!" Actually that's not exactly what I thought, but it's what happened. I bought the game for $60, fired it up, got up to the part in the intro where a bird craps on your head (yes, this is how it starts), and it locked up hard. Reset the XBox, tried again, and this time got as far as some guy selling snake oil gadgets before it locked up again. Snake oil, indeed. I tried playing for about an hour, with the game crashing every 3 to 5 minutes, and I finally went online to read about how it kills XBoxes and it's the Game of Death and blah blah blah, all interesting but not especially helpful. Eventually I stumbled across discussions of the "install to hard drive" option. Nobody actually said how to do it, so it took another hour of digging to deduce that you need to purchase a $100 wireless network adapter (or 100 feet of network cable, I guess). So I shut it down for the night, waited for the stores to open, forked over the $100, and installed the game to the hard drive. To Lionhead's credit the game never crashed again, making it significantly more stable than Oblivion or Fallout 3. I tried hard to like Fable 2. I didn't even need to like it $160. I would have settled for a $60 value. I vaguely remember liking Fable 1, although I can't remember anything about the game except for one neat scene where you had to escort two NPCs through a dark valley. One of the NPCs has been bitten by a Balverine (a werewolf), and the two argue the whole trip about whether he's going to turn. It's a funny conversation and the scene has a funny ending. Other than that, I just have vague recollections of shooting birds on the roof of some guild, and needing to get a 6-foot handlebar moustache for some side quest. The rest of it is basically a blank. But I ha

## Ejacs: a JavaScript interpreter for Emacs

DevFeed: [Ejacs: a JavaScript interpreter for Emacs](<https://devfeed.tech/articles/ejacs-a-javascript-interpreter-for-emacs-38766.md>)

Original publisher: [Read original article](<https://steve-yegge.blogspot.com/2008/11/ejacs-javascript-interpreter-for-emacs.html>)

Author: Steve Yegge (noreply@blogger.com)

Published: 2008-11-17T06:19:00Z

Content type: article

Language: en

Sources: [Steve Yegge](<https://devfeed.tech/sources/steve-yegge.md>)

Topics: [Emacs](<https://devfeed.tech/topics/emacs.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [emacs](<https://devfeed.tech/tags/emacs.md>), [interpreter](<https://devfeed.tech/tags/interpreter.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [language](<https://devfeed.tech/tags/language.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>)

### AI overview

A blog article titled "Ejacs: a JavaScript interpreter for Emacs." The supplied excerpt mainly provides personal context and indicates that the author is writing about work done on Ejacs, but the technical details are truncated.

### Source excerpt

So! I have all these cool things I want to write about, but I broke my thumbnail. Can you tell that's a long story? See, this summer I got excited about playing guitar again. I usually switch between all-guitar and all-piano every other year or so. This summer I dusted off the guitars and learned a bunch of pieces, and even composed one. I was prepping for -- among other things -- a multimedia blog entry. It was going to have a YouTube video, and a detailed discussion of a wacky yet powerful music programming language you've probably heard of but never used, and generally just be really cool. And then it all came crashing down when I busted my thumbnail off. And I mean off -- it broke off at least a quarter inch below where the nail and skin meet. Ick. I just accidentally jabbed my steering wheel, and that was that. I remember reading an interview with some dude who said he had punched a shark in the nose. He said it was like punching a steering wheel. So now I know more or less what it's like to punch a shark in the nose, I guess. There's always an upside! Anyway, that was going to be my magnum opus (literally: Op. 1) for the year, but it fell through for now. I'll have to revisit the idea next year. My thumbnail's back, but it's been at least 2 months since I touched my guitar, so I'll have to start over again. Work has been extraordinarily busy, what with having to collect all these Nuka-Cola Quantum bottles and so on. I'm sure you can imagine. So I haven't had much time to blog lately. But I do like to publish at least once a month, whether or not anyone actually cares. It's been about a month, or it feels that way anyway, and all I have to show for it is this box of Blamco Mac and Cheese. So I'm cheating this month. You know how on Halloween how you walk around in your costume holding your little bag and you say "trick or treat", and every once in a while some asshole does a trick instead of dumping half a pound of candy into your bag? And then he has to explain t

## A programmer's view of the Universe, part 1: The fish

DevFeed: [A programmer's view of the Universe, part 1: The fish](<https://devfeed.tech/articles/a-programmer-s-view-of-the-universe-part-1-the-fish-38764.md>)

Original publisher: [Read original article](<https://steve-yegge.blogspot.com/2008/10/programmers-view-of-universe-part-1.html>)

Author: Steve Yegge (noreply@blogger.com)

Published: 2008-10-29T04:52:00Z

Content type: opinion

Language: en

Sources: [Steve Yegge](<https://devfeed.tech/sources/steve-yegge.md>)

Topics: [Programming](<https://devfeed.tech/topics/programming.md>), [Complex Systems](<https://devfeed.tech/topics/complex-systems.md>)

Tags: [complex-systems](<https://devfeed.tech/tags/complex-systems.md>), [programming](<https://devfeed.tech/tags/programming.md>), [rants](<https://devfeed.tech/tags/rants.md>)

### AI overview

The article reflects on how programming shapes a person's perspective. It argues that programming develops disciplined thinking and confidence in solving complex logic problems, while experience also reveals the limits of human reasoning and the difficulty of managing complex systems.

### Source excerpt

I write a column for computer programmers called "Stevey's Blog Rants." It's basically a magazine column -- I publish to it about once a month. The average length of my articles is about 12 pages, although they can range anywhere from 4 to 40 pages, depending on how I'm feeling. But for precedent, don't think blogs: think of Reader's Digest. The blog format sets the wrong expectations. Hence, some people complain that my articles are too long. Others complain that I have not given my arguments sufficient exposition, and that my articles are in fact too short on detail to warrant any credibility. This is a lose-lose situation for me, but I keep at it nonetheless because I enjoy writing. Even if nobody were to read my blog, the act of writing things down helps me think more clearly, and it's engaging in the same way that solving a Sudoku puzzle is engaging. You should try it yourself. All it takes is a little practice. My blog topics vary widely, and sometimes I even venture outside the realm of programming. Programming is where I'm most comfortable, and it's also where people seem to ascribe to me some level of punditry: I'm not necessarily right, but even my greatest detractors grudgingly admit that I'm entitled to an opinion, by virtue of my having spent twenty years hacking day and night without any sign of wanting to give it up and turn into a pointy-haired manager. Even though I love both programming and to a lesser extent writing about it, there are also lots of non-programming topics I'd like to write about. Being a career programmer gives you an interesting perspective on issues not directly related to programming. You start to see parallels. So maybe I'll branch out some more and see how it goes. The programmer's view The first thing you notice as a programmer is that it trains you -- forces you, really -- to think in a disciplined way about complex logic problems. It also gives you a big booster shot of confidence around problem-solving in general. Junior prog

## The Universal Design Pattern

DevFeed: [The Universal Design Pattern](<https://devfeed.tech/articles/the-universal-design-pattern-38765.md>)

Original publisher: [Read original article](<https://steve-yegge.blogspot.com/2008/10/universal-design-pattern.html>)

Author: Steve Yegge (noreply@blogger.com)

Published: 2008-10-20T10:06:00Z

Content type: article

Language: en

Sources: [Steve Yegge](<https://devfeed.tech/sources/steve-yegge.md>)

Topics: [properties](<https://devfeed.tech/topics/properties.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [Persistence](<https://devfeed.tech/topics/persistence.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>), [class](<https://devfeed.tech/topics/class.md>), [object](<https://devfeed.tech/topics/object.md>), [XML](<https://devfeed.tech/topics/xml.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Lisp](<https://devfeed.tech/topics/lisp.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [lisp](<https://devfeed.tech/tags/lisp.md>), [persistence](<https://devfeed.tech/tags/persistence.md>), [properties](<https://devfeed.tech/tags/properties.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>), [technical](<https://devfeed.tech/tags/technical.md>), [technical-article](<https://devfeed.tech/tags/technical-article.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

This technical article presents the Properties Pattern, also known in its fullest form as the Prototype Pattern. It explains the pattern as a flexible approach to modeling problems across programming languages and as a general-purpose persistence strategy, while comparing it with class-based object-oriented, relational, and XML modeling.

### Source excerpt

This idea that there is generality in the specific is of far-reaching importance. -- Douglas Hofstadter, Gödel, Escher, Bach Note: Today's entry is a technical article: it isn't funny. At least not intentionally. Update, Oct 20th 2008: I've added an Updates section, where I'll try to track significant responses, at least for a week or so. There are three entries so far. Contents Introduction Three Great Schools of Software Modeling Class Modeling Relational Modeling XML Modeling Other schools Finding the sweet spot Property Modeling Brains and Thoughts Who uses the Properties Pattern? Eclipse JavaScript Pushing it even further The pattern takes shape... Wyvern Lisp XML revisited Bigtable Properties Pattern high-level overview Representations Keys Quoting Missing keys Data structures Inheritance The deletion problem Read/write asymmetry Read-only plists Performance Interning strings Perfect hashing Copy-on-read caching Refactoring to fields Refrigerator REDACTED Rolling your own Transient properties The deletion problem (remix) Persistence Query strategies Backfills Type systems Toolkits Problems Further reading New Updates Final thoughts Introduction Today I thought I'd talk about a neat design pattern that doesn't seem to get much love: the Properties Pattern. In its fullest form it's also sometimes called the Prototype Pattern. People use this pattern all over the place, and I'll give you a nice set of real-life examples in a little bit. It's a design pattern that's useful in every programming language, and as we'll see shortly, it's also pretty darn useful as a general-purpose persistence strategy. But even though this pattern is near-universal, people don't talk about it very often. I think this is because while it's remarkably flexible and adaptable, the Properties Pattern has a reputation for not being "real" design or "real" modeling. In fact it's often viewed as a something of a shameful cheat, particularly by overly-zealous proponents of object-oriented desi

## The Bellic School of Management Training

DevFeed: [The Bellic School of Management Training](<https://devfeed.tech/articles/the-bellic-school-of-management-training-38762.md>)

Original publisher: [Read original article](<https://steve-yegge.blogspot.com/2008/09/bellic-school-of-management-training.html>)

Author: Steve Yegge (noreply@blogger.com)

Published: 2008-09-29T06:08:00Z

Content type: opinion

Language: en

Sources: [Steve Yegge](<https://devfeed.tech/sources/steve-yegge.md>)

Topics: [simulator](<https://devfeed.tech/topics/simulator.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [dev](<https://devfeed.tech/tags/dev.md>), [fun](<https://devfeed.tech/tags/fun.md>), [management](<https://devfeed.tech/tags/management.md>), [simulator](<https://devfeed.tech/tags/simulator.md>)

### AI overview

A humorous commentary presents Grand Theft Auto IV as an unconventional management-training simulator, comparing its missions with corporate training and the author's experience as a software development manager.

### Source excerpt

I haven't been blogging much this summer. Mostly it's because all my free time has been spent engaged in an important research project called "What Would Niko Bellic Do?" I've been enrolled in a high-quality Management Scenario Simulator with the unconventional name "Grand Theft Auto IV", probably some sort of inside joke, and I've been going through all its Developer Management training courses. You know how these corporate training videos go, right? They set up some contrived scenario with actors you're supposed to identify with, and the actors have inane discussions about sexual harrassment or bribing government officials or stealing company equipment, and then you're asked to answer questions about whether it was OK for Bob to grab Sue's ass in that particular edge-case scenario. Seriously, I just took one of these courses at work. You'd think they're a joke, but no, they're considered Important Employee Training. Well, this Niko Bellic course isn't much different, just more fun. I finished the final management training session a couple weeks ago. And by truly amazing coincidence, right after I finished the final training mission, my blog made it into the Top 100 Blogs for Development Managers (Q3 2008). I personally thought that was a little weird, seeing as I've never written explicitly about software development management. Unless of course you count that one time where I wrote about how you don't need them. BUT, now that I've finished all the Niko Bellic Advanced Management Training courses, I'm officially a Certified Expert Dev Manager, capable of not only handling unforseen tricky management situations, but also teaching others about them! So now I think my blog being in that list is totally justified. All the training in the simulator was top-notch. A lot of it was ground I'd covered before in my days as an actual dev manager. I already knew how to react, for example, when my mafia boss told me he'd been betrayed by my previous manager, and I had to take

## Programming's Dirtiest Little Secret

DevFeed: [Programming's Dirtiest Little Secret](<https://devfeed.tech/articles/programming-s-dirtiest-little-secret-38763.md>)

Original publisher: [Read original article](<https://steve-yegge.blogspot.com/2008/09/programmings-dirtiest-little-secret.html>)

Author: Steve Yegge (noreply@blogger.com)

Published: 2008-09-10T23:59:00Z

Content type: opinion

Language: en

Sources: [Steve Yegge](<https://devfeed.tech/sources/steve-yegge.md>)

Topics: [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [programming](<https://devfeed.tech/tags/programming.md>)

### AI overview

An opinion article begins a personal, humorous story about a teenager choosing a typing elective in 1982. The supplied excerpt does not yet state the article's broader argument about programming.

### Source excerpt

"And as for this non-college bullshit I got two words for that: learn to fuckin' type" -- Mr. Pink This is another one I've wanted to write forever. Man, I've tried a bunch of times. No ruck. Not Rucky. Once again I'm stuck feeling so strongly about something that I'm tripping over myself trying to get my point across. So! Only one thing left to try: bust open a bottle of wine and see if that gets the ol' creative juices flowing all over my keyboard. Rather than top-down, which is boring, let's go bottoms-up. Once upon a time... ...in, uh, let's see... it was about 1982. Yeah. A looooong time ago. This is practically a fairy tale. Once upon a time in '82, there was this completely hypothetical fictitious made-up dorky 12-year-old kid named Yeev Staigey, who was enduring his sophomore year at Paradise High School in Paradise, California. Yeev had skipped 3rd, 7th and 8th grades and entered high school at age 11, in a heroic and largely successful effort to become socially inept for the rest of his life. Boy, I could tell you all sorts of stories about little Yeev at that age. He was even lamer and more pathetic than you're probably already imagining. However, our story today concerns Yeev's need to take a, um, an... elective of some sort. I'm not sure what they called it, but at Yeev's school, you couldn't just take math and science and languages and history and all that boring stuff. No! Yeev was being educated in the United States of America, so he had to take "electives", which were loosely defined as "Classes Taught by the Football Coach because Some Law Said that Football Coaches Had to Teach A Course Other Than Football." These "electives" (which you could "elect" not to take, in which case they would "elect" not to graduate you) were the kinds of courses that put the "Red" in Red-Blooded American. These were courses like Wood Shop, Metal Shop, Auto Shop, and of course that perennial favorite, Just Chop Your Hand Off For Five Credits Shop. At the time our story

## Business Requirements are Bullshit

DevFeed: [Business Requirements are Bullshit](<https://devfeed.tech/articles/business-requirements-are-bullshit-38761.md>)

Original publisher: [Read original article](<https://steve-yegge.blogspot.com/2008/08/business-requirements-are-bullshit.html>)

Author: Steve Yegge (noreply@blogger.com)

Published: 2008-08-12T07:57:00Z

Content type: opinion

Language: en

Sources: [Steve Yegge](<https://devfeed.tech/sources/steve-yegge.md>)

Topics: [Requirements](<https://devfeed.tech/topics/requirements.md>), [Agile](<https://devfeed.tech/topics/agile.md>)

Tags: [agile](<https://devfeed.tech/tags/agile.md>), [opinion](<https://devfeed.tech/tags/opinion.md>), [requirements](<https://devfeed.tech/tags/requirements.md>)

### AI overview

The author argues that gathering business requirements to determine what to deliver to a customer is fundamentally misguided, expanding on an answer to a CEO's question and relating it to Agile.

### Source excerpt

Some CEO emailed me the other day. I don't remember who it was; people mail me all the time about their blah blah yawn product service thingy, and on the rare occasions I bother to read mail from strangers, I don't usually remember anything about the email, even if I respond to it. I can remember broad categories of questions I get, but everything else is just a blur. That's senility for ya. But this dude, or possibly dudette, asked me a really good question. One that made an impression. And by "really good", I mean it was one of the flat-out wrong-est business questions you could possibly ask. It was like asking: "How can I get the most out of my overseas child laborer pool?" There's no right answer to a question that's just wrong. But his question, well, people ask it a lot. In fact there are whole books that give answers to this inherently-wrong question. His question was: "Hello, blah blah, I'm the CEO or C-something-O or whatever of a company that blah blah BLAH, and I read your blog about Agile from almost 2 years ago, which kinda resonated with me in a scary way, inasmuch as I realized perhaps belatedly that I was being duped, BUT I was sort of wondering: How do you go about gathering business requirements, so you know what to deliver to the customer? Signed, blah blah blaaaaaaaaaah." (Note: not a verbatim transcript. But close enough.) And my answer was: Business requirements are bullshit! Well... actually it was: "gathering business requirements is bullshit", plus a bunch of accompanying explanation. But the shorter version sure is catchy, isn't it? The rest of this little diatribe expands a bit on my reply to this guy. (I actually sent him an email with much of this material in it. When I do reply to strangers, I still try do a thorough job of it.) Before we dig into the meat and potatoes of today's meal, let's talk about my credentials, and how it is that I am qualified to offer an opinion on this topic. My Credentials If you're a business person stumblin

## Rhinos and Tigers

DevFeed: [Rhinos and Tigers](<https://devfeed.tech/articles/rhinos-and-tigers-38760.md>)

Original publisher: [Read original article](<https://steve-yegge.blogspot.com/2008/06/rhinos-and-tigers.html>)

Author: Steve Yegge (noreply@blogger.com)

Published: 2008-06-14T21:11:00Z

Content type: opinion

Language: en

Sources: [Steve Yegge](<https://devfeed.tech/sources/steve-yegge.md>)

Topics: [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Java](<https://devfeed.tech/topics/java.md>), [Google](<https://devfeed.tech/topics/google.md>)

Tags: [conference](<https://devfeed.tech/tags/conference.md>), [google](<https://devfeed.tech/tags/google.md>), [java](<https://devfeed.tech/tags/java.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [transcription](<https://devfeed.tech/tags/transcription.md>)

### AI overview

A written transcription of Steve Yegge's Google I/O talk about server-side JavaScript on the Java Virtual Machine, with substantial discussion of Mozilla Rhino and a section on static typing.

### Source excerpt

I will once again plagiarize myself by transcribing a talk I gave. First: be warned! I offer this gesture of respect to you -- yes, you! -- when I say that this is at least 20 minutes of reading. This is long even for me. If you're surfing reddit, gobbling up little information snacks, then it's best to think of this entry as being more like a big downer cow. Unless you're really hungry, you should wait for it to be sliced into little bite-sized prion patties before consuming it. If you do read it, you'll see the CJD analogy is surprisingly apt. I ramble even more than usual, and lose my train of thought, and the slides might as well be scenes from a David Lynch movie for all the relation they have to my actual talk. But once again I find myself astonished at how much I agree with myself, by and large. Funny how that works. And I made a few decent jokes here and there. So I'm transcribing it. If you're impatient, and I wouldn't blame you a bit, the best part is probably "Static Typing's Paper Tigers". That might be worth reading. As for the rest... *shrug* If you're really starved for content, you might find some of it entertaining. The Setting I gave this talk at the Google I/O Conference in San Francisco a few weeks ago. My talk was boringly titled "Server-Side JavaScript on the Java Virtual Machine", and there were initially only about 40 or 50 people in the room (out of a 2500-person conference) when I started the talk. Even though I personally thought the talk was pretty boring, people kept trickling in, and I estimate there were about 400 people stuffed in the room by the end. It was standing-room only, and people were spilling out into the hall. The conclusion? The other talks must have been really boring. After my talk it became pretty clear to me that it should have been titled "Rhinos and Tigers", so that's its new name. I've tried to make it flow well by splitting it into arbitrary sub-sections, whose titles aren't really part of the talk. But otherwise it'

## XEmacs is Dead. Long Live XEmacs!

DevFeed: [XEmacs is Dead. Long Live XEmacs!](<https://devfeed.tech/articles/xemacs-is-dead-long-live-xemacs-38757.md>)

Original publisher: [Read original article](<https://steve-yegge.blogspot.com/2008/04/xemacs-is-dead-long-live-xemacs.html>)

Author: Steve Yegge (noreply@blogger.com)

Published: 2008-04-28T11:01:00Z

Content type: opinion

Language: en

Sources: [Steve Yegge](<https://devfeed.tech/sources/steve-yegge.md>)

Topics: [Emacs](<https://devfeed.tech/topics/emacs.md>), [Lisp](<https://devfeed.tech/topics/lisp.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [emacs](<https://devfeed.tech/tags/emacs.md>), [emacs-lisp](<https://devfeed.tech/tags/emacs-lisp.md>), [fork](<https://devfeed.tech/tags/fork.md>), [open-source](<https://devfeed.tech/tags/open-source.md>)

### AI overview

The article reflects on XEmacs, its origins as a fork of the GNU Emacs codebase, and the historical split between XEmacs and FSF Emacs. It argues that discontinuing XEmacs was the right decision at that time.

### Source excerpt

"We're going to get lynched, aren't we?" -- Phouchg And you thought I'd given up on controversial blogs. Hah! Preamble This must be said: Jamie Zawinski is a hero. A living legend. A major powerhouse programmer who, among his many other accomplishments, wrote the original Netscape Navigator and the original XEmacs. A guy who can use the term "downward funargs" and then glare at you just daring you to ask him to explain it, you cretin. A dude with arguably the best cat-picture blog ever created. I've never met him, but I've been in awe of his work since 1993-ish, a time when I was still wearing programming diapers and needing them changed about every 3 hours. Let's see... that would be 15 years ago. I've been slaving away to become a better programmer for fifteen years, and I'm still not as good -- nowhere near as good, mind you -- as he was then. I still marvel at his work, and his shocking writing style, when I'm grubbing around in the guts of the Emacs-Lisp byte-compiler. It makes you wonder how many of him there are out there. You know, programmers at that level. He can't be the only one. What do you suppose they're all working on? Or do they all eventually make 25th level and opt for divine ascension? In any case, I'm sad that I have to write the obit on one of his greater achievements. Sorry, man. Keep up the cat blog. Forking XEmacs I have to include a teeny history lesson. Bear with me. It's short. XEmacs was a fork of the GNU Emacs codebase, created about 17 years ago by a famous-ish startup called Lucid Inc., which, alas, went Tango Uniform circa 1994. As far as I know, their two big software legacies still extant are a Lisp environment now sold by LispWorks, and XEmacs. I'd also count among their legacies an absolutely outstanding collection of software essays called Patterns of Software, by Lucid's founder, Richard P. Gabriel. I go back and re-read them every year or so. They're that good. Back when XEmacs was forked, there were some fireworks. Nothing we ha