<?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>jKoeber.de &#187; Allgemein</title>
	<atom:link href="http://www.jkoeber.de/category/allgemein/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jkoeber.de</link>
	<description>Entwicklung, Systeme, Programmierung und Umsetzung</description>
	<lastBuildDate>Fri, 03 Feb 2012 07:21:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Telekom Entertain per WLAN</title>
		<link>http://www.jkoeber.de/2012/02/03/telekom-entertain-per-wlan/</link>
		<comments>http://www.jkoeber.de/2012/02/03/telekom-entertain-per-wlan/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 07:21:15 +0000</pubDate>
		<dc:creator>lyrixx</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[2012]]></category>
		<category><![CDATA[Box]]></category>
		<category><![CDATA[Broadcast]]></category>
		<category><![CDATA[IPTV]]></category>
		<category><![CDATA[Problem]]></category>
		<category><![CDATA[Telekom Entertain]]></category>
		<category><![CDATA[WLAN]]></category>

		<guid isPermaLink="false">http://www.jkoeber.de/?p=1184</guid>
		<description><![CDATA[



Für alle die schon immer die Entertain Box wo anders nutzen wollten als der Router steht oder auch in nicht greifbarer Näher per Kabel erreichbar wäre. Habe ich jetzt eine sehr gute und einfache Lösung gefunden.

Derzeit nutze ich für mein TV Erlebnis per Internet die Telekom Entertain Box 301 mit integrierter Festplatte. Wenn es ...]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2012%2F02%2F03%2Ftelekom-entertain-per-wlan%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p><img class="alignleft" src="http://netgear.de/images/wnce2001_productimage_large22-5791.png" alt="" width="235" height="180" /></p>
<p><a href="http://www.netgear.com/avseries" target="_blank"><img style="width: 150px; height: 59px;" title="logo - av series" src="http://netgear.de/images/avseries_logo22-8233.png" alt="logo - av series" width="150" height="59" usemap="#Map" border="0" /></a></p>
<p>Für alle die schon immer die Entertain Box wo anders nutzen wollten als der Router steht oder auch in nicht greifbarer Näher per Kabel erreichbar wäre. Habe ich jetzt eine sehr gute und einfache Lösung gefunden.</p>
<p>Derzeit nutze ich für mein TV Erlebnis per Internet die Telekom Entertain Box 301 mit integrierter Festplatte. Wenn es einmal funktioniert, ist es gar nicht mal so schlecht.</p>
<p>Zuerst habe ich einen günstigen WLan Repeater verwendet der nicht geeinget dazu war, die Entertainbox hat nach 5-10 Sekunden aufgehört. Das Bild war eingefroren und auch die Bedienung kurz nach dem Start der Box war mehr als hakelig. Schlechte Reaktionszeiten und schwer Bedienbar. Man konnte umschalten und für 5-10 Sekunden die Sendung erneut verfolgen. Alles halb so schlimm, ich habe eine andere günstige under super einfache Lösung gefunden.</p>
<p>Der Netgear <a href="http://netgear.de/products/home/hometheater/networking-for-home-theater-and-gaming/WNCE2001.aspx">WNCE2001</a>. Ein super einfaches Gerät. Stromversorgung per USB an der Rückseite der Entertain Box und über den Ethernetport einklickbar.</p>
<p>Ein kurzer Klick an der Rückseite des Netgears und an der WLAN Taste eurer Fritzbox und die zwei Geräte synchronisieren sich innerhalb von 30 Sekunden. Keine 5 Minuten später hatte ich Entertain im Schlafzimmer. <img src='http://www.jkoeber.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  Super einfach einzurichten, sehr sparsam und vorallem spare ich mir weitere 80€ für den Telekom Repeater bzw. 2,50€ Miete/Monat die ich sonst an die Telekom abdrücken dürfte.
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2012%2F02%2F03%2Ftelekom-entertain-per-wlan%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p class="wp-flattr-button"></p> <p><a href="http://www.jkoeber.de/?flattrss_redirect&amp;id=1184&amp;md5=728b5d5605fa43b317c4e60cf4e7a800" title="Flattr" target="_blank"><img src="http://www.jkoeber.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jkoeber.de/2012/02/03/telekom-entertain-per-wlan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magento Theme Dump Error</title>
		<link>http://www.jkoeber.de/2011/11/08/magento-theme-dump-error/</link>
		<comments>http://www.jkoeber.de/2011/11/08/magento-theme-dump-error/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 15:08:45 +0000</pubDate>
		<dc:creator>lyrixx</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[1064]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[DB]]></category>
		<category><![CDATA[Error]]></category>
		<category><![CDATA[Fehler]]></category>
		<category><![CDATA[Frage]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[Syntaxfehler]]></category>
		<category><![CDATA[Theme]]></category>
		<category><![CDATA[USING BTREE]]></category>

		<guid isPermaLink="false">http://www.jkoeber.de/?p=1180</guid>
		<description><![CDATA[Es können Fehler beim installieren von Magento Themes entstehen. Wenn man z.B. nach der Installationsanleitung eine dump.sql einspielen will, kann es sein das bei einem MySql 5.1 Server ein Fehler im BTREE Error auftaucht.
ERROR 1064 (42000) at line 1561: You have an error in your SQL syntax; check the manual that corresponds to your ...]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F11%2F08%2Fmagento-theme-dump-error%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p>Es können Fehler beim installieren von Magento Themes entstehen. Wenn man z.B. nach der Installationsanleitung eine dump.sql einspielen will, kann es sein das bei einem MySql 5.1 Server ein Fehler im BTREE Error auftaucht.</p>
<blockquote><p>ERROR 1064 (42000) at line 1561: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘USING BTREE, …</p></blockquote>
<p>Eine einfache Lösung bietet hier wieder ein kleines Command in der Konsole.</p>
<p>&nbsp;</p>
<pre name="code" class="java">
sed -i -r 's/\(([^)]+)\) USING BTREE/USING BTREE (\1)/g' mydump.sql
</pre>
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F11%2F08%2Fmagento-theme-dump-error%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p class="wp-flattr-button"></p> <p><a href="http://www.jkoeber.de/?flattrss_redirect&amp;id=1180&amp;md5=ad30463280cb443754da4b1b711399ea" title="Flattr" target="_blank"><img src="http://www.jkoeber.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jkoeber.de/2011/11/08/magento-theme-dump-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Source MT940 Parser</title>
		<link>http://www.jkoeber.de/2011/10/24/open-source-mt940-parser/</link>
		<comments>http://www.jkoeber.de/2011/10/24/open-source-mt940-parser/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 14:18:19 +0000</pubDate>
		<dc:creator>lyrixx</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Bank]]></category>
		<category><![CDATA[Communication]]></category>
		<category><![CDATA[File]]></category>
		<category><![CDATA[gmbh]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[k&w consulting]]></category>
		<category><![CDATA[MT940]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[osRetail]]></category>
		<category><![CDATA[Schnittstelle]]></category>
		<category><![CDATA[SWIFT]]></category>

		<guid isPermaLink="false">http://www.jkoeber.de/?p=1160</guid>
		<description><![CDATA[Hi alle zusammen. Ich habe mich mal wieder etwas im Gewusel und Getümmel der Programmierung verloren. Dabei ist mir aufgefallen, das alle Parser die einen MT940 verarbeiten wollen Fehler haben und teilweise nicht funktionieren. Dem ganzen bin ich mal auf den Leib gerückt und präsentier euch hier einen freien MT940 Parser. Könnt ihr kostenlos ...]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F10%2F24%2Fopen-source-mt940-parser%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p>Hi alle zusammen. Ich habe mich mal wieder etwas im Gewusel und Getümmel der Programmierung verloren. Dabei ist mir aufgefallen, das alle Parser die einen MT940 verarbeiten wollen Fehler haben und teilweise nicht funktionieren. Dem ganzen bin ich mal auf den Leib gerückt und präsentier euch <a href="http://www.jkoeber.de/wp-content/uploads/2011/10/FnkMT9403.zip">hier</a> einen freien MT940 Parser. Könnt ihr kostenlos hier downloaden.</p>
<p>Für alle die nicht wissen was der MT940 macht:</p>
<blockquote><p>MT940 (MT=Message Type) ist der SWIFT-Standard (Banking Communication Standard) zur elektronischen Übermittlung von Kontoauszug-Daten. Bei verschiedenen Online-Banking-Programmen wird MT940 als Schnittstelle verwendet zu anderen Programmen (z. B. für die Buchhaltung), mit denen die Kontoauszug-Daten weiter verarbeitet werden.</p></blockquote>
<p>Unterstütz werden alle nötigen Tag&#8217;s:</p>
<ul>
<li>:21: Bezugsreferenznummer</li>
<li>:25: M Kontobezeichnung</li>
<li>:28C: M Auszugsnummer</li>
<li>:60a: M Anfangssaldo</li>
<li>:61: Umsatz</li>
<li>:86: Mehrzweckfeld</li>
<li>:62a: M Schlusssaldo</li>
<li>:64: Aktueller Valutensaldo</li>
<li>:65: Zukünftige Valutensalden</li>
<li>:86: Mehrzweckfeld</li>
</ul>
<div>Das ganze gibt es in einem Netbeans Projekt als ZIP file zum <a href="http://www.jkoeber.de/wp-content/uploads/2011/10/FnkMT9403.zip">Download</a>.</div>
<div><strong>Update 25.10.11</strong></div>
<div>Ich habe für euch das Mehrzweckfeld :86: überarbeitet. Ihr findet im Projekt eine neue Klasse die <em>Mehrzweckfeld</em> heißt und in der alle nötigen Felder</div>
<div>
<ul>
<li>Verwendungszweck</li>
<li>Name</li>
<li>BLZ</li>
<li>Kontonummer etc.</li>
</ul>
<p>geparsed werden. Das ganze könnt ihr euch wieder in der Main ausgeben lassen. Ebenso unterstütze ich jetzt ein Mehrzweckfeld das sich über mehr als eine Zeile erstreckt.</p>
</div>
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F10%2F24%2Fopen-source-mt940-parser%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p class="wp-flattr-button"></p> <p><a href="http://www.jkoeber.de/?flattrss_redirect&amp;id=1160&amp;md5=68f56dec2b62870da25f7defd6791cf0" title="Flattr" target="_blank"><img src="http://www.jkoeber.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jkoeber.de/2011/10/24/open-source-mt940-parser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Konakart &#8211; SOAP &#8211; Kategorien lesen/anlegen</title>
		<link>http://www.jkoeber.de/2011/09/23/konakart-soap-kategorien-lesenanlegen/</link>
		<comments>http://www.jkoeber.de/2011/09/23/konakart-soap-kategorien-lesenanlegen/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 21:42:48 +0000</pubDate>
		<dc:creator>lyrixx</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[JavaEE]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tutorials / How to do]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[category]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[konakart]]></category>
		<category><![CDATA[read]]></category>
		<category><![CDATA[soap]]></category>
		<category><![CDATA[synchronize]]></category>
		<category><![CDATA[Tomcat]]></category>
		<category><![CDATA[Webservice]]></category>
		<category><![CDATA[write]]></category>

		<guid isPermaLink="false">http://www.jkoeber.de/?p=1137</guid>
		<description><![CDATA[Arbeiten mit dem Konakart Webservice kann einige Schwierigkeiten mit sich bringen. Ich war auch erst einmal ein paar Stunden und Tage darüber die passende IDE und den richtigen Weg zu wählen. Meine Lösung:

Eclipse mit einer virtuellen Maschine auf der eine Konakartinstallation läuft.

Netbeans RPC Webservices ist leider nicht möglich da sich Netbeans dagegen sträubt und ...]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F09%2F23%2Fkonakart-soap-kategorien-lesenanlegen%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p>Arbeiten mit dem Konakart Webservice kann einige Schwierigkeiten mit sich bringen. Ich war auch erst einmal ein paar Stunden und Tage darüber die passende IDE und den richtigen Weg zu wählen. Meine Lösung:</p>
<p>Eclipse mit einer virtuellen Maschine auf der eine Konakartinstallation läuft.</p>
<p>Netbeans RPC Webservices ist leider nicht möglich da sich Netbeans dagegen sträubt und scheinbar einige Teile der WSDL falsch übersetzt. Wie ich schon in ein paar Beiträgen vorher beschrieben habe wäre es sinnvoll die Serviceverbindung und Abarbeitung aller Daten in einem Eclipse Projekt durch zu führen.</p>
<p><strong>Schritt 1:</strong> Verbindung zu Konakart</p>
<pre name="code" class="java">
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.konakartadmin.ws.KKWSAdminIf;
import com.konakartadmin.ws.KKWSAdminIfServiceLocator;

/**
* KonakartService Class
* per extend in die Subklasse z.b. Kategorie einbinden und per aufruf init()
* zum webservice verbinden
**/
public class KonakartService {
    public static Log log = LogFactory.getLog(KonakartService.class);
    public static KKWSAdminIf eng;

    /** Default credentials for accessing the KonaKart Application Engine */
    private static String DEFAULT_USERNAME = "admin@konakart.com";
    private static String DEFAULT_PASSWORD = "princess";

    /** The session id returned by a successful login */
    public static String sessionId;

    /**
     * @param args
     */
    public static void init() {
        try {
            /*
             * Instantiate a KonaKart Engine instance
             */
            eng = new KKWSAdminIfServiceLocator().getKKWSAdmin();
            eng.setEndpoint("MEINEIP"); // set ip address or hostname

            sessionId = eng.login(DEFAULT_USERNAME, DEFAULT_PASSWORD); // get session id
            log.info(DEFAULT_USERNAME + " logged in successfully and got session " + sessionId);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
</pre>
<p><strong>Schritt 2:</strong> Kategorien lesen</p>
<pre name="code" class="java">
	private void synchronize() {
	   // Auslesen des Hauptmenu's
	   AdminCategory[] webShopMainMenu = getWebshopMainMenu(2);
	}

        /**
        * Laden des Hauptmenu's anhand der Language ID
        **/
	private static AdminCategory[] getWebshopMainMenu(int languageId) throws RemoteException {
		AdminCategory[] categories = eng.getCategoryTree(languageId,true);
		for(int i=0;i < categories.length;i++) {
			generateTree(categories[i]);
		}
		return categories;
	}

	private static void generateTree(AdminCategory item) {
		AdminCategory[] children = item.getChildren();
		for(int c=0;c < children.length;c++) {
			System.out.println("CHILDREN: " + children[c].getName());
			if(children[c].getChildren().length > 0) {
				generateTree(children[c]);
			}
		}
	}
</pre>
<p><strong>Schritt 3:</strong Kategorie anlegen</p>
<pre name="code" class="java">
        // Beschreibung, auch Multilanguage möglich, einfach das Array um 1 erweitern
	AdminCategoryDescription[] description = new AdminCategoryDescription[1];
	description[0].setDescription(&#8220;Testbeschreibung&#8221;);
	description[0].setName(&#8220;Beschreibung 1&#8243;);
	description[0].setLanguageId(eng.getLanguageByCode(&#8220;de_DE&#8221;).getId());
	description[0].setLanguage(eng.getLanguageByCode(&#8220;de_DE&#8221;));

	// Kategoriedaten
	AdminCategory category = new AdminCategory();
	category.setDescription(&#8220;Beschreibung&#8221;);
	category.setDescriptions(description);
	category.setInvisible(false);
	category.setName(&#8220;Kategorie 1&#8243;);

	// Kategorie anlegen
	eng.insertCategory(sessionId, category);
</pre>
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F09%2F23%2Fkonakart-soap-kategorien-lesenanlegen%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p class="wp-flattr-button"></p> <p><a href="http://www.jkoeber.de/?flattrss_redirect&amp;id=1137&amp;md5=3d27986db907b2d664ffc30bcee7119f" title="Flattr" target="_blank"><img src="http://www.jkoeber.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jkoeber.de/2011/09/23/konakart-soap-kategorien-lesenanlegen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Android: ListViews optimieren und Felder ändern</title>
		<link>http://www.jkoeber.de/2011/09/22/android-listviews-optimieren/</link>
		<comments>http://www.jkoeber.de/2011/09/22/android-listviews-optimieren/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 10:14:36 +0000</pubDate>
		<dc:creator>lyrixx</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Tutorials / How to do]]></category>
		<category><![CDATA[Adapter]]></category>
		<category><![CDATA[Buffer]]></category>
		<category><![CDATA[Listview]]></category>
		<category><![CDATA[Optimierung]]></category>
		<category><![CDATA[Optimization]]></category>
		<category><![CDATA[Recycle]]></category>
		<category><![CDATA[Speichernutzung]]></category>
		<category><![CDATA[static]]></category>
		<category><![CDATA[View]]></category>
		<category><![CDATA[ViewHolder]]></category>

		<guid isPermaLink="false">http://www.jkoeber.de/?p=1129</guid>
		<description><![CDATA[Wie schon angeschlagen im letzten Post, heute geht es um die ListView Optimierung in Android. In einem sehr interessanten Webcast von Google I/O 2010 gab es schon einiges sehr sinnvolles zu ListViews und auch wieder einiges was ich dazu gelernt habe.

Für alle die es interessiert: The World of ListView



&#160;

Hier noch das Tutorial bzw. HowTo ...]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F09%2F22%2Fandroid-listviews-optimieren%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p>Wie schon angeschlagen im letzten Post, heute geht es um die ListView Optimierung in Android. In einem sehr interessanten Webcast von Google I/O 2010 gab es schon einiges sehr sinnvolles zu ListViews und auch wieder einiges was ich dazu gelernt habe.</p>
<p>Für alle die es interessiert: <strong>The World of ListView</strong></p>
<p><iframe src="http://www.youtube.com/embed/wDBM6wVEO70" frameborder="0" width="475" height="315"></iframe></p>
<p>&nbsp;</p>
<p>Hier noch das Tutorial bzw. HowTo zu dem Video. Wozu ViewHandler gebraucht werden und wie man Speicherschonend die ListViews befüllt. Anschließend noch ein kleiner Ausschnitt wie man ListViews aktualisiert mit <strong>notifyDataSetChanged().</strong></p>
<p>Ich gehe davon aus das jeder weiß wie man eine ListView in der Layout.xml definiert, daher fangen wir sofort an mit der implementierung der View im Code.</p>
<p><strong>Step 1</strong></p>
<p>ListView in der Activity aufrufen.</p>
<p>&nbsp;</p>
<pre class="java" name="code">import java.util.ArrayList;
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.widget.ListView;

public class ListActivity extends Activity {

	private Context ctx;
	private ListView liste;
	private ListeItemAdapter adapter;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		setContentView(R.layout.liste);
		this.ctx = this;

		List<String >items = new ArrayList<String>();
		for(int i=0;i<100;i++) {
			items.add(new ListeItemAdapter().randomText);
		}

		adapter = new ListeItemAdapter(this, R.layout.liste_item, items);
		liste = (ListView) findViewById(R.id.liste);
		liste.setAdapter(adapter);
	}
}
</pre>
<p>Der Adapter und somit das Herzstück des Tutorials. Wie definiere ich einen ViewHolder zum speichern der statischen Views für eine sinnvolle Speicherwiedernutzung.</p>
<pre class="java"  name="code">import java.util.List;
import java.util.Random;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class ListeItemAdapter extends BaseAdapter {

	private Context ctx;
	private int rowResID;
	private List<String> itemList;
	private LayoutInflater layoutInflater;
	public String randomText = myRandomText();

	private static class ViewHolder {
		public static TextView text1;
		public static TextView text2;
		public static TextView text3;
		public static ImageView status;
	}

	public ListeItemAdapter() { }

	public ListeItemAdapter(final Context ctx, final int rowResID, final List<String> itemList) {
		this.ctx = ctx;
		this.rowResID = rowResID;
		this.itemList = itemList; 

		layoutInflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
	}

	public int getCount() {
		return this.itemList.size();
	}

	public Object getItem(int position) {
		return this.itemList.get(position);
	}

	public long getItemId(int position) {
		// TODO Auto-generated method stub
		return position;
	}

	public void setItemList(List<String> itemList) {
		this.itemList = itemList;
	}

	public View getView(int position, View v, ViewGroup vg) {
		ViewHolder holder;

		// prüfen ob eine view bereits existiert
		if(v == null || v.getTag() == null) {
			holder = new ViewHolder();
			v = layoutInflater.inflate(rowResID, null); // inflate the item layout!
			holder.text1 = (TextView) v.findViewById(R.id.text1);
			holder.text2 = (TextView)v.findViewById(R.id.text2);
			holder.text3 = (TextView)v.findViewById(R.id.text3);
			holder.status = (ImageView) v.findViewById(R.id.status);
			v.setTag(holder); // viewholder setzen
		} else {
		// laden der Views über den ViewHolder
			holder = (ViewHolder) v.getTag();
		}

		// get item value
		String item = itemList.get(position);

		// Views füllen
		holder.text1.setText(item);
		holder.text2.setText(myRandomText());
		holder.text3.setText(myRandomText());
		holder.status.setImageResource(myRandomImage());

        return v;
	}

	/**
	 * get random String value
	 * @return String
	 */
	public String myRandomText() {
		String[] values = new String[] { "Hase","Hund","Katze","Maus","Schwein","Pferd","Esel","Kuh","Henne","Hahn","Vogel","Affe","Giraffe","Schlange" };
		Random generator = new Random();
		return values[generator.nextInt(values.length)];
	}
	/**
	 * get random Image Resource
	 * @return int
	 */
	private int myRandomImage() {
		int[] values = new int[] { R.drawable.tick_green_00, R.drawable.tick_green_01, R.drawable.tick_green_02, R.drawable.tick_green_03 };
		Random generator = new Random();
		return values[generator.nextInt(values.length)];
	}

}</pre>
<p>Somit wäre eigentlich alles geklärt. Es ist fast selbst beschreibend für die, die sich schon mit ListViews auseinander gesetzt haben.<br />
Wir werden jetzt mit einem Handler in der MainActivity noch ein delayed Handler aufrufen indem wir die Werte der Listview ändern.<br />
Hier die veränderte Activity.</p>
<p><strong><span style="color: #339966;">PART 2</span></strong></p>
<p><strong>Step1</strong></p>
<pre class="java" name="code">
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.widget.ListView;

public class ListActivity extends Activity {

	private Context ctx;
	private ListView liste;
	private ListeItemAdapter adapter;
	private Handler handler;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		setContentView(R.layout.liste);
		this.ctx = this;
		handler = new Handler();

		List<String >items = new ArrayList<String>();
		for(int i=0;i<100;i++) {
			items.add(new ListeItemAdapter().randomText);
		}

		adapter = new ListeItemAdapter(this, R.layout.liste_item, items);
		liste = (ListView) findViewById(R.id.liste);
		liste.setAdapter(adapter);

		Thread updateListViewThread = new Thread() {
			@Override
			public void run() {
				super.run();

				final List<String >items = new ArrayList<String>();
				for(int i=0;i<100;i++) {
					items.add(new ListeItemAdapter().randomText);
				}

				handler.postDelayed(new Runnable() {
					@Override
					public void run() {
						adapter.setItemList(items);
						adapter.notifyDataSetChanged();
					}
				}, 5000);

			}
		};
		updateListViewThread.start();

	}

}
</pre>
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F09%2F22%2Fandroid-listviews-optimieren%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p class="wp-flattr-button"></p> <p><a href="http://www.jkoeber.de/?flattrss_redirect&amp;id=1129&amp;md5=87fab0ff98345a25c687d39407f49950" title="Flattr" target="_blank"><img src="http://www.jkoeber.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jkoeber.de/2011/09/22/android-listviews-optimieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android AIDL Prozess erstellen</title>
		<link>http://www.jkoeber.de/2011/08/01/android-aidl-prozess-erstellen/</link>
		<comments>http://www.jkoeber.de/2011/08/01/android-aidl-prozess-erstellen/#comments</comments>
		<pubDate>Mon, 01 Aug 2011 18:48:34 +0000</pubDate>
		<dc:creator>lyrixx</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tutorials / How to do]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[AIDL]]></category>
		<category><![CDATA[Beispiel]]></category>
		<category><![CDATA[Einfach]]></category>
		<category><![CDATA[Example]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Remote Service]]></category>
		<category><![CDATA[sample]]></category>

		<guid isPermaLink="false">http://www.jkoeber.de/?p=1117</guid>
		<description><![CDATA[AIDL Prozesse oder Services sind Schnittstellen zur Kommunikation und Automatisierung außerhalb der App. Wenn deine App für Widgets oder auch für länger laufende Prozesse einiges an Ressourcen benötigt und vor allem auch nach dem schließen der Applikation weiter arbeiten soll. z.B. Streamen von Musik oder Aktualisieren von Daten bei Newsfeed's etc. sind sogenannte Remote ...]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F08%2F01%2Fandroid-aidl-prozess-erstellen%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p>AIDL Prozesse oder Services sind Schnittstellen zur Kommunikation und Automatisierung außerhalb der App. Wenn deine App für Widgets oder auch für länger laufende Prozesse einiges an Ressourcen benötigt und vor allem auch nach dem schließen der Applikation weiter arbeiten soll. z.B. Streamen von Musik oder Aktualisieren von Daten bei Newsfeed&#8217;s etc. sind sogenannte Remote Services sinnvoll.</p>
<p>Remoteservices werden mit einer .aidl file spezifiziert, dieses beinhaltet eine Interfaceklasse die die Struktur des späteren Services erzeugt. Vieles zur Kommunikation mit dem System erzeugt Eclipse wieder von alleine, um das wir uns nicht kümmern müssen. Einmal verstanden ist es halb so schwer.</p>
<p>Mein Mainpackage z.B. <strong>de.jkoeber.testapp</strong> darin erstelle ich eine .aidl file mit dem Namen <strong>MyRemoteService.aidl</strong></p>
<pre name="code" class="java">package de.jkoeber.testapp;/** service interface */
interface MyRemoteService{
void startUpate();
void stopUpdate();
boolean isUpdating();
}
</pre>
<p>Aus dieser AIDL File erstellt der Builder von Eclipse in den Ordner <strong>gen</strong> die Java Klasse zur Kommunikation mit dem Systemen.</p>
<p>Im nächsten Step registrieren wir den Service in der App. Andernfalls kann das ganze Programm nicht mit der File umgehen. Also fügen wir z.B. folgendes in die <strong>AndroidManifest.xml</strong> ein.</p>
<pre name="code" class="xml">
<service android:name=".remoteservices.MyRemoteService" android:process=":remote">
  <intent-filter>
    <action android:name="de.jkoeber.testapp.MyRemoteService" />
    <action android:name="de.jkoeber.testapp.REMOTE_SERVICE" />
  </intent-filter>
</service>
</pre>
<p>Jetzt zur Erklärung. Ein Remoteservice wird über die Interfacefile erzeugt. Dem Remoteservice hängt aber eine Klasse an, die die angegebenen Funktionen im Interface ausführt. das wäre dann in der Zeile: <strong>android:name=&#8221;.remoteservices.MyRemoteService&#8221;</strong> Das heißt, ich hab ein neues Packages erstellt das .remoteservices heißt und hab darin die Klasse MyRemoteService erzeugt. Per Intent Filter wird anschließend die Interface .aidl Datei angegeben.</p>
<p>Jetzt erzeugen wir noch die Klasse zur AIDL. Es ist wie bei jedem Interface, das es einer Klasse zu Grunde liegt.</p>
<pre name="code" class="java">
package de.jkoeber.testapp.remoteservices;

import java.util.ArrayList;
import java.util.List;

import de.jkoeber.testapp.MyRemoteService;

public class MyRemoteService extends Service {
    private Handler handler = new Handler();

    @Override
    public void onCreate() {
        super.onCreate();
        ctx= this;
    }

    @Override
    public IBinder onBind(Intent intent) {
        // Return the interface
        return mBinder;
    }

    private final MyRemoteService.Stub mBinder = new MyRemoteService.Stub() {
		@Override
		public void startUpate() throws RemoteException {
		    // start update
		}

		/**
		 * stop updating service
		 */
		@Override
		public void stopUpdate() throws RemoteException {
                    // stop service
		}

		/**
		 * check if update is running
		 */
		@Override
		public boolean isUpdating() throws RemoteException {
                   // check if service is running
                }
    };

}
</pre>
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F08%2F01%2Fandroid-aidl-prozess-erstellen%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p class="wp-flattr-button"></p> <p><a href="http://www.jkoeber.de/?flattrss_redirect&amp;id=1117&amp;md5=95a2852670f9fd7044a813e30705eb71" title="Flattr" target="_blank"><img src="http://www.jkoeber.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jkoeber.de/2011/08/01/android-aidl-prozess-erstellen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android Orientation Trick</title>
		<link>http://www.jkoeber.de/2011/07/04/android-orientation-trick/</link>
		<comments>http://www.jkoeber.de/2011/07/04/android-orientation-trick/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 12:08:26 +0000</pubDate>
		<dc:creator>lyrixx</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tutorials / How to do]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[anzeigen]]></category>
		<category><![CDATA[ausprobieren]]></category>
		<category><![CDATA[erkennen]]></category>
		<category><![CDATA[Erkennung]]></category>
		<category><![CDATA[Filtern]]></category>
		<category><![CDATA[Funktion]]></category>
		<category><![CDATA[herausfinden]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Landscape]]></category>
		<category><![CDATA[Modus]]></category>
		<category><![CDATA[Orientation]]></category>
		<category><![CDATA[Portrait]]></category>
		<category><![CDATA[Prüfen]]></category>
		<category><![CDATA[Selection]]></category>
		<category><![CDATA[testen]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Übergabe]]></category>
		<category><![CDATA[Verbesserung]]></category>

		<guid isPermaLink="false">http://www.jkoeber.de/?p=1112</guid>
		<description><![CDATA[Heute geht es um die Orientation im Android. Alle oder so gut wie alle aktuellen Smartphonehandys haben einen Sensor um die Ausrichtung des Handybildschirms zu bestimmen. Landscape oder Portrait heißen diese 2 Varianten. Mit diesen beiden Möglichkeiten lässt sich viel anstellen. Man kann seine Apps den größen der Monitore etc. anpassen. Eine super Sache. ...]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F07%2F04%2Fandroid-orientation-trick%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p>Heute geht es um die Orientation im Android. Alle oder so gut wie alle aktuellen Smartphonehandys haben einen Sensor um die Ausrichtung des Handybildschirms zu bestimmen. Landscape oder Portrait heißen diese 2 Varianten. Mit diesen beiden Möglichkeiten lässt sich viel anstellen. Man kann seine Apps den größen der Monitore etc. anpassen. Eine super Sache. Aber wie stelle ich am geschicktesten die Orientation fest um vernünftig meine Programmdaten zu übergeben.</p>
<p>Eines ist mir aufgefallen. Pads und Handys sind zwei paar Schuhe, das aber auch die Hersteller an sich nicht an die Standards halten finde ich unverschämt. So gibt das Acer Iconia Tab andere Daten als das HTC Desire HD zurück um seine Orientation Punkte zu merken. Zur Erinnerung in der Google bzw. Android Dokumentation:</p>
<blockquote>
<table>
<tbody>
<tr>
<td>&#8220;<code>unspecified</code>&#8220;</td>
<td>The default value. The system chooses the orientation. The policy it uses, and therefore the choices made in specific contexts, may differ from device to device.</td>
</tr>
<tr>
<td>&#8220;<code>landscape</code>&#8220;</td>
<td>Landscape orientation (the display is wider than it is tall).</td>
</tr>
<tr>
<td>&#8220;<code>portrait</code>&#8220;</td>
<td>Portrait orientation (the display is taller than it is wide).</td>
</tr>
<tr>
<td>&#8220;<code>user</code>&#8220;</td>
<td>The user&#8217;s current preferred orientation.</td>
</tr>
<tr>
<td>&#8220;<code>behind</code>&#8220;</td>
<td>The same orientation as the activity that&#8217;s immediately beneath it in the activity stack.</td>
</tr>
<tr>
<td>&#8220;<code>sensor</code>&#8220;</td>
<td>The orientation determined by a physical orientation sensor. The orientation of the display depends on how the user is holding the device; it changes when the user rotates the device.</td>
</tr>
<tr>
<td>&#8220;<code>nosensor</code>&#8220;</td>
<td>An orientation determined without reference to a physical orientation sensor. The sensor is ignored, so the display will not rotate based on how the user moves the device. Except for this distinction, the system chooses the orientation using the same policy as for the &#8220;<code>unspecified</code>&#8221; setting.</td>
</tr>
</tbody>
</table>
</blockquote>
<p>Jeder der einzelnen Werte wird über eindeute Integer zugeordnet. Aber bei Herstellern, wie ich feststellen musste gibt es diesen Standard nicht und sie übergeben was sie wollen. Im normalen Verfahren, kann man die Position bzw. Orientierung des Displays mit diesem Befehl feststellen und dem entsprechen darauf reagieren:</p>
<pre name="code" class="java">
 Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
 int orientation = display.getOrientation();
</pre>
<p>Anschließend könnte man den übergebenen Wert per ActivityInfo verlgeichen und den dementsprechenden Content laden. Zum Beispiel so:</p>
<pre name="code" class="java">
switch (orientation) {
  case ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE:
      ... do anything ...
  break;
  case ActivityInfo.SCREEN_ORIENTATION_PORTRAIT:
      ... do anything else ...
  break;
}
</pre>
<p>Aber das funktioniert nur bedingt. Für Tablet, z.B. dem Iconia von Acer gilt der Landscape und Portrait Bereich nicht, da Acer als Tab sich den Portrait Bereich im Querformat vorstellt und somit die Variable für Landscape und Portrait vertauscht. Somit bekommt man ein 0 für Landscape und 1 für Portrait was nicht sein dürfte.<br />
Für mich ist der Landscape Modus das Querformat des Monitors und nicht die Hochkanvariante. Somit prüfe ich folgendes ab:</p>
<pre name="code" class="java">
setContentView(R.layout.demo) // Für alle Ansichten muss der selbe Name verwendet werden
LinearLayout contentLand = (LinearLayout) findViewId(R.id.content);
LinearLayout contentPortrait = (LinearLayout) findViewId(R.id.content);

if(contentLand != null) { // check if Orientation == Landscape
  ... do whatever u want ...
} else if(contentPortrait != null ) { // check if Orientation == Portrait
  ... do whatever u want ...
}
</pre>
<p>Mein Beispiel ist kurz und knapp, ich verwende keine Mühe mehr daran den Sensor zu ermitteln wie er gerade steht sondern überlass es dem System. Ich prüfe lediglich ab welche View existiert und arbeite damit weiter. Wenn die jeweilige View ansprechbar ist bzw. in meinem Fall <strong>not null</strong> erhalte ich das selbe, für mich sogar bessere Ergebnis als wenn ich umständlich mit den Orientation Funktionen arbeite.</p>
<p>Ich hoffe es hilf einigen von euch die sich damit erst beschäftigen werden.</p>
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F07%2F04%2Fandroid-orientation-trick%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p class="wp-flattr-button"></p> <p><a href="http://www.jkoeber.de/?flattrss_redirect&amp;id=1112&amp;md5=f8a6aed32f741daefc207d49a04306da" title="Flattr" target="_blank"><img src="http://www.jkoeber.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jkoeber.de/2011/07/04/android-orientation-trick/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Acer Iconia Tab</title>
		<link>http://www.jkoeber.de/2011/06/27/acer-iconia-tab/</link>
		<comments>http://www.jkoeber.de/2011/06/27/acer-iconia-tab/#comments</comments>
		<pubDate>Mon, 27 Jun 2011 21:11:00 +0000</pubDate>
		<dc:creator>lyrixx</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Apps]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Sensor]]></category>
		<category><![CDATA[Social]]></category>
		<category><![CDATA[Tag]]></category>
		<category><![CDATA[Touchscreen]]></category>

		<guid isPermaLink="false">http://www.jkoeber.de/2011/06/27/acer-iconia-tab/</guid>
		<description><![CDATA[Seit knapp einer woche bin ich stolzer Besitzer eines Iconia w500 Tablets. Im großen und ganzen bin ich damit zufrieden. Ich habe ein paar Testberichte gelesen in denen das Iconia besser bewertet wurde als das Xoom von Motorola. Leider habe ich nicht den direkten Vergleich. Von der Hardware nehmen sich die Hersteller nicht viel. ...]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F06%2F27%2Facer-iconia-tab%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p>Seit knapp einer woche bin ich stolzer Besitzer eines Iconia w500 Tablets. Im großen und ganzen bin ich damit zufrieden. Ich habe ein paar Testberichte gelesen in denen das Iconia besser bewertet wurde als das Xoom von Motorola. Leider habe ich nicht den direkten Vergleich. Von der Hardware nehmen sich die Hersteller nicht viel. Auch das Iconia gibt es mitv3g Modul.</p>
<p><strong>Zur Android Version</strong><br />
Vorhanden ist eine Android 3.0.1 Version, die kommenden Mittwoch auf Android 3.1 geupgradet werden kann. Das Vorinstallierte Acer Themen ist gut gelungen und alles ancseinem Platz. Aber auch ein paar kleine Nachteile gibt es, was man Acer aber nicht in die Schuhe schieben kann. Beim installieren von Apps kann es vorkommen das sich der Marktplace verabschiedet.</p>
<p><strong>Hardware</strong><br />
Dem Iconia ist eine hohe Aulösung von über 1000Pixeln gegen worden. Ein großer Pluspunkt. <img src='http://www.jkoeber.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />   Viele Seiten können somit ohne zoom gelesen werden. Ein USB Anschluss für eine zusätzliche Tastaur ist auch vorhanden. Sehr schön. Was mich aber atört ist ein kleiner Verarbeitungsfehler am Display.  Durch die Anschlussmöglichkeit der Acer Docking ist ein zusätzlicher Slot integriert hinter dem anscheinend ein Chip eingebaut ist. Daher wird das Display auf der Seite um einen Millimeter nach oben gedrückt und somit eine unschöne Kante am unteren Ende sichtbar und fühlbar.</p>
<p>Wenn mir noch was einfällt und ich noch etwas Zeit habe werde ich den Beitrag ergänzen.</p>
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F06%2F27%2Facer-iconia-tab%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.jkoeber.de/2011/06/27/acer-iconia-tab/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Krankenkassen spielen ein zu hohes Blatt</title>
		<link>http://www.jkoeber.de/2011/05/16/krankenkassen-spielen-ein-zu-hohes-blatt/</link>
		<comments>http://www.jkoeber.de/2011/05/16/krankenkassen-spielen-ein-zu-hohes-blatt/#comments</comments>
		<pubDate>Mon, 16 May 2011 15:38:33 +0000</pubDate>
		<dc:creator>lyrixx</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Politik und Wirtschaft]]></category>
		<category><![CDATA[Beiträge]]></category>
		<category><![CDATA[Extrem]]></category>
		<category><![CDATA[Höhe]]></category>
		<category><![CDATA[Kassen]]></category>
		<category><![CDATA[Krank]]></category>
		<category><![CDATA[Leistungen]]></category>
		<category><![CDATA[Politik]]></category>
		<category><![CDATA[Sätze]]></category>
		<category><![CDATA[Viel]]></category>
		<category><![CDATA[wirtschaft]]></category>
		<category><![CDATA[Zusatzzahlung]]></category>

		<guid isPermaLink="false">http://www.jkoeber.de/?p=1109</guid>
		<description><![CDATA[Wer Krankenkassen mittlerweile schon gewechselt hat zeigt denen den Mittelfinger die Zusatzbeiträge erhoben haben. Wer nicht wechselt ist einfach nur z bequem und wird die paar "Pfennig" monatlich schon übrig haben. Nicht nur bei Energie und KFZ Versicherungen lohnt es sich nach Alternativen umzusehen. Warum sollte ich immer ein und die selbe Krankenkasse nutzen? ...]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F05%2F16%2Fkrankenkassen-spielen-ein-zu-hohes-blatt%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p>Wer Krankenkassen mittlerweile schon gewechselt hat zeigt denen den Mittelfinger die Zusatzbeiträge erhoben haben. Wer nicht wechselt ist einfach nur z bequem und wird die paar &#8220;Pfennig&#8221; monatlich schon übrig haben. Nicht nur bei Energie und KFZ Versicherungen lohnt es sich nach Alternativen umzusehen. Warum sollte ich immer ein und die selbe Krankenkasse nutzen? Ganz einfach, die wurde mir irgendwann einmal vermittelt und seitdem begnüge ich mich mit dem Angebot. Egal ob es um Zusatzleistungen geht oder Zusatzzahlungen das wird ignoriert solange bei Krankenfall die Versuchern einspringt.</p>
<p>Jetzt kommt es aber ganz Dicke. Nicht nur Pleite gehen derzeit einige Kassen auch steigen, besser gesagt sollen die Zusatzzahlungen steigen. von 50 &#8211; 70€ ist die Rede.</p>
<blockquote><p>Sozialverbände und Gewerkschaften warnen schon länger: Die Zusatzbeiträge der gesetzlichen Krankenkassen könnten schon bald um ein vielfaches ansteigen. Nach Meinung der Kassenverbandsvorsitzenden Dr. Doris Pfeiffer steigt der zusätzliche Beitrag bald auf 50 bis 70 Euro pro Monat. Gesundheitsökonomen sprechen gar von über 100 Euro &#8230; <a href="http://www.heilpraxisnet.de/naturheilpraxis/krankenkassen-bald-70-euro-fuer-zusatzbeitraege-12913.php">der gesamte Beitrag</a></p></blockquote>
<p>Unverschämt würde ich gar behaupten, aber anscheinend können Kassen machen was sie wollen. Sind die Deutschen mittlerweile einfach nur zu Alt? Oder zu oft Krank? Wohin fließt das Geld?
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F05%2F16%2Fkrankenkassen-spielen-ein-zu-hohes-blatt%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p class="wp-flattr-button"></p> <p><a href="http://www.jkoeber.de/?flattrss_redirect&amp;id=1109&amp;md5=eab735533622458a6b503084ec08920c" title="Flattr" target="_blank"><img src="http://www.jkoeber.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jkoeber.de/2011/05/16/krankenkassen-spielen-ein-zu-hohes-blatt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google IO 2011</title>
		<link>http://www.jkoeber.de/2011/05/12/google-io-2011/</link>
		<comments>http://www.jkoeber.de/2011/05/12/google-io-2011/#comments</comments>
		<pubDate>Thu, 12 May 2011 21:59:07 +0000</pubDate>
		<dc:creator>lyrixx</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[3.0]]></category>
		<category><![CDATA[3.1]]></category>
		<category><![CDATA[Buy]]></category>
		<category><![CDATA[Collection]]></category>
		<category><![CDATA[Converence]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Honeycamp]]></category>
		<category><![CDATA[I/O]]></category>
		<category><![CDATA[Kaufen]]></category>
		<category><![CDATA[Market]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[TV]]></category>

		<guid isPermaLink="false">http://www.jkoeber.de/?p=1107</guid>
		<description><![CDATA[Ich schau mir gerade die Google I/O Podcast über Youtube an und muss sagen, das ich recht begeistert bin. Verkaufszahlen und Aktivierungen von Android Geräten, natürlich sehr spektakulär aufgemacht aber auch gute Zahlen. Über 100 Millionen aktivierte Geräte mit dem beliebten OS. Viele neue Pläne und Features werden vorgestellt. Ein kleiner Ausschnitt:

- 3D und ...]]></description>
			<content:encoded><![CDATA[<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F05%2F12%2Fgoogle-io-2011%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p>Ich schau mir gerade die Google I/O Podcast über Youtube an und muss sagen, das ich recht begeistert bin. Verkaufszahlen und Aktivierungen von Android Geräten, natürlich sehr spektakulär aufgemacht aber auch gute Zahlen. Über 100 Millionen aktivierte Geräte mit dem beliebten OS. Viele neue Pläne und Features werden vorgestellt. Ein kleiner Ausschnitt:</p>
<p>- 3D und Camera z.B. Automatisiertes visieren des Sprecher über Videotelefonie</p>
<p>-  Google TV bekommt den Android Market</p>
<p>- Es können, wie auch schon im Appstore möglich direkt über den Store Videos gemietet werden</p>
<p>- Google Music (sehr interresant)</p>
<p>Ich werde mir jetzt die restlichen Stunden Google I/O reinziehen, morgen wieder zu spät auf Arbeit aufkreuzen aber dafür umso mehr Wissen und Ideen mit ins Bett nehmen die ich mir im Schlaf doch alle mal durchdenken kann. Wozu ist auch sonst die Nacht gut&#8230; <img src='http://www.jkoeber.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Dann Allen einen schönen Abend und bis Morgen!
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.jkoeber.de%2F2011%2F05%2F12%2Fgoogle-io-2011%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
<p class="wp-flattr-button"></p> <p><a href="http://www.jkoeber.de/?flattrss_redirect&amp;id=1107&amp;md5=dd518505993fd343b0af07eec2b95dca" title="Flattr" target="_blank"><img src="http://www.jkoeber.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jkoeber.de/2011/05/12/google-io-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

