<?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>MoMolog &#187; Allgemein</title>
	<atom:link href="http://momolog.info/category/allgemein/feed/" rel="self" type="application/rss+xml" />
	<link>http://momolog.info</link>
	<description>MoMolog aus Berlin stellt sich vor. Projekte, Ideen, Referenzen.</description>
	<lastBuildDate>Sun, 18 Jul 2010 22:13:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>MomoFlow</title>
		<link>http://momolog.info/2009/11/28/momoflow/</link>
		<comments>http://momolog.info/2009/11/28/momoflow/#comments</comments>
		<pubDate>Sat, 28 Nov 2009 10:26:22 +0000</pubDate>
		<dc:creator>aljoscha</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://momolog.info/?p=219</guid>
		<description><![CDATA[Coverflow has become a de facto visualization standard for the presentation of collections of images, be it covers or portraits. There are a number of implementations for usage on web pages (e.g. this one) but the usable ones require Adobes Flash and thus won&#8217;t run on the iPhone. When looking for HTML5 canvas based implementations [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Cover_Flow">Coverflow</a> has become a  de facto visualization standard for the presentation of collections of images, be it covers or portraits.<br />
There are a number of implementations for usage on web pages (e.g. <a href="http://www.flashloaded.com/flashcomponents/photoflow/example1.html">this one</a>) but the usable ones require Adobes Flash and thus won&#8217;t run on the iPhone.</p>
<p>When looking for HTML5 canvas based implementations I found <a href="http://elmasse.gaver.nl/projects/Coverflow0.1/test.html">this promising implementation</a> based on the YUI library.<br />
Though workig, it has three major drawbacks: It is rather overengineered and difficult to tweak, it uses YUI (whereas I prefer the more lightweight jQuery) and it performs poorly with image sizes bigger than thumbnails.</p>
<p>After trying to change the code for a while I decided to do a reimplementation in jQuery. The result can be seen on the <a href="http://flow.momolog.info">MomoFlow demo page</a>. Here are two screenshots:</p>
<p><div id="attachment_229" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-229" title="MomoFlow I" src="http://momolog.info/wp-content/uploads/2009/11/Bildschirmfoto-2009-11-22-um-09.01.33-300x240.png" alt="CoverFlow using canvas and jQuery" width="300" height="240" /><p class="wp-caption-text">CoverFlow using canvas and jQuery</p></div></p>
<p><div id="attachment_226" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-226" title="MomoFlow II" src="http://momolog.info/wp-content/uploads/2009/11/Bildschirmfoto-2009-11-22-um-09.01.20-300x240.png" alt="Quicklook mode" width="300" height="240" /><p class="wp-caption-text">Quicklook mode</p></div></p>
<p>The used 3D transformation is superbly described on the <a href="http://yuiblog.com/blog/2008/06/23/slicing/">YUI blog</a> .</p>
<p>My implementation caches the rendered canvases per rendering angle. Further speed increments are made possible by adjusting the mesh width used for the slicing transformation depending on the achieved framerate.</p>
<p>The result performs beautifully in recent Safari, Chrome and Opera, decently on Firefox. It also works flawlessly on the iPhone. Keyboard control is coming soon.</p>
<p>I do still need help on IE, maybe the image composition is too demanding for <a href="http://excanvas.sourceforge.net/">ExplorerCanvas</a>? <br />
The code is available on github: <a href="http://github.com/momolog/momoflow">http://github.com/momolog/momoflow</a>.<br />
Comments and improvements are very much welcome!</p>
]]></content:encoded>
			<wfw:commentRss>http://momolog.info/2009/11/28/momoflow/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>MySQL BEFORE INSERT trigger as check constraint</title>
		<link>http://momolog.info/2009/10/21/mysql-before-insert-trigger-as-check-constraint/</link>
		<comments>http://momolog.info/2009/10/21/mysql-before-insert-trigger-as-check-constraint/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 09:03:55 +0000</pubDate>
		<dc:creator>aljoscha</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://momolog.info/?p=212</guid>
		<description><![CDATA[Since MySQL does neither have real check constraints nor a way to raise an exception in a stored procedure, we found it not instantly obvious, how we could *reject* a certain row on insert, based on a certain condition. A nice way we found was to set the value in question to NULL, based on [...]]]></description>
			<content:encoded><![CDATA[<p>Since MySQL does neither have real check constraints nor a way to raise an exception in a stored procedure, we found it not instantly obvious, how we could *reject* a certain row on insert, based on a certain condition.</p>
<p>A nice way we found was to set the value in question to NULL, based on the condition and let the NOT NULL constraint do its work.</p>
<p><pre><pre>
ALTER TABLE sessions MODIFY session_id varchar(255) NOT NULL;
DROP TRIGGER IF EXISTS check_sessionid;
DELIMITER $$
CREATE TRIGGER check_sessionid BEFORE INSERT ON sessions&nbsp;&nbsp;
FOR EACH ROW BEGIN
&nbsp;&nbsp;IF NOT NEW.session_id REGEXP &#039;^[[:xdigit:]]{32}$&#039; THEN
&nbsp;&nbsp;&nbsp;&nbsp;SET NEW.session_id = NULL;
&nbsp;&nbsp;END IF;
END;
$$
DELIMITER ;
</pre></pre><br />
The trigger will let any 32 character string with only HEX characters for the column session_id pass and rejects the rest.<br />
<pre><pre>
&gt; INSERT INTO sessions (session_id) VALUES (&#039;ffffffffffffffffffffffffffffffff&#039;);
Query OK, 1 row affected (0.01 sec)
</pre></pre><br />
<pre><pre>
&gt; INSERT INTO sessions (session_id) VALUES (&#039;fffffffffffffffffffffffffffffffg&#039;);
ERROR 1048 (23000): Column &#039;session_id&#039; cannot be null
</pre></pre><br />
Happy triggering.</p>
]]></content:encoded>
			<wfw:commentRss>http://momolog.info/2009/10/21/mysql-before-insert-trigger-as-check-constraint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vor kurzem dazugelernt:</title>
		<link>http://momolog.info/2009/10/18/vor-kurzem-dazugelernt/</link>
		<comments>http://momolog.info/2009/10/18/vor-kurzem-dazugelernt/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 15:46:19 +0000</pubDate>
		<dc:creator>aljoscha</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[MacOSX]]></category>
		<category><![CDATA[Note to self]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://momolog.info/?p=204</guid>
		<description><![CDATA[Suche nach Wort unter dem Cursor in vim: #. jssh ist eine JavaScript Shell, die den Firefox per Port 9997 fernsteuerbar macht. Download z.B. hier. y erzeugt einen YAML dump auf der Rails console, mehr dazu hier. =3D ist ein escaptes &#8220;=&#8221; in quoted_printable. sudo /usr/libexec/locate.updatedb aktualisiert unter MacOSX sofort die locate Datenbank. rake db:migrate:redo [...]]]></description>
			<content:encoded><![CDATA[<p>Suche nach Wort unter dem Cursor in vim: <code>#</code>.</p>
<p><code>jssh</code> ist eine JavaScript Shell, die den Firefox per Port 9997 fernsteuerbar macht.<br />
Download z.B. <a href="http://wiki.openqa.org/display/WTR/FireWatir+Installation">hier</a>.</p>
<p><code>y</code> erzeugt einen YAML dump auf der Rails console, mehr dazu <a href="http://blog.floehopper.org/articles/2006/12/22/rails-console-shortcuts">hier</a>.</p>
<p><code>=3D</code> ist ein escaptes &#8220;=&#8221; in <a href="http://de.wikipedia.org/wiki/Quoted-printable">quoted_printable</a>.</p>
<p><code>sudo /usr/libexec/locate.updatedb</code> aktualisiert unter MacOSX sofort die <code>locate</code> Datenbank.</p>
<p><code>rake db:migrate:redo</code> führt unter rails die letzte Migration rückwärts und sofort wieder vorwärts aus, so dass sich die Vorwärts-Action korrigieren läßt </p>
<p><code>ack -Q</code> bringt <a href="http://betterthangrep.com/">ack</a> dazu, <em>literal</em>, also ohne RegExp zu suchen.</p>
]]></content:encoded>
			<wfw:commentRss>http://momolog.info/2009/10/18/vor-kurzem-dazugelernt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Du bist Terrorist.</title>
		<link>http://momolog.info/2009/05/19/du-bist-terrorist/</link>
		<comments>http://momolog.info/2009/05/19/du-bist-terrorist/#comments</comments>
		<pubDate>Tue, 19 May 2009 19:57:16 +0000</pubDate>
		<dc:creator>aljoscha</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://momolog.info/?p=111</guid>
		<description><![CDATA[Kampagne gegen Terroristen in Deutschland. Sehr schön.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.dubistterrorist.de">Kampagne gegen Terroristen in Deutschland</a>. Sehr schön.</p>
]]></content:encoded>
			<wfw:commentRss>http://momolog.info/2009/05/19/du-bist-terrorist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Which programming language am I?</title>
		<link>http://momolog.info/2007/05/09/what-i-am/</link>
		<comments>http://momolog.info/2007/05/09/what-i-am/#comments</comments>
		<pubDate>Wed, 09 May 2007 12:39:11 +0000</pubDate>
		<dc:creator>aljoscha</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://momolog.info/2007/05/09/what-i-am/</guid>
		<description><![CDATA[Which Programming Language are You?]]></description>
			<content:encoded><![CDATA[<a href="http://www.bbspot.com/News/2006/08/language_quiz.php"><img
src="http://www.bbspot.com/Images/News_Features/2006/08/language/visual_basic.jpg" width="300" height="90"
border="0" alt="You are Visual Basic. You have little respect for common sense.  You are immature, but have recently begun to grow up."><br />Which Programming Language are You?</a>
]]></content:encoded>
			<wfw:commentRss>http://momolog.info/2007/05/09/what-i-am/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
