<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>dennogumi.org</title>
	<atom:link href="http://www.dennogumi.org/feed" rel="self" type="application/rss+xml" />
	<link>http://www.dennogumi.org</link>
	<description>On the web since 1999</description>
	<lastBuildDate>Fri, 06 Jan 2012 14:56:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Unexpected Christmas gifts: THE IDOLM@ASTER</title>
		<link>http://www.dennogumi.org/2011/12/unexpected-christmas-gifts-the-idolmaster</link>
		<comments>http://www.dennogumi.org/2011/12/unexpected-christmas-gifts-the-idolmaster#comments</comments>
		<pubDate>Sun, 25 Dec 2011 20:04:26 +0000</pubDate>
		<dc:creator>Einar</dc:creator>
				<category><![CDATA[Anime]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[idolm@aster]]></category>
		<category><![CDATA[ps3]]></category>

		<guid isPermaLink="false">http://www.dennogumi.org/?p=939</guid>
		<description><![CDATA[Sometimes Christmas presents are really unexpected, and today I found out I was given one such gift: the limited edition of THE IDOLM@STER 2, PS3 version. It was quite a bulky box, showing all the main characters from the game &#8230; <a href="http://www.dennogumi.org/2011/12/unexpected-christmas-gifts-the-idolmaster">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Sometimes Christmas presents are really unexpected, and today I found out I was given one such gift: the limited edition of <i>THE IDOLM@STER 2, </i>PS3 version. It was quite a bulky box, showing all the main characters from the game (and from the recently-ended anime) (click to enlarge):
<div></div>
<div style="text-align: center;"><a href="/wp-content/uploads/idolmaster/idolmaster_1_reduced.jpg?cda6c1"><img width="250" height="188" src="http://www.dennogumi.org/wp-content/uploads/2011/12/idolmaster_1.png?cda6c1" title="Side showing Chihaya, Hibiki and Azusa" alt="Side showing Chihaya, Hibiki and Azusa"/></a></div>
<div style="text-align: left;">Of course, having such a box means that there&#8217;s a lot of stuff inside. In fact, once opened, there are two game BDs (one being the actual game, the second being the first volume of <i>Gravure for you!</i>&nbsp;starring Haruka), a soundtrack (no songs, though), a booklet, a number of postcards (mine were showing Iori&#8217;s ending from episode 2 of the TV series), a booklet and also the first BD of the anime version:</div>
<div style="text-align: left;"></div>
<div style="text-align: center;"><a href="/wp-content/uploads/idolmaster/idolmaster_2_reduced.jpg?cda6c1"><img width="250" height="188" title="Pack contents" src="http://www.dennogumi.org/wp-content/uploads/2011/12/idolmaster_2.png?cda6c1"/></a></div>
<div style="text-align: left;">It turns out the BD is also one of the limited editions, with a nice cover and more goodies, including a small booklet and a CD with the songs heard in the episodes:</div>
<div style="text-align: center;"><a href="/wp-content/uploads/idolmaster/idolmaster_3_reduced.jpg?cda6c1"><img width="250" height="188" title="Anime BD contents" src="http://www.dennogumi.org/wp-content/uploads/2011/12/idolmaster_3.png?cda6c1"/></a></div>
<div style="text-align: left;">And here are the postcards:</div>
<div style="text-align: center;"><a href="/wp-content/uploads/idolmaster/idolmaster_4_reduced.jpg?cda6c1"><img width="250" height="188" title="Postcards with Iori" s="" ed'="" src="http://www.dennogumi.org/wp-content/uploads/2011/12/idolmaster_4.png?cda6c1"/></a></div>
<div style="text-align: left;">What about the game itself? Well, I have played it only briefly so far: I know it will be a bit painful to translate since the text is timed (having it stop, like in <i>Neptume mk.2</i>&nbsp;is quite handy if you don&#8217;t catch something at first) and well, kind of different than the games I played so far. Still, in my opinion the various characters make it a worthwhile challenge.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.dennogumi.org/2011/12/unexpected-christmas-gifts-the-idolmaster/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;m honestly surprised&#8230;</title>
		<link>http://www.dennogumi.org/2011/12/im-honestly-surprised</link>
		<comments>http://www.dennogumi.org/2011/12/im-honestly-surprised#comments</comments>
		<pubDate>Wed, 07 Dec 2011 20:49:13 +0000</pubDate>
		<dc:creator>Einar</dc:creator>
				<category><![CDATA[Anime]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[akihabara denno gumi]]></category>

		<guid isPermaLink="false">http://www.dennogumi.org/?p=933</guid>
		<description><![CDATA[By browsing through sites, I noticed that the Spanish site Akihabara Denno Gumi Universe has posted a translation of an interview the webmaster had with me through email.&#160; Here it is (Spanish language). It feels nice to recall some memories &#8230; <a href="http://www.dennogumi.org/2011/12/im-honestly-surprised">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>By browsing through sites, I noticed that the Spanish site <a href="http://dennogumiuniverse.webs.com">Akihabara Denno Gumi Universe</a> has posted a translation of an interview the webmaster had with me through email.&nbsp;
<div><a href="http://dennogumiuniverse.webs.com/espanol/news1.html">Here it is (Spanish language).</a> It feels nice to recall some memories of the past once in a while, especially since I couldn&#8217;t still believe that dennogumi.org had been such a resource back in the days&#8230;</div>
]]></content:encoded>
			<wfw:commentRss>http://www.dennogumi.org/2011/12/im-honestly-surprised/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Screensavers and the KDE Workspaces &#8211; your opinion is needed</title>
		<link>http://www.dennogumi.org/2011/10/screensavers-and-the-kde-workspaces-your-opinion-is-needed</link>
		<comments>http://www.dennogumi.org/2011/10/screensavers-and-the-kde-workspaces-your-opinion-is-needed#comments</comments>
		<pubDate>Sun, 02 Oct 2011 11:26:37 +0000</pubDate>
		<dc:creator>Einar</dc:creator>
				<category><![CDATA[KDE]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[plasma]]></category>
		<category><![CDATA[screensaver]]></category>

		<guid isPermaLink="false">http://www.dennogumi.org/?p=927</guid>
		<description><![CDATA[Recently in the Plasma mailing list, KDE developers have discussed a new screen-locking implementation that could be added to the upcoming 4.8 release of the KDE Workspaces. The first reason to do so was to solve some security constraints of &#8230; <a href="http://www.dennogumi.org/2011/10/screensavers-and-the-kde-workspaces-your-opinion-is-needed">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Recently in the Plasma mailing list, KDE developers have discussed a new screen-locking implementation that could be added to the upcoming 4.8 release of the KDE Workspaces. The first reason to do so was to solve some security constraints of the existing implementation. As an added bonus, screen locking should be also more aestetically pleasing.
<div></div>
<div>There is however a trade-off: such implementation would mean that screensavers that rely on X (also called <i>X screensavers</i>)&nbsp;would not be compatible. The current plan is to have a fallback mechanism if a user has a screen saver configured, and remove the support for X scrensavers entirely by 4.9. It is the intention of the developers to ultimately provide a way to make screensavers with QtQuick (QML) and in a way that they could be shared via GHNS (e.g., places like kde-look.org).&nbsp;</div>
<div></div>
<div>That said, this looks like a large change because existing functionality will change or be removed. Hence, to quote KWin maintainer&#8217;s Martin Graesslin,</div>
<blockquote><p><i>We are not sure how our users would react if we remove the X screen savers and replace them by a new solution. We would like you to contribute and share your opinion. Tell us why you need screen savers and how you would think about if the currently used screen saver could no longer be used.</i></p></blockquote>
<div>And how to gather your opinion? Through a poll. <a href="http://forum.kde.org/viewtopic.php?f=66&amp;t=97102">A poll has been opened in the KDE Community Forums</a> by Martin himself to gather opinions on this upcoming change. Please jump in and let the developers know what you think!</div>
]]></content:encoded>
			<wfw:commentRss>http://www.dennogumi.org/2011/10/screensavers-and-the-kde-workspaces-your-opinion-is-needed/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>PyKDE4: Queries with Nepomuk</title>
		<link>http://www.dennogumi.org/2011/06/pykde4-queries-with-nepomuk</link>
		<comments>http://www.dennogumi.org/2011/06/pykde4-queries-with-nepomuk#comments</comments>
		<pubDate>Wed, 29 Jun 2011 19:27:42 +0000</pubDate>
		<dc:creator>Einar</dc:creator>
				<category><![CDATA[KDE]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[pykde]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.dennogumi.org/?p=924</guid>
		<description><![CDATA[In one of my previous blog posts I dealt with tagging files and resources with Nepomuk. But Nepomuk is not only about storing metadata, it is also about retrieving&#160;and interrogating data. Normally, this would mean querying the metadata database directly, &#8230; <a href="http://www.dennogumi.org/2011/06/pykde4-queries-with-nepomuk">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In one of my previous blog posts I dealt with <a href="http://www.dennogumi.org/2010/10/pykde4-tag-and-annotate-files-using-nepomuk">tagging files and resources with Nepomuk</a>. But Nepomuk is not only about storing metadata, it is also about <i>retrieving</i>&nbsp;and <i>interrogating </i>data. Normally, this would mean querying the metadata database directly, using queries written in SPARQL. But this is not intuitive, can be inefficient (if you do things the wrong way) and error prone (oops, I messed up a parameter!).&nbsp;
<p>Fortunately, the Nepomuk developers have come up with a high level API to query already stored metadata, and today&#8217;s post will deal with querying tags in Nepomuk. As per the past tutorials, the full source code is available <a href="https://projects.kde.org/projects/kde/kdeexamples/repository/revisions/master/changes/bindings/python/nepomuk/nepomuk_tag_query_example.py">in the kdeexamples module</a>.</p>
<p>Let&#8217;s start off with the basic imports:</p>
<pre class="brush: python; title: ; notranslate">
import sys

import PyQt4.QtCore as QtCore

import PyKDE4.kdecore as kdecore
import PyKDE4.kdeui as kdeui
from PyKDE4.kio import KIO
from PyKDE4.nepomuk import Nepomuk
from PyKDE4.soprano import Soprano
</pre>
<p>Then let&#8217;s create a simple class that wil be used for the rest of this exercise:</p>
<pre class="brush: python; title: ; notranslate">
class NepomukTagQueryExample(QtCore.QObject):

    def __init__(self, parent=None):

        super(NepomukTagQueryExample, self).__init__(parent)
</pre>
<p>__init__ is just used to construct the instance, nothing more. The bulk of the work is in the query_tag() function, which we&#8217;ll take a look at in parts.</p>
<pre class="brush: python; title: ; notranslate">
    def query_tag(self, tag):

        &quot;&quot;&quot;Query for a specific tag.&quot;&quot;&quot;

        tag = Nepomuk.Tag(tag)
</pre>
<p>First of all we convert the tag we want to query into a proper Nepomuk.Tag() instance. Of course we should use an already existing tag: even if Nepomuk.Tag() automatically creates new tags, it makes little sense to query for a newly created tag, doesn&#8217;t it?</p>
<p>For our job, we need to use <i>properties</i>&nbsp;which define the terms of our query. As we&#8217;re looking for tags, we&#8217;ll use Soprano.Vocabulary.NAO.hasTag():</p>
<pre class="brush: python; title: ; notranslate">
        soprano_term_uri = Soprano.Vocabulary.NAO.hasTag()
        nepomuk_property = Nepomuk.Types.Property(soprano_term_uri)
</pre>
<p>The first call generates an URI pointing to a specific RDF resource for this specific term, which is then wrapped as a Nepomuk.Types.Property in the second call. While the C++ API docs don&#8217;t show this, I found it to be necessary, or the Python interpreter would raise a TypeError. Notice that this is not the only term we can use: aside for tags, there are a lot of other URIs we can use for querying, <a href="http://api.kde.org/kdesupport-api/kdesupport-apidocs/soprano/html/namespaceSoprano_1_1Vocabulary_1_1NAO.html">listed in the Soprano API docs</a>.</p>
<p>Once we have our property set up, it&#8217;s time to define which kind of query we&#8217;re going to use. In this case, since we want to check for the presence of tags, we use a Nepomuk.Query.ComparisonTerm, which is a query term used to match values of specific properties (in our case, tags):</p>
<pre class="brush: python; title: ; notranslate">
        comparison_term = Nepomuk.Query.ComparisonTerm(nepomuk_property,
                Nepomuk.Query.ResourceTerm(tag))
</pre>
<p>Our tag is wrapped in a ResourceTerm, which is used exactly for the purpose. Now we make the proper query: in this specific case, we want to look up <i>files </i>tagged, so we use a FileQuery. We could also get other items, such as mails (in Akonadi): in that case we could use a a Nepomuk.Query.Query():</p>
<pre class="brush: python; title: ; notranslate">
        query = Nepomuk.Query.FileQuery(comparison_term)
</pre>
<p>Lastly, we want to get some <i>results</i> out of this query. There are different methods, but for this tutorial we&#8217;ll use the tried-and-tested KIO technology:</p>
<pre class="brush: python; title: ; notranslate">
        search_url = query.toSearchUrl()
        search_job = KIO.listDir(kdecore.KUrl(search_url))
        search_job.entries.connect(self.search_slot)
        search_job.result.connect(search_job.entries.disconnect)
</pre>
<p>First we convert the query to a nepomuksearch:// url, which then we pass to KIO.listDir, to list the entries. Unlike <a href="http://www.dennogumi.org/2011/01/pykde4-retrieve-data-using-kio">my previous post on KIO</a>, this job emits entries() every time one is found, so we connect the signal to our search_slot method. We also connect the job&#8217;s result() signal in a way that it will disconnect the job once it&#8217;s over.</p>
<p>Finally, let&#8217;s take a look at the search_slot function:</p>
<pre class="brush: python; title: ; notranslate">
    def search_slot(self, job, data):

        # We may get invalid entries, so skip those
        if not data:
            return

        for item in data:
            print item.stringValue(KIO.UDSEntry.UDS_DISPLAY_NAME)
</pre>
<p>Entries are emitted as <a href="http://api.kde.org/4.x-api/kdelibs-apidocs/kio/html/classKIO_1_1UDSEntry.html">UDSEntries</a>: to get something at least understandable, we turn them into the file name, which is obtained by the stringValue() call using KIO.UDSEntry.UDS_DISPLAY_NAME.</p>
<p>That&#8217;s it. As you can see, it was pretty easy. Of course there&#8217;s more than that. For further reading, take a look at <a href="http://api.kde.org/4.x-api/kdelibs-apidocs/nepomuk/html/namespaceNepomuk_1_1Query.html">Nepomuk&#8217;s Query API docs</a>, and <a href="http://api.kde.org/4.x-api/kdelibs-apidocs/nepomuk/html/examples.html#examples_query">Query Examples</a>. Bear in mind however that to the best of my knowledge, the &#8220;fancy operators&#8221; mentioned there will not work with Python.</p>
<p>Happy Nepomuk querying!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dennogumi.org/2011/06/pykde4-queries-with-nepomuk/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Access multiple Google Calendars from KOrganizer</title>
		<link>http://www.dennogumi.org/2011/06/access-multiple-google-calendars-from-korganizer</link>
		<comments>http://www.dennogumi.org/2011/06/access-multiple-google-calendars-from-korganizer#comments</comments>
		<pubDate>Sat, 11 Jun 2011 10:06:29 +0000</pubDate>
		<dc:creator>Einar</dc:creator>
				<category><![CDATA[KDE]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[akonadi]]></category>
		<category><![CDATA[korganizer]]></category>

		<guid isPermaLink="false">http://www.dennogumi.org/?p=919</guid>
		<description><![CDATA[Recently, a question came up on the KDE Community Forums regarding the use of multiple Google Calendars with KOrganizer. The preferred access up to now has been with googledata Akonadi resource, however that doesn&#8217;t support more than one calendar, and &#8230; <a href="http://www.dennogumi.org/2011/06/access-multiple-google-calendars-from-korganizer">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Recently, a question came up on the KDE Community Forums <a href="http://forum.kde.org/viewtopic.php?f=20&amp;t=91324">regarding the use of multiple Google Calendars with KOrganizer</a>. The preferred access up to now has been with googledata Akonadi resource, however that doesn&#8217;t support more than one calendar, and (at least from my unscientific observation) seems to be rather unmaintained these days.&nbsp;
<div>Luckily, not all&#8217;s lost. Akonadi recently gained the opportunity of accessing CalDAV resources, and Google Calendar also offers a CalDAV interface, hence this is possible.&nbsp;</div>
<div>This post will briefly describe how (thanks go to PIMster krop, which casually mentioned the possibility on IRC and prompted me to investigate).</div>
<p><span id="more-919"></span></p>
<div><b>Notice</b>: I am running trunk (4.7) so I have no idea if the steps posted below are possible in 4.6. Also, this worked for <i>me</i>&nbsp;with my particular setup. YMMV.</div>
<div>First of all, you need to obtain the <i>calendar IDs</i>&nbsp;you want to use. This is done in the web version of Google Organizer, in the settings page of your specific calendar, near the private links: it&#8217;s a string of alphanumeric characters followed by <i>@gmail.com</i>. Copy it in full (even the address part) as you will need it later, and do it for every calendar you want to use.</div>
<div>Next, open KOrganizer, locate the list of the calendars, right click on an emtpy spot and select <i>Add Calendar:</i></div>
<div><i><br /></i></div>
<div style="text-align: center;"><i><img width="299" height="409" src="http://www.dennogumi.org/wp-content/uploads/2011/06/korgtut1.png?cda6c1"/></i></div>
<div><i><br /></i></div>
<div>In the next screen, select &#8220;DAV Groupware resource&#8221;, then a wizard will come up. Fill in username and password (apologies for the language! I haven&#8217;t found a quick way to switch these dialogs to English) and click on Next:</div>
<div></div>
<div></div>
<div style="text-align: center;"><img width="566" height="445" src="http://www.dennogumi.org/wp-content/uploads/2011/06/korgtut2.png?cda6c1"/></div>
<div style="text-align: left;"></div>
<div><i><br /></i></div>
<div>In the following screen, choose <i>Configure the resource manually:</i></div>
<div><i><br /></i></div>
<div style="text-align: center;"><i><img width="566" height="445" src="http://www.dennogumi.org/wp-content/uploads/2011/06/korgtut3.png?cda6c1"/></i></div>
<div><i><br /></i></div>
<div>Click on <i>Finish</i>, but you&#8217;re not finished yet. In fact, we will have to add more stuff here. In the new window, select the display name (here shown as <i>Nome visualizzato</i>)&nbsp; of the calendar, then click on Add (which is translated as <i>Aggiungi</i>&nbsp;in this screen):</div>
<div></div>
<div style="text-align: center;"><img width="446" height="467" src="http://www.dennogumi.org/wp-content/uploads/2011/06/korgtut4.png?cda6c1"/></div>
<div></div>
<div>In the next screen we&#8217;ll have to add what&#8217;s needed for our calendar to work. In <i>Remote URL</i>&nbsp;put <i>https://www.google.com/calendar/dav/YOURCALENDARID/events</i>&nbsp;(https,<b>&nbsp;not</b>&nbsp;http)&nbsp;then put (again) your Google account credentials in the relevant places. Then click on &#8220;Download&#8221; (<i>Scarica</i>&nbsp;here) and you will see (after a while) your Calendar being loaded in the &#8220;Found collections&#8221; pane, with the name you set in Google Calendar. Click OK to save the configuration.&nbsp;</div>
<div></div>
<div style="text-align: center;"><img width="365" height="637" src="http://www.dennogumi.org/wp-content/uploads/2011/06/korgtut5.png?cda6c1"/></div>
<div></div>
<div>This will bring you back to the previous window. For more calendars, repeat the steps (click on Add, insert URL, Download, OK) for all the calendars you have to display.</div>
<div>That&#8217;s it. If you encounter trouble, have a look at ~/.xsession-errors to see whether Akonadi managed to connect and download your existing items correctly. And don&#8217;t forget to <a href="http://bugs.kde.org">file bugs!</a></div>
<div><i><br /></i></div>
<div><i><br /></i></div>
]]></content:encoded>
			<wfw:commentRss>http://www.dennogumi.org/2011/06/access-multiple-google-calendars-from-korganizer/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Multiscale bootstrap clustering with Python and R</title>
		<link>http://www.dennogumi.org/2011/05/multiscale-bootstrap-clustering-with-python-and-r</link>
		<comments>http://www.dennogumi.org/2011/05/multiscale-bootstrap-clustering-with-python-and-r#comments</comments>
		<pubDate>Sun, 29 May 2011 12:11:40 +0000</pubDate>
		<dc:creator>Einar</dc:creator>
				<category><![CDATA[Science]]></category>
		<category><![CDATA[clustering]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.dennogumi.org/?p=906</guid>
		<description><![CDATA[While reading the statistics for my blog, I noticed that a number of searches looked for hierarchical clustering with Python, which I covered quite a while ago. Today I&#8217;d like to present an updated version which uses more robust techniques. &#8230; <a href="http://www.dennogumi.org/2011/05/multiscale-bootstrap-clustering-with-python-and-r">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>While reading the statistics for my blog, I noticed that a number of searches looked for hierarchical clustering with Python, which <a href="http://www.dennogumi.org/2007/11/data-clustering-with-python">I covered quite a while ago</a>. Today I&#8217;d like to present an updated version which uses more robust techniques.</p>
<p><span id="more-906"></span></p>
<h2>Defining the problem</h2>
<p>Since Eisen&#8217;s original paper on clustering, this form of analysis has been widely used by a lot of researchers. However, as it is known, such systems may be susceptible to an ordering bias: in other words, the order of the samples and/or genes might influence the final result. That&#8217;s why popular software such as <a href="http://www.tm4.org/mev/">TMeV</a> offers alternative approaches, based on <i>bootstrapping</i>.&nbsp;</p>
<p>In this specific form of bootstrapping, the samples and/or genes are randomly shuffled a number of times (1000 or more iterations are a good starting point) and the resulting dendrograms checked for consistency and robustness of partitioning. In other words, a p-value is calculated, our null hypothesis being that the arrangement of samples/genes is merely due by chance. Depending on the software, this value might be expressed either in form of p-value or percentage (TMeV calls it <i>support</i>).&nbsp;</p>
<p>In the past years, I found <a href="http://www.is.titech.ac.jp/~shimo/prog/pvclust/">an interesting method developed by Hidetoshi Shimodaira</a>: the technique, called <i>multiscale bootstrap resampling</i>, aims at determining more accurate p-values out of the bootstrapping. Shimodaira calls the resulting p-value an <i>AU</i>&nbsp;value, where AU stands for &#8220;approximately unbiased&#8221;, a more precise p-value than the one obtained through bootstrapping alone.</p>
<p>In addition to this nice algorithm, a R package was also provided, named <i>pvclust </i>(it&#8217;s available on your favorite CRAN mirror). And that&#8217;s exactly what we&#8217;ll use for this exercise.</p>
<h2>Prerequisites</h2>
<p>Some of the readers of this blog might remember my disdain of R: while I need to use it for Bioconductor, I&#8217;m often annoyed by its weird syntax, and difficult to understand error messages. Luckily, thanks to the hard work of Laurent Gautier and contributors, there&#8217;s <a href="http://rpy.sourceforge.net">rpy2</a>, a nice R-to-Python bridge. All the examples here require this package, version 2.1 or newer (I&#8217;d recommend the release candidate of 2.2, it&#8217;s really nice). Unfortunately, this means that Windows users are out of luck as there&#8217;s no version of rpy2 2.1 or 2.2 available for that platform..</p>
<p>Also, don&#8217;t forget to have the pvclust package installed in R.</p>
<h2>Loading and preparing the data</h2>
<div>Let&#8217;s start first by importing the necessary bits:</div>
<div></div>
<div>
<pre class="brush: python; title: ; notranslate">
import rpy2.robjects as robjects
from rpy2.robjects.packages import importr
</pre>
</div>
<div>The second line is important, because it&#8217;ll let us play with R libraries as they were packages. Case in point, we&#8217;ll get the &#8220;base&#8221; and &#8220;pvclust&#8221; libraries loaded:</div>
<pre class="brush: python; title: ; notranslate">
base = importr(&quot;base&quot;)
pvclust = importr(&quot;pvclust&quot;)
</pre>
<div>Now we can manipulate them as if they were modules, and (most) of R&#8217;s dotted functions have been converted to underscores, as the dot is the namespace operator in Python. Example: as.data.frame becomes as_data_frame.&nbsp;</div>
<div>Next, we&#8217;ll load the data in a data.frame. rpy2 conveniently gives us the <i>DataFrame </i>class, which is a no-nonsense wrapper to R&#8217;s data.frames. For this exercise, we&#8217;ll load a set of normalized data from <a href="http://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE4984">GSE4984</a>, a microarray experiment with dendritic cells expoosed to different stimuli. It&#8217;s just a matter of downloading the data from <a href="http://www.ebi.ac.uk/arrayexpress/files/E-GEOD-4984/E-GEOD-4984.processed.1.zip">Array Express</a>&nbsp;(if you ask why from AE and not GEO: the latter doesn&#8217;t have a clearly-identified link for normalized data)&nbsp;and then loading it in a data.frame as:</div>
<pre class="brush: python; title: ; notranslate">
dataframe = robjects.DataFrame.from_csvfile(&quot;GSE4984.txt&quot;, sep=&quot;\t &quot;, row_names=1)
</pre>
<div>The resulting Python object has all the attributes of a R data.frame but with added Python goodness. We can use the <i>colnames</i>&nbsp;and <i>rownames</i>&nbsp;attributes to access the row names (if set) and column names of the object, and likewise we can use <i>nrow</i>&nbsp;and <i>ncol</i>&nbsp;to quickly glance at the rows/columns.</p>
<div>Since a full array has a lot of genes, we&#8217;re going to choose only the first 500 genes:</p>
<pre class="brush: python; title: ; notranslate">
rows = robjects.IntVector(range(1,501))
subset = dataframe.rx(rows, True)
</pre>
<div>An <i>IntVector</i>&nbsp;is a rpy2 object which replicates R&#8217;s vectors of integers: there are variants for strings, floats, integers, lists (R lists, not the Python type) and factors. rx is an <i>accessor</i>&nbsp;that mimicks R&#8217;s item access: in short, it&#8217;s equivalent to</p>
<pre class="brush: r; title: ; notranslate">
subset &lt;- dataframe[rows, ]
</pre>
<div>rpy2 has another accessor, <i>rx2,</i>&nbsp;which mimicks the [[ ]] access in data.frames.</div>
<h2>Clustering</h2>
<p>Once we have the data, it&#8217;s time to do some serious clustering on it:</p>
<pre class="brush: python; title: ; notranslate">
result = pvclust.pvclust(subset, nboot=100, method_dist=&quot;correlation&quot;, method_hclust=&quot;average&quot;)
</pre>
<p>We&#8217;re using a small number of permutations (100) because the computation times are long. You can change the distance metric and the linkage types using <i>method_dist</i>&nbsp;and <i>method_hclust</i>. Internally the data.frame is converted to a matrix, so ensure you have valid data (i.e. numeric) prior to proceeding.</p>
<p>Notice that this will just cluster the columns by default. If we want to cluster genes, we have to transpose the data.frame. In this case we have to first convert it to a matrix, then transpose it:</p>
<pre class="brush: python; title: ; notranslate">
matrix = base.as_matrix(subset)
subset_transposed = matrix.transpose()
result_rows = pvclust(subset_tranposed, nboot=100, method_dist=&quot;correlation&quot;, method_hclust=&quot;average&quot;)
</pre>
<p>Once the computation is done, we have a <i>pvclust</i>&nbsp;object which holds information on the results. What we&#8217;re most interested in is the <i>hclust</i>&nbsp;attribute, as it holds a dendrogram object we can use for plotting (either standalone or via a heat map). We can also manipulate the object with the <i>pvpick</i>&nbsp;function, for example to color the trees of the dendrogam basing on their AU values.</p>
<p>To get a fast representation, we can just dump the object as it is to a dendrogram which will show AU and BP values for each element of the cluster:</p>
<pre class="brush: python; title: ; notranslate">
graphics = importr(&quot;graphics&quot;)
graphics.plot(result)
</pre>
<div>Or we can do the same, but to a PDF:</div>
<pre class="brush: python; title: ; notranslate">
graphics = importr(&quot;graphics&quot;)
grdevices = importr(&quot;grDevices&quot;)
grdevices.pdf(&quot;myresult.pdf&quot;, paper=&quot;a4&quot;)
graphics.plot(result)
grdevices.dev_off()</pre>
<div>Of course, we might want a heat map (<b>everyone</b>&nbsp;wants pretty heat maps, right?). In that case we extract both dendrograms and use something like gplots&#8217; <i>heatmap.2 </i>&nbsp;function to represent it (you will need the <i>gplots</i>&nbsp;package installed in order for the following to work):</div>
<pre class="brush: python; title: ; notranslate">
gplots = importr(&quot;gplots&quot;)
row_dendrogram = result_rows.rx2(&quot;hclust&quot;)
column_dendrogram = result.rx2(&quot;hclust&quot;)
gplots.heatmap_2(subset, Rowv=row_dendrogram, Colv=column_dendrogram, col=gplots.greenred(255), density_info=&quot;none&quot;)
</pre>
<div>You can add the <i>grdevices</i>&nbsp;lines like above to make a PDF of the plot. &nbsp;If you notice we have used the <i>rx2</i>&nbsp;accessors here, just as I wrote above, to access the <i>hclust</i>&nbsp;attribute of the pvclust object.&nbsp;</div>
<h2>Moving further</h2>
<p>pvclust as-is it&#8217;s quite slow. There&#8217;s however a parallelized version, called <i>parPvclust</i>, which uses <i>snow</i>&nbsp;to parallelize the clustering, either through multiple machines or using multiple cores. Setting snow properly up is beyond the scope of this tutorial, but it may be worth investing if you cluster a lot of data.</p>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.dennogumi.org/2011/05/multiscale-bootstrap-clustering-with-python-and-r/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A retrospective view: Galaxy Angel</title>
		<link>http://www.dennogumi.org/2011/05/a-retrospective-view-galaxy-angel</link>
		<comments>http://www.dennogumi.org/2011/05/a-retrospective-view-galaxy-angel#comments</comments>
		<pubDate>Wed, 11 May 2011 20:33:16 +0000</pubDate>
		<dc:creator>Einar</dc:creator>
				<category><![CDATA[Anime]]></category>
		<category><![CDATA[galaxy angel]]></category>

		<guid isPermaLink="false">http://www.dennogumi.org/?p=880</guid>
		<description><![CDATA[Recently I had the opportunity of viewing a DVD that I had bought in 2006 but never had the chance of seeing: it was the third season of Galaxy Angel, of which I had already viewed the first two years &#8230; <a href="http://www.dennogumi.org/2011/05/a-retrospective-view-galaxy-angel">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;"><img width="250" height="188" src="http://www.dennogumi.org/wp-content/uploads/2011/05/gaag_resized.jpg?cda6c1"/></div>
<div style="text-align: left;"></div>
<p>Recently I had the opportunity of viewing a DVD that I had bought in 2006 but never had the chance of seeing: it was the third season of <i>Galaxy Angel</i>, of which I had already viewed the first two years before. After viewing it, I realized I could have viewed it sooner, as I liked it quite a bit. Not only that, but I brought myself up to speed by getting what was left in the series, that is the second half of the third season (marketed by Bandai Visual as <i>Galaxy Angel AA</i>) and the fourth and final season (known in the English speaking market as <i>Galaxy Angel X</i>).</p>
<p>Well, I found the whole franchise quite good: and after having explored also other bits of it, including the manga and the games related to it, I thought it&#8217;d be nice to have a retrospective with my own views. Which is the point of this post.</p>
<p><span id="more-880"></span></p>
<h2>Galaxy Angel? What was it about?</h2>
<p><img width="200" height="221" src="http://www.dennogumi.org/wp-content/uploads/2011/05/millefuille_old_thumb.jpeg?cda6c1" align="left" alt="Image of the first design" title="Millefuille Sakuraba - first design"/>
<p>I was initially aware of the whole matter when <i>Project G.A.</i>&nbsp;was announced by BROCCOLI (for those who don&#8217;t know, it is, or at least used to be, a large merchandising company which also owned the <i>GAMERS</i>&nbsp;anime chain until very recently) at the Tokyo Game Show in 2000. &nbsp;</p>
<p>At the time the designs were very preliminary and they showed mostly about the game (more on that later) than on the TV series that was going to be made by Madhouse. &nbsp;As you may already know, BROCCOLI thought of this whole matter as a rather spread initiative, encompassing different medias: games, a TV series (13 episodes in total) a manga (made by the Kanan, the same person who did the original designs) plus a lot of merchandise and associated bits.</p>
<p>But back then, it was all yet to come. I admit I didn&#8217;t pay attention much to the announcement and moved on.</p>
<p>It was only years later that I bought the animated series, in 2004, that is when BROCCOLI USA opened and a partnership with Bandai Visual was formed to bring the anime and the manga to the English-speaking market.</p>
<h2>The animated series</h2>
<h3>Season 1 &#8211; Galaxy Angel</h3>
<div style="text-align: center;"><a href="http://www.dennogumi.org/wp-content/uploads/GA_first/GA_first_1.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_first_1_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_first/GA_first_3.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_first_3_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_first/GA_first_10.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_first_10_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_first/GA_first_2.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_first_2_thumb.png?cda6c1"/></a></div>
<div style="text-align: center;"><a href="http://www.dennogumi.org/wp-content/uploads/GA_first/GA_first_4.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_first_4_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_first/GA_first_14.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_first_14_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_first/GA_first_11.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_first_11_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_first/GA_first_15.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_first_15_thumb.png?cda6c1"/></a></div>
<div style="text-align: center;"><a href="http://www.dennogumi.org/wp-content/uploads/GA_first/GA_first_16.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_first_16_thumb.png?cda6c1"/></a></div>
<div></div>
<div>That&#8217;s where it all begins (TM), in all senses, because the animated series was the first to come out after the announcement. I wonder if people watching it thought that BROCCOLI had been trolling them, since it was completely different than the promo. Difference that&#8217;s seen already by the opening song, ギャラクシーBang! Bang! (Galaxy Bang! Bang!), markedly nonsensical. The episode titles reinforce the impression, as they&#8217;re almost about food and have a somewhat loose connection to the actual content.</div>
<div></div>
<div>Even though it was just 24 15 minute episodes, I already appreciated the highly non-sensical humor that permeated the series. The first series sets the basis for all the characters (from the second one top rightwards,&nbsp;<span class="Apple-style-span" style="font-family: 'Segoe UI'; ">Milfeulle</span>&nbsp;Sakuraba, Ranpha Franboise, Volcott O. Huey, Mint Blancmanche and Vanilla H &#8211; pronounced <i>ash</i>) and to introduce their&#8230; peculiarities.</div>
<div>Already, unlike the games (see below) there&#8217;s a lot of nonsense and parody humor that will become even more important in the later seasons. &nbsp;At this point the characters aren&#8217;t that developed but I found most episodes to be enjoyable. Already hilarious is the presence of Nomad (rightmost on the second row) that is just a target for some serious nonsense violence.&nbsp;</div>
<div>Compared to what we&#8217;ll see in later sesons, the interactions among the cast are a bit stiff: understandable since nothing else had been done (the game would come out later).</div>
<div></div>
<div>Sometimes the fact that the episodes end without a real conclusion can be surprising (as well as finding that in the following episodes the characters are still there!) but one gets used to it pretty quickly. The series &#8220;ends&#8221; with a non-ending like the rest of the episodes (introducing counterparts that will never be seen after that episode), but at the time I knew already that there was a sequel.</div>
<h3>Season 2 &#8211; Galaxy Angel Z</h3>
<div style="text-align: center;"><a href="http://www.dennogumi.org/wp-content/uploads/GA_second/GA_second_47.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_second_47_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_second/GA_second_20.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_second_20_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_second/GA_second_21.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_second_21_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_second/GA_second_23.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_second_23_thumb.png?cda6c1"/></a></div>
<div style="text-align: center;"><a href="http://www.dennogumi.org/wp-content/uploads/GA_second/GA_second_27.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_second_27_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_second/GA_second_28.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_second_28_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_second/GA_second_64.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_second_64_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_second/GA_second_50.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_second_50_thumb.png?cda6c1"/></a></div>
<div style="text-align: center;"><a href="http://www.dennogumi.org/wp-content/uploads/GA_second/GA_second_38.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_second_38_thumb.png?cda6c1"/></a></div>
<div style="text-align: center;"></div>
<p>The second season (known as <i>Galaxy Angel Z</i>&nbsp;outside Japan) introduces a format that will become common: assemble two episodes (which are half as long as a common anime episode) separated by the eye-catch. In this case we&#8217;re looking at 18 episodes, or rather 9 in total. Compared to its predecessor, elements of parody and marked non-sense begin appearing, which make the show even more enjoyable. Also the cast has better interactions than in the first series, leading to truly hilarious moments.</p>
<p>One episode in my opinion stands out, because much more of this type will be featured in later series, is the second,&nbsp;ウェディングケーキ合体スペシャル (Wedding Cake Gattai Special, aka <i>Wedding Cake combined Special</i>). In this specific episode, we see the Angels having to pilot a robot which is basically a reference to a number of 1970s and early 1980s mecha shows, in particular <i>Combattler V </i>&nbsp;and <i>Voltes V</i>. I would rather say rather <i>try to pilot</i>, as the thing explodes every time combination is attempted&#8230; But this is not the only element of parody there: a scene where&nbsp;<span class="Apple-style-span" style="font-family: 'Segoe UI'; ">Milfeulle rides a scooter to reach her vehicle is a mock of Daisuke Umon / Duke Fleed&#8217;s rocket &#8220;motorbike&#8221; in the launch sequence of <i>Grendizer</i>. The final icing on the cake is the song played in the background, たたかえ！ぼくらのX X X (<i>Fight! Our X X X), </i>sung by a real singer of mecha shows and <i>tokusatsu sentai</i>. The X X X in there because the mecha blows up exactly when the song would say its supposed name.</span></p>
<p><span class="Apple-style-span" style="font-family: 'Segoe UI'; ">Like the original <i>Galaxy Angel</i>&nbsp;this series ends with a non-ending, showing something great about to happen &#8220;but now it&#8217;s the last episode&#8221; and thus ending in an anti-climactic way. Still, the game was about to come out and a third series was in the works.</span></p>
<h3>Season 3 &#8211; Galaxy Angel A &amp; Galaxy Angel AA</h3>
<p>This section is the longest when dealing to the anime, because it is the longest of the four, featuring 52 half-length episodes, and a few specials on the way. This is in my opinion the best of the bunch, where the mixture of the interactions among the cast and decidedly weird plots form a very nice mixture.</p>
<p>I mentioned the plots. Well, starting from this series the parody / non-sensical element is much more noticeable, and often every episode would lose every bit of sanity within seconds. The situations where the Angels fall in also are even stranger than in the previous series (although they magically get <i>fixed</i>&nbsp;in time for the next episode).&nbsp;</p>
<p>Regarding parody this series stars a number of successful experiments. <i>In primis</i>, one episode,&nbsp;サインはブイヨン (Sign wa Bouillon), which is a complete parody of famous sports anime like <i>Attacker no. 1</i>&nbsp;(the song sung in the end, あたしたちがNo.1, or <i>We are no.1</i>, is a direct reference), featuring improbable and out-of-the-line volleyball techniques, but also references to <i>Ultraman</i>&nbsp;and <i>Cyborg 009</i>&nbsp;(such as Forte&#8217;s acceleration, complete with spark on the teeth). In the end there&#8217;s even a &#8220;next episode&#8221; that puts together all the possible cliches.</p>
<p>However if I were to pick, parody-wise, two episodes from this series, I&#8217;d definitely choose&nbsp;ピュルリクマジカルステーキ (<i>Pyururiku Magical Steak</i>) and&nbsp;新鮮 鯛づくし (<i>Shinsen Taizukushi</i>) because they bring that element to a new level.</p>
<p>The first of the two is an all out reference to the &#8220;magical girl&#8221; series, where the Angels (and Volcott, too!) try to use a magic stick that would grant a wish to a truly believer in magic. This somehow ends up in a sort of clip where lots of historical shows are referenced, as shown in the images below.&nbsp;</p>
<p style="text-align: center;"><a href="http://www.dennogumi.org/wp-content/uploads/GA_third/GA_third_1.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_third_1_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_third/GA_third_2.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_third_2_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_third/GA_third_3.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_third_3_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_third/GA_third_4.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_third_4_thumb.png?cda6c1"/></a></p>
<p style="text-align: center;"><a href="http://www.dennogumi.org/wp-content/uploads/GA_third/GA_third_5.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_third_5_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_third/GA_third_6.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_third_6_thumb.png?cda6c1"/></a>&nbsp;</p>
<p style="text-align: left;">The series reference relatively recent productions such as <i>Doremi</i>, but also real antiquities (for the Japanese, at least) such as <i>Megu-chan</i>&nbsp;(the Italian readers of this blog may know it as <i>Bia e la sfida della magia</i>), touching also video games. How many references did you find in the image shown above? <a href="http://www.youtube.com/watch?v=pA-BYHp8Ku0">This video shows all of them</a>. As you can see are quite a lot. The song is also performed by a veteran of such series.</p>
<p style="text-align: left;">The second parody episode I mentioned instead is a reference to <i>super sentai</i>&nbsp;series, where the Angels have to fight as a group known as the &#8220;Angel Five&#8221;. Also this episode compresses a full-length <i>sentai</i>&nbsp;52 episode series in little less than fifteen minutes.</p>
<p style="text-align: center;"><a href="http://www.dennogumi.org/wp-content/uploads/GA_third/GA_third_7.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_third_7_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_third/GA_third_8.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_third_8_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_third/GA_third_9.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_third_9_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_third/GA_third_10.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_third_10_thumb.png?cda6c1"/></a></p>
<p style="text-align: center;"><a href="http://www.dennogumi.org/wp-content/uploads/GA_third/GA_third_11.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_third_11_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_third/GA_third_12.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_third_12_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_third/GA_third_13.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_third_13_thumb.png?cda6c1"/></a></p>
<p style="text-align: left;">Almost all the cliches are touched, including also a reference to the first <i>Kamen Raider</i>&nbsp;series and the always present narrator that tells &nbsp;how things go on. Oh, and I should not forget about the obligatory mecha scenes (with the combination of the girls&#8217; 紋章機 &#8211; <i>monshoki </i>or rather <i>emblem frames</i>&nbsp;- referencing the usual lack of budgets of these series). Just like the previous episode, there&#8217;s even a specific song for the various scenes.</p>
<p style="text-align: left;">The last mention for this series is the last episode, <i>final dish REBECCA</i>, which is actually full-length. In contrast with most of the series, there&#8217;s not a single trace of humor. It&#8217;s like one of the few serious episodes scattered through the series but in a more coherent and longer form.</p>
<p style="text-align: center;"><a href="http://www.dennogumi.org/wp-content/uploads/GA_third/GA_third_14.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_third_14_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_third/GA_third_15.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_third_15_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_third/GA_third_16.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_third_16_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_third/GA_third_17.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_third_17_thumb.png?cda6c1"/></a></p>
<p>Despite the difference, the essential psychology of the characters is not changed at all (in fact some bits reminded me of the game) and the whole story fits perfectly as ending of the series (open ended, also with Masami Okui and JAM Project&#8217;s <i>In the Chaos</i>&nbsp;as ending song). If <i>Galaxy Angel</i>&nbsp;had to end there, <i>final dish REBECCA</i>&nbsp;would have been ideal. By the way it was done, I also feel that this season was to be the last one, but the decision changed only later on.</p>
<h3>Season 4 &#8211; Galaxy Angel X</h3>
<div style="text-align: center;"><a href="http://www.dennogumi.org/wp-content/uploads/GA_fourth/GA_fourth_1.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_fourth_1_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_fourth/GA_fourth_1.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_fourth_2_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_fourth/GA_fourth_3.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_fourth_3_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_fourth/GA_fourth_4.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_fourth_4_thumb.png?cda6c1"/></a></div>
<div style="text-align: center;"><a href="http://www.dennogumi.org/wp-content/uploads/GA_fourth/GA_fourth_5.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_fourth_5_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_fourth/GA_fourth_6.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_fourth_6_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_fourth/GA_fourth_7.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_fourth_7_thumb.png?cda6c1"/></a>&nbsp;<a href="http://www.dennogumi.org/wp-content/uploads/GA_fourth/GA_fourth_8.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_fourth_8_thumb.png?cda6c1"/></a></div>
<div style="text-align: center;"><a href="http://www.dennogumi.org/wp-content/uploads/GA_fourth/GA_fourth_9.png?cda6c1"><img width="120" height="90" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GA_fourth_9_thumb.png?cda6c1"/></a></div>
<p>The last of the seasons is also the one of the most absurd, because the parody and nonsense elements increase dramatically. Usually it&#8217;s impossible to predict where an episode would end up to being, because aside the initial settings they almost go completely random (but they&#8217;re rather funny). The craziness affects even episode titles, which become tongue-twisters that also play on assonance: an example&nbsp;非凡平凡チョコボンボン (<i>Hibon Heibon Choko bonbon, </i>translatable as <i>Extraordinary, ordinary chocolate bonbon</i>).</p>
<p>On the parody side, an episode like&nbsp;哀しみ憎しみ凍み豆腐 (<i>Kanashimi nikushimi shimi tofu, </i>or <i>Sadness and Hatred Tofu</i>&nbsp;in the English translation) replicates (very faithfully, I might add) the aura of Japanese dramas, complete with rather improbable plot twists and character relations (who is the daughter of <i>who?). </i>Another episode,&nbsp;ラブ米, feels like a session of <i>Tokimeki Memorial</i>, with the Angels infiltrated in a school-like environment (complete with stereotypes) and with an insert song performed by a singer that actually did some of the game&#8217;s songs.&nbsp;</p>
<p>Along with the already present characters, this season also includes &nbsp;Chitose Karasuma, but she&#8217;s completely different than the game counterpart, with a personality bordering on psychopathic. She doesn&#8217;t appear very often in the season as well, but she leaves her mark, definitely.&nbsp;</p>
<p>The last episode (オールオッケーロケ弁当, <i>All OK bento</i>)&nbsp;is somehow <i>meta</i>&nbsp;as due to plot reasons it almost feels that the main voice actors are speaking about their characters, in a way. However, near the end the nonsense returns, showing a &#8220;battlefront&#8221; against aliens that is more reminiscent of the tennis anime&nbsp;エースをねらえ！(<i>Ace o nerae! </i>or <i>Aim for the Ace!</i>) as the &#8220;battle&#8221; is played at table tennis. Other notable mentions which also include the appearance of a character from the 1970s <i>Great Mazinger</i>&nbsp;series, namely&nbsp;<span class="t_nihongo_kanji" lang="ja" xml:lang="ja">闇黒大将軍 (<i>Ankoku Daishogun</i>, or <i>Great Dark General</i>). but with the face of <i>Di Gi Charat</i>&#8216;s Digiko&#8230;</span></p>
<p><span class="t_nihongo_kanji" lang="ja" xml:lang="ja">Unfortunately the last episode is a bit of a let down because it&#8217;s half-length, unlike <i>final dish REBECCA, </i>&nbsp;and thus the final part is a bit rushed. It&#8217;s not a bad ending per se, anyway, and doesn&#8217;t affect the overall quality of the series. Series which despite its length never really bored me and provided many hours of enjoyment. Especially the latter seasons show a great coordination among the cast that increases the comical effect.&nbsp;</span></p>
<p><span class="t_nihongo_kanji" lang="ja" xml:lang="ja">To be very brief, watching this series, even now taht many years ahave passed, is definitely recommended.</span></p>
<h2>The video games</h2>
<p><img width="200" height="284" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GalaxyAngel_thumb.png?cda6c1" align="left"/>
<div>
<p>It is somewhat less known that <i>Galaxy Angel</i>&nbsp;had also a series (three) of game counterparts, in fact part of the all round strategy devised by BROCCOLI. Unlike the animated series, however, none of these have been translated to English (actually, such a translation was planned, but hastily canned when BROCCOLI USA closed up shop).</p>
<p>The scenario of the game is much closer to what BROCCOLI had announced at first. Gone are some of the anime characters (the ones devised by Madhouse themselves, such as Nomad and Volcott) and others come in, most notably the commander Takuto Meyers, the character whose actions are controlled by the player.&nbsp;</p>
<p>So, how are the games? From a purely technical standpoint, they&#8217;re a mixture of&nbsp;恋愛 (<i>Ren&#8217;ai</i>, literally <i>love</i>&nbsp;but used in the terms of dating sims) and strategy-based battles, a formula that was employed succesfully by the <i>Sakura Taisen</i>&nbsp;franchise in the past. Basically, a good part of the game involves talking and interacting with the Angels, building up relationships (and eventually love with one of the heroines), while the other part involves controlling the Angels&#8217; <i>monshoki</i>&nbsp;and fighting various enemies, trying to achieve specific victory conditions. The latter is basically a 3D strategy game, where orders are issued and then executed, while the first involves reading the main story dialogue and occasionally making choices (unlike <i>Sakura Taisen, </i>those aren&#8217;t timed). Poor choices, however, will inevitably affect the Angels&#8217; morale and hence the battle performance, so the girls must be treated well.</p>
<p>As you can see from the images,&nbsp;Kanan did all the job (like in the manga, which covers the same story as the games). The result is unpredictable: at times it&#8217;s quite nice, at others it&#8217;s rather poor. Nevertheless, it is good enough.&nbsp;</p>
<p>While the story has a more serious tone, it has also many comical moments that remind of the series (although they don&#8217;t reach such levels of absurdity). However, in my opinion there is a huge letdown when you are forced to choose your Angel: the characters aren&#8217;t &#8220;strong&#8221; enough, from a personality standpoint, to stand up alone, as their strength lies exactly in the mutual interactions. Therefore, when focus is given to a single member of the group, the results are often poor, and even &#8220;out-of-characters&#8221; scenes occur. The problem, which affects the first game (<i>Galaxy Angel</i>) only partially, is even more evident in the second instalment of the series (<i>Galaxy Angel &#8211; Moonlit Lovers</i>) where for basically half of the play time there isn&#8217;t even the full squad available. On the plus side, every scenario for each group member is often very different.</p>
<p>Speaking of characters, Chitose appears in <i>Moonlit</i>&nbsp;<i>Lovers</i>, and as I wrote before she has a completely different personality, the one of an elite soldier but so fresh that&#8217;s not capable of adapting (let alone in a carefree unit such as the Angel Tai). She still has a good deal of humorous scenes, though: her interplay with Milfeulle &nbsp;or with Forte in their respective scenarios is quite funny.</p>
<p><img width="200" height="150" src="http://www.dennogumi.org/wp-content/uploads/2011/05/GalaxyAngel_thumb2.png?cda6c1" align="right"/></p>
<p>Let&#8217;s go over the battle part a bit. In these sections, the player is thrown in a 3D battlefield, having to control the Angels, the command ship (the Elsior) and optionally other friendly units (this only from <i>Moonlit Lovers</i>&nbsp;onwards). Units can be selected and orders given (in this case, the visual switches to a zoomable 2D map). Each unit has a series of gauges that indicate their status: the Hull gauge indicates how badly the unit in question is damaged, the Energy how much energy it has (the Angels&#8217;&nbsp;<i>monshoki</i>&nbsp;can be resupplied by coming within reach ot the command ship) and for the Angels only, the Spirit gauge. The last one fills when damage is dealt or received, and once full can be use to unleash a powerful special attack which varies depending on the pilot (or in the case of Vanilla, to repair all units). Although the <i>monshoki</i>&nbsp;are rather powerful, some careful planning is due, especially in <i>Moonlit Lovers</i>, where the enemies are in much larger numbers. Aside that, there isn&#8217;t much else to control. The camera can be switched to the various units (useful if you want to check their performance or watch the specials).&nbsp;</p>
<p>To show you how the game plays in these sections, <a href="http://www.wegame.com/watch/galaxy-angel-pc-second-battle/">here is a video</a>.</p>
<p>I haven&#8217;t played the third instalment of the trilogy (<i>Eternal Lovers</i>) yet, but I can say so far that the games are good enough when all the characters are involved and terrible when they focus only on one heroine (and <i>Moonlit Lovers</i>&nbsp;is painfully short, with a rushed ending). Not too bad, but not too excellent either.</p>
<h2>Concluding remarks</h2>
</div>
<div>Whew! This was one long blog post. I took almost one month to finish it (including viewing the last two seasons and reviewing the game). I can say that <i>Galaxy Angel</i>&nbsp;(but not its mediocre sequel) is definitely a series that will stay in my list of favorites for a long time, especially due to the way the cast interacts, both in the games and in the anime. A shame that we won&#8217;t see any more operations of this kind, due to the way the TV slots have become so far (very tight and packed).</div>
]]></content:encoded>
			<wfw:commentRss>http://www.dennogumi.org/2011/05/a-retrospective-view-galaxy-angel/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Moving hosts!</title>
		<link>http://www.dennogumi.org/2011/05/moving-hosts</link>
		<comments>http://www.dennogumi.org/2011/05/moving-hosts#comments</comments>
		<pubDate>Tue, 03 May 2011 20:48:49 +0000</pubDate>
		<dc:creator>Einar</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[hosting]]></category>

		<guid isPermaLink="false">http://www.dennogumi.org/?p=828</guid>
		<description><![CDATA[After many years of (good) service, I&#8217;m in the process of moving from Dreamhost web hosting to a Virtual Private Server (VPS) service hosted by the folks at Linode. It&#8217;s definitely more pricey but I like the control and freedom &#8230; <a href="http://www.dennogumi.org/2011/05/moving-hosts">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After many years of (good) service, I&#8217;m in the process of moving from <a href="http://www.dreamhost.com">Dreamhost web hosting</a> to a Virtual Private Server (VPS) service hosted <a href="http://www.linode.com">by the folks at Linode</a>. It&#8217;s definitely more pricey but I like the control and freedom that I have at my disposal. Thanks to a <a href="http://library.linode.com">number of guides</a> and <a href="https://twitter.com/jol1hahn">some help</a>, I was able to set up lighttpd and php-fpm to serve web pages, and Postfix+dovecot+amavisd-new for email.
<div></div>
<div>I haven&#8217;t moved off a few services yet (including my primary mail), but I&#8217;m rather satisfied at the moment.</div>
<div>Let me know if you encounter any issues with this blog, although it should have moved painlessly (hopefully!).</div>
]]></content:encoded>
			<wfw:commentRss>http://www.dennogumi.org/2011/05/moving-hosts/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Taking video snapshots quickly: KDE VLC Snapper</title>
		<link>http://www.dennogumi.org/2011/04/taking-video-snapshots-quickly-kde-vlc-snapper</link>
		<comments>http://www.dennogumi.org/2011/04/taking-video-snapshots-quickly-kde-vlc-snapper#comments</comments>
		<pubDate>Sun, 10 Apr 2011 12:40:26 +0000</pubDate>
		<dc:creator>Einar</dc:creator>
				<category><![CDATA[Anime]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[vlc]]></category>

		<guid isPermaLink="false">http://www.dennogumi.org/?p=823</guid>
		<description><![CDATA[Some of the oldest readers of this blog are well aware of a certain hobby of mine. Over the years I&#8217;ve always wanted to write more about that, including the stuff I&#8217;m viewing nowadays, but I found a hassle to &#8230; <a href="http://www.dennogumi.org/2011/04/taking-video-snapshots-quickly-kde-vlc-snapper">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Some of the oldest readers of this blog are well aware of <a href="http://www.dennogumi.org/category/anime">a certain hobby of mine</a>. Over the years I&#8217;ve always wanted to write more about that, including the stuff I&#8217;m viewing nowadays, but I found a hassle to collect snapshots from videos / DVDs, selecting them, and so on.&nbsp;
<div>Recently I learnt that VLC has <a href="http://wiki.videolan.org/Python_bindings">some rather complete Python bindings</a>, and I thought, <i>why not make the process automated?</i>&nbsp;Yesterday I had some free time on my hands and a quick session of hacking brought some results already.</div>
<div>As the stuff is somewhat past prototypal stage, I thought I would push somewhere for others to use. &nbsp;Lo and behold, here I present you <i>KDE VLC Snapper</i>.</div>
<div></div>
<div style="text-align: center;"><img width="300" height="313" src="http://www.dennogumi.org/wp-content/uploads/2011/04/vlcsnapper_resized.png?cda6c1"/></div>
<div style="text-align: left;">As you can see, it&#8217;s a minimal dialog: just select your source video file (any file supported by VLC will do), the number of screencaps, the destination directory, and the program will do the rest. Currently it works <i>somewhat</i>&nbsp;OK (see caveats below) and is good enough for my use cases.</div>
<h2>How do I get it?</h2>
<div>Just clone this repository:
<pre class="brush: plain; title: ; notranslate">git clone http://git.gitorious.org/kde-vlc-snapper/kde-vlc-snapper.git</pre>
<p> followed by
<pre class="brush: bash; title: ; notranslate">sudo python setup.py install</pre>
<p> You can then invoke the program with
<pre class="brush: plain; title: ; notranslate">kdevlcsnapper</pre>
</div>
<div></div>
<div><b>Requirements</b>&nbsp;include PyKDE4 (tested on KDE Dev Platform 4.6), numpy (just for its &#8220;linspace&#8221; function, alternatives are welcome) and VLC installed (you don&#8217;t need the bindings, however: I provide a local copy).</div>
<div>What about <b>bugs</b>? Well, currently there are two issues that I&#8217;m unsure on how to fix: the first is a crash on exit, the second is that certain media files make VLC crash in the background when called from the bindings.</div>
<div>In any case, if you try it out, let me know what you think in the comments!</div>
]]></content:encoded>
			<wfw:commentRss>http://www.dennogumi.org/2011/04/taking-video-snapshots-quickly-kde-vlc-snapper/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Improvements to the Git hooks</title>
		<link>http://www.dennogumi.org/2011/01/improvements-to-the-git-hooks</link>
		<comments>http://www.dennogumi.org/2011/01/improvements-to-the-git-hooks#comments</comments>
		<pubDate>Wed, 26 Jan 2011 11:59:04 +0000</pubDate>
		<dc:creator>Einar</dc:creator>
				<category><![CDATA[KDE]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[review board]]></category>

		<guid isPermaLink="false">http://www.dennogumi.org/?p=816</guid>
		<description><![CDATA[As you may already know, recently the KDE sysadmins completely overhauled the commit hooks used with the Git infrastructure. Written in Python, they have already brought significant improvements to the current workflows. These hooks include keywords that when specified trigger &#8230; <a href="http://www.dennogumi.org/2011/01/improvements-to-the-git-hooks">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As you may already know, recently the KDE sysadmins completely overhauled the commit hooks used with the Git infrastructure. Written in Python, they have already brought significant improvements to the current workflows. These hooks include keywords that when specified trigger particular actions: the most used are &nbsp;to CC specific email addresses (CCMAIL), to CC bug reports (CCBUG) or to close bug reports (BUG).</p>
<p>With the adoption of <a href="http://www.reviewboard.org/">Review Board</a>&nbsp;to facilitate code reviews, there were also requests for a REVIEW keyword that could close the review requests without asking the submitters to do so manually (which is slow and not always effective). Since the hooks for Git were written in Python, I thought I could give a hand there.</p>
<p>I looked into the Review Board API, which is a simple REST API: tasks are performed with HTTP GET, POST, or PUT. As I didn&#8217;t want to dive too much into the technicalities, I decided to use a wrapper that would make things easier: <a href="http://code.google.com/p/python-rest-client/" title="Python REST client">python-rest-client</a>. Once that was in place, it was just a matter of adding some sugar to handle replies, errors and logging. All in 78 lines of code.</p>
<p>Now that the &#8220;field tests&#8221; passed with flying colors, I&#8217;m happy to announce that such a hook exists and is operational for KDE&#8217;s Git infrastructure. By using the REVIEW keyword at the start of a line, followed by a number, the hook will notify the Review Board instance and close the request. It will also publish a comment stating the commit&#8217;s SHA1 and the person who did it.</p>
<p>You can take a look at the finished results <a href="http://git.reviewboard.kde.org/r/100270/">in this review request.</a></p>
<p>Credits for this also go to Ben &#8220;bcooksley&#8221; Cooksley for helping with testing and fixes, and Eike &#8220;Sho&#8221; Hein for helpful suggestions.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dennogumi.org/2011/01/improvements-to-the-git-hooks/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using xcache (Feed is rejected)
Page Caching using xcache
Database Caching using xcache
Object Caching 743/830 objects using xcache

Served from: www.dennogumi.org @ 2012-02-05 04:26:16 -->
