<?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>info.michael-simons.eu &#187; Design</title>
	<atom:link href="http://info.michael-simons.eu/category/design/feed/" rel="self" type="application/rss+xml" />
	<link>http://info.michael-simons.eu</link>
	<description>Just another nerd blog</description>
	<lastBuildDate>Fri, 07 Jun 2013 08:04:29 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
	<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=rotnroll666&amp;popout=1&amp;url=http%3A%2F%2Finfo.michael-simons.eu%2F&amp;language=en_US&amp;category=text&amp;title=info.michael-simons.eu&amp;description=Just+another+nerd+blog&amp;tags=blog" type="text/html" />
		<item>
		<title>Fun with sql</title>
		<link>http://info.michael-simons.eu/2008/10/27/fun-with-sql/</link>
		<comments>http://info.michael-simons.eu/2008/10/27/fun-with-sql/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 08:47:30 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[English posts]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[PL/SQL]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://info.michael-simons.eu/?p=221</guid>
		<description><![CDATA[What&#8217;s all the fuss about this SQL Injection thing? It boils down getting some malicious crafted SQL code into the SQL code of an application, destroying data or authenticate yourself without knowing any real password. xkdc has a nice explanation. The simple cases base on wrong escaped strings and the like. But as this SQL [...]]]></description>
				<content:encoded><![CDATA[<p>What&#8217;s all the fuss about this <a href="http://en.wikipedia.org/wiki/SQL_injection">SQL Injection thing</a>?</p>
<p>It boils down getting some malicious crafted SQL code into the SQL code of an application, destroying data or authenticate yourself without knowing any real password. xkdc has a nice <a href="http://xkcd.com/327/">explanation</a>.</p>
<p>The simple cases base on wrong escaped strings and the like. But as this <a href="http://ferruh.mavituna.com/sql-injection-cheatsheet-oku/">SQL injection cheatsheet</a> shows there are an infinity number of possibilities. </p>
<p>At day most of the time my database connection is an Oracle connection and so i found this Oracle whitepaper titled <a href="http://www.oracle.com/technology/tech/pl_sql/pdf/how_to_write_injection_proof_plsql.pdf"><em>How to write injection-proof PL/SQL</em></a> very interesting (via <a href="http://www.schneier.com/blog/archives/2008/10/how_to_write_in.html">Bruce Schneier</a> found at the <a href="http://the-gay-bar.com/index.php?/archives/203-Dumb-security-tips-Think-before-you-follow-online-guides/">gay bar</a>).</p>
<p>I do not have a magic recipe for avoiding attack vectors all the time but as well as the whitepaper is written, it&#8217;s not a solution to expose all queries only via pl/sql to clients. In fact, it&#8217;s a nightmare to get this to work with JPA and other ORM mappers.</p>
<p>I try not to use dynamic sql in the sense of &#8220;concatenate some strings with one another and mysql_real_escape_string or DBMS_Assert. them&#8221; but use prepared statements with placeholders and explicit datatypes. Also if there&#8217;s a need for computing sql queries at runtime, do not ever let user supplied input come near them. I know that i&#8217;m relying to my api in this case but there is always a point on which i must rely on i guess. </p>
<p>As alway, the most important thing is: Be conscious about what you are doing and try to understand that, but at this point, i leave the discussion about software development and enter the depths of common sense…</p>
<p class="akst_link"><a href="http://info.michael-simons.eu/?p=221&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_221" class="akst_share_link " rel="nofollow">Share This</a>
</p> <p><a href="http://info.michael-simons.eu/?flattrss_redirect&amp;id=221&amp;md5=c14671368e11b06aef0c6d5162d12a49" title="Flattr" target="_blank"><img src="http://info.michael-simons.eu/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://info.michael-simons.eu/2008/10/27/fun-with-sql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=rotnroll666&amp;popout=1&amp;url=http%3A%2F%2Finfo.michael-simons.eu%2F2008%2F10%2F27%2Ffun-with-sql%2F&amp;language=en_GB&amp;category=text&amp;title=Fun+with+sql&amp;description=What%26%238217%3Bs+all+the+fuss+about+this+SQL+Injection+thing%3F+It+boils+down+getting+some+malicious+crafted+SQL+code+into+the+SQL+code+of+an+application%2C+destroying+data+or+authenticate+yourself...&amp;tags=PL%2FSQL%2CSQL%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Tired of all the powerpoint presentations&#8230;</title>
		<link>http://info.michael-simons.eu/2008/04/23/tired-of-all-the-powerpoint-presentations/</link>
		<comments>http://info.michael-simons.eu/2008/04/23/tired-of-all-the-powerpoint-presentations/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 13:20:47 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[English posts]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[JAX]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[Powerpoint]]></category>
		<category><![CDATA[Rants]]></category>

		<guid isPermaLink="false">http://info.michael-simons.eu/?p=163</guid>
		<description><![CDATA[Right now i&#8217;m in Wiesbaden, attending the JAX 2008 conference. The mood is somewhat different compared to the DOAG i used to visit the last years. The people are more open minded, partially much younger and generally try to be much cooler. And for the sake of it, some are even more interesting and after [...]]]></description>
				<content:encoded><![CDATA[<p>Right now i&#8217;m in Wiesbaden, attending the <a href="http://www.jax.de">JAX 2008</a> conference.</p>
<p>The mood is somewhat different compared to the <a href="http://www.doag.org">DOAG</a> i used to visit the last years. The people are more open minded, partially much younger and generally try to be much cooler. And for the sake of it, some are even more interesting and after all, there isn&#8217;t that ongoing whining about Oracle not engaging in Forms 6i Client Server any more (although, i must admit, i somewhat like <a href="/tag/oracle-forms/">Oracle Forms</a> 6i, maybe it&#8217;s a love/hate relationship, trust me, i know both worlds, Java and Forms).</p>
<p>The sessions suffer from one big problem: Many of them just seem to play <em>powerpoint karaoke</em>: Throw in a bunch of crappy slides with a handfull code snippets and sing-a-long to that stuff which means basically: Hind behind the slides.</p>
<p>Let me tell you: This is so boring and pointless. In the past i tried to be polite and always stayed to the end of a session but the last 2 or 3 conferences i can&#8217;t stand it any more. I can read myself, thanks. If you haven&#8217;t got anything additionally to say, just pass me the slide and i&#8217;m fine.</p>
<p>The 3 most interesting sessions where the sessions spoken freely with the slides just illustrating the speech. I especially liked <a href="http://liferay.com/web/bchan/home">Brian Chans</a> presentation of <em>Liferay Portal</em>, <a href="http://blog.springsource.com/main/author/rodj/">Rod Johnsons</a> keynote on the future of J2EE and the most witty one, <a href="http://blogs.tedneward.com/">Ted Newards</a> talk about the renaissance of languages. It was funny, included the audience, was well prepared and freely hold, not to forget the topic: It wasn&#8217;t about the nth framework around the corner but about the nearly philosophy topic about the &#8220;perfect programming language&#8221;.</p>
<p>I really wish that i&#8217;d be creative and intelligent enough to design a language that is not predestined to die an early death, but i ain&#8217;t. But i can distinguish a sharp tool from a spoon if i see one and i can adopt to it very easily. And in that sense i share Teds opinion that a discussion about abstracting things and about the tool itself is of much more value than implementing some arbitrary pattern (i.e. one be the GOF) in just another framework. For example, many implementations of some patterns in frameworks have been rendered obsolete by more powerful and more expressive languages and i&#8217;d like to see this trend go on.</p>
<p class="akst_link"><a href="http://info.michael-simons.eu/?p=163&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_163" class="akst_share_link " rel="nofollow">Share This</a>
</p> <p><a href="http://info.michael-simons.eu/?flattrss_redirect&amp;id=163&amp;md5=8edd0df87132abd29155671a3b95a98a" title="Flattr" target="_blank"><img src="http://info.michael-simons.eu/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://info.michael-simons.eu/2008/04/23/tired-of-all-the-powerpoint-presentations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=rotnroll666&amp;popout=1&amp;url=http%3A%2F%2Finfo.michael-simons.eu%2F2008%2F04%2F23%2Ftired-of-all-the-powerpoint-presentations%2F&amp;language=en_GB&amp;category=text&amp;title=Tired+of+all+the+powerpoint+presentations%26%238230%3B&amp;description=Right+now+i%26%238217%3Bm+in+Wiesbaden%2C+attending+the+JAX+2008+conference.+The+mood+is+somewhat+different+compared+to+the+DOAG+i+used+to+visit+the+last+years.+The+people+are+more...&amp;tags=J2EE%2CJava%2CJAX%2CLanguages%2CPowerpoint%2CRants%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Projektdokumentationen und Anwendungsdesign</title>
		<link>http://info.michael-simons.eu/2007/05/19/projektdokumentationen-und-anwendungsdesign/</link>
		<comments>http://info.michael-simons.eu/2007/05/19/projektdokumentationen-und-anwendungsdesign/#comments</comments>
		<pubDate>Sat, 19 May 2007 07:12:04 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[Lesetipps]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://info.michael-simons.eu/2007/05/19/projektdokumentationen-und-anwendungsdesign/</guid>
		<description><![CDATA[In den letzten Tagen habe ich einige ganz interessante, deutsche Projektdokumentationen gefunden. Zum einen die zur Zeiterfassung Mite gehörende Diplomarbeit, die hier zum Download angeboten wird. Zum anderen einen Aufsatz von Thomas Bachem, einem der Macher von sevenload.de Ich finde beide Dokumentationen hochgradig interessant zu lesen, nichts desto habe ich einige Anmerkungen und Gedanken dazu: [...]]]></description>
				<content:encoded><![CDATA[<p>In den letzten Tagen habe ich einige ganz interessante, deutsche Projektdokumentationen gefunden.</p>
<p>
Zum einen die zur Zeiterfassung <a href="http://bemite.de/">Mite</a> gehörende Diplomarbeit, die <a href="http://bemite.de/hintergrund.html">hier zum Download</a> angeboten wird. <br />
Zum anderen einen <a href="http://blog.thomasbachem.com/2007/05/07/mein-artikel-im-php-magazin-52006/">Aufsatz</a> von <a href="http://blog.thomasbachem.com/">Thomas Bachem</a>, einem der Macher von <a href="http://www.sevenload.de">sevenload.de</a>
</p>
<p>Ich finde beide Dokumentationen hochgradig interessant zu lesen, nichts desto habe ich einige Anmerkungen und Gedanken dazu:</p>
<p>
Mite ist ein Projekt mit Ruby on Rails. Die Macher hatten am Anfang Lastprobleme, konnten das aber durch einen Umzug auf einen performanteren Server lösen.</p>
<p>
Sevenload ist ein PHP Projekt. Leider nutze ich es nicht so häufig wie Youtube, daher kann ich keine definitive Aussage zur Geschwindigkeit treffen. Dennoch frage ich mich, ob es wirklich nötig ist, in einem Grundlagenartikel direkt mit kontrollierten Redundanzen für die einfachsten Sachen wie &#8220;durchschnittliche Bewertung eines Bildes&#8221; loszulegen? Ich meine, bin ich der einzige, der so etwas für Überflüssig hält? Letzten Endes ist es ein Einzeiler in SQL, der mit korrekter Indexerstellung kein DBMS in die Knie zwingen sollte:
</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> avg<span style="color: #66cc66;">&#40;</span>rating<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">/</span><span style="color: #993333; font-weight: bold;">COUNT</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> rateable_id <span style="color: #993333; font-weight: bold;">FROM</span> ratings <span style="color: #993333; font-weight: bold;">GROUP</span> <span style="color: #993333; font-weight: bold;">BY</span> rateable_id <span style="color: #993333; font-weight: bold;">ORDER</span> <span style="color: #993333; font-weight: bold;">BY</span> <span style="color: #cc66cc;">1</span> <span style="color: #993333; font-weight: bold;">ASC</span>;</pre></td></tr></table></div>

<p>Das dann noch mit einem inner join über die zu bewertenden Dinger verknüpft und gut.</p>
<p>Welcher Ansatz würde ich wählen? Ich selber würde jederzeit Standards vorziehen, im obigen Fall auf ein sauberes ER &lt;-&gt;Objekt Mapping und auf Normalisierung in der DB (witzigerweise erwähnt Thomas Bachem das im nächsten Absatz bzgl. Tagging Schema) setzen. In anderen Worten: Lieber den Railsweg gehen und sauberes Design erhalten und dann im Zweifelsfall etwas mehr Hardware hinter her werfen.</p>
<p>Tatsächlich redundate Informationen zu speichern würde ich generell nicht ausschliessen, in diesem Fall allerdings schon. Ich denke, wenn man soweit unten bereits diesen Bedarf hat, wird es eng mit Optimierungen, wenn die Luft unter Last dünner wird.</p>
<p class="akst_link"><a href="http://info.michael-simons.eu/?p=82&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_82" class="akst_share_link " rel="nofollow">Share This</a>
</p> <p><a href="http://info.michael-simons.eu/?flattrss_redirect&amp;id=82&amp;md5=965c0f18f7cbd10554e5405a4ca5f2ec" title="Flattr" target="_blank"><img src="http://info.michael-simons.eu/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://info.michael-simons.eu/2007/05/19/projektdokumentationen-und-anwendungsdesign/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=rotnroll666&amp;popout=1&amp;url=http%3A%2F%2Finfo.michael-simons.eu%2F2007%2F05%2F19%2Fprojektdokumentationen-und-anwendungsdesign%2F&amp;language=en_GB&amp;category=text&amp;title=Projektdokumentationen+und+Anwendungsdesign&amp;description=In+den+letzten+Tagen+habe+ich+einige+ganz+interessante%2C+deutsche+Projektdokumentationen+gefunden.+Zum+einen+die+zur+Zeiterfassung+Mite+geh%C3%B6rende+Diplomarbeit%2C+die+hier+zum+Download+angeboten+wird.+Zum+anderen+einen+Aufsatz...&amp;tags=Lesetipps%2CMySQL%2CPHP%2CRails%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Getting Real: Kontroverses Softwaredesign?</title>
		<link>http://info.michael-simons.eu/2006/05/02/getting-real-kontroverses-softwaredesign/</link>
		<comments>http://info.michael-simons.eu/2006/05/02/getting-real-kontroverses-softwaredesign/#comments</comments>
		<pubDate>Tue, 02 May 2006 08:27:47 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Shortcuts]]></category>
		<category><![CDATA[Lesetipps]]></category>

		<guid isPermaLink="false">http://www.msimons.info/?p=14</guid>
		<description><![CDATA[Schon wieder ein PDF, was es wert ist, gekauft zu werden: https://gettingreal.37signals.com/ Einblicke in die Philosophie des Softwaredesigns von 37signals.com. Kontroverse Sichtweise und unkonventionelle Vorgehensweise. Alleine schon das Beispielkapitel Meetings are toxic ist in meinen Augen in allen Punkten wahr. Share This]]></description>
				<content:encoded><![CDATA[<p>Schon wieder ein PDF, was es wert ist, gekauft zu werden:</p>
<p><a href="https://gettingreal.37signals.com/">https://gettingreal.37signals.com/</a></p>
<p>Einblicke in die Philosophie des Softwaredesigns von 37signals.com. Kontroverse Sichtweise und unkonventionelle Vorgehensweise. Alleine schon das Beispielkapitel <a href="https://gettingreal.37signals.com/samples/37s-meetings-are-toxic.pdf">Meetings are toxic</a> ist in meinen Augen in allen Punkten wahr.</p>
<p class="akst_link"><a href="http://info.michael-simons.eu/?p=14&amp;akst_action=share-this"  title="E-mail this, post to del.icio.us, etc." id="akst_link_14" class="akst_share_link " rel="nofollow">Share This</a>
</p> <p><a href="http://info.michael-simons.eu/?flattrss_redirect&amp;id=14&amp;md5=f40d89e236fe5f2b64304fcc705a32f5" title="Flattr" target="_blank"><img src="http://info.michael-simons.eu/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://info.michael-simons.eu/2006/05/02/getting-real-kontroverses-softwaredesign/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=rotnroll666&amp;popout=1&amp;url=http%3A%2F%2Finfo.michael-simons.eu%2F2006%2F05%2F02%2Fgetting-real-kontroverses-softwaredesign%2F&amp;language=en_GB&amp;category=text&amp;title=Getting+Real%3A+Kontroverses+Softwaredesign%3F&amp;description=Schon+wieder+ein+PDF%2C+was+es+wert+ist%2C+gekauft+zu+werden%3A+https%3A%2F%2Fgettingreal.37signals.com%2F+Einblicke+in+die+Philosophie+des+Softwaredesigns+von+37signals.com.+Kontroverse+Sichtweise+und+unkonventionelle+Vorgehensweise.+Alleine+schon+das+Beispielkapitel+Meetings...&amp;tags=Lesetipps%2Cblog" type="text/html" />
	</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.175 seconds -->
