<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>Hysterical Raisins</title><link>http://www.hystericalraisins.net/</link><description>It's For Hysterical Raisins</description><language>en-us</language><item><title>Automagically-translating chat thingy</title><link>http://www.hystericalraisins.net/entry/automagically-translating-chat-thingy/</link><description>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;Usually, I have to communicate with the people in the building's management office via Google Translate.  It works, but it's awfully painful to be constantly flipping the language drop-downs back and forth.  (It's two drop-downs, one for source and one for target language.)&lt;/p&gt;
&lt;p&gt;So I wrote a little javascript gadget that does the hard work for me, and also keeps a “log” of the conversation.  You can peruse it at &lt;a class="reference external" href="http://lalomartins.info/transchat.html"&gt;http://lalomartins.info/transchat.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(Attention though: this is &lt;strong&gt;not&lt;/strong&gt; a chat app, not in the modern sense.  It's “chat” in the old-school sense, of actually talking to a person that's in front of you.  It's... an interpreter widget, not a chatbox :-)  enjoy and spread if you wish...)&lt;/p&gt;
&lt;/div&gt;</description><author>lalo</author><pubDate>Fri, 19 Dec 2008 20:23:00 +0800</pubDate><guid>http://www.hystericalraisins.net/entry/automagically-translating-chat-thingy/</guid><category>china</category><category>hacking</category><category>web</category></item><item><title>kill -FKOFFDAMMIT 25208</title><link>http://www.hystericalraisins.net/entry/kill--fkoffdammit-25208/</link><description>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;You know, we (Unix-y people) need a new signal, stronger than SIGKILL.  As
satisfying as it can be to type “killall -KILL firefox” (we just &lt;em&gt;know&lt;/em&gt;
that's the actual reason you still love the command line), there are a number
of situations where that will still not get rid of the damn process; for
example, if it's in the middle of some syscalls, specially nfs (grr!) or
swapping (which is precisely when you &lt;em&gt;need&lt;/em&gt; to kill it).  So I'd like to
propose a new signal which, let's say, waits for half a second, and if the
process really doesn't respond, then gets rid of it for good, regardless of
what else it was doing.  In the middle of your quality toilet time, with
pants down and all?  Who cares, just get out.  (If the process does respond,
then I suppose do a -TERM... or rather, the other way around; send a -TERM,
wait half a second, and if nothing seems to be happening, then bring out the
ultraviolence?)&lt;/p&gt;
&lt;p&gt;Here's a list of suggested names for the new signal.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;SIGFKOFFDAMMIT&lt;/li&gt;
&lt;li&gt;SIGKTHXBYE&lt;/li&gt;
&lt;li&gt;SIGWITHCRUELTY&lt;/li&gt;
&lt;li&gt;SIGNUKE&lt;/li&gt;
&lt;li&gt;SIGLEAVENOTRACE&lt;/li&gt;
&lt;li&gt;SIGCAPISCE&lt;/li&gt;
&lt;li&gt;SIGNOSRSLY&lt;/li&gt;
&lt;li&gt;SIGEXTREMEPREJUDICE&lt;/li&gt;
&lt;li&gt;SIGGETTHEHELLOUTOFOURGALAXY&lt;/li&gt;
&lt;li&gt;SIGCHUCKNORRIS&lt;/li&gt;
&lt;li&gt;SIGEXTRACRISPY&lt;/li&gt;
&lt;li&gt;SIGHULKSMASH&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;and my personal favourite:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;SIGGOBACKINTIMEANDSTRANGLEITINTHECRIB&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description><author>lalo</author><pubDate>Sun, 09 Nov 2008 05:23:00 +0800</pubDate><guid>http://www.hystericalraisins.net/entry/kill--fkoffdammit-25208/</guid><category>computers</category></item><item><title>XML considered harmful, or, &lt;arghdiediedie/&gt;</title><link>http://www.hystericalraisins.net/entry/xml-considered-harmful-or-arghdiediedie/</link><description>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;I have, on a number of occasions, stated that XML is harmful, and should be taken out and shot.  So
here I am today, to explain why I think that, and offer alternatives.&lt;/p&gt;
&lt;div class="section" id="not-good-for-humans"&gt;
&lt;h1&gt;Not good for humans&lt;/h1&gt;
&lt;p&gt;The main problem is, of course, that XML was never intended for humans.  It's not designed so that
we can efficiently write it, read it, understand it at a glance, or maintain it.  But many tools
that use XML today tend to forget that, leading to hours of wasted time and lots of frustration.
(&lt;a class="reference external" href="http://weblion.psu.edu/news/xml-configuration-fail"&gt;XML for configuration files&lt;/a&gt;, anyone?  Zope's ZCML and .Net's configs and all those Java
frameworks?)&lt;/p&gt;
&lt;p&gt;Then, of course, that's not XML's fault; it was never designed to succeed at that task.  The fault
lies with developers who misuse it.  Well, yes and no.  The reason people misuse it is because it's
overhyped; XML is the new peanut butter (or garlic butter, according to Pete Abrams) — adding it
to &lt;em&gt;anything&lt;/em&gt; makes it taste better and sell more.  (I don't even &lt;em&gt;like&lt;/em&gt; peanut butter.)&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="not-good-for-machines"&gt;
&lt;h1&gt;Not good for machines&lt;/h1&gt;
&lt;p&gt;What it &lt;em&gt;was&lt;/em&gt; designed for is communication between programs; an unified, extensible format for
data transmission.  By having libraries to handle it in most languages and environments, you'd make
it easy for developers to deal with it, and as a consequence, to make their programs communicate.&lt;/p&gt;
&lt;p&gt;However, after roughly ten years of working with it, it is my informed opinion that XML fails at
that, too.  I'm not saying it got supplanted by better technology which we invented later.  It did,
to be fair.  But what I'm saying is that it was wrong from the beginning.  And if it's not good for
us and it's not good for our programs, why are we still using it?  (Peanut butter, I know.)&lt;/p&gt;
&lt;p&gt;So let's try to break out of the hype and prove that it's bad for our programs.&lt;/p&gt;
&lt;p&gt;The perceived problem with XML can be summarised in one sentence: XML is costly to parse.  But
that's too superficial; let's go deeper, look at the specifics, and the flaws in philosophy/design
that lead to this perception.&lt;/p&gt;
&lt;div class="section" id="parsing-xml-layers"&gt;
&lt;h2&gt;Parsing XML: layers&lt;/h2&gt;
&lt;p&gt;I usually tell my co-workers that there's two “layers” to parsing XML.  While that is true, it's
only true in the context of our data; if I were to make that statement more generic, I'd say:
there's always &lt;em&gt;at least&lt;/em&gt; two “layers” to parsing XML.&lt;/p&gt;
&lt;p&gt;The first, the “bottom” layer if you want, is &lt;strong&gt;syntactic&lt;/strong&gt; parsing.  This means reading XML
itself: tags, entities, attributes, comments, CDATA, PCDATA, white space, the works.  The input to
syntactic parsing is a string or stream of bytes; the “output” is an API — SAX, DOM, ElementTree,
you name it.&lt;/p&gt;
&lt;p&gt;On the opposite end of the stack, the “top” layer so to speak, is &lt;strong&gt;semantic&lt;/strong&gt; parsing, or
extracting the data you're actually interested in.  The “input” here is a generic API; in the
typical case of two layers, the API from syntactic parsing.  The “output” is a domain-specific API
or, more commonly, a collection of structured data (usually objects, nowadays).&lt;/p&gt;
&lt;p&gt;An example where you may have more than two layers is when you're using something else built on top
of XML; the most common case being feeds.  So at the bottom layer something will parse XML, then
another chunk of code will parse that as RSS or Atom, and then your semantic layer will actually
extract the data.  At work, we initially made our data available as RDF; so we had a second,
“middle” layer (we actually used a JavaScript RDF library) which would parse the RDF, and then we
did our semantic parsing by using the RDF library's API.  That made our code a lot simpler, but it
also made it a lot slower; so we later switched to ignoring the RDF and simply treating it as XML.
(Even later, we switched to a JSON format.)&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="syntactic-parsing-too-much-structure"&gt;
&lt;h2&gt;Syntactic parsing: too much structure&lt;/h2&gt;
&lt;p&gt;Syntactic parsing is what XML is supposedly “all about”; the point being, you don't see it.  In our
case, at work, it's done by the browser (which gives us DOM with a touch of XPath).  In pretty much
any other case, it will still be done by your environment (the browser, in our case; JBoss and .Net
are other examples), or by a standard library.&lt;/p&gt;
&lt;p&gt;Well, that's great, right?&lt;/p&gt;
&lt;p&gt;It is, yeah.  But it hides the fact that those libraries (even if it's “hidden” in the environment,
it's still at some level done by a library) tend to be huge and ridiculously complex.  The XML
syntax is designed to cover an enormous universe of cases that your program will concretely never
encounter, and yet, you have to pay the complexity cost for them.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="semantic-parsing-not-enough-structure"&gt;
&lt;h2&gt;Semantic parsing: not enough structure&lt;/h2&gt;
&lt;p&gt;XML shines on xHTML: a markup language for &lt;em&gt;text&lt;/em&gt;, where you have arbitrary streams of &lt;em&gt;text&lt;/em&gt;
sparkled with special instructions about it.  Some of those “instructions” are really containers,
which have more text and instructions.  XML does that really well.&lt;/p&gt;
&lt;p&gt;It shines a little less on something like SVG, where it represents arbitrary streams of
heterogeneous objects.  Some of those contain other objects, and XML does help there.&lt;/p&gt;
&lt;p&gt;But the truth is that, for representing your program's data?  It probably sucks.  Its model is
very different from the object model of most (all?) popular languages and frameworks today.  In the
end, we find ourselves designing our data structures as many as three times: once in the language
in which we're actually writing it, one in a relational database, and one in XML.  The mappings
between them are often poor, since the semantics of the three models are so poorly matched.&lt;/p&gt;
&lt;p&gt;Sadly, it would be relatively trivial to pick a lowest-common-denominator model that would fit all
of today's popular languages.  But XML didn't even try.&lt;/p&gt;
&lt;p&gt;That's not the whole of my objection, though.  Due to the MASSIVE FAIL in the syntactic layer, we
get a semantic layer that's only marginally simpler than it would be to parse a &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Domain-specific_language"&gt;DSL&lt;/a&gt;
(domain-specific language); maybe less simple, if you use a good library for your &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Domain-specific_language"&gt;DSL&lt;/a&gt;.  There are
about half a dozen XML APIs in wide use; smart people are frequently getting annoyed at the ones
already there and coming up with a new, better one.  And although a modern offering like, say,
ElementTree can be light-years ahead of SAX or DOM, it can't help being clumsy and feeling
unnatural to the language; at the bottom line, what it's doing is dressing up a rotting corpse.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="conclusion"&gt;
&lt;h1&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;Here's a better phrasing then, for the problem of XML as I see it:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;XML has too much structure where it doesn't help, and not enough where it matters.&lt;/strong&gt;  One of the
reasons I love JSON is that it's not designed to mark-up text, or to transfer “streams of data”;
it's designed to transfer &lt;em&gt;objects&lt;/em&gt; (JSON means “JavaScript &lt;em&gt;Object&lt;/em&gt; Notation”), which means it
maps nicely to my code on both ends, whether that code is JavaScript, Python, C++, or even C.  (It
maps nicely to Java as well, but who cares.)&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="alternatives-existing-and-ideal"&gt;
&lt;h1&gt;Alternatives (existing and ideal)&lt;/h1&gt;
&lt;p&gt;Right now, for real-life code, most places where you're using (or thinking of using) XML would
probably be better served with JSON.  A few more complex cases may justify a &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Domain-specific_language"&gt;DSL&lt;/a&gt;, but I would
hesitate a lot before going down that route.&lt;/p&gt;
&lt;p&gt;Ideally, I'd like to propose a new format; an “active” derivative of JSON, inspired by the modern
practise of “JSON with callback”.  Essentially, I'd like to replace JSON's “flat” object notation
(&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;{'attr1':&lt;/span&gt; &lt;span class="pre"&gt;'value',&lt;/span&gt; &lt;span class="pre"&gt;'attr2':&lt;/span&gt; &lt;span class="pre"&gt;'value'}&lt;/span&gt;&lt;/tt&gt;) with something which looks like a Python constructor
(&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;MyClass(attr1='value',&lt;/span&gt; &lt;span class="pre"&gt;attr2='value')&lt;/span&gt;&lt;/tt&gt;).  The pseudo-classes (or pseudo-functions if you're
looking at it from C) would play the role that tag names play in XML elements, which would make it
even more straightforward to map this data to actual objects on each end.&lt;/p&gt;
&lt;p&gt;This would, of course, lose the benefit that “JSON with callback” can simply be executed in a
browser.  But then again, “JSON with callback” is not formally correct JSON anyway, so we already
sacrificed some portability for that ability.  “Real” JSON is usually converted to “JSON with
callback” by a simple routine on the server side.  A similar transformation could convert the
format I'm proposing into JavaScript; the fragment above would become: &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;MyClass({attr1:&lt;/span&gt; &lt;span class="pre"&gt;'value',&lt;/span&gt;
&lt;span class="pre"&gt;attr2:&lt;/span&gt; &lt;span class="pre"&gt;'value'})&lt;/span&gt;&lt;/tt&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description><author>lalo</author><pubDate>Sat, 25 Oct 2008 15:37:00 +0800</pubDate><guid>http://www.hystericalraisins.net/entry/xml-considered-harmful-or-arghdiediedie/</guid><category>computers</category><category>hacking</category><category>opinion</category><category>web</category></item><item><title>Review: Sanctuary</title><link>http://www.hystericalraisins.net/entry/review-sanctuary/</link><description>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;This weekend I watched the first double-episode of &lt;em&gt;Sanctuary&lt;/em&gt;, the new series in the Sci-Fi Channel.  If you're a self-respecting sci-fi geek, you probably know that Sanctuary was created by one actor, one writer, and one producer of Stargate: SG-1, and that it started off as a web-based series.  The double-episode is, in fact, the first “season” of the web series, with the tiniest bit of re-shooting and, dare I say it?, “re-post-production”.&lt;/p&gt;
&lt;p&gt;The writing isn't bad, the acting is decent (great in some cases, but unfortunately not the lead), and the special effects are pretty good.&lt;/p&gt;
&lt;p&gt;Still, I give it a “FAIL”.  Sorry, but it's just not interesting.  There's nothing new, there's nothing that happens there to keep me interested.  Supernatural creatures living in secret in our world?  Yawn, that was cool in the early 90s.  What, so the big secret of the “mysterious” Doctor Magnus is &lt;em&gt;that&lt;/em&gt;?  Sorry, that was already old in the early 90s when the rest of the premise was cool.  Also, you just ruined the “mysterious” part by revealing it so soon.&lt;/p&gt;
&lt;p&gt;It's also too slow on the first half, lots of talking heads and little plot progress, with the second half having too much action and little plot progress.  In fact, plot progress tends to happen in “bursts”, which is, sorry, not good at all.&lt;/p&gt;
&lt;p&gt;Good try, but I won't be coming back for the next one.&lt;/p&gt;
&lt;/div&gt;</description><author>lalo</author><pubDate>Mon, 06 Oct 2008 23:23:00 +0800</pubDate><guid>http://www.hystericalraisins.net/entry/review-sanctuary/</guid><category>sci-fi</category></item><item><title>Freedom for Whom?</title><link>http://www.hystericalraisins.net/entry/freedom-for-whom/</link><description>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;I think I've seen this argument for the first time in a Slashdot comment, years ago.  I've since
adopted it, refined it, and used it a lot myself; but now in light of the &lt;a class="reference external" href="http://code.google.com/android/"&gt;Android&lt;/a&gt; release, I think
it's worth mentioning again.&lt;/p&gt;
&lt;p&gt;The big problem I see with “Open Source” is that there are, in fact, two groups there.  Fortunately
the same is &lt;em&gt;not&lt;/em&gt; true of Free Software, but even our arguing that it's about freedom still doesn't
help... well, read on.&lt;/p&gt;
&lt;p&gt;The thing with “Open Source” is: who is it open &lt;em&gt;to&lt;/em&gt;?&lt;/p&gt;
&lt;p&gt;Arguably, Open Source, as a vague, undefined thing, has existed for decades.  But as a conscious,
named movement with its own marketing, it spun off from the Free Software movement in the late
1990s, after the “open-sourcing” of Mozilla and the publishing of &lt;a class="reference external" href="http://www.catb.org/esr/writings/cathedral-bazaar/"&gt;The Cathedral and the Bazaar&lt;/a&gt;.
(Or, according to some, it spun off a few weeks later, when RMS noticed those guys were talking
about something else and split off from the Open Source initiative.)  Still, in hindsight, one can
say things like the BSDs, and even the original Unix, were done more in the spirit of Open Source
than of Free Software.&lt;/p&gt;
&lt;p&gt;Now Free Software, with all its GNU/FSF writings, has always been very clear about its goals.
We're here for the freedoms of the &lt;em&gt;user&lt;/em&gt;.  If you get a piece of software, you have a bunch of
inalienable rights, rights that aren't being respected by most software, and which we intend to
uphold and defend.  Nice, eh?&lt;/p&gt;
&lt;p&gt;Open Source people, on the other hand, seem to be a little confused about this.  It's like watching
two madmen (or drunks) arguing, each founding an argument on an entirely different premise.  Some,
perhaps still in touch with the “origins” of Open Source in the 90s, believe it's about being
“open” to the users of the software.  Others have adopted the belief (from BSD maybe?) that it's
all about “openness” to the developers.&lt;/p&gt;
&lt;p&gt;(More importantly, some of them don't realise &lt;a class="reference external" href="http://www.hystericalraisins.net/entry/it-depends-on-what-results-youre-trying-to-achieve"&gt;Free Software ≠ Open Source&lt;/a&gt;, and mistakenly argue
this in even more confusing terms; like the old fallacy that the GPL, and viral licenses in
general, are bad for Free Software because they give “less freedom” than BSD-style licenses.  They
do, if you're thinking of other developers, who will then have the “freedom” to “steal” my software
and use it in their own closed software, and not give back to the project in any way.  I don't care
the least about those; I'm writing software for the freedom of my &lt;em&gt;users&lt;/em&gt;, and those have their
freedoms enforced by a viral license.  Now are viral licenses bad for Open Source?  Honestly, I
couldn't care less.)&lt;/p&gt;
&lt;p&gt;The Android platform seems to be firmly planted in the latter camp, sadly.  (Or maybe not so sadly;
I rejoice with every Java-based product that fails.)  It's “open”, first and foremost, for handset
makers and network operators, and a distant second, to application developers.  “Openness” for the
end-user doesn't seem to even be a consideration.  Now of course, both things are pretty much
incompatible; being “open” to the operators means, really, “open” for them to “close” it in
whatever ways they want; so yeah, no VOIP.&lt;/p&gt;
&lt;p&gt;Oh well.  At least I don't need to be conflicted about whether I want an Android device, whether I
can stand Java long enough to actually like the OS.  Clearly, that won't be a consideration, and
&lt;a class="reference external" href="http://wiki.openmoko.org/"&gt;OpenMoko&lt;/a&gt; — or, if they fail, someone else, probably using &lt;a class="reference external" href="http://www.limofoundation.org/"&gt;LiMo&lt;/a&gt; or &lt;a class="reference external" href="http://www.freesmartphone.org/"&gt;FSO&lt;/a&gt; stacks — will be the
mobile phone for me.  Eventually :-)&lt;/p&gt;
&lt;/div&gt;</description><author>lalo</author><pubDate>Wed, 24 Sep 2008 16:50:00 +0800</pubDate><guid>http://www.hystericalraisins.net/entry/freedom-for-whom/</guid><category>free-software</category><category>opinion</category></item><item><title>Creationists, I feel your plight</title><link>http://www.hystericalraisins.net/entry/creationists-i-feel-your-plight/</link><description>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;You know what... I do understand and respect a family's right to believe any idiotic nonsense they want to.  Who knows; it's a seriously messed up universe we live in, they could even be &lt;em&gt;right&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;But whether or not they're &lt;em&gt;factually&lt;/em&gt; right is not what matters most in my book (which is not a holy book).  Rather... their theories are grounded in a larger belief system, which has at its core a moral and ethical code.  Telling the children in absolute terms that their parents beliefs are wrong, understandably, undermines the whole system, which in turn undermines the code.&lt;/p&gt;
&lt;p&gt;(I'm not saying American creationists have a great code.  Those are often the same people who are racists, xenophobes, or quick to judge someone by the bank account.  But it's built on a good stem of what Americans call &amp;quot;work ethic&amp;quot;, and arguably, it's better than no code at all.)&lt;/p&gt;
&lt;p&gt;At the root of the argument is, in fact, a completely different wrong, which is the one I actually wanted to address in this post.  The problem actually does lie with the (majority of) science teachers, who fall for the trap I call &amp;quot;the religion of science&amp;quot;.&lt;/p&gt;
&lt;p&gt;Good, respectable scientists almost never talk about facts.  A fact, or rather an absolute rule, is anathema to good science; the only facts useful to scientists are the results of their experiments, everything else is theory.&lt;/p&gt;
&lt;p&gt;What about bad scientists?  Oh, those are frequently 100% sure of obvious truths, like, &amp;quot;the atom is indivisible&amp;quot; and &amp;quot;heat is a fluid&amp;quot; and &amp;quot;there's no such a thing as a memristor&amp;quot;.  (They're particularly eager to label things &amp;quot;impossible&amp;quot;.)&lt;/p&gt;
&lt;p&gt;The pattern here is: an open mind is the first pre-requisite for science, even more important than genius.&lt;/p&gt;
&lt;p&gt;But in school -- and not only America, but many other places -- you only start hearing this kind of talk in college, or if you're really lucky, high school.  Basic science, the teachers who were supposed to be giving children the basics of science and awakening potential future scientists, generally fall for &amp;quot;the religion of science&amp;quot;.  They &amp;quot;teach&amp;quot; absolutes; this is so, because that is so.  Which is specially funny since some things they teach in basic school are known to be untrue, like Newtonian physics.&lt;/p&gt;
&lt;p&gt;We wouldn't be even having this argument if school science teachers could behave like good scientists and formulate their teachings like, &amp;quot;evidence suggests that...&amp;quot; and &amp;quot;it is believed that...&amp;quot; and &amp;quot;apparently, ...&amp;quot; and, often, &amp;quot;this and that evidence points to the conclusion that...&amp;quot;.&lt;/p&gt;
&lt;p&gt;What, actually teach creationism in schools?  No, now you're pushing it.  Come on, the other parents also have the right to keep &lt;em&gt;their&lt;/em&gt; children safely away from &lt;em&gt;your&lt;/em&gt; nonsensical idiocy.&lt;/p&gt;
&lt;/div&gt;</description><author>lalo</author><pubDate>Mon, 15 Sep 2008 06:46:00 +0800</pubDate><guid>http://www.hystericalraisins.net/entry/creationists-i-feel-your-plight/</guid><category>opinion</category></item><item><title>Spore: Epic Fail</title><link>http://www.hystericalraisins.net/entry/spore-epic-fail/</link><description>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;div class="section" id="on-paying-for-games-pirating-platforms-etc"&gt;
&lt;h1&gt;On paying for games, pirating, platforms, etc&lt;/h1&gt;
&lt;p&gt;Up until last Friday, I was pretty sure I'd be buying Spore shortly after its release.  Of course
I'd play it first to be safe, but based on what I knew, it couldn't go wrong.&lt;/p&gt;
&lt;p&gt;Now, why would I buy &lt;em&gt;any&lt;/em&gt; software at all, if I believe software should be Free, and proprietary
software is morally wrong?  Well, to begin with, there's nothing wrong with buying Free Software;
my first Debian was installed from a CD I bought by mail.  Second, I (still) make an exception for
games, because in my head, the moral/ethic argument for Free Software doesn't hold; games are, as I
see it, a new form of art, and for best enjoyment of it you don't require the ability to change,
fix, and port it.  Now, I still &lt;em&gt;prefer&lt;/em&gt; games to be Free Software, because they still have bugs
and they still have to be ported — if Spore was Free, I'd buy it despite everything I'm writing in
the rest of this article.  But no, they don't &lt;em&gt;have&lt;/em&gt; to be Free, not in the same way that something
critical for me such as my web server or desktop environment needs to be Free so I can fix it.&lt;/p&gt;
&lt;p&gt;That said, I never buy Windows games.  My OS &lt;em&gt;does&lt;/em&gt; need to be Free, and therefore I don't run
Windows, and I'm not installing it for a game.  I can has a GNU/Linux version plz?  Failing that, I
do buy Wii games (even though the Wii is Eva's), and since I wasn't following the news too closely,
I thought I'd be buying Wii Spore about now.  But no; Wii Spore doesn't even have a release date
yet.  (Oh, and the DS port, which I also planned to buy, is only Creature.  No thanks.)&lt;/p&gt;
&lt;p&gt;Still, I wanted to try it out.  So thanks to someone who does (still) run Windows and did download
the cracked version of the game, I played it a few times — a total of about 30 hours now, alone and
with Eva, and through all stages.  What did I find?&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="a-pack-of-mini-games"&gt;
&lt;h1&gt;A pack of mini-games&lt;/h1&gt;
&lt;p&gt;I've seen a number of Wii products that pose (and sell) as a game, but are actually a pack of
mini-games.  Usually some are fun, some aren't, and none will entertain you for more than a
few minutes.&lt;/p&gt;
&lt;p&gt;Spore feels like that.  Each of the five games — yeah, I'm going to call them what they are, not
“stages”, because they're hardly even connected — could have benefited from more development.  The
whole thing doesn't fit together so much.&lt;/p&gt;
&lt;p&gt;For example: you'd think spending a lot of effort in the Creature game to make your species fast,
lethal, and possibly flying would give you a big advantage in the Tribe game, right?  Well, it
doesn't.  Having more life helps, but everything else barely makes a difference.  Then you go to
Civilisation, and wow, now it doesn't make a difference at all; it's straight to trash.  You'd
think a flying species would have different cities at least?  Yeah, only if you design them that
way.  The fact that walls are entirely pointless isn't even considered by the game.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="cell-and-civilisation"&gt;
&lt;h1&gt;Cell and Civilisation&lt;/h1&gt;
&lt;p&gt;I'll get those two out of the way first, because it should be quick.&lt;/p&gt;
&lt;p&gt;How can I best put this... well... one word says it all:  &lt;em&gt;YAWN&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Swimming around in 2-d eating things?  Really?  People spend time doing that?  And &lt;em&gt;pay&lt;/em&gt; for it?  I
don't think so, sorry.&lt;/p&gt;
&lt;p&gt;(BTW, the fact that the iPhone port is only the Cell game, in all its boring glory — and on the
iPhone, one of the hottest gaming platforms of the moment — yells FAIL at me.)&lt;/p&gt;
&lt;p&gt;Now Civilisation.  Yeah I &lt;a class="reference external" href="http://www.freeciv.org"&gt;played this already&lt;/a&gt;, in a number of incarnations, all better.  Please
go away now, KTHXBYE.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="tribe"&gt;
&lt;h1&gt;Tribe&lt;/h1&gt;
&lt;p&gt;This is, of course, an RTS.  But different from Civilisation, a simplified RTS is actually a good
thing, maybe.  I usually don't have patience for the genre because there's too much complexity, and
it usually boils down to knowing the trees backwards and clicking insanely fast.  Tribe actually
works.  It's moderately fun to play, and if you actually did play from Creature to Tribe, it gives
you a minor fuzzy to see your species walking around, fighting, dancing, and chatting.&lt;/p&gt;
&lt;p&gt;The game is, however, not compelling.  You get to it from Creature, you play it, you enjoy it.  But
I don't imagine myself ever launching Spore to play Tribe.  I don't imagine myself ever wanting to
play this, or even remembering it exists unless I'm having a Spore conversation.  (And possibly
even then.)&lt;/p&gt;
&lt;p&gt;I do appreciate casual gaming.  I play a lot of &lt;a class="reference external" href="http://www.gamespot.com/wii/sports/familyski/"&gt;We Ski&lt;/a&gt;, and the reason I do is that each time I
do, I can spend 5 minutes or 5 hours, my choice.  &lt;em&gt;However&lt;/em&gt;, it's essential to the success of a
casual game that, if I do choose to spend 5 hours, I won't be bored to death.  We Ski accomplishes
that by having all the fun little mini-quests, by unlocking new wardrobe, and by having a bunch of
different things to do (slalom, moguls — which I haven't mastered yet, air tricks, cruising and
appreciating the scenery, or just going really fast).  Tribe... I can't imagine playing it for too
long.  In fact, the one time I played it, I was already bored by the time it was over; it was the
only game I didn't stick around in after I had unlocked the next one.&lt;/p&gt;
&lt;p&gt;Now, different than all others, I have no idea &lt;em&gt;why&lt;/em&gt; Tribe doesn't work.  It just doesn't.  Maybe
it's not that it has a reason to fail, but that it doesn't have any reason to win.  Hunting wild
animals?  Yeah, well, that's what Creature was about, no?  Killing or converting rival tribes?
Again, nothing new there... in fact, it plays as a simpler, less interesting version of Creature,
only with a larger pack; which is really bad since at this point, you just finished a game of
Creature.&lt;/p&gt;
&lt;p&gt;And speaking of which...&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="creature"&gt;
&lt;h1&gt;Creature&lt;/h1&gt;
&lt;p&gt;This one is entertaining enough.  Enough to pay for it?  Well, maybe not.  But close.&lt;/p&gt;
&lt;p&gt;It certainly appeals to me personally to wander around the continent exploring; I always liked to
do this in many different kinds of games.&lt;/p&gt;
&lt;p&gt;Customising your creature again and again is fun.&lt;/p&gt;
&lt;p&gt;But fighting or impressing other creatures is only fun for the first few hours.  And again, I don't
mean in a casual gaming way, as in a few hours each time.  No; after a few hours, you probably
won't ever enjoy it again.  It becomes just a medium to test if your customisations were effective,
and “landmarks” for your exploration of the world (if you're an explorer type like me, otherwise
you won't care).  Oh, and a way to earn DNA and parts.&lt;/p&gt;
&lt;p&gt;So essentially, the game is about customising the creature, which requires unlocking parts and
earning DNA; and for a segment of people, exploring.&lt;/p&gt;
&lt;p&gt;This already smells a little odd, since I just said the methods of acquiring DNA points gets boring
fast.  So it's really grind grind customise grind grind?&lt;/p&gt;
&lt;p&gt;Then you fall into the major failing of the game.  Here it is, brace yourself: customisation is
mostly fake.&lt;/p&gt;
&lt;p&gt;It's a race to get the parts that give score 5 for whatever moves you want.  Which ones you'll get,
what shape you make them, and where you stick them, is not at all important.  Items with no score
(ears, noses, antennae, and extra eyes apart from the mandatory one or pair) are pure decoration.
Painting is completely cosmetic.  Body shape doesn't matter at all.  Scores don't add up, so an
item with Dance 2 and one with Dance 3 mean you have Dance 3 and a superfluous body part.&lt;/p&gt;
&lt;p&gt;Sprinting and speed are useful to catch prey (if you're aggressive) or run away from predators (if
you're social).  Flying and jumping don't really seem to make a difference.  (I still get them
anyway because they make exploring &lt;em&gt;slightly&lt;/em&gt; faster, by jumping over chasms and whatnot.)&lt;/p&gt;
&lt;p&gt;What, you don't believe me?  Still think you have to design your creature reasonably, in order for
it to survive?  Ok then.  Witness the Thingy.  This lovely (!?!) omnivore has conquered the hearts
of almost all species in planet Majig, and evolved sentience.  QED.&lt;/p&gt;
&lt;div class="figure"&gt;
&lt;img alt="The Thingy from planet Majig" src="http://www.hystericalraisins.net/media/img/blog/spore-thingy.png" style="width: 505px; height: 454px;" /&gt;
&lt;p class="caption"&gt;Free candy if you can identify the parts I used.  Heck, I challenge you to even figure out which
side is the &amp;quot;front&amp;quot;.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;(Why yes.  I did go for the less viable thing I could design.  And sorry if you have nightmares
with this thing.)&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="space"&gt;
&lt;h1&gt;Space&lt;/h1&gt;
&lt;p&gt;Finally, the most enjoyable game in the pack.&lt;/p&gt;
&lt;p&gt;Again, it falls in the &lt;a class="reference external" href="http://vegastrike.sourceforge.net/"&gt;already played this&lt;/a&gt; trap, if only partially.  The terraforming part is
fun, but you can't play it much, because it's expensive and you need money... so lots of boring
other things to do in order to get money.&lt;/p&gt;
&lt;p&gt;Although my civilisation (the Caffeine from planet Capuccino) was aggressive, I started out playing
peacefully, as it wasn't readily apparent how I could possibly do otherwise.  Only later I found
that out, but too late — now the enemies are much stronger than me.  I wonder if I'd have enjoyed
the game more if I had from the beginning played the Caffeine as the aggressive bastards I know
they are deep down, and conquered those whiny neighbours instead of establishing trade routes.&lt;/p&gt;
&lt;p&gt;(I'm sorry, did I say that out loud?)&lt;/p&gt;
&lt;p&gt;Now this is a game where I see some potential.  There's pretty much always more stuff to discover,
and contrary to other similar games (like Elite and Vega Strike), you don't get bogged down in the
details of actually piloting the ship.  (Which, don't get me wrong, are actually fun in Elite and
Vega Strike, but a little too difficult, and it does get old.)  Maybe one of the reasons I played
the Caffeine as traders for so long is that I'm actually enjoying figuring out planets that will
pay decently for each colour of spice.&lt;/p&gt;
&lt;p&gt;(Perhaps I'll try playing with the Thingies once.  I'm sure they'll either scare the aliens to
death, or confuse them to inaction.  But if I run across one of those species that follow the Books
of Order, they'll probably wipe me out at first sight, on principle.)&lt;/p&gt;
&lt;p&gt;It does help you enjoy the game once you realise you don't &lt;em&gt;have&lt;/em&gt; to respond to all the stupid
distress calls.  No, the pirates are &lt;em&gt;not&lt;/em&gt; going to conquer your planet.  That also makes the game
slightly less involving, but I suppose it's an acceptable tradeoff.&lt;/p&gt;
&lt;p&gt;Do I find any serious fault with the Space game?  Well, like many others, there's a bit of a
tutorial track, constantly limiting what you can do in the first few minutes, even if you've
already played this game dozens of times.  (I'm guessing here, as I only played twice, but if the
tutorials haven't disappeared on the second time, they wouldn't disappear on the 30th, right?)&lt;/p&gt;
&lt;p&gt;And once more, it's a bit disappointing that everything else I did before (I mean seriously, I
exterminated every single non-Caffeine species on my continent in Creature, and stomped through
everyone else in Civilisation) doesn't have &lt;em&gt;any&lt;/em&gt; bearing at all on Space.  But I may be repeating
myself here.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="finishing-thoughts"&gt;
&lt;h1&gt;Finishing thoughts&lt;/h1&gt;
&lt;p&gt;As someone else said, it's ridiculous that each of those games have a completely different user
interface, in particular the camera controls.  And there's no control customisation.  Please EA,
you know better!&lt;/p&gt;
&lt;p&gt;Really, I've seen lots of reviews saying it has “innovative gameplay”.  Can someone please point
out where?  I couldn't find it.&lt;/p&gt;
&lt;p&gt;And then there's the stupid, ridiculous DRM.  If you do decide to buy this game-pack despite all
I've said, do yourself a favour: keep the box closed (get only your serial number), and play the
cracked version you can find in a number of places online.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description><author>lalo</author><pubDate>Thu, 11 Sep 2008 01:00:00 +0800</pubDate><guid>http://www.hystericalraisins.net/entry/spore-epic-fail/</guid><category>games</category></item><item><title>New Nintendo portable -- now on IGN</title><link>http://www.hystericalraisins.net/entry/new-nintendo-portable----now-on-ign/</link><description>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;One more to agree with me :-) &lt;a class="reference external" href="http://gear.ign.com/articles/907/907463p1.html?RSSwhen2008-09-04_103600&amp;amp;RSSid=907463"&gt;http://gear.ign.com/articles/907/907463p1.html?RSSwhen2008-09-04_103600&amp;amp;RSSid=907463&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;</description><author>lalo</author><pubDate>Fri, 05 Sep 2008 06:06:00 +0800</pubDate><guid>http://www.hystericalraisins.net/entry/new-nintendo-portable----now-on-ign/</guid><category>games</category></item><item><title>Nintendo's next portable should be around soon</title><link>http://www.hystericalraisins.net/entry/nintendos-next-portable-should-be-around-soon/</link><description>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;The &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Nintendo_DS"&gt;Nintendo DS&lt;/a&gt; came out in 2004; the &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Game_Boy_Advance"&gt;GBA&lt;/a&gt;, in 2001; the &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Game_Boy_Color"&gt;GBC&lt;/a&gt;, in
98.  See a pattern?  The next Nintendo portable should be around any
time.  My guess is, it probably was already designed by late last
year, and they aborted the whole process, to incorporate what they
learned from the &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Wii"&gt;Wii&lt;/a&gt;, and hopefully the &lt;a class="reference external" href="http://en.wikipedia.org/wiki/IPhone_OS#User_interface"&gt;iPhone&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here is what I predict it will look like, in no particular order — I'm
privately calling it the “Nintendo DT”.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Two screens, like the DS, but both &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Multi-touch"&gt;multi-touch&lt;/a&gt;, either 512x320 (more
likely — that's “computer widescreen”, 16x10) or 512x288 (“true”
widescreen, 16x9, might be chosen in order to make the device just
that little bit narrower).&lt;/li&gt;
&lt;li&gt;No physical buttons, except for power, and possibly L/R.  All
controls are via touchscreen (and &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Wii_Remote#Sensing"&gt;accelerometers&lt;/a&gt;).  Or maybe it's
too early for that, since &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Haptic"&gt;haptic&lt;/a&gt; tactition emulation isn't usable
yet; in that case it may keep controls similar to the DS Lite,
making the bottom screen smaller (4x3 — 384x288).  Possibly an
analog nub.  Two, if they really really feel like one-upping &lt;a class="reference external" href="http://en.wikipedia.org/wiki/PlayStation_Portable"&gt;Sony&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Video codecs and player built-in so you can watch your movies on the
go (a must with the widescreen).&lt;/li&gt;
&lt;li&gt;Camera either built-in or sold as an add-on.&lt;/li&gt;
&lt;li&gt;Probably no stylus at all.&lt;/li&gt;
&lt;li&gt;Definitely no GBA compatibility.  (But the homebrew scene will have
an emulator — &lt;a class="reference external" href="http://en.wikipedia.org/wiki/VisualBoyAdvance"&gt;VBA&lt;/a&gt; probably — up in weeks.)&lt;/li&gt;
&lt;li&gt;Better Wi-Fi; at least &lt;a class="reference external" href="http://en.wikipedia.org/wiki/IEEE_802.11n"&gt;802.11n&lt;/a&gt;.  And &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Bluetooth"&gt;Bluetooth&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Browser built-in.&lt;/li&gt;
&lt;li&gt;More built-in storage, maybe an &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Solid-state_drive"&gt;SSD&lt;/a&gt; or even HD (hope not); &lt;a class="reference external" href="http://en.wikipedia.org/wiki/WiiWare"&gt;WiiWare&lt;/a&gt;
is making a lot of money, and for watching movies you'll need space
too.  Maybe an &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Secure_Digital_card"&gt;SD&lt;/a&gt; or MicroSD slot?&lt;/li&gt;
&lt;li&gt;Maybe music player software built-in as well.  (Can anyone say
MarioPod?  Or is it PokéPod?)&lt;/li&gt;
&lt;li&gt;I wouldn't be too surprised if it uses &lt;a class="reference external" href="http://en.wikipedia.org/wiki/ARM_architecture"&gt;Cortex&lt;/a&gt; CPUs.&lt;/li&gt;
&lt;li&gt;“Slave mode” where it basically becomes a souped-up controller (with
extra display area) for the Wii.  Hacked in two or three months to
become a “slave” to a Linux machine; practical application for the
hack doesn't arrive for a long time, if ever.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Oh, and I'll probably buy one, install some Free Software, and use it
as my “netbook”.  Sounds great for media and writing on the go ;-)
Unless, of course, the &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Pandora_(console)"&gt;Pandora&lt;/a&gt; arrives first...&lt;/p&gt;
&lt;/div&gt;</description><author>lalo</author><pubDate>Fri, 15 Aug 2008 11:58:00 +0800</pubDate><guid>http://www.hystericalraisins.net/entry/nintendos-next-portable-should-be-around-soon/</guid><category>games</category></item><item><title>Olympics (and other sport nonsense) considered harmful</title><link>http://www.hystericalraisins.net/entry/olympics-and-other-sport-nonsense-considered-harmful/</link><description>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;People who know me are often amazed at my lack of interest on sports,
specially during the Olympics.  The question of “why” does arise
occasionally, although not as often as you'd think.  So I figured,
hmm, that's a reasonable topic for a blog post.&lt;/p&gt;
&lt;p&gt;First, I don't like competitive sports.&lt;/p&gt;
&lt;p&gt;The idea of physical activity for fun or pleasure, I can relate to.
You feel exhilarated when you bike, hike, or row up a hill?  Good for
you.&lt;/p&gt;
&lt;p&gt;And the concept of wanting to “improve” your body, stretch your
limits, is to be commended.  I think.&lt;/p&gt;
&lt;p&gt;But competing for the feeling that you're “better” than your (often
arbitrary) “adversary”, on account of some extremely abstract, and
usually completely pointless accomplishment, like running a ball
through a loop?  That's just ridiculous.  It's understandable, since
it appeals to many of our baser instincts, but it's not the kind of
behaviour I'd encourage.&lt;/p&gt;
&lt;p&gt;In fact, maybe that's the point: encouraging.  Many sports activities
— in fact, generally the most popular ones — are really updated
excuses to engage in many kinds of behaviour we really, really should
be working harder on leaving behind.  I'd even go so far as saying, in
my opinion, the love for sports in our modern culture is one of the
(admittedly many) roots of the predatory, every-man-for-himself
mentality which is perhaps the greatest obstacle to our evolution into
a fairer and, well, more reasonable society.&lt;/p&gt;
&lt;p&gt;And there you go, we segue nicely into the Olympics.  The whole thing
is, as I see it, hugely hypocritical.  Its proponents, like many
supporters of sports all over the world, try to pass it as a symbol of
union and brotherhood; but at the bottom line, it's all about “my”
country getting more medals than yours.  It's not only a barbaric
competitive tribal war, it's also a reinforcement of nationalism,
which is another thing we're overdue getting rid of.&lt;/p&gt;
&lt;p&gt;Feel free, if you want, to invite me for a hike, or biking, golfing,
or even, if I'm in the right mood, a baseball game.  But please,
please, don't invite me to watch sports; while I understand and share
the pleasure of &lt;em&gt;doing&lt;/em&gt; it, I really see no point in &lt;em&gt;watching&lt;/em&gt; it.
And above all, don't ask me about the Olympics, unless you really want
to hear how strongly I don't care.&lt;/p&gt;
&lt;/div&gt;</description><author>lalo</author><pubDate>Wed, 13 Aug 2008 23:21:00 +0800</pubDate><guid>http://www.hystericalraisins.net/entry/olympics-and-other-sport-nonsense-considered-harmful/</guid><category>opinion</category></item></channel></rss>