<?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>ilimitado Web Entwickler Blog &#187; ilimitado labs</title>
	<atom:link href="http://www.ilimitado.de/blog/themen/ilimitado-labs/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ilimitado.de/blog</link>
	<description></description>
	<lastBuildDate>Thu, 18 Mar 2010 16:58:24 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Howto: Android Unit Test Bootstrapping in Eclipse</title>
		<link>http://www.ilimitado.de/blog/2009/08/howto-android-unit-test-bootstrapping-in-eclipse/</link>
		<comments>http://www.ilimitado.de/blog/2009/08/howto-android-unit-test-bootstrapping-in-eclipse/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 14:32:47 +0000</pubDate>
		<dc:creator>Stephan Linzner &#38; Daniel Kersting</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[ilimitado labs]]></category>
<category>android</category><category>apps</category><category>development</category><category>eclipse</category><category>IDE</category><category>JUnit</category><category>mobile</category><category>test</category>
		<guid isPermaLink="false">http://www.ilimitado.de/blog/?p=403</guid>
		<description><![CDATA[Today we run in some trouble, while trying to &#8220;run&#8221; our test suites against our android code. So here is a short howto run your tests in eclipse. As example we are going to use the APIDemo tests&#8230;
1. Import API Demos to eclipse:
New -> AndroidProject -> Create Project from existing source -> Location: &#60;android-sdk&#62;/platforms/android-1.5/samples/ApiDemos/
2. Test [...]]]></description>
			<content:encoded><![CDATA[<p>Today we run in some trouble, while trying to &#8220;run&#8221; our test suites against our android code. So here is a short howto run your tests in eclipse. As example we are going to use the APIDemo tests&#8230;</p>
<p><strong>1. Import API Demos to eclipse:</strong><br />
New -> AndroidProject -> Create Project from existing source -> Location: &lt;android-sdk&gt;/platforms/android-1.5/samples/ApiDemos/</p>
<p><strong>2. Test code in APIDemo project:</strong><br />
Take a look at the tests folder in APIDemos android project. The whole test code for APIDemos is located in there.</p>
<p><strong>3. Create a test project APIDemoTest:</strong><br />
Right-click on the &#8220;tests&#8221; folder and create a new Project &lt;APIDemosTest&gt;:<br />
New -> AndroidProject -> Create Project from existing source -> Location: &lt;APIDemo/tests folder&gt;</p>
<p><strong>4. Customize the AndroidManifest.xml in APIDemoTest project as follows:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;manifest</span> <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
<span style="color: #009900;">   <span style="color: #000066;">package</span>=<span style="color: #ff0000;">&quot;com.example.android.apis.tests&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
   <span style="color: #808080; font-style: italic;">&lt;!-- We add an application tag here just so that we can indicate that</span>
<span style="color: #808080; font-style: italic;">        this package needs to link against the android.test library,</span>
<span style="color: #808080; font-style: italic;">        which is needed when building test cases. -&gt;    </span>
<span style="color: #808080; font-style: italic;">   &lt;application&gt;</span>
<span style="color: #808080; font-style: italic;">       &lt;uses-library android:name=&quot;android.test.runner&quot; /&gt;</span>
<span style="color: #808080; font-style: italic;">   &lt;/application&gt;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">   &lt;!-</span>
<span style="color: #808080; font-style: italic;">   This declares that this app uses the instrumentation test runner targeting</span>
<span style="color: #808080; font-style: italic;">   the package of com.example.android.apis.  To run the tests use the command:</span>
<span style="color: #808080; font-style: italic;">   &quot;adb shell am instrument -w com.example.android.apis.tests/android.test.InstrumentationTestRunner&quot;</span>
<span style="color: #808080; font-style: italic;">   --&gt;</span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;instrumentation</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.test.InstrumentationTestRunner&quot;</span></span>
<span style="color: #009900;">                    <span style="color: #000066;">android:targetPackage</span>=<span style="color: #ff0000;">&quot;com.example.android.apis&quot;</span></span>
<span style="color: #009900;">                    <span style="color: #000066;">android:label</span>=<span style="color: #ff0000;">&quot;Tests for Api Demos.&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/manifest<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p><strong>4. Deploy both apps on emulator or mobile device:</strong><br />
&lt;project&gt; -> Run as -> Android Application</p>
<p><strong>5. Go to CLI and type:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;">adb shell am instrument <span style="color: #339933;">-</span>w com.<span style="color: #202020;">example</span>.<span style="color: #202020;">android</span>.<span style="color: #202020;">apis</span>.<span style="color: #202020;">tests</span><span style="color: #339933;">/</span>android.<span style="color: #202020;">test</span>.<span style="color: #202020;">InstrumentationTestRunner</span></pre></div></div>

<p><strong>6. Test results:</strong><br />
Now your tests should have been invoked and you will be provided with an output similiar to:</p>
<p>Test results for InstrumentationTestRunner=&#8230;&#8230;&#8230;&#8230;&#8230;F.F&#8230;&#8230;<br />
Time: 6.658</p>
<p>FAILURES!!!<br />
Tests run: 22,  Failures: 2,  Errors: 0</p>
<p><strong>7. Note:</strong><br />
Every dot in &#8230;&#8230;&#8230;&#8230;&#8230;F.F&#8230;&#8230; represents a successful test and F the ones that failed.</p>
<p><strong>8. Have fun with testing your own code!!</strong></p>
<p class="buymebeer"><form action="https://www.paypal.com/cgi-bin/webscr" target="paypal" method="post"><input type="hidden" name="cmd" value="_xclick" /><input type="hidden" name="business" value="info@ilimitado.de" /><input type="hidden" name="return" value="http://www.ilimitado.de/labs/danke.php" /><input type="hidden" name="item_name" value="Spendier einen Drink für Howto: Android Unit Test Bootstrapping in Eclipse" /><input type="hidden" name="amount" value="" /><input type="image" src="http://www.ilimitado.de/blog/wp-content/plugins/buy-me-beer/icon_beer.gif" align="left" alt="Unterstützung für Blogger" title="Unterstützung für Blogger" hspace="3" /></form><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;business=info@ilimitado.de&amp;amount=&amp;return=http://www.ilimitado.de/labs/danke.php&amp;item_name=Spendier+einen+Drink+für+Howto:+Android+Unit+Test+Bootstrapping+in+Eclipse" target="paypal">Wenn dir dieser Beitrag gefällt, lade den Autor doch mal zu einem Drink ein ;-)</a></p><br /><strong>Tags:</strong> <a href="http://www.ilimitado.de/blog/tags/android/" title="Browse for android" rel="tag">android</a>, <a href="http://www.ilimitado.de/blog/tags/apps/" title="Browse for apps" rel="tag">apps</a>, <a href="http://www.ilimitado.de/blog/tags/development/" title="Browse for development" rel="tag">development</a>, <a href="http://www.ilimitado.de/blog/tags/eclipse/" title="Browse for eclipse" rel="tag">eclipse</a>, <a href="http://www.ilimitado.de/blog/tags/IDE/" title="Browse for IDE" rel="tag">IDE</a>, <a href="http://www.ilimitado.de/blog/tags/JUnit/" title="Browse for JUnit" rel="tag">JUnit</a>, <a href="http://www.ilimitado.de/blog/tags/mobile/" title="Browse for mobile" rel="tag">mobile</a>, <a href="http://www.ilimitado.de/blog/tags/test/" title="Browse for test" rel="tag">test</a>]]></content:encoded>
			<wfw:commentRss>http://www.ilimitado.de/blog/2009/08/howto-android-unit-test-bootstrapping-in-eclipse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Baksmali/Smali (Dissassembler/Reassembler) Android Tutorial</title>
		<link>http://www.ilimitado.de/blog/2009/07/baksmalismali-dissassemblerreassembler-android-tutorial/</link>
		<comments>http://www.ilimitado.de/blog/2009/07/baksmalismali-dissassemblerreassembler-android-tutorial/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 14:12:01 +0000</pubDate>
		<dc:creator>Stephan Linzner &#38; Daniel Kersting</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[ilimitado labs]]></category>
<category>android</category><category>disassembler</category><category>google</category><category>reassembler</category><category>smali</category>
		<guid isPermaLink="false">http://www.ilimitado.de/blog/?p=374</guid>
		<description><![CDATA[Zunächst müssen die .jar Dateien von der Projektseite geladen und entpackt werden:
Download von http://code.google.com/p/smali/

baksmali-0.93.jar  ist der Disassembler
smali-0.92.jar ist der Reassembler

Nachdem die Dateien herunterladen wurden einfach in einen Ordner Eurer Wahl kopieren. Nun können wir auch schon mit dem Dis-/Reassemblieren beginnen.
Disassemblieren:

Gewünschte .apk Datei in einen leeren Ordner kopieren
Datei dort entpacken (in Ubuntu entweder per Doppelklick auf [...]]]></description>
			<content:encoded><![CDATA[<p>Zunächst müssen die .jar Dateien von der Projektseite geladen und entpackt werden:<br />
Download von <a href="http://code.google.com/p/smali/">http://code.google.com/p/smali/</a></p>
<ul>
<li>baksmali-0.93.jar  ist der Disassembler</li>
<li>smali-0.92.jar ist der Reassembler</li>
</ul>
<p>Nachdem die Dateien herunterladen wurden einfach in einen Ordner Eurer Wahl kopieren. Nun können wir auch schon mit dem Dis-/Reassemblieren beginnen.</p>
<p><strong>Disassemblieren:</strong></p>
<ul>
<li>Gewünschte .apk Datei in einen leeren Ordner kopieren</li>
<li>Datei dort entpacken (in Ubuntu entweder per Doppelklick auf die .apk oder via Konsole:</li>
</ul>
<p>mkdir &lt;yourApp&gt;<br />
cd &lt;yourApp&gt;<br />
adb pull /system/app/&lt;yourApp&gt;.apk ./<br />
unzip &lt;yourApp&gt;.apk</p>
<p>Nun sollten die .apk entpackt sein und unter anderem die Manifest Datei, der path/to/project/res/ Ordner und ganz wichtig die classes.dex Datei vorhanden sein. Nun geht es an das Disassemblieren der .dex Datei.</p>
<p>Hierzu müssen wir auf der CLI folgenden Befehl ausführen:</p>
<p>java -jar your/path/baksmali-0.93.jar classes.dex<br />
(Der allgemein Aufruf ist java -jar baksmali.jar [options] &lt;dex-file&gt;)</p>
<p>Baksmali erstellt dann einen neuen Ordner namens &#8220;out&#8221;, in welchem sich die disassemblierten Dateien befinden. In diesem Fall  wäre z.B. unter out/your/package/name/ die entsprechenden .smali Dateien zu finden.</p>
<p><strong>Assemblieren:</strong><br />
Hat man die .smali abgeändert kann man diese natürlich auch wieder reassemblieren. Hierzu nimmt man den Smali Reassembler. Dieser macht aus den .smali Dateien wieder eine .dex Datei, die in diesem Fall out.dex heisst. Der Befehl sieht dann folgendermaßen aus:</p>
<p>java -jar  your/path/smali-0.92.jar out/your/package/name/</p>
<p>Als letztes muss nun noch die out.dex nach classes.dex umbenannt werden und zusammen mit den anderen, im ersten Teil entpackten Ressourcen, wieder zu einer .apk Datei gepackt werden. Danach sollte diese wieder normal auf dem Gerät ausführbar sein, inklusive den an den .smali Dateien vorgenommenen Änderungen.</p>
<p>Auf der Smali Seite gibt es auch noch ein HelloWorld Beispiel, das man sich auf jeden Fall anschauen sollte.</p>
<p><strong>Hello World in Android Assembler mit Compile und install Beispiel </strong><br />
<a href="http://http://code.google.com/p/smali/source/browse/trunk/examples/HelloWorld/HelloWorld.smali">http://code.google.com/p/smali/source/browse/trunk/examples/HelloWorld/HelloWorld.smali</a></p>
<p>Viel Spaß beim Dis-/Reassemblieren!!</p>
<p class="buymebeer"><form action="https://www.paypal.com/cgi-bin/webscr" target="paypal" method="post"><input type="hidden" name="cmd" value="_xclick" /><input type="hidden" name="business" value="info@ilimitado.de" /><input type="hidden" name="return" value="http://www.ilimitado.de/labs/danke.php" /><input type="hidden" name="item_name" value="Spendier einen Drink für Baksmali/Smali (Dissassembler/Reassembler) Android Tutorial" /><input type="hidden" name="amount" value="" /><input type="image" src="http://www.ilimitado.de/blog/wp-content/plugins/buy-me-beer/icon_beer.gif" align="left" alt="Unterstützung für Blogger" title="Unterstützung für Blogger" hspace="3" /></form><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;business=info@ilimitado.de&amp;amount=&amp;return=http://www.ilimitado.de/labs/danke.php&amp;item_name=Spendier+einen+Drink+für+Baksmali/Smali+(Dissassembler/Reassembler)+Android+Tutorial" target="paypal">Wenn dir dieser Beitrag gefällt, lade den Autor doch mal zu einem Drink ein ;-)</a></p><br /><strong>Tags:</strong> <a href="http://www.ilimitado.de/blog/tags/android/" title="Browse for android" rel="tag">android</a>, <a href="http://www.ilimitado.de/blog/tags/disassembler/" title="Browse for disassembler" rel="tag">disassembler</a>, <a href="http://www.ilimitado.de/blog/tags/google/" title="Browse for google" rel="tag">google</a>, <a href="http://www.ilimitado.de/blog/tags/reassembler/" title="Browse for reassembler" rel="tag">reassembler</a>, <a href="http://www.ilimitado.de/blog/tags/smali/" title="Browse for smali" rel="tag">smali</a>]]></content:encoded>
			<wfw:commentRss>http://www.ilimitado.de/blog/2009/07/baksmalismali-dissassemblerreassembler-android-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;My Name Is&#8221;, eine der ersten Paid Apps aus Deutschland im Android Market</title>
		<link>http://www.ilimitado.de/blog/2009/05/my-name-is-eine-der-ersten-paid-apps-aus-deutschland-im-android-market/</link>
		<comments>http://www.ilimitado.de/blog/2009/05/my-name-is-eine-der-ersten-paid-apps-aus-deutschland-im-android-market/#comments</comments>
		<pubDate>Wed, 13 May 2009 11:30:23 +0000</pubDate>
		<dc:creator>Daniel Kersting</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[ilimitado labs]]></category>

		<guid isPermaLink="false">http://www.ilimitado.de/blog/?p=355</guid>
		<description><![CDATA[Nachdem wir heute morgen voller Freude die Rundmail des Google Android Market Support gelesen haben, in der es heisst:
&#8230; We have also added seller support for developers from Germany, France,
Spain, the Netherlands, and Austria.  Developers from these countries can
now go to the publisher website to publish their priced applications&#8230;
haben wir gerade als eine der [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem wir heute morgen voller Freude die Rundmail des Google Android Market Support gelesen haben, in der es heisst:</p>
<blockquote><p>&#8230; We have also added seller support for developers from Germany, France,<br />
Spain, the Netherlands, and Austria.  Developers from these countries can<br />
now go to the publisher website to publish their priced applications&#8230;</p></blockquote>
<p>haben wir gerade <strong>als eine der ersten deutschen Firmen</strong> unsere <strong>Android App &#8220;My Name Is&#8221;</strong> für (unschlagbare) 0.99 € in den Android Market eingestellt.</p>
<p>Aber genug der Werbeslogans, <strong>My Name Is</strong> ist eine einfache, kleine, nette und nützliche Android Applikation, welche auf dem Display ein Namensschild anzeigt. Der Name, die Überschriften, die Farben und auch die Schriftart sind individuell anpassbar.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-7971500319600855";
google_ui_features = "rc:";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text";
google_alternate_ad_url = "?adsensem-benice=468x60";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "A8C21D";
google_color_text = "333333";
google_color_url = "";

//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
<p>Darüber hinaus können Screenshots aus der Applikation abgespeichert, per Email, Twitter oder jeder anderen installierten Applikation verteilt werden und als letztes Highlight auch als Homescreen Wallpaper gesetzt werden.</p>
<p><strong>Da Bilder mehr als 1000 Worte sagen, hier einfach ein paar kommentierte Screenshots:</strong></p>
<div id="attachment_356" class="wp-caption aligncenter" style="width: 330px"><a href="http://www.ilimitado.de/blog/wp-content/uploads/2009/05/my_name_is_screenshot1.png"><img src="http://www.ilimitado.de/blog/wp-content/uploads/2009/05/my_name_is_screenshot1.png" alt="Startbildschirm der Applikation im Portrait Modus" title="Startbildschirm der Applikation" width="320" height="480" class="size-full wp-image-356" /></a><p class="wp-caption-text">Startbildschirm der Applikation im Portrait Modus</p></div>
<div id="attachment_357" class="wp-caption aligncenter" style="width: 490px"><a href="http://www.ilimitado.de/blog/wp-content/uploads/2009/05/my_name_is_screenshot7.png"><img src="http://www.ilimitado.de/blog/wp-content/uploads/2009/05/my_name_is_screenshot7.png" alt="Startbildschirm der Applikation im Landscape Modus in farblich angepasst" title="Startbildschirm der Applikation (Landscape)" width="480" height="320" class="size-full wp-image-357" /></a><p class="wp-caption-text">Startbildschirm der Applikation im Landscape Modus in farblich angepasst</p></div>
<div id="attachment_358" class="wp-caption aligncenter" style="width: 330px"><a href="http://www.ilimitado.de/blog/wp-content/uploads/2009/05/my_name_is_screenshot2.png"><img src="http://www.ilimitado.de/blog/wp-content/uploads/2009/05/my_name_is_screenshot2.png" alt="Menü der Applikation mit der Möglichkeit das Namensschild als Hintergrundbild zu setzen, seinen Freunden zu teilen oder das Aussehen seinen Bedürfnissen anzupassen" title="Menü der Applikation" width="320" height="480" class="size-full wp-image-358" /></a><p class="wp-caption-text">Menü der Applikation mit der Möglichkeit das Namensschild als Hintergrundbild zu setzen, seinen Freunden zu teilen oder das Aussehen seinen Bedürfnissen anzupassen</p></div>
<div id="attachment_359" class="wp-caption aligncenter" style="width: 330px"><a href="http://www.ilimitado.de/blog/wp-content/uploads/2009/05/my_name_is_screenshot8.png"><img src="http://www.ilimitado.de/blog/wp-content/uploads/2009/05/my_name_is_screenshot8.png" alt="Namensschild auf dem Homescreen als Wallpaper gesetzt" title="Namensschild auf dem Startbildschirm (Homescreen) " width="320" height="480" class="size-full wp-image-359" /></a><p class="wp-caption-text">Namensschild auf dem Homescreen als Wallpaper gesetzt</p></div>
<div id="attachment_360" class="wp-caption aligncenter" style="width: 490px"><a href="http://www.ilimitado.de/blog/wp-content/uploads/2009/05/my_name_is_screenshot9.png"><img src="http://www.ilimitado.de/blog/wp-content/uploads/2009/05/my_name_is_screenshot9.png" alt="Namensschild auf dem Homescreen, diesmal im Landscape Modus, je nach dem wie das Namensschild in der Applikation angezeigt wird, wird es auch abgespeichert." title="Namensschild auf dem Homescreen im Landscape Modus" width="480" height="320" class="size-full wp-image-360" /></a><p class="wp-caption-text">Namensschild auf dem Homescreen, diesmal im Landscape Modus, je nach dem wie das Namensschild in der Applikation angezeigt wird, wird es auch abgespeichert.</p></div>
<div id="attachment_360" class="wp-caption aligncenter" style="width: 490px"><a href="http://www.ilimitado.de/blog/wp-content/uploads/2009/05/my_name_is_screenshot9.png"><img src="http://www.ilimitado.de/blog/wp-content/uploads/2009/05/my_name_is_screenshot9.png" alt="Namensschild auf dem Homescreen, diesmal im Landscape Modus, je nach dem wie das Namensschild in der Applikation angezeigt wird, wird es auch abgespeichert." title="Namensschild auf dem Homescreen im Landscape Modus" width="480" height="320" class="size-full wp-image-360" /></a><p class="wp-caption-text">Namensschild auf dem Homescreen, diesmal im Landscape Modus, je nach dem wie das Namensschild in der Applikation angezeigt wird, wird es auch abgespeichert.</p></div>
<div id="attachment_361" class="wp-caption aligncenter" style="width: 330px"><a href="http://www.ilimitado.de/blog/wp-content/uploads/2009/05/my_name_is_screenshot3.png"><img src="http://www.ilimitado.de/blog/wp-content/uploads/2009/05/my_name_is_screenshot3.png" alt="Fast das gesamte Aussehen kann über den Konfigurations Screen verändert und angepasst werden" title="Konfigurations Bildschirm" width="320" height="480" class="size-full wp-image-361" /></a><p class="wp-caption-text">Fast das gesamte Aussehen kann über den Konfigurations Screen verändert und angepasst werden</p></div>
<div id="attachment_362" class="wp-caption aligncenter" style="width: 330px"><a href="http://www.ilimitado.de/blog/wp-content/uploads/2009/05/my_name_is_screenshot6.png"><img src="http://www.ilimitado.de/blog/wp-content/uploads/2009/05/my_name_is_screenshot6.png" alt="Die Farbe kann leicht aus einer der verfügbaren Farben gewählt werden" title="Farbe auswählen" width="320" height="480" class="size-full wp-image-362" /></a><p class="wp-caption-text">Die Farbe kann leicht aus einer der verfügbaren Farben gewählt werden</p></div>
<div id="attachment_363" class="wp-caption aligncenter" style="width: 330px"><a href="http://www.ilimitado.de/blog/wp-content/uploads/2009/05/my_name_is_screenshot4.png"><img src="http://www.ilimitado.de/blog/wp-content/uploads/2009/05/my_name_is_screenshot4.png" alt="Die Texte und Schriftart und Größe können angepasst werden" title="Texte anpassen" width="320" height="480" class="size-full wp-image-363" /></a><p class="wp-caption-text">Die Texte und Schriftart und Größe können angepasst werden</p></div>
<div id="attachment_364" class="wp-caption aligncenter" style="width: 330px"><a href="http://www.ilimitado.de/blog/wp-content/uploads/2009/05/my_name_is_screenshot5.png"><img src="http://www.ilimitado.de/blog/wp-content/uploads/2009/05/my_name_is_screenshot5.png" alt="Auch die Farben können im Detail geändert werden" title="Farben anpassen" width="320" height="480" class="size-full wp-image-364" /></a><p class="wp-caption-text">Auch die Farben können im Detail geändert werden</p></div>
<p>Das wars auch schon, wir würden uns über Feedback freuen und wünschen, all den glücklichen Besitzern eines Android Telefons, viel Spaß mit unserer Applikation.</p>
<div class="wp-caption aligncenter" style="width: 220px"><img alt="Zu guter letzt, hier noch ein QR-Code zum abscannen mit dem Handy zur direkten Installation" src="http://qrcode.kaywa.com/img.php?s=6&#038;d=market%3A%2F%2Fsearch%3Fq%3Dpname%3Ade.ilimitado.mynameis" title="QR-Code Direkt in den Android Market" width="210" height="210" /><p class="wp-caption-text">Zu guter letzt, hier noch ein QR-Code zum abscannen mit dem Handy zur direkten Installation</p></div>
<p class="buymebeer"><form action="https://www.paypal.com/cgi-bin/webscr" target="paypal" method="post"><input type="hidden" name="cmd" value="_xclick" /><input type="hidden" name="business" value="info@ilimitado.de" /><input type="hidden" name="return" value="http://www.ilimitado.de/labs/danke.php" /><input type="hidden" name="item_name" value="Spendier einen Drink für "My Name Is", eine der ersten Paid Apps aus Deutschland im Android Market" /><input type="hidden" name="amount" value="" /><input type="image" src="http://www.ilimitado.de/blog/wp-content/plugins/buy-me-beer/icon_beer.gif" align="left" alt="Unterstützung für Blogger" title="Unterstützung für Blogger" hspace="3" /></form><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;business=info@ilimitado.de&amp;amount=&amp;return=http://www.ilimitado.de/labs/danke.php&amp;item_name=Spendier+einen+Drink+für+"My+Name+Is",+eine+der+ersten+Paid+Apps+aus+Deutschland+im+Android+Market" target="paypal">Wenn dir dieser Beitrag gefällt, lade den Autor doch mal zu einem Drink ein ;-)</a></p>keine Tags zugeordnet]]></content:encoded>
			<wfw:commentRss>http://www.ilimitado.de/blog/2009/05/my-name-is-eine-der-ersten-paid-apps-aus-deutschland-im-android-market/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A donation-based application framework for android</title>
		<link>http://www.ilimitado.de/blog/2009/04/a-donation-based-application-framework-for-android/</link>
		<comments>http://www.ilimitado.de/blog/2009/04/a-donation-based-application-framework-for-android/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 21:00:09 +0000</pubDate>
		<dc:creator>Stephan Linzner</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobiles Internet]]></category>
		<category><![CDATA[Web]]></category>
<category>android</category><category>apps</category><category>donation</category><category>framework</category><category>google</category><category>market</category>
		<guid isPermaLink="false">http://www.ilimitado.de/blog/?p=348</guid>
		<description><![CDATA[Imagine you have just written your new ground breaking android application. It took you weeks developing it because you have to go to work and can just code after quitting time or at the weekends. You finally finished it up and the application works great and it&#8217;s roll out time baby.
But should you make it [...]]]></description>
			<content:encoded><![CDATA[<p>Imagine you have just written your new ground breaking android application. It took you weeks developing it because you have to go to work and can just code after quitting time or at the weekends. You finally finished it up and the application works great and it&#8217;s roll out time baby.<br />
But should you make it a free or paid app? If you make it a paid app users won&#8217;t have the opportunity to review your application before buying it. As a consequence less people will download it (we where analysing this by browsing through the market, listing the download counts of all paid apps&#8230;), and advertising also doesn&#8217;t make much sense, because the application mainly runs as background service and uses the notification system to interact with the user. But all you know is, that your little application could be very useful to a lot off people and therefore there is no doubt to make it a free app. </p>
<p>The story above might be a little exaggerated, but we have been in a similar situation with our upcoming application. We wanted people to decide on their own what the app is worth and started coding a little framework to bring a donation model to android. </p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-7971500319600855";
google_ui_features = "rc:";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text";
google_alternate_ad_url = "?adsensem-benice=468x60";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "A8C21D";
google_color_text = "333333";
google_color_url = "";

//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
<p>The framework is still in the works and is based on the idea of periodically (i.e. every 50th program launch) showing dialogs to the user via the notification System. A dialog will ask the user to donate some money, to your google checkout account, to support free applications. As soon as the user has donated an arbitrary amount to your checkout account the dialogs will be disabled. How does this work?<br />
The server side framework code will periodically check your email account for google checkout donations from a specific user. If a donation is received a donation code for the user will be generated and the server waits for the next ping from the android application. Applications using the framework will ping donation servers in fixed time intervals to request a donation code. If a code, for the app installed on the device, is available the donation code will be fetched from the server. Once the code is received, it will be compared with the app ID, generated at the first application launch, and if the code matches the dialogs will immediately be disabled. So this is roughly how the framework will operate, but it&#8217;s still in development and new ideas are very welcome. </p>
<p>Bottom line, we think this is a very fair donation model, because only users that use the app frequently will be asked to donate some money, while others don&#8217;t get harassed. We just didn&#8217;t want to make it too aggressively&#8230; </p>
<p>But don&#8217;t worry, when the framework will be released you will be able to decide in which intervals (time, launch) the dialogs will be shown to the user. Furthermore you will be able to choose between a service running in the background for notifications and showing a dialog every time the user launches the application.            </p>
<p class="buymebeer"><form action="https://www.paypal.com/cgi-bin/webscr" target="paypal" method="post"><input type="hidden" name="cmd" value="_xclick" /><input type="hidden" name="business" value="info@ilimitado.de" /><input type="hidden" name="return" value="http://www.ilimitado.de/labs/danke.php" /><input type="hidden" name="item_name" value="Spendier einen Drink für A donation-based application framework for android" /><input type="hidden" name="amount" value="" /><input type="image" src="http://www.ilimitado.de/blog/wp-content/plugins/buy-me-beer/icon_beer.gif" align="left" alt="Unterstützung für Blogger" title="Unterstützung für Blogger" hspace="3" /></form><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;business=info@ilimitado.de&amp;amount=&amp;return=http://www.ilimitado.de/labs/danke.php&amp;item_name=Spendier+einen+Drink+für+A+donation-based+application+framework+for+android" target="paypal">Wenn dir dieser Beitrag gefällt, lade den Autor doch mal zu einem Drink ein ;-)</a></p><br /><strong>Tags:</strong> <a href="http://www.ilimitado.de/blog/tags/android/" title="Browse for android" rel="tag">android</a>, <a href="http://www.ilimitado.de/blog/tags/apps/" title="Browse for apps" rel="tag">apps</a>, <a href="http://www.ilimitado.de/blog/tags/donation/" title="Browse for donation" rel="tag">donation</a>, <a href="http://www.ilimitado.de/blog/tags/framework/" title="Browse for framework" rel="tag">framework</a>, <a href="http://www.ilimitado.de/blog/tags/google/" title="Browse for google" rel="tag">google</a>, <a href="http://www.ilimitado.de/blog/tags/market/" title="Browse for market" rel="tag">market</a>]]></content:encoded>
			<wfw:commentRss>http://www.ilimitado.de/blog/2009/04/a-donation-based-application-framework-for-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apps im Android Market mit QR-Code verlinken</title>
		<link>http://www.ilimitado.de/blog/2009/04/apps-im-android-market-mit-qr-code-verlinken/</link>
		<comments>http://www.ilimitado.de/blog/2009/04/apps-im-android-market-mit-qr-code-verlinken/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 09:41:37 +0000</pubDate>
		<dc:creator>Stephan Linzner &#38; Daniel Kersting</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[ilimitado labs]]></category>
<category>android</category><category>google</category><category>ilimitado</category><category>market</category><category>qr code</category>
		<guid isPermaLink="false">http://www.ilimitado.de/blog/?p=333</guid>
		<description><![CDATA[Eine einfache Methode um virales Marketing für seine Android Market Applikationen zu betreiben stellt das erzeugen eines QR-Codes dar, welchen Nutzer dann z.B. von Ihrem Bildschirm abscannen können. Durch das Abscannen landen die Nutzer direkt im Market und können die Applikation dort herunterladen und installieren.
Das Abscannen setzt allerdings einen QR-Reader, wie z.B. den Barcodescanner von [...]]]></description>
			<content:encoded><![CDATA[<p>Eine einfache Methode um virales Marketing für seine Android Market Applikationen zu betreiben stellt das erzeugen eines QR-Codes dar, welchen Nutzer dann z.B. von Ihrem Bildschirm abscannen können. Durch das Abscannen landen die Nutzer direkt im Market und können die Applikation dort herunterladen und installieren.<br />
Das Abscannen setzt allerdings einen QR-Reader, wie z.B. den Barcodescanner von Google voraus, welcher aber bei den meisten Nutzer installiert sein dürfte. </p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-7971500319600855";
google_ui_features = "rc:";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text";
google_alternate_ad_url = "?adsensem-benice=468x60";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "A8C21D";
google_color_text = "333333";
google_color_url = "";

//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
<p>Aber wie geht das Ganze nun?</p>
<ol>
<li><strong>URL erzeugen:</strong> Hierzu einfach folgende URL um den Paketnamen der Applikation ergänzen: market://search?q=pname:de.ilimitado.android.lotteryshaker.
</li>
<li><strong>QR-Code generieren:</strong> Auf die Webseite von <a href="http://qrcode.kaywa.com/">Kaywa</a> gehen, URL als Content Type wählen und die oben erzeugte URL einfügen. Anschließend Größe auswählen und dann auf &#8220;generate&#8221; klicken um den QR-Code zu erzeugen.</li>
<li><strong>QR-Code verteilen:</strong> Der Kreativität bezüglich der Präsentationsform des QR-Codes sind natürlich keine Grenzen gesetzt. Die einfachste Methode ist den Code auf seiner Webseite/Blog einzubinden und so jedem Besucher eine einfach Installation, via abscannen zu ermöglichen.<br />
Der QR-Code kann aber auch einfach zu einer Kampagne in der &#8220;realen Welt&#8221; benutzt werden, z.B. durch das Drucken von Aufklebern, Flyern etc. . Wir würden uns über Anregungen in den Kommentaren diesbezüglich sehr freuen.</li>
</ol>
<p>Und so sieht das Ganze dann aus, wenn man einen QR-Code mit der URL von oben erzeugt (Dieser zeigt direkt auf unsere neuste Applikation im Market, Lottery Shaker:</p>
<p><img src="http://qrcode.kaywa.com/img.php?s=6&#038;d=market%3A%2F%2Fsearch%3Fq%3Dpname%3Ade.ilimitado.android.lotteryshaker" alt="qrcode"  /></p>
<p class="buymebeer"><form action="https://www.paypal.com/cgi-bin/webscr" target="paypal" method="post"><input type="hidden" name="cmd" value="_xclick" /><input type="hidden" name="business" value="info@ilimitado.de" /><input type="hidden" name="return" value="http://www.ilimitado.de/labs/danke.php" /><input type="hidden" name="item_name" value="Spendier einen Drink für Apps im Android Market mit QR-Code verlinken" /><input type="hidden" name="amount" value="" /><input type="image" src="http://www.ilimitado.de/blog/wp-content/plugins/buy-me-beer/icon_beer.gif" align="left" alt="Unterstützung für Blogger" title="Unterstützung für Blogger" hspace="3" /></form><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;business=info@ilimitado.de&amp;amount=&amp;return=http://www.ilimitado.de/labs/danke.php&amp;item_name=Spendier+einen+Drink+für+Apps+im+Android+Market+mit+QR-Code+verlinken" target="paypal">Wenn dir dieser Beitrag gefällt, lade den Autor doch mal zu einem Drink ein ;-)</a></p><br /><strong>Tags:</strong> <a href="http://www.ilimitado.de/blog/tags/android/" title="Browse for android" rel="tag">android</a>, <a href="http://www.ilimitado.de/blog/tags/google/" title="Browse for google" rel="tag">google</a>, <a href="http://www.ilimitado.de/blog/tags/ilimitado/" title="Browse for ilimitado" rel="tag">ilimitado</a>, <a href="http://www.ilimitado.de/blog/tags/market/" title="Browse for market" rel="tag">market</a>, <a href="http://www.ilimitado.de/blog/tags/qr-code/" title="Browse for qr code" rel="tag">qr code</a>]]></content:encoded>
			<wfw:commentRss>http://www.ilimitado.de/blog/2009/04/apps-im-android-market-mit-qr-code-verlinken/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Android App &#8220;Lottery Shaker&#8221;, ab heute im Market</title>
		<link>http://www.ilimitado.de/blog/2009/04/android-app-lottery-shaker-ab-heute-im-market/</link>
		<comments>http://www.ilimitado.de/blog/2009/04/android-app-lottery-shaker-ab-heute-im-market/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 19:52:04 +0000</pubDate>
		<dc:creator>Stephan Linzner &#38; Daniel Kersting</dc:creator>
				<category><![CDATA[ilimitado labs]]></category>
<category>android</category><category>ilimitado</category><category>labs</category><category>lotto</category><category>twitter</category>
		<guid isPermaLink="false">http://www.ilimitado.de/blog/?p=318</guid>
		<description><![CDATA[Nachdem es schon lange geplant war, ist es endlich soweit: 
ilimitado labs proudly presents &#8220;Lottery Shaker&#8221;. 
Die  kleine, aber feine, Android App ist seit gerade eben im Android Market verfügbar. 
Das Ganze ist schnell erklärt, man schüttelt einfach das Handy und dank Beschleunigungssensor bekommt man schöne Zufallswerte, die man dann als Seed für den [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem es schon lange geplant war, ist es endlich soweit: </p>
<blockquote><p>ilimitado labs proudly presents <strong>&#8220;Lottery Shaker&#8221;</strong>. </p></blockquote>
<p>Die  kleine, aber feine, <strong>Android App</strong> ist seit gerade eben im Android Market verfügbar. </p>
<p>Das Ganze ist schnell erklärt, <strong>man schüttelt einfach das Handy</strong> und dank Beschleunigungssensor bekommt man schöne Zufallswerte, die man dann als Seed für den Zufallsgenerator nutzten kann. Dieser erzeugt dann eine Lotto Zahlen Reihe. </p>
<p>Wenn einem die Lotto Zahlen gefallen, kann man sie in eine Liste speichern, wieder löschen oder per Email (oder Twitter, etc.) mit anderen teilen. </p>
<p><strong>Und so sieht das Ganze aus:</strong><br />
<div id="attachment_319" class="wp-caption aligncenter" style="width: 330px"><a href="http://www.ilimitado.de/blog/wp-content/uploads/2009/04/helpscreen.png"><img src="http://www.ilimitado.de/blog/wp-content/uploads/2009/04/helpscreen.png" alt="Zunächst begrüßt einen der Startbildschirm mit einer kleinen Einführung." title="Lottery Shaker Help Screen" width="320" height="480" class="size-full wp-image-319" /></a><p class="wp-caption-text">Zunächst begrüßt einen der Startbildschirm mit einer kleinen Einführung.</p></div><br />
<div id="attachment_320" class="wp-caption aligncenter" style="width: 330px"><a href="http://www.ilimitado.de/blog/wp-content/uploads/2009/04/android-app-lottery-shaker-preferences-screen.png"><img src="http://www.ilimitado.de/blog/wp-content/uploads/2009/04/preferencesscreen.png" alt="Man kann einstellen, für welche Art von Lotto man Zahlen schütteln möchte" title="Lottery Shaker Einstellungen" width="320" height="480" class="size-full wp-image-320" /></a><p class="wp-caption-text">Man kann einstellen, für welche Art von Lotto man Zahlen schütteln möchte</p></div><br />
<div id="attachment_321" class="wp-caption aligncenter" style="width: 330px"><a href="http://www.ilimitado.de/blog/wp-content/uploads/2009/04/android-app-lottery-shaker-preset-screen.png"><img src="http://www.ilimitado.de/blog/wp-content/uploads/2009/04/presetscreen.png" alt="Man kann aus einer Liste mit Voreinstellungen wählen" title="Voreinstellungen wählen" width="320" height="480" class="size-full wp-image-321" /></a><p class="wp-caption-text">Man kann aus einer Liste mit Voreinstellungen wählen</p></div></p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-7971500319600855";
google_ui_features = "rc:";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text";
google_alternate_ad_url = "?adsensem-benice=468x60";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "A8C21D";
google_color_text = "333333";
google_color_url = "";

//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
<div id="attachment_322" class="wp-caption aligncenter" style="width: 330px"><a href="http://www.ilimitado.de/blog/wp-content/uploads/2009/04/android-app-lottery-shaker-main-screen.png"><img src="http://www.ilimitado.de/blog/wp-content/uploads/2009/04/mainscreen.png" alt="Oben sie aktuell geschüttelte Zahlenreihe, und unten die Liste der gespeicherten Zahlen" title="Die eigentliche Anwendung" width="320" height="480" class="size-full wp-image-322" /></a><p class="wp-caption-text">Oben die aktuell geschüttelte Zahlenreihe, und unten die Liste der gespeicherten Zahlen. In Rot die Superzahlen.</p></div><br />
<div id="attachment_323" class="wp-caption aligncenter" style="width: 330px"><a href="http://www.ilimitado.de/blog/wp-content/uploads/2009/04/android-app-lottery-shaker-share-screen.png"><img src="http://www.ilimitado.de/blog/wp-content/uploads/2009/04/sharescreen.png" alt="Zu guter Letzt können zahlen verwaltet werden. Man kann sie (mit installiertem Twidroid) sogar twittern!" title="Kontexmenü zum Verwalten der Zahlen" width="320" height="480" class="size-full wp-image-323" /></a><p class="wp-caption-text">Zu guter Letzt können Zahlen verwaltet werden. Man kann sie (mit installiertem Twidroid) sogar twittern!</p></div>
<p>Das wars auch schon, wir würden uns über Feedback freuen und wünschen all den glücklichen Besitzern eines Android Telefons viel Spaß beim schütteln (shaken) ihrer nächsten Lotto-Glückszahlen.</p>
<p>QR-Code abscannen zur direkten Installation:</p>
<p><img src="http://qrcode.kaywa.com/img.php?s=6&#038;d=market%3A%2F%2Fsearch%3Fq%3Dpname%3Ade.ilimitado.android.lotteryshaker" alt="qrcode"  /></p>
<p class="buymebeer"><form action="https://www.paypal.com/cgi-bin/webscr" target="paypal" method="post"><input type="hidden" name="cmd" value="_xclick" /><input type="hidden" name="business" value="info@ilimitado.de" /><input type="hidden" name="return" value="http://www.ilimitado.de/labs/danke.php" /><input type="hidden" name="item_name" value="Spendier einen Drink für Android App "Lottery Shaker", ab heute im Market" /><input type="hidden" name="amount" value="" /><input type="image" src="http://www.ilimitado.de/blog/wp-content/plugins/buy-me-beer/icon_beer.gif" align="left" alt="Unterstützung für Blogger" title="Unterstützung für Blogger" hspace="3" /></form><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;business=info@ilimitado.de&amp;amount=&amp;return=http://www.ilimitado.de/labs/danke.php&amp;item_name=Spendier+einen+Drink+für+Android+App+"Lottery+Shaker",+ab+heute+im+Market" target="paypal">Wenn dir dieser Beitrag gefällt, lade den Autor doch mal zu einem Drink ein ;-)</a></p><br /><strong>Tags:</strong> <a href="http://www.ilimitado.de/blog/tags/android/" title="Browse for android" rel="tag">android</a>, <a href="http://www.ilimitado.de/blog/tags/ilimitado/" title="Browse for ilimitado" rel="tag">ilimitado</a>, <a href="http://www.ilimitado.de/blog/tags/labs/" title="Browse for labs" rel="tag">labs</a>, <a href="http://www.ilimitado.de/blog/tags/lotto/" title="Browse for lotto" rel="tag">lotto</a>, <a href="http://www.ilimitado.de/blog/tags/twitter/" title="Browse for twitter" rel="tag">twitter</a>]]></content:encoded>
			<wfw:commentRss>http://www.ilimitado.de/blog/2009/04/android-app-lottery-shaker-ab-heute-im-market/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Commitwitter &#8211; SVN commits nach Twitter zwitschern</title>
		<link>http://www.ilimitado.de/blog/2008/10/commitwitter-svn-commits-nach-twitter-zwitschern/</link>
		<comments>http://www.ilimitado.de/blog/2008/10/commitwitter-svn-commits-nach-twitter-zwitschern/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 10:31:24 +0000</pubDate>
		<dc:creator>Stephan Linzner &#38; Daniel Kersting</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[ilimitado labs]]></category>
<category>ilimitado</category><category>Internet</category><category>open source</category><category>PHP</category><category>software</category><category>svn</category><category>tools</category><category>twitter</category>
		<guid isPermaLink="false">http://www.ilimitado.de/blog/?p=241</guid>
		<description><![CDATA[Subversion, kurz SVN sollte jedem Programmierer ein Begriff sein. Das Open Source Tool zur Versionsverwaltung von Dateien und Verzeichnissen dürfte bei vielen Softwareentwicklern hoch im Kurs stehen. Ebenso erfreut sich der Mikro-Blogging Service Twitter größter Beliebtheit und ist sicherlich den Meisten ein Begriff.
Beide Tools können in hohem Maße die Produktivitäts- bzw. Kommunikationseffizienz steigern. Es liegt [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://subversion.tigris.org/" title="Projektseite von Subversion (SVN)">Subversion</a>, kurz <acronym title="Subversion">SVN</acronym> sollte jedem Programmierer ein Begriff sein. Das Open Source Tool zur Versionsverwaltung von Dateien und Verzeichnissen dürfte bei vielen Softwareentwicklern hoch im Kurs stehen. Ebenso erfreut sich der Mikro-Blogging Service <a href="http://twitter.com" title="Twitter Mikro-Blogging">Twitter</a> größter Beliebtheit und ist sicherlich den Meisten ein Begriff.</p>
<p>Beide Tools können in hohem Maße die Produktivitäts- bzw. Kommunikationseffizienz steigern. Es liegt deshalb nahe diese Beiden Ansätze miteinander zu vereinen. <a href="http://www.ilimitado.de/labs/projects.php#commitwitter" title="SVN commit to Twitter">Commitwitter</a> verfolgt genau diesen Ansatz. Unsere Idee ist nach jedem Commit die committete Revisionsnummer, den Autor des Commits, sowie den zugehörigen Kommentar, einfach direkt an einen Twitteraccount zu senden.</p>
<p>Es leuchtet ein wie cool das ist, wenn man nur bedenkt, einmal eingerichtet funktioniert das ganze  automatisch. Man kann ohne zusätzlichen Aufwand seine Projekte (vom ganz kleinen bis zum richtig großen ), über Twitter verfolgen und (live) erleben wie die aktuelle Entwicklung so läuft. Das Ganze wird von uns selber eingesetzt und funktioniert sehr gut. Wir möchten deshalb <a href="http://www.ilimitado.de/labs/projects.php#commitwitter" title="SVN commit to Twitter">Commitwitter</a> nun der Allgemeinheit <a href="http://www.ilimitado.de/labs/downloads.php#commitwitter" title="Downloadseite von Commitwitter">über unser Lab zum Download</a> zur Verfügung stellen.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-7971500319600855";
google_ui_features = "rc:";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text";
google_alternate_ad_url = "?adsensem-benice=468x60";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "A8C21D";
google_color_text = "333333";
google_color_url = "";

//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
<p><strong>Installation:</strong></p>
<p>Als erstes braucht man nun einen Twitteraccount und ein lauffähiges <acronym title="Subversion">SVN</acronym> Repository. <acronym title="Subversion">SVN</acronym> kennt sogenannte Hook-Skripte. Das sind Skripte, welche z.B. vor oder nach einem Commit automatisch von <acronym title="Subversion">SVN</acronym> ausgeführt werden. Für <a href="http://www.ilimitado.de/labs/projects.php#commitwitter" title="SVN commit to Twitter">Commitwitter</a> haben wir das post-commit Hook-Skript modifiziert, welches nach jedem Commit aufgerufen wird. Im <a href="http://www.ilimitado.de/labs/downloads.php#commitwitter" title="Downloadseite von Commitwitter">Downloadpaket</a> ist also zunächst diese Datei interessant. Sie muss ins Hook Verzeichnis des Repositories kopiert werden bzw. mit einer eventuell schon bestehenden post-commit Datei zusammengeführt werden. Außerdem muss die Datei um folgende Angaben ergänzt werden:</p>
<ul>
<li>Twitter Benutzername</li>
<li>Twitter Passwort</li>
<li>URL zur commitwitter.php Datei</li>
<li>Pre-Shared-Key (PSK)</li>
</ul>
<p>Benutzername, Passwort und URL sind selbsterklärend. Der PSK schützt einfach die commitwitter.php vor Missbrauch und muss sowohl auf Client Seite als auch auf Server Seite definiert werden. Deshalb einen sicheren Key wählen und diesen, sowohl in der Klasse Committwitter (commitwitter.php) in die vorgesehene Konstante REMOTE_PRE_SHARED_KEY, als auch in das Hook-Skript eintragen. Nun kann niemand mehr von außen den Mechanismus missbrauchen. </p>
<p>Anschließend müssen die beiden Dateien, TwitterLibPHP.php, eine Twitter API für PHP, zusammen mit der commitwitter.php in ein beliebiges Verzeichnis eines Webservers, der PHP unterstützt, kopiert werden. </p>
<p>Eventuell muss jetzt der Server noch ein klein wenig modifiziert werden. Sollte <acronym title="Subversion">SVN</acronym> in einer chroot Umgebung betrieben werden, muss der chroot das Programm <acronym title="ein Programm, um einzelne Dateien aus dem Internet ohne Browser zu transferieren">curl</acronym> bekannt gemacht werden. Hierbei kann das mitgelieferte curl-for-chroot Skript behilflich sein.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-7971500319600855";
google_ui_features = "rc:";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text";
google_alternate_ad_url = "?adsensem-benice=468x60";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "A8C21D";
google_color_text = "333333";
google_color_url = "";

//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
<p>Jetzt sollte alles funktionieren, sobald etwas in das Repository committed wird, wird das post-commit Hook-Skript ausgeführt, welches (über <acronym title="ein Programm, um einzelne Dateien aus dem Internet ohne Browser zu transferieren">curl</acronym>) die commitwitter.php aufruft. Nun werden  Autor, Revisionsnummer, Repository Name und Commit Kommentar automatisch, als Status Nachricht, an den angegebenen Twitteraccount gesendet.</p>
<p>Ein Beispiel kann unter <a href="http://twitter.com/ilimitado/" title="Beispiel für Commitwitter Tweets">http://twitter.com/ilimitado/</a> angeschaut werden.<br />
Kritik, Anregungen und Fragen sind herzlich willkommen, ansonsten <a href="http://www.ilimitado.de/labs/projects.php#commitwitter" title="SVN commit to Twitter">viel Spaß mit dem Skript</a>!</p>
<p class="buymebeer"><form action="https://www.paypal.com/cgi-bin/webscr" target="paypal" method="post"><input type="hidden" name="cmd" value="_xclick" /><input type="hidden" name="business" value="info@ilimitado.de" /><input type="hidden" name="return" value="http://www.ilimitado.de/labs/danke.php" /><input type="hidden" name="item_name" value="Spendier einen Drink für Commitwitter - SVN commits nach Twitter zwitschern" /><input type="hidden" name="amount" value="" /><input type="image" src="http://www.ilimitado.de/blog/wp-content/plugins/buy-me-beer/icon_beer.gif" align="left" alt="Unterstützung für Blogger" title="Unterstützung für Blogger" hspace="3" /></form><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;business=info@ilimitado.de&amp;amount=&amp;return=http://www.ilimitado.de/labs/danke.php&amp;item_name=Spendier+einen+Drink+für+Commitwitter+-+SVN+commits+nach+Twitter+zwitschern" target="paypal">Wenn dir dieser Beitrag gefällt, lade den Autor doch mal zu einem Drink ein ;-)</a></p><br /><strong>Tags:</strong> <a href="http://www.ilimitado.de/blog/tags/ilimitado/" title="Browse for ilimitado" rel="tag">ilimitado</a>, <a href="http://www.ilimitado.de/blog/tags/Internet/" title="Browse for Internet" rel="tag">Internet</a>, <a href="http://www.ilimitado.de/blog/tags/open-source/" title="Browse for open source" rel="tag">open source</a>, <a href="http://www.ilimitado.de/blog/tags/PHP/" title="Browse for PHP" rel="tag">PHP</a>, <a href="http://www.ilimitado.de/blog/tags/software/" title="Browse for software" rel="tag">software</a>, <a href="http://www.ilimitado.de/blog/tags/svn/" title="Browse for svn" rel="tag">svn</a>, <a href="http://www.ilimitado.de/blog/tags/tools/" title="Browse for tools" rel="tag">tools</a>, <a href="http://www.ilimitado.de/blog/tags/twitter/" title="Browse for twitter" rel="tag">twitter</a>]]></content:encoded>
			<wfw:commentRss>http://www.ilimitado.de/blog/2008/10/commitwitter-svn-commits-nach-twitter-zwitschern/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP Benchmark Environment Tool</title>
		<link>http://www.ilimitado.de/blog/2007/05/php-benchmark-environment-tool/</link>
		<comments>http://www.ilimitado.de/blog/2007/05/php-benchmark-environment-tool/#comments</comments>
		<pubDate>Thu, 03 May 2007 11:13:24 +0000</pubDate>
		<dc:creator>Daniel Kersting</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[ilimitado labs]]></category>
<category>benchmark</category><category>php</category>
		<guid isPermaLink="false">http://www.ilimitado.de/blog/programmierung/php/php-benchmark-environment-tool/</guid>
		<description><![CDATA[Ab heute gibt es im ilimitado Lab unser neustes PHP Script. Das Tool ist eine komfortable Benchmark Umgebung für PHP Code. 
Wir haben also ein kleines PHP Tool geschrieben. Es führt PHP Code über die PHP eval Funktion in einer for
Schleife immer wieder aus und misst die Laufzeit. Diese wird ausgewertet in einer Tabelle.
Es sei [...]]]></description>
			<content:encoded><![CDATA[<p>Ab heute gibt es im ilimitado Lab unser neustes<strong> PHP Script</strong>. Das <strong>Tool </strong>ist eine <strong>komfortable Benchmark Umgebung für PHP Code</strong>. </p>
<p>Wir haben also ein kleines PHP Tool geschrieben. Es führt PHP Code über die PHP eval Funktion in einer for<br />
Schleife immer wieder aus und misst die <strong>Laufzeit</strong>. Diese wird ausgewertet in einer Tabelle.<br />
Es sei darauf hingewiesen, dass es sich dabei um ein &#8220;quick and dirty&#8221; Script handelt, es funtioniert, läuft stabil und erfüllt seinen Zweck. Es ist jetzt aber nicht sonderlich professionell oder schön programmiert&#8230;</p>
<p>Kleine Feature Liste des PHP Benchmark Environment Tool:</p>
<ul>
<li>PHP Code hochladen</li>
<li>Anzahl der Benchmark Test Durchläufe anpassbar</li>
<li>Bereinigung der Durchläufe um Ausreißer (Peaks)</li>
<li>Graphische Benchmark Auswertung</li>
<li>Auf deutsch und englisch verfügbar</li>
</ul>
<p>Das Script richtet sich als kleines Helfer Tool an alle PHP Entwickler die Wert auf <strong>Laufzeit optimierten Quellcode</strong> legen und eine Möglichkeit suchen PHP Code schnell und einfach auf seine Laufzeit zu testen. Die ilimitado <strong>PHP Benchmark Environment</strong> ist genau das richtige Tool um unkompliziert unterschiedliche PHP Codes in Bezug auf ihre Laufzeit zu vergleichen.</p>
<p>Wie ein solches Ergebnis aussieht kann unter der <a href="http://www.ilimitado.de/labs/php-benchmark-environment/" title="demo des neuen Tool dem ilimitado PHP Benchmark Environment">Benchmark Demo Homepage</a> angeschaut werden.</p>
<p>Der Quellcode kann direkt unter <a href="http://www.ilimitado.de/labs/downloads.php#php-benchmark-environment" title="download homepage des ilimitado PHP benchmark environment tool">ilimitado Labs</a> bezogen werden.</p>
<p>Eine kleine Dokumentation ist ebenfalls verfügbar im ilimitado Lab unter <a href="http://www.ilimitado.de/labs/documentation.php#php-benchmark-environment" title="Englisch und Deutsche Dokumentation des PHP Benchmark Environment Tool">Dokumentation</a></p>
<div class="googleadsinsidepost"><script type="text/javascript"><!--
google_ad_client = "pub-7971500319600855";
google_ui_features = "rc:";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text";
google_alternate_ad_url = "?adsensem-benice=468x60";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "A8C21D";
google_color_text = "333333";
google_color_url = "";

//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</div>
<p>Noch ein <em>Sicherheitshinweis</em>: Das Script kann nur von einer Person gleichzeitg genutzt werdne und farf auf keinen Fall öffentlich zugänglich auf einen Webserver gestellt werden. Es führt jeden beliebigen PHP Code aus, der über die Form eingegeben wird. Damit kann ein Angreifer den kompletten Server übernehmen! Immer in einem nicht öffentlichen Verzeichnis mit zusätzlichem .htaccess  Schutz ausführen!!</p>
<p>Für gute Benchmarks sollte der Testserver immer die gleiche Auslastung haben. Ein durch Windows und viele Hintergrundprogramme &#8220;gestresster&#8221; PC dient nicht gerade als ideales Testsystem.</p>
<p>Beim Aufruf der index.php ist das Optionsmenü der Übersicht halber versteckt, es kann durch Klick auf einblenden unter dem Punkt Einstellungen aktiviert werden.<br />
Dort können die Benchmark Optionen gesetzt werden und natürlich Quellcode zur Ausführung hoch geladen werden.<br />
Jeder Code muss zwischen <?php und ?> stehen, keine Leerzeichen oder Sonstiges dürfen davor oder danach stehen!</p>
<p>Wird der Benchmark ausgeführt, kann man durch klicken auf &#8220;Ausgaben einblenden&#8221;, die Ausgaben des Testlaufes sehen.</p>
<p>Interessanter ist natürlich die Laufzeit, diese wird in 2 Ansichten präsentiert. Die Absolute Ansicht zeigt einfach den Schnitt aller Testläufe. Die Quantils Ansicht ist um die obersten 10 Prozent und die untersten 10 Prozent &#8220;befreit&#8221;. So sind Ausreißer (Peaks), welche den Schnitt verfälschen eliminiert und der Benchmark ist viel aussagekräftiger.</p>
<p>Dann gibt es noch 3 Bewertungen des Benchmark. Es wird geprüft, ob der Server zur Laufzeit eine hohe Auslastung hatte<br />
oder ob &#8220;er sich wirklich um das PHP Script kümmern konnte&#8221; Als zweites wird die Abweichung betrachtet, ist diese zu hoch, also die Streuung der Ergebnisse zu hoch, ist der Benchmark nicht aussagekräftig.<br />
Die letzte Auswertung prüft, ob das ausgeführte Script &#8220;lang&#8221; genug war, ein zu kurzes Script kann nicht aussagekräftig getestet werden.</p>
<p>Zu guter Letzt sieht man noch eine graphische Auswertung und eine Tabelle mit allen Testläufen.<br />
(markiert sind auch die &#8220;gestrichenen&#8221; Ergebnisse der Quantils Ansicht.)</p>
<p>Sind also alle 3 &#8220;Lampen&#8221; auf grün öffnet man ein 2. Browserfenster, oder speichert sich die Ergebisse der Tabelle in eine Datei und führt den nächsten Benchmark aus, welchen man mit dem ersten Code dann vergleichen kann.<br />
So können beliebig viele unterschiedliche Versionen des Quellcodes gebenchmarkt werden, bis man die schnellste Variante dentifiziert hat.</p>
<p><strong>Nochmal alle Links für das PHP Benchmark Environment Tool:</strong><br />
<a href="http://www.ilimitado.de/labs/documentation.php#php-benchmark-environment" title="Englisch und Deutsche Dokumentation des PHP Benchmark Environment Tool">Benchmark Dokumentation</a><br />
<a href="http://www.ilimitado.de/labs/downloads.php#php-benchmark-environment" title="download homepage des ilimitado PHP benchmark environment tool">Benchmark Tool Download</a><br />
<a href="http://www.ilimitado.de/labs/php-benchmark-environment/" title="demo des neuen Tool dem ilimitado PHP Benchmark Environment">Benchmark Demo</a></p>
<p class="buymebeer"><form action="https://www.paypal.com/cgi-bin/webscr" target="paypal" method="post"><input type="hidden" name="cmd" value="_xclick" /><input type="hidden" name="business" value="info@ilimitado.de" /><input type="hidden" name="return" value="http://www.ilimitado.de/labs/danke.php" /><input type="hidden" name="item_name" value="Spendier einen Drink für PHP Benchmark Environment Tool" /><input type="hidden" name="amount" value="" /><input type="image" src="http://www.ilimitado.de/blog/wp-content/plugins/buy-me-beer/icon_beer.gif" align="left" alt="Unterstützung für Blogger" title="Unterstützung für Blogger" hspace="3" /></form><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;business=info@ilimitado.de&amp;amount=&amp;return=http://www.ilimitado.de/labs/danke.php&amp;item_name=Spendier+einen+Drink+für+PHP+Benchmark+Environment+Tool" target="paypal">Wenn dir dieser Beitrag gefällt, lade den Autor doch mal zu einem Drink ein ;-)</a></p><br /><strong>Tags:</strong> <a href="http://www.ilimitado.de/blog/tags/benchmark/" title="Browse for benchmark" rel="tag">benchmark</a>, <a href="http://www.ilimitado.de/blog/tags/php/" title="Browse for php" rel="tag">php</a>]]></content:encoded>
			<wfw:commentRss>http://www.ilimitado.de/blog/2007/05/php-benchmark-environment-tool/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tag und Nacht Zyklus für Homepages</title>
		<link>http://www.ilimitado.de/blog/2007/03/tag-und-nacht-zyklus-fur-homepages/</link>
		<comments>http://www.ilimitado.de/blog/2007/03/tag-und-nacht-zyklus-fur-homepages/#comments</comments>
		<pubDate>Sat, 31 Mar 2007 17:40:30 +0000</pubDate>
		<dc:creator>Stephan Linzner &#38; Daniel Kersting</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[ilimitado labs]]></category>
<category>google maps</category><category>java script</category><category>PHP</category><category>tag und nacht zyklus</category><category>zeitzonen</category>
		<guid isPermaLink="false">http://www.ilimitado.de/blog/programmierung/tag-und-nacht-zyklus-fur-homepages/</guid>
		<description><![CDATA[Schon gewusst, wann heut die Sonne untergeht, und wann sie in New York heut morgen aufging  
Wir haben diese Woche was nettes, kleines, lustiges programmiert, ein PHP &#8220;dynamic day and night cycle script&#8221;.
Es macht folgendes: Zum gegebenen Standort (Tübingen, Stuttgart oder was auch immer) wird zum aktuellen Tag Sonnenaufgang und Sonnenuntergang berechnet.
Das ganze ist [...]]]></description>
			<content:encoded><![CDATA[<p>Schon gewusst, wann heut die Sonne untergeht, und wann sie in New York heut morgen aufging <img src='http://www.ilimitado.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Wir haben diese Woche was nettes, kleines, lustiges programmiert, ein PHP &#8220;dynamic day and night cycle script&#8221;.</p>
<p>Es macht folgendes: Zum gegebenen Standort (Tübingen, Stuttgart oder was auch immer) wird zum aktuellen Tag Sonnenaufgang und Sonnenuntergang berechnet.<br />
Das ganze ist eigentlich ne ziemlich langweilige Information, interessant ist nur, wir haben es in eine Google Map gepackt. Sieht recht schön aus, vor allem wenn man auf Satelitenbilder umschaltet. Man sieht also den Stand der Sonne und wie lang es noch hell sein wird. (Weil Morgens die Sonne ganz links steht, Mittags oben in der Mitte und Abends rechts am Rand)<br />
Klappt ganz gut, die Google Map wird dann nachts noch dunkel gefärbt um den Effekt zu sehn muss man die Seite Abends aufrufen oder mal zu einem Ort scrollen oder diesen eingeben wo grad Nacht ist, dann kommt ein Mond und die Karte wird dunkler.<br />
Auch ganz interessant ist etwas rauszuzoomen und dann um die Welt zu scrollen&#8230;&#8230; man sieht dann die Sonne sozusagen wandern.</p>
<p>Das Ganze ist aber eher als kleiner proof of concept zu betrachten, eine Anwendung der PHP Classe wäre es eine Homepage Nachts mit dunklem Hintergrund und Tagsüber mit hellem Hintergrund zu präsentieren, wobei für jeden Tag diese Zeiten individuell berechnet werden können.<br />
Vielleicht kann jemand das Programm dazu gebrauchen, es steht zum Download kostenlos als Open Source bereit.</p>
<p>Also, hier der Link:  <a title="ilimitado proof of concept bringing dynamic day and night cycle to homepages and google maps" href="http://www.ilimitado.de/labs/day-night-cycle/">http://www.ilimitado.de/labs/day-night-cycle/</a></p>
<p>Am besten schaut ihr die Seite im Firefox an, ist einfach der bessere Browser <img src='http://www.ilimitado.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><script type="text/javascript"><!--
 google_ad_client = "pub-7971500319600855"; google_ad_width = 468; google_ad_height = 60; google_ad_format = "468x60_as_rimg"; google_cpa_choice = "CAAQ_aaTlwIaCPakd8HvWlUXKL2093M"; google_ad_channel = "";
// --></script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"><!--</p>
<p>// --></script>Kritik, Anregung und so weiter sind herzlich willkommen <img src='http://www.ilimitado.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p class="buymebeer"><form action="https://www.paypal.com/cgi-bin/webscr" target="paypal" method="post"><input type="hidden" name="cmd" value="_xclick" /><input type="hidden" name="business" value="info@ilimitado.de" /><input type="hidden" name="return" value="http://www.ilimitado.de/labs/danke.php" /><input type="hidden" name="item_name" value="Spendier einen Drink für Tag und Nacht Zyklus für Homepages" /><input type="hidden" name="amount" value="" /><input type="image" src="http://www.ilimitado.de/blog/wp-content/plugins/buy-me-beer/icon_beer.gif" align="left" alt="Unterstützung für Blogger" title="Unterstützung für Blogger" hspace="3" /></form><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;business=info@ilimitado.de&amp;amount=&amp;return=http://www.ilimitado.de/labs/danke.php&amp;item_name=Spendier+einen+Drink+für+Tag+und+Nacht+Zyklus+für+Homepages" target="paypal">Wenn dir dieser Beitrag gefällt, lade den Autor doch mal zu einem Drink ein ;-)</a></p><br /><strong>Tags:</strong> <a href="http://www.ilimitado.de/blog/tags/google-maps/" title="Browse for google maps" rel="tag">google maps</a>, <a href="http://www.ilimitado.de/blog/tags/java-script/" title="Browse for java script" rel="tag">java script</a>, <a href="http://www.ilimitado.de/blog/tags/PHP/" title="Browse for PHP" rel="tag">PHP</a>, <a href="http://www.ilimitado.de/blog/tags/tag-und-nacht-zyklus/" title="Browse for tag und nacht zyklus" rel="tag">tag und nacht zyklus</a>, <a href="http://www.ilimitado.de/blog/tags/zeitzonen/" title="Browse for zeitzonen" rel="tag">zeitzonen</a>]]></content:encoded>
			<wfw:commentRss>http://www.ilimitado.de/blog/2007/03/tag-und-nacht-zyklus-fur-homepages/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

