<?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>GZB - Gero Zahns Blog</title>
	<atom:link href="http://blog.gerozahn.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.gerozahn.de</link>
	<description>... jetzt bloggt er auch noch ...</description>
	<lastBuildDate>Tue, 10 Apr 2012 10:21:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Wackeliger Facebook-Client für Android &#8211; geklärt</title>
		<link>http://blog.gerozahn.de/2012/04/wackeliger-facebook-client-fuer-android-geklart/</link>
		<comments>http://blog.gerozahn.de/2012/04/wackeliger-facebook-client-fuer-android-geklart/#comments</comments>
		<pubDate>Tue, 10 Apr 2012 10:19:21 +0000</pubDate>
		<dc:creator>Gero Zahn</dc:creator>
				<category><![CDATA[Technik - IT - Computerkrams]]></category>
		<category><![CDATA[1.8.4]]></category>
		<category><![CDATA[Absturz]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Force Close]]></category>
		<category><![CDATA[Schließen erzwingen]]></category>

		<guid isPermaLink="false">http://blog.gerozahn.de/?p=1660</guid>
		<description><![CDATA[Warum stürzt Facebook für Android v1.8.4 eigentlich ab, sobald man versucht, ein Statusupdate einzustellen? Oder, aus anderer Perspektive gefragt: Warum stürzt er bei vielen Leuten eben nicht ab, die jetzt überhaupt nicht wissen, warum ich mich so anstelle? Die Wackeligkeit &#8230;<p class="read-more"><a href="http://blog.gerozahn.de/2012/04/wackeliger-facebook-client-fuer-android-geklart/">Weiterlesen &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Warum stürzt <a href="https://play.google.com/store/apps/details?id=com.facebook.katana" target="_blank">Facebook für Android</a> v1.8.4 eigentlich ab, sobald man versucht, ein Statusupdate einzustellen? Oder, aus anderer Perspektive gefragt: Warum stürzt er bei vielen Leuten <em>eben nicht</em> ab, die jetzt überhaupt nicht wissen, warum ich mich so anstelle?</p>
<p><span id="more-1660"></span>Die Wackeligkeit des Facebook-Clients für Android fiel mir erstmalig auf, als ich versuchte, selbigen auf meinen Kindle Fire zu verpflanzen. <a href="http://blog.gerozahn.de/2011/12/amazon-kindle-fire-einsatz-usability/">So schrieb ich am 14.12. noch:</a></p>
<blockquote><p>Die <a href="http://www.apkmarket.de/facebook/" target="_blank">Facebook-App</a> läuft aufgrund der fehlenden Profil-Unterstützung nicht [...].</p></blockquote>
<p>Dies ist, wie ich heute weiß, Unfug. Aber der Reihe nach: Bislang hatte ich unter Android entweder über <a href="https://play.google.com/store/apps/details?id=com.seesmic" target="_blank">Seesmic</a> oder <a href="https://play.google.com/store/apps/details?id=com.thedeck.android.app" target="_blank">Tweetdeck</a> notdürftig an Facebook teilgenommen. Aber jüngst hatte ich auf dem in Ehre ergrauten Nexus One einmal wieder dem aktuellen Facebook-Client eine Chance geben wollen. Und siehe da: Ein Fingertipp auf &#8220;Status&#8221; &#8211; und peng! &#8220;Schließen erzwingen&#8221; (bzw. fürs SEO: &#8220;Force close&#8221;). So kannte ich das von meinem &#8220;vermeintlich inkompatiblen&#8221; Kindle Fire.</p>
<p>Nun aber mal ganz ruhig mit den jungen Pferden: Wenn selbst das erste Google-Referenzhandy nicht in der Lage ist, ordnungsgemäß ein Facebook-Statusupdate einzustellen &#8211; was läuft hier eigentlich schief?</p>
<p>Des Rätsels Lösung ergab sich durch erbittertes Nachgooglen auf http://androidforums.com. <a href="http://androidforums.com/samsung-droid-charge/467372-facebook-crashes-when-trying-add-status-add-picture-check-etc.html#post3937423" target="_blank">Der User cheezeboy erklärt plausibel und vollkommen korrekt, was unerwarteterweise das Problem ist:</a></p>
<blockquote><p>problem occurs if you are using more than one custom list in the privacy settings, specially for the default posting permissions.</p></blockquote>
<p>Auf deutsch: Wer eben nicht einfach an &#8220;Freunde&#8221; postet, sondern wer wie ich eine feingranulare Gruppenzuordnung pflegt, und wer per Default ein vergleichbares Szenario wie ich fährt:</p>
<p><img class="aligncenter size-full wp-image-1661" title="Facebook - benutzerdefiniert" src="http://blog.gerozahn.de/wp-content/uploads/2012/04/Facebook-benutzerdefiniert.gif" alt="" width="468" height="390" />Also jeder, der mehr als eine Gruppe unter &#8220;Sichtbar machen für&#8221; / &#8220;Bestimmte Personen oder Listen&#8221; einträgt – für den stürzt der aktuelle Facebook-Client für Android v1.8.4 bei Berührung des &#8220;Status&#8221;-Buttons mit &#8220;Schließen erzwingen&#8221; bzw. &#8220;Force Close&#8221; ab.</p>
<p>&#8230; Es gibt meines Wissens derzeit nur zwei Wege, um dies zu umgehen:</p>
<ul>
<li>Man verwende, sofern man Backups aufbewahrt hat, einen uralten Facebook-Client. Der alte v1.6.4 läuft etwa auf allen meinen Gerätschaften ohne Abstürze, aber natürlich auch mit deutlich verringertem Funktionsumfang.</li>
<li>Alternativ kann man von &#8220;Benutzerdefiniert&#8221; / &#8220;Bestimmte Personen oder Listen&#8221; einfach auf &#8220;Freunde&#8221; umstellen. Dann läuft der Client, durchaus auch auf dem Kindle Fire &#8211; aber alle Statusupdates sind für alle lesbar.</li>
</ul>
<p><a href="http://blog.gerozahn.de/?ibsa=share&id=1660" id="share-link-">Share</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.gerozahn.de/2012/04/wackeliger-facebook-client-fuer-android-geklart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Retina-Display des iPad 3: Der Untergang des Abendlandes?</title>
		<link>http://blog.gerozahn.de/2012/03/retina-display-ipad-3-untergang-des-abendlandes/</link>
		<comments>http://blog.gerozahn.de/2012/03/retina-display-ipad-3-untergang-des-abendlandes/#comments</comments>
		<pubDate>Sat, 17 Mar 2012 19:18:00 +0000</pubDate>
		<dc:creator>Gero Zahn</dc:creator>
				<category><![CDATA[Technik - IT - Computerkrams]]></category>
		<category><![CDATA[dpi]]></category>
		<category><![CDATA[FullHD]]></category>
		<category><![CDATA[HD]]></category>
		<category><![CDATA[High-DPI]]></category>
		<category><![CDATA[High-PPI]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPad 2]]></category>
		<category><![CDATA[iPad 3]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iPhone 4]]></category>
		<category><![CDATA[iPhone 4S]]></category>
		<category><![CDATA[Low-DPI]]></category>
		<category><![CDATA[Low-PPI]]></category>
		<category><![CDATA[PPI]]></category>
		<category><![CDATA[QuadHD]]></category>
		<category><![CDATA[Retina]]></category>
		<category><![CDATA[Retina Display]]></category>

		<guid isPermaLink="false">http://blog.gerozahn.de/?p=1639</guid>
		<description><![CDATA[Das iPad 3 neue iPad ist da und beglückt uns mit seinem Retina-Display, also vier Bildpunkten, wo vorher ein Pixel war. Das Gegenteil von &#8220;gut&#8221; ist bekanntlich &#8220;gut gemeint&#8221;, und so proklamieren die Webdesigner und Typografen nun bereits den Untergang &#8230;<p class="read-more"><a href="http://blog.gerozahn.de/2012/03/retina-display-ipad-3-untergang-des-abendlandes/">Weiterlesen &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Das <del>iPad 3</del> neue iPad ist da und beglückt uns mit seinem Retina-Display, also vier Bildpunkten, wo vorher ein Pixel war. Das Gegenteil von &#8220;gut&#8221; ist bekanntlich &#8220;gut gemeint&#8221;, und so proklamieren die Webdesigner und Typografen nun bereits den Untergang des Abendlandes. Ist dem wirklich so, oder sollten wir lieber mal die Kirche im Dorf lassen?</p>
<p><span id="more-1639"></span>Der hoch geschätzte und jederzeit gern gelesene Kollege Gerrit van Aaken proklamiert <a href="http://praegnanz.de/weblog/webdesign-retina-display-fonts" target="_blank">in seinem jüngsten Blogbeitrag auf praegnanz.de</a>, wie schlecht es ab sofort um Webdesign bzw. um bestehende Webseiten bestellt ist. In kurz:</p>
<ul>
<li>Eingebettete Fotos &#8211; so lala, die könnten natürlich schöner aussehen. Am besten zwei Varianten für Low- bzw. Standard-PPI sowie High-PPI vorhalten und je nach Bedarf via CSS Media Queries zur Schau stellen.</li>
<li>Grafische oder typografische Bitmap-Inhalte, z.B. Diagramme oder als Grafik hinterlegter Text (etwa Überschriften) &#8211; sehen zum Rauslaufen gruselig aus, also unbedingt Webfonts nehmen, alternativ alles unbedingt noch mal in High-PPI generieren und bei Bedarf präsentieren.</li>
<li>Browsergerenderter Text &#8211; naja, OK, schon irgendwie hoch aufgelöst, aber typografisch gesehen suboptimal, weil Arial nun mal für Low-PPI optimiert ist, in High-PPI scheiße aussieht &#8211; und überhaupt, jetzt könnten wir doch eigentlich endlich mal was mit Serifen nehmen &#8230;</li>
</ul>
<p>Ehrlich &#8211; ich kann das alles echt sehr gut nachvollziehen, und ich habe mit exakt diesen Argumenten auch gestern der wehrlosen Ehefrau das ansonsten friedliche Abendessen verquasselt. Aber nachdem ich nun eine Nacht (schlecht) darüber geschlafen habe, geht es mir schon viel besser. Ich sage:<em> Bitte das Jammern einstellen und erst mal den Ball flach halten.</em></p>
<p>Es gibt meines Wissens derzeit genau vier Geräte, die ein Retina-Display mit doppelt hoher PPI-Dichte an den Massenmarkt tragen: Das iPhone 4, der iPod touch (4. Generation), das iPhone 4S und nun das iPad 3 &#8211; allesamt von Apple. Wie Gerrit korrekt bemerkt: Beim iPhone / iPod touch ist o.a. Problematik weniger relevant, weil man eh permanent scrollt. Das Retina-Display dient dabei eher dazu, schon in der stark verkleinerten Ansicht einen besseren Überblick zu bekommen, wohin sich das Zoomen lohnt.</p>
<p>In der Folge des iPhone 4  hat meines Wissens noch kein anderer Mobiltelefonhersteller ein Retina-Display verbaut. Und auch im Vorfeld des iPad-Relaunchs wurde lange Zeit gemutmaßt, dass ein Retina-Display mit 10 Zoll Bildschirmdiagonale viel zu teuer sei, um es zu einem tolerablen Preis zu verbauen. Machen wir uns nichts vor: Apple kann hier seine Markt-Vorherrschaft ausspielen, um den Herstellern andere Konditionen abzuverlangen. Aber: Ich sehe diesseits des Horizonts noch keinen anderen Hersteller, der ein 10&#8243;-Tablet mit High-PPI zu einem bezahlbaren Preis produzieren könnte.</p>
<p>Wie sieht es aber im Notebook- oder gar Desktop-Markt aus? Sicher ähnlich. Wenn es jemand schafft, dann sicher wiederum Apple mit seinen 11 Zoll &#8220;kleinen&#8221; MacBook Airs &#8211; basierend auf der Theorie, dass Mac OS X 10.7 oder 10.8 High-PPI fähig ist <a href="http://www.macrumors.com/2011/07/25/os-x-lions-hidpi-modes-lay-groundwork-for-retina-monitors/" target="_blank">(man sah schon derartige Screenshots)</a> &#8211; Tim Cook sprach ja auch davon, dass wir für 2012 noch einiges zu erwarten haben. Aber wäre ein Retina-Display für größere Macs mit 13, 15, 17, 21 oder gar 27 Zoll Bildschirmdiagonale bezahlbar? Man darf das vorerst bezweifeln. Und: Ich kann mir erst recht im Windows-Lager momentan kein Feld-Wald-Wiesen-TFT mit 24 oder 27 Zoll mit High-PPI ie. &#8220;QuadHD&#8221;-Auflösung vorstellen. Zur Erinnerung: Wenn anschließend nicht mehr 1920&#215;1080, sondern 3840&#215;2160 Pixel gefüllt werden wollen, schreit dies nach enorm dicken Grafikkarten und Monitorkabeln.</p>
<p>Man verzeihe mir: Ich sehe High-PPI mittelfristig höchstens im &#8220;kleinformatigen&#8221;, aber immer noch hochpreisigen Profisegment, während der Massenmarkt noch meilenweit davon entfernt ist.</p>
<p>Auch wenn Tablets tendenziell zunehmen, und wenn in vielen Bereichen &#8220;Tablet&#8221; mit &#8220;iPad&#8221; gleichgesetzt wird, so steht auf den Schreibtischen in den Büros und auch in den Wohnhäusern tendenziell eher ein Desktop- oder eventuell Laptop-Computer. Was ich damit sagen will: Das Gros der Endanwender dürfte auf absehbare Zeit noch ohne High-PPI auskommen müssen.</p>
<p>Ergo: Die Schwächen von Standard-PPI-Webseiten auf High-PPI-Displays sind durchaus real, aber bezogen auf den Massenmarkt momentan noch vernachlässigbar. Es mag für Webseiten mit hohem bzw. hochqualitativem Bildgehalt sinnvoll sein, auf High-PPI einzugehen und entsprechenden Aufwand zu betreiben &#8211; ob man hier allerdings schon von bildschirmoptimierten auf offsetoptimierte Schriften wechseln sollte, wage ich vorerst stark zu bezweifeln.</p>
<p>Bestehende Webseiten abzustrafen, weil sie auf iPhone 4(S) und iPad 3 suboptimal aussehen, halte ich für deutlich übertrieben. Natürlich ist die Darstellung nicht bestmöglich, aber sicher nicht dermaßen scharöcklich, dass man sich angewidert abwenden möchte.</p>
<p>Denn: Unzweifelhaft sind die 1024&#215;768 des iPad 1 und 2 für ein 10 Zoll-Display heutzutage eher gering. Aber: Sich auf dem 10 Zoll-Display des iPad 3 mit deutlich höherer Auflösung als Full-HD (mit dem man bekanntlich anderenorts Großbildschirme mit 50 Zoll und mehr beschickt) über nicht ganz optimales Grafikrendering zu beschweren, ist in meinen Augen nun wirklich Jammern auf hohem Niveau.</p>
<p><a href="http://blog.gerozahn.de/?ibsa=share&id=1639" id="share-link-">Share</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.gerozahn.de/2012/03/retina-display-ipad-3-untergang-des-abendlandes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Kindle Apps von Deutschland aus kaufen</title>
		<link>http://blog.gerozahn.de/2012/03/kindle-apps-von-deutschland-aus-kaufen/</link>
		<comments>http://blog.gerozahn.de/2012/03/kindle-apps-von-deutschland-aus-kaufen/#comments</comments>
		<pubDate>Wed, 14 Mar 2012 22:13:49 +0000</pubDate>
		<dc:creator>Gero Zahn</dc:creator>
				<category><![CDATA[Empfohlene Lektüre]]></category>
		<category><![CDATA[Gesellschaft und Politik]]></category>
		<category><![CDATA[Technik - IT - Computerkrams]]></category>
		<category><![CDATA[Adresse]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[Apps]]></category>
		<category><![CDATA[Deutschland]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[Europa]]></category>
		<category><![CDATA[Kauf]]></category>
		<category><![CDATA[Kindle]]></category>
		<category><![CDATA[Kindle-Bibliothek]]></category>
		<category><![CDATA[Kreditkarte]]></category>
		<category><![CDATA[Spiele]]></category>
		<category><![CDATA[Umzug]]></category>
		<category><![CDATA[USA]]></category>

		<guid isPermaLink="false">http://blog.gerozahn.de/?p=1624</guid>
		<description><![CDATA[Kaum ein Europäer weiß: Für die monochromen Kindle-E-Book-Reader (mit Ausnahme des neuen Kindle touch) gibt es Apps &#8211; meist kleinere Spiele. Amazon vertreibt sie bislang nur innerhalb der USA. Wie bekommt man sie aber als Europäer auf seinen deutschen Kindle? &#8230;<p class="read-more"><a href="http://blog.gerozahn.de/2012/03/kindle-apps-von-deutschland-aus-kaufen/">Weiterlesen &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Kaum ein Europäer weiß: Für die monochromen Kindle-E-Book-Reader (mit Ausnahme des neuen Kindle touch) gibt es Apps &#8211; meist kleinere Spiele. Amazon vertreibt sie bislang nur innerhalb der USA. Wie bekommt man sie aber als Europäer auf seinen deutschen Kindle?</p>
<p><span id="more-1624"></span></p>
<div id="attachment_1625" class="wp-caption alignright" style="width: 235px"><a href="http://blog.gerozahn.de/wp-content/uploads/2012/03/Catan-Kindle-Screenshot.gif"><img class="size-medium wp-image-1625 " title="Catan-Kindle - Screenshot" src="http://blog.gerozahn.de/wp-content/uploads/2012/03/Catan-Kindle-Screenshot-225x300.gif" alt="" width="225" height="300" /></a><p class="wp-caption-text">Catan-Kindle - Screenshot</p></div>
<p>Endlich ist &#8220;unser&#8221; Spiel <a href="http://www.catan.de/" target="_blank">&#8220;Die Siedler von Catan&#8221;</a> für den Kindle portiert worden. Das sieht ein bisschen rudimentär aus &#8211; aber es funktioniert überraschend gut. &#8211; Siehe Screenshot.</p>
<p>Allein: Wie bekommt man dieses (oder ein anderes Spiel) auf seinen Kindle, wenn man nicht in den USA lebt? <a href="http://www.amazon.com/Catan/dp/B007JV4WGQ/" target="_blank">Denn der Artikel-Link auf www.amazon.com verheißt nichts Gutes:</a> Man bekommt noch nicht einmal gesagt, dass das Spiel US$ 4.99 kosten soll, geschweige denn ist das Spiel außerhalb der USA lieferbar.</p>
<p><em>Good news everyone:</em> Diese Beschränkung lässt sich mit wenigen Schritten aushebeln:</p>
<h3>Internationale Anmeldedaten</h3>
<p>Vorab ist wichtig zu wissen: Die Amazon.de-Anmeldedaten funktionieren unverändert auch auf Amazon.com. Und, nebenbei bemerkt, auch auf amazon.co.uk und wo nicht sonst noch alles. Allein: Um eines der internationalen Amazon-Portale nutzen zu können, bedarf es einer Kreditkarte.</p>
<p>Dabei tut es problemlos eine Karte eines deutschen Kreditinstituts mit einer deutschen Rechnungsanschrift. Aber die braucht es auf jeden Fall &#8211; die kurze Warnung an alle Kreditkarten-Verweigerer: Ohne weltweit akzeptiertes Plastikgeld geht es hier nicht weiter.</p>
<h3>Kindle Bibliothek nach Amazon.com übertragen</h3>
<p>Im Auslieferungszustand wurde meine Kindle-Bibliothek, neudeutsch: meine in der Amazon-Cloud gespeicherten E-Book-Käufe, nicht von Amazon.de, sondern von Amazon.com verwaltet. Das hatte die primäre Auswirkung, dass man in US$ bezahlt &#8211; sonst aber eigentlich nichts. Das Angebot der erhältlichen E-Books variiert mitunter ein wenig, ebenso die Preise, basierend auf dem Dollar- bzw. EUR-Tageskurs.</p>
<p>Mir wurde daraufhin empfohlen, meine Kindle-Bibliothek zu Amazon.de zu übertragen, um fortan Bücher in EUR bezahlen zu können. Auf meine vorherigen Käufe hatte dieser Wechsel keinerlei Auswirkungen, lediglich auf US-E-Zeitschriftenabos, die danach nicht weiter geführt werden könnten. Da ich solch ein Abo nicht nutzte, war dies auch keine Beschränkung.</p>
<p>Freundlicherweise kann man diesen Wechsel jederzeit rückgängig machen &#8211; bzw. auf Wunsch sogar je nach Lust und Laune hin und her wechseln. Ich nutze diese Möglichkeit hier und da, wenn ein E-Book nur in den USA erhältlich ist, wechsele dann aber anschließend meist unverzüglich zurück.</p>
<p>… Also: Flugs gewechselt &#8211; das geht mit wenigen Mausklicks. Und schon liefert die Produktseite den Preis. Aber leider auch die Information, dass dieser Artikel für mich als Europäer nicht lieferbar ist.</p>
<p>Das war also erst die halbe Miete.</p>
<h3>Eine amerikanische Adresse &#8220;erfinden&#8221; und eintragen</h3>
<p>Die meisten von uns haben durch das Web 2.0 sicherlich Freunde in Übersee. Wer es so ehrlich wie nur möglich machen will, der &#8220;leiht&#8221; sich dessen Postanschrift &#8211; bezieht also quasi virtuell ein Zimmer zur Untermiete.</p>
<p>Alternativ tut es wie in meinem Fall auch die Anschrift von <a href="http://www.myus.com" target="_blank">MyUS.com</a> in Sarasota FL, deren Dienstleistungen ich mitunter verwende, wenn ein Händler nun gar nicht in die Alte Welt liefern mag. &#8230; <a href="http://blog.gerozahn.de/2011/11/amazon-kindle-fire-in-europa-ohne-jailbreak/" target="_blank">Amazon.com mit seinem Kindle Fire</a> und nun auch mit seinen digitalen Verkäufen ist hier ein unrühmlich treffendes Beispiel.</p>
<p>Als dritte Möglichkeit kann man natürlich auch die Adresse eines noblen Hotels auswählen, in dem man schon immer einmal ein paar Nächte verbringen wollte.</p>
<p>Lange Rede, kurzer Sinn: Die reale oder plausibel erfundene US-Postanschrift wird als alternative Lieferadresse im Amazon.com-Account eingetragen.</p>
<h3>&#8220;Umzug&#8221; in die USA</h3>
<p>Wiederum im Bereich &#8220;My Kindle&#8221; bietet Amazon nun an, nach einem Umzug die korrekte Postanschrift zu wählen. Dies ist, logischerweise, die soeben eingegebene USA-Postanschrift.</p>
<p>&#8230; Sehr schön ist dabei, dass man trotzdem mit der deutschen Kreditkarte problemlos weiter bezahlen kann.</p>
<h3>Kaufen, kaufen, kaufen!</h3>
<p>Derart als US-Bürger verkleidet gelingt der Kauf der gewünschten Kindle-App selbstredend sofort. Sie wird kurz darauf wie jedes normale E-Book in Windeseile per Whispernet auf den Handheld übertragen.</p>
<p>&#8230; Parallel dazu informiert Amazon.com noch, dass Datentraffic via 3G für USA-Bürger außerhalb der USA schmerzhaft teuer wird. Wissenswert &#8211; aber letztlich uninteressant.</p>
<h3>Und dann: Rolle rückwärts</h3>
<p>Direkt nach Abschluss des Kaufs und Abholung der App kann man obigen Tweak getrost rückgängig machen. Also:</p>
<ul>
<li>Umzug zurück von der US-Postadresse auf die althergebrachte Adresse in Deutschland.</li>
<li>Rücktransfer der Kindle-Bibliothek von Amazon.com nach Amazon.de.</li>
</ul>
<p>Spannend ist, dass alle in den USA getätigten Käufe grundsätzlich unter Amazon.com verbleiben. Löscht man die App also und will sie später erneut an denselben oder einen anderen Kindle senden, muss man dazu auf jeden Fall Amazon.com bemühen.</p>
<p><em>Viel Spaß mit der somit erworbenen Kindle App!</em></p>
<p><a href="http://blog.gerozahn.de/?ibsa=share&id=1624" id="share-link-">Share</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.gerozahn.de/2012/03/kindle-apps-von-deutschland-aus-kaufen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Time Machine sichert unsichtbaren Wine-Papierkorb</title>
		<link>http://blog.gerozahn.de/2012/03/time-machine-sichert-unsichtbaren-wine-papierkorb/</link>
		<comments>http://blog.gerozahn.de/2012/03/time-machine-sichert-unsichtbaren-wine-papierkorb/#comments</comments>
		<pubDate>Mon, 12 Mar 2012 09:19:32 +0000</pubDate>
		<dc:creator>Gero Zahn</dc:creator>
				<category><![CDATA[Technik - IT - Computerkrams]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[Papierkorb]]></category>
		<category><![CDATA[Time Machine]]></category>
		<category><![CDATA[TimeMachine]]></category>
		<category><![CDATA[TimeTracker]]></category>
		<category><![CDATA[Total Commander]]></category>
		<category><![CDATA[TotalCommander]]></category>
		<category><![CDATA[Trash]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Wine]]></category>

		<guid isPermaLink="false">http://blog.gerozahn.de/?p=1607</guid>
		<description><![CDATA[Nach umfangreichen temporären Dateikopier- und -verschiebeoperationen genehmigte sich Time Machine unlängst einen großen Happen vom Backup-Volume. Wieso das? Des Rätsels Lösung: Es war der ungeleerte Papierkorb der Wine-/Windows-Applikationen unter ~/.local/share/trash. Ein bisschen weiter ausgeholt: Ja, ich bin ein Grenzgänger, der &#8230;<p class="read-more"><a href="http://blog.gerozahn.de/2012/03/time-machine-sichert-unsichtbaren-wine-papierkorb/">Weiterlesen &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Nach umfangreichen temporären Dateikopier- und -verschiebeoperationen genehmigte sich Time Machine unlängst einen großen Happen vom Backup-Volume. Wieso das? Des Rätsels Lösung: Es war der ungeleerte Papierkorb der Wine-/Windows-Applikationen unter ~/.local/share/trash.</p>
<p><span id="more-1607"></span>Ein bisschen weiter ausgeholt: Ja, ich bin ein Grenzgänger, der am Mac zwar mit dem Finder und erst recht mit <a href="http://totalfinder.binaryage.com/" target="_blank">TotalFinder</a> recht effizient unterwegs ist. Aber wenn es hart auf hart kommt, bevorzuge ich den echten <a href="http://www.ghisler.com/" target="_blank">Total Commander</a>. Das fällt am Mac schwer &#8211; aber wiederum nicht so schwer: Die aktuelle Version läuft wunderbar unter <a href="http://www.winehq.org/" target="_blank">Wine</a>, der OpenSource-Windows-API-Implementation. Mit ein paar Kniffen hinsichtlich der Tastaturbelegung und etwas Handarbeit zum Aufruf der passenden Mac-Anwendung beim Doppelklick auf eine Datei im Total Commander läuft das Ding &#8220;fast-nativ&#8221; wirklich wunderbar am Mac. (Ich habe seit Jahr und Tag einen halbfertigen Blog-Beitrag dazu in der Pipeline.)</p>
<p>Wo ist also das Problem? Ganz einfach: Löscht man von einer Wine-Applikation Dateien, landen diese nicht im Mac-Mülleimer. Bislang nahm ich an, dass das Wine-API schlichtweg keinen Papierkorb unterstützt, dass also Dateien immer sofort gelöscht werden – damit kann ich umgehen, kein Problem.</p>
<p>Das ist aber doch nicht der Fall: Nach den Blu-ray-Brenn- und -Probelese-Experimenten des Wochenendes prognostizierte das Time Machine Controlpanel beim anschließend manuell angestoßenen Backup ein Backup-Volumen von knapp 50 GB. Erstaunlich &#8211; entsprach das doch mindestens zwei gefüllten einlagigen BD-Rohlingen, die ich allesamt testweise auf die Platte kopiert, CRC-gecheckt und anschließend wohlweislich gelöscht hatte.</p>
<p>Aber: Die 50 GB waren weg &#8211; sowohl auf der Macintosh HD als auch auf dem Time Machine Backupvolume. Himmel, seit Festplatten 2 TB groß sind, verliert man wirklich den Überblick über derart fiepsig kleine Datenmengen. <img src='http://blog.gerozahn.de/wp-includes/images/smilies/icon_surprised.gif' alt=':-o' class='wp-smiley' />  Sie lagen nicht mehr im Finder-Papierkorb. Aber warum sicherte Time Machine trotzdem 50 GB? Wo waren die Dateien?</p>
<p>Wie schön wäre es, wenn man nachsehen könnte, welche Dateien Time Machine in einem bestimmten Backup-Lauf tatsächlich gesichert hat. Das klingt allerdings simpler, als es in der Realität ist: Denn jedes Backup-Verzeichnis bildet aufgrund der verwendeten Hardlink-Struktur jederzeit ein vollständiges Volume &#8211; man sieht nicht ohne weiteres, was von Backup zu Backup dazu gekommen ist.</p>
<p>In die Bresche springt hier ein wundervolles Tool namens <a href="http://www.charlessoft.com/" target="_blank">&#8220;TimeTracker&#8221; von CharlesSoft</a> (bestens bekannt vom Installer-Tool &#8220;Pacifist&#8221;). TimeTracker ist als Pre-Beta-Version gekennzeichnet, erfüllt aber seinen Zweck: Es zeigt sehr detailliert, welche Verzeichnisse im Backup vorkamen, und wie viel Platz sie beanspruchen.</p>
<p>So kam ich dem Übeltäter auf die Schliche: Die 50 GB lagen unter ~/.local/share/trash/files. Erstaunlich: Google kennt diesen Ordner für Macintosh Computer nicht &#8211; die Fundstellen liegen im Bereich Linux. ~/.local/share/trash bildet demnach den Ort, an dem z.B. Ubuntu seine gelöschten Dateien lagert, die sich noch im Papierkorb befinden. &#8230; Der Mac verwendet dafür bekanntlich ~/.Trash.</p>
<p>Nach kurzem Spekulieren und anschließendem Experimentieren stand fest: Wird eine Datei im Wine-Total Commander gelöscht, landet sich unter ~/.local/share/trash &#8211; und zwar zum einen die eigentliche Datei unter ./files, zum anderen eine .tashinfo-Datei unter ./info. Flugs zur Demonstration der Löschvorgang einer Datei namens &#8220;test.zip&#8221; im Wine-Total Commander dokumentiert &#8211; vorher, nachher:</p>
<p><img class="aligncenter size-full wp-image-1609" title="Leerer Wine-Trash" src="http://blog.gerozahn.de/wp-content/uploads/2012/03/Leerer_Wine-Trash.png" alt="" width="901" height="275" /><img class="aligncenter size-full wp-image-1610" title="Gefüllter Wine-Trash" src="http://blog.gerozahn.de/wp-content/uploads/2012/03/Gefuellter_Wine-Trash.png" alt="" width="900" height="276" />In meinem Fall war das ~/.local/share/trash-Verzeichnis auf ca. 12.000 Dateien sowie, durch die BD-Test-Dateien, auf beinahe 56 GB angeschwollen.</p>
<p>Die Lösung ist dreischrittig:</p>
<ol>
<li>Wir gehen davon aus, dass dieser unsichtbare Papierkorb nicht mehr benötigte Dateien enthält. &#8230; Logisch, schließlich war ich mir zuvor gar nicht bewusst, dass er überhaupt existierte. <img src='http://blog.gerozahn.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Ergo kann der Inhalt von ~/.local/share/trash gestrost gelöscht werden.</li>
<ul>
<li>Soll dies vom Finder aus passieren (man erreicht das versteckte Verzeichnis ~/.local mit Hilfe von &#8220;Gehe zu&#8221; / &#8220;Gehe zu Ordner&#8221; bzw. Umsch-Cmd-G), rutschen die Dateien ggf. von dort aus in den Mac-Papierkorb. <img src='http://blog.gerozahn.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
<em>Es sei denn,</em> man hält beim Löschen die Umsch-Taste gedrückt, damit der Mac die Dateien direkt und unter Umgehung des Papierkorbes löscht.</li>
<li>Soll die Löschung wiederum von Wine i.e. wieder vom Total Commander aus passieren, gilt haargenau dasselbe: Statt einfach die Entf-Taste zu drücken, drückt man Umsch-Entf, damit Wine nicht versucht, Dateien vom Papierkorb in den Papierkorb zu verschieben. <img src='http://blog.gerozahn.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
</ul>
<li>Exakt das kann man sich anschließend angewöhnen: Schon unter echtem Windows bzw. VMware-Windows bin ich kein Freund des Papierkorbes, dort lösche ich Dateien in den meisten Fällen direkt mit Umsch-Entf.</li>
<li>Um das Time Machine-Backup wieder zu verschlanken, wechselt man zunächst mit Umsch-Cmd-G nach ~/.local/share/Trash und startet dann die Time Machine. Hier kann man sich dann die beiden Ordner ./info und ./files schnappen und mit der rechten Maustaste bestimmen, dass diese vollständig aus dem Time Machine-Backup entfernt werden sollen. &#8230; Nach Eingabe des Administrator-Passworts kann dies einem gut gefüllten Wine-Papierkorb schon mal etwas länger dauern &#8211; Geduld!</li>
</ol>
<p>Ich bin mir nicht sicher, ob Wine sich ggf. konfigurieren lässt, Dateien direkt zu löschen. Oder, ob eine modernere als die von mir verwendete Wine-Version gelöschte Dateien evtl. sogar in den echten Mac-Papierkorb verschiebt &#8211; das wäre natürlich in Zukunft die sauberste Lösung.</p>
<p><em>&#8230; Sie lasen einen weiteren Beitrag aus der Reihe &#8220;Erinnerungshilfen für mich selbst und Dokumentationen für andere Betroffene&#8221; &#8211; damit geben wir zurück in die angeschlossenen Funkhäuser. <img src='http://blog.gerozahn.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </em></p>
<h3>Update:</h3>
<p>Wer mit Kanonen auf Spatzen schießen will, der kann nach dem manuellen Leeren des Wine-Papierkorbs selbigen wirksam deaktivieren mit Hilfe von</p>
<blockquote><p>chmod 000 ~/.local/share/Trash/</p></blockquote>
<p><a href="http://blog.gerozahn.de/?ibsa=share&id=1607" id="share-link-">Share</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.gerozahn.de/2012/03/time-machine-sichert-unsichtbaren-wine-papierkorb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Original .png-Grafiken aus .fla-Flashprojekten exportieren</title>
		<link>http://blog.gerozahn.de/2012/03/original-png-grafiken-aus-fla-flashprojekten-exportieren/</link>
		<comments>http://blog.gerozahn.de/2012/03/original-png-grafiken-aus-fla-flashprojekten-exportieren/#comments</comments>
		<pubDate>Wed, 07 Mar 2012 15:17:54 +0000</pubDate>
		<dc:creator>Gero Zahn</dc:creator>
				<category><![CDATA[Technik - IT - Computerkrams]]></category>
		<category><![CDATA[CS4]]></category>
		<category><![CDATA[CS5]]></category>
		<category><![CDATA[Decompiler]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[export]]></category>
		<category><![CDATA[exportieren]]></category>
		<category><![CDATA[exportToFile]]></category>
		<category><![CDATA[FLA]]></category>
		<category><![CDATA[Flaex]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash Pro]]></category>
		<category><![CDATA[JPG]]></category>
		<category><![CDATA[JSFL]]></category>
		<category><![CDATA[PNG]]></category>
		<category><![CDATA[Professional]]></category>
		<category><![CDATA[SWF]]></category>

		<guid isPermaLink="false">http://blog.gerozahn.de/?p=1593</guid>
		<description><![CDATA[Stellen wir uns vor, wir haben ein altes Flash-Projekt, also eine .fla-Datei. Darin stecken eingebettet wunderschöne verlustfreie Alpha-Kanal-PNGs, die man nun weiter verwenden möchte &#8211; z.B. zur Neuerstellung des Projekts in Edge oder Hype in HTML5. Wie bekommt man die &#8230;<p class="read-more"><a href="http://blog.gerozahn.de/2012/03/original-png-grafiken-aus-fla-flashprojekten-exportieren/">Weiterlesen &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Stellen wir uns vor, wir haben ein altes Flash-Projekt, also eine .fla-Datei. Darin stecken eingebettet wunderschöne verlustfreie Alpha-Kanal-PNGs, die man nun weiter verwenden möchte &#8211; z.B. zur Neuerstellung des Projekts in <a href="http://labs.adobe.com/technologies/edge/" target="_blank">Edge</a> oder <a href="http://tumultco.com/hype/" target="_blank">Hype</a> in HTML5. Wie bekommt man die PNGs aber so arbeitssparend wie möglich aus der .fla-Datei heraus einzeln in die Hand?</p>
<p><span id="more-1593"></span>Dass ich mit dem Problem nicht alleine stehe, zeigt das seitenlange Suchergebnis, wenn man nach eben den Begriffen &#8220;fla export png&#8221; googlet. Es gibt dabei verschiedene Ansätze:</p>
<h3>Der pragmatische: Ein Bild nach dem anderen einzeln exportieren</h3>
<p>Flash bietet die Möglichkeit, ein Standbild eines Projekts als Alpha-Kanal-PNG zu exportieren. Man erstelle also eine leeres Dokument mit einer leeren Bühne, platziere dort oben links das zu exportierende Bild, exportiere das Bild &#8230;</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-1599" title="PNG_exportieren" src="http://blog.gerozahn.de/wp-content/uploads/2012/03/PNG_exportieren.png" alt="" width="610" height="371" /></p>
<p>&#8230; beschneide die exportierte Fassung in Photoshop auf die Original-Größe, sofern man nicht vorher daran gedacht hat, gleich die korrekte Bühnengröße zu wählen &#8211; und dann dasselbe mit dem zweiten Bild, dann dasselbe mit dem dritten Bild, und es verging Abend und Nacht des ersten Tages.</p>
<p>Das funktioniert zwar, aber ist extrem arbeitsaufwendig und insbesondere bei vielen Einzelgrafiken sehr fehleranfällig &#8211; um nicht zu sagen: nicht wirklich gangbar.</p>
<h3>Der schmutzige: SWF kompilieren und anschließend dekompilieren</h3>
<p>Hier startet der Arbeitsaufwand nicht mit der .fla-Projektdatei, sondern mit dem .swf-Kompilat. Diese Datei schleust man durch einen Decompiler &#8211; das kann z.B. <a href="http://afu.jf.land.to/index-en.html" target="_blank">Flaex</a> sein.</p>
<p>Der Nachteil ist: Die exportierten Grafiken entsprechen allzu häufig nicht den gewünschten hochqualitativen Original-PNGs. Vielmehr exportiert der Decompiler die Grafiken so, wie sie Flash zuvor in die .swf-Datei eingebettet hat &#8211; d.h. in der Regel stark verlustbehaftet. &#8230; Freundlicherweise bleibt immerhin der Alpha-Kanal erhalten.</p>
<p>Dieses Problem lässt sich immerhin notdürftig lösen:</p>
<ol>
<li>.fla-Datei in Flash öffnen.</li>
<li>In der Objektbibliothek nach &#8220;png&#8221; suchen.</li>
<li>Alle gefundenen .pngs markieren.</li>
<li>Rechte Maustaste, Eigenschaften.</li>
<li>&#8220;Komprimierung&#8221; &#8211; &#8220;verlustfrei&#8221;.<br />
<img class="alignnone size-full wp-image-1595" title="FLA-SWF-Exporteigenschaften" src="http://blog.gerozahn.de/wp-content/uploads/2012/03/FLA-SWF-Exporteigenschaften.png" alt="" width="687" height="515" /></li>
<li>Auf diese Weise eine neue, hochqualitative .swf-Datei kompilieren.</li>
<li>Und dann, ganz am Ende, den Decompiler anwerfen und diese .swf-Datei auswerten lassen.</li>
</ol>
<p>Das funktioniert, hat aber immer noch zwei Nachteile:</p>
<ul>
<li>Ins .fla-Projekt eingebettete JPG-Bilder (z.B. großformatige Hintergrundbilder), die man auf dem Weg ebenfalls als &#8220;verlustfrei&#8221; exportiert, werden dadurch natürlich nicht besser. Vielmehr speichert man die schon im Originalprojekt verlustbehaftet eingebettete Datei in einem verlustfreie Container &#8211; das ist ein bisschen so, als ob man aus Hackfleisch wieder ein Steak modelliert. &#8230; Es wäre deutlich schöner, wenn man die Original .jpg-Dateien bekäme und fertig.</li>
<li>Der Export-Vorgang aus der .swf-Datei durch den Decompiler generiert meist numerisch aufsteigend benannte Dateien. Man wird also wiederum lange suchen und umbenennen müssen, bis man die Datei wieder gefunden hat, die man sucht. &#8230; Es wäre deutlich angenehmer, wenn die Grafiken noch dieselben Namen hätten, die sie in der Objektbibliothek in der .fla-Projektdatei hatten.</li>
</ul>
<h3>Der einzig wahre: Ein JSFL-Kommando</h3>
<p>Danke, Google, dass Du mich zu Darren Osadchuk geführt hast, der auf <a href="http://cookbooks.adobe.com/post_Extract_bitmaps_and_audio_from_a_FLA_file-18144.html" target="_blank">http://cookbooks.adobe.com</a> exakt dieses Problem gelöst hat. JSFL, oder &#8220;JavaScript Flash&#8221;, ist eine Möglichkeit, die Flash-Oberfläche mit geskripteten Funktionen zu erweitern. – In &#8220;lingua microsoft&#8221; würde man so etwas wohl als &#8220;VisualBasic&#8221; bezeichnet haben. &#8230; &#8220;Kleiner&#8221; Pferdefuß: JSFL gibt es nur in den &#8220;Professional&#8221;-Editionen von Flash (bei mir: CS4, bei Darren: CS5).</p>
<p>Via JavaScript hat man dabei im DOM Zugriff auf die Objekte, die im aktuell geöffneten .fla-Objekt eingebettet sind. Und es ist um so erfreulicher, dass es hier eine Funktion gibt, deren Name wohl selbsterklärend ist:</p>
<blockquote><p>var success = libItem.exportToFile(imageFileURL);</p></blockquote>
<p>Auf deutsch: Hier wird ein Bibliotheks-Item in eine Datei exportiert. &#8230; Das Rest ist eine Fingerübung und einschließlich Kommentaren gerade einmal 25 Zeilen lang: Man iteriere durch die komplette Objektbibliothek und exportiere alles, was nach Bild oder Ton aussieht, unter dem bekannten Objektnamen auf die Festplatte.</p>
<p>Einen direkten Download hat Darren nicht vorgesehen, aber man kann den Skript-Code sehr einfach per Copy &amp; Paste übernehmen. Hier noch einmal der Link:</p>
<p><a href="http://cookbooks.adobe.com/post_Extract_bitmaps_and_audio_from_a_FLA_file-18144.html" target="_blank">http://cookbooks.adobe.com/post_Extract_bitmaps_and_audio_from_a_FLA_file-18144.html</a></p>
<p>Das Ganze speichert man mit einem selbst erklärenden Namen von Flash aus in eine .jsfl-Datei (einfach eine UTF-8-ASCII-Datei) ins passende Verzeichnis &#8211; bei mir ist das</p>
<blockquote><p>~/Library/Application Support/Adobe/Flash CS4/de/Configuration/Bilder und Sounds exportieren.jsfl</p></blockquote>
<p>Nachdem Flash dann neu gestartet ist, findet sich im &#8220;Befehle&#8221;-Menü ein Eintrag namens &#8220;Bilder und Sounds exportieren&#8221;.</p>
<p><img class="alignnone size-full wp-image-1602" title="JSFL-Bilder-exportieren" src="http://blog.gerozahn.de/wp-content/uploads/2012/03/JSFL-Bilder-exportieren.png" alt="" width="802" height="200" /></p>
<p>Und der tut exakt das, was der Name verspricht: Das JSFL.-Skript generiert nach Rückfrage eine Ordnerstruktur, die der Hierarchie der Objektbibliothek entspricht, und speichert exakt im jeweiligen Verzeichnis die .png- und .jpg-Grafiken &#8211; als wäre es das Normalste der Welt.</p>
<p><em>Wun-der-bar!</em> Problem ein für allemal gelöst.</p>
<p><a href="http://blog.gerozahn.de/?ibsa=share&id=1593" id="share-link-">Share</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.gerozahn.de/2012/03/original-png-grafiken-aus-fla-flashprojekten-exportieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OTRS: Attachments im Dateisystem statt in der Datenbank</title>
		<link>http://blog.gerozahn.de/2012/03/otrs-attachments-im-dateisystem-statt-in-der-datenbank/</link>
		<comments>http://blog.gerozahn.de/2012/03/otrs-attachments-im-dateisystem-statt-in-der-datenbank/#comments</comments>
		<pubDate>Fri, 02 Mar 2012 14:05:16 +0000</pubDate>
		<dc:creator>Gero Zahn</dc:creator>
				<category><![CDATA[Technik - IT - Computerkrams]]></category>
		<category><![CDATA[ArticleStorageDB]]></category>
		<category><![CDATA[ArticleStorageFS]]></category>
		<category><![CDATA[ArticleStorageSwitch]]></category>
		<category><![CDATA[Attachments]]></category>
		<category><![CDATA[Dateisystem]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[entfernen]]></category>
		<category><![CDATA[löschen]]></category>
		<category><![CDATA[OTRS]]></category>
		<category><![CDATA[otrs.ArticleStorageSwitch.pl]]></category>
		<category><![CDATA[OTRS1]]></category>
		<category><![CDATA[OTRS2]]></category>
		<category><![CDATA[OTRS3]]></category>
		<category><![CDATA[speichern]]></category>

		<guid isPermaLink="false">http://blog.gerozahn.de/?p=1578</guid>
		<description><![CDATA[Eine ganz kurze Notiz für mich selbst &#8211; und für andere Betroffene: Wie stellt man ein bestehendes OTRS3-Ticketsystem von der Attachment-Speicherung in MySQL-BLOBs auf dateisystembasierende Speicherung derselben um? Es ist, wie es ist: Wer ein Ticketsystem betreibt, bei dem er &#8230;<p class="read-more"><a href="http://blog.gerozahn.de/2012/03/otrs-attachments-im-dateisystem-statt-in-der-datenbank/">Weiterlesen &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Eine ganz kurze Notiz für mich selbst &#8211; und für andere Betroffene: Wie stellt man ein bestehendes OTRS3-Ticketsystem von der Attachment-Speicherung in MySQL-BLOBs auf dateisystembasierende Speicherung derselben um?</p>
<p><span id="more-1578"></span></p>
<p>Es ist, wie es ist: Wer ein Ticketsystem betreibt, bei dem er die User auffordert, ihnen Screenshots oder Logdateien als Attachment zu schicken, und wenn das Ticketsystem selbige Attachments dann als BLOBs in der MySQL-Datenbank ablegt, der wird alsbald eine riesengroße Datenbank bekommen &#8211; was die (mindestens) tägliche Sicherung immer unbequemer und unhandlicher werden lässt.</p>
<p>Wie schön wäre es doch, wenn man die <em>Daten</em>bank ihrem Namen entsprechend nur zum Speichern der <em>Daten</em> verwenden könnte, sowie die Speicherung der <em>Datei</em>en wiederum dem Namen entsprechend dem <em>Datei</em>system anvertrauen könnte. Derartige Datei-Halden kann man viel einfacher inkrementell oder differentiell sichern &#8211; und ggf. veraltete überflüssige Riesen-Attachments händisch herauslöschen.</p>
<p>Lange Bauchschmerzen und langes Googlen brachte mich hierher: <a href="http://forums.otterhub.org/viewtopic.php?t=993" target="_blank">Umstellung ArticleStorageDB auf ArticleStorageFS</a>. Der User &#8220;Dennis&#8221; berichtet hier im Jahr 2007 von der Umstellung einer OTRS-Datenbank von datenbankbasierende auf eine dateisystembasierender Attachment-Speicherung mit Hilfe eines Perl-Skriptes von Stefan Bedorf aus dem Jahre 2005. <strong>Wichtig: Das ist nicht mehr aktuell!</strong></p>
<p><em>Was ich jetzt nachfolgend schreibe aber sehr wohl:</em><strong></strong></p>
<h4>Erster Schritt: Backup machen.</h4>
<p>&#8217;nuff said.</p>
<h4>Zweiter Schritt: Voreinstellung ändern</h4>
<p>Im Backend das &#8220;Ticket::StorageModule&#8221; von &#8220;ArticleStorageDB&#8221; auf &#8220;ArticleStorageFS&#8221; umstellen. Einfach in der SysConfig nach &#8220;StorageModule&#8221; suchen &#8230;</p>
<p><img class="alignnone size-full wp-image-1579 aligncenter" title="SysConfig - StorageModule" src="http://blog.gerozahn.de/wp-content/uploads/2012/03/SysConfig-StorageModule.png" alt="" width="281" height="130" /><img class="alignnone size-full wp-image-1581 aligncenter" title="Ticket :: StorageModule" src="http://blog.gerozahn.de/wp-content/uploads/2012/03/Ticke-StorageModule.png" alt="" width="419" height="187" /></p>
<p>&#8230; und umstellen.</p>
<p>Wie User &#8220;Dennis&#8221; richtig bemerkt, gilt dies natürlich nur für alle zukünftigen Tickets. Alle bestehenden Tickets, die mit ihren fetten Attachments die Datenbank zusauen, zeigen sich davon unbeeindruckt.</p>
<h4>Dritter Schritt: Bestehende Tickets konvertieren</h4>
<p>User &#8220;Dennis&#8221; berichtet, dass er das nachträgliche Herausspeichern der Attachments früherer Tickets mit Hilfe eines Perl-Skriptes von Stefan Bedorf erledigt hat. Das funktionierte, soweit ich das verstehe, unter OTRS1 &#8211; aber heute unter OTRS3 nicht mehr. (Googlet man weiter, findet man irgendwo eine angepasste Version, die auch unter OTRS2 arbeitet &#8211; aber auch die tut es auf heutigen Systemen nicht mehr).</p>
<p><em>Aber:</em> Unter obigem Weblink liefert im Oktober 2008 der Admin &#8220;monotek&#8221; den rettenden Hinweis: Es gibt mittlerweile ein im Lieferumfang von OTRS befindliches Tool, das das Kunststück mit Bordmitteln vollbringt. Es findet sich unter $OTRSHOME/bin/otrs.ArticleStorageSwitch.pl &#8211; in meinem Fall unter /opt/otrs/bin/otrs.ArticleStorageSwitch.pl.</p>
<p>Wie wirft man es also an? Im Grunde genommen ganz einfach:</p>
<blockquote><p> /opt/otrs/bin/otrs.ArticleStorageSwitch.pl -s ArticleStorageDB -d ArticleStorageFS</p></blockquote>
<p>Merke: &#8220;S&#8221; wie &#8220;Source&#8221; – &#8220;-s ArticleStorageDB&#8221;, und &#8220;D&#8221; wie &#8220;Destination&#8221; – &#8220;-d ArticleStorageFS&#8221;. Der Vorgang zieht sich dann etwas:</p>
<blockquote><p>[root@centos ~]# /opt/otrs/bin/otrs.ArticleStorageSwitch.pl -s ArticleStorageDB -d ArticleStorageFS<br />
NOTICE: 1/9295<br />
NOTICE: 2/9295<br />
NOTICE: 3/9295<br />
NOTICE: 4/9295<br />
NOTICE: 5/9295<br />
:<br />
:<br />
:<br />
NOTICE: 9295/9295<br />
NOTICE: done.<br />
[root@centos ~]#</p></blockquote>
<p>Ich habe das Skript im Kontext des Root-Users ausgeführt, der die Verzeichnisse und Dateien aber anschließend dem User &#8220;root:apache&#8221; mit &#8220;drwxrwsr-x&#8221;-Rechten aushändigte. Das genügt, damit die OTRS-Benutzer weiterhin an ihrer Attachments heran kommen, und dass Apache bei neuen Tickets neue Ordner und Dateien anlagen kann.</p>
<p>Selbige lagern anschließend unter $OTRSHOME/var/article/:</p>
<blockquote><p>[root@centos ~]# ls -la /opt/otrs/var/article/<br />
insgesamt 28<br />
drwxrwsr-x  5 otrs apache 4096  2. Mär 13:51 .<br />
drwxrwxr-x 14 otrs apache 4096 30. Nov 14:19 ..<br />
drwxrwsr-x  5 root apache 4096  2. Mär 13:46 2010<br />
drwxrwsr-x 14 root apache 4096  2. Mär 13:48 2011<br />
drwxrwsr-x  5 root apache 4096  2. Mär 13:49 2012<br />
[root@centos ~]#</p></blockquote>
<p>Fertig &#8211; abputzen! Die MySQL-Datenbank ist wieder rank und schlank &#8211; richtig ist, dass man die beiden Tabellen article_attachment und article_plain noch optimieren sollte, um deren Tabellen-Overhead nun abzuräumen. Wie das geht, hat im Original-Link User &#8220;dennis&#8221; gut beschrieben.</p>
<p><a href="http://blog.gerozahn.de/?ibsa=share&id=1578" id="share-link-">Share</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.gerozahn.de/2012/03/otrs-attachments-im-dateisystem-statt-in-der-datenbank/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox-Passwortmanager und OTRS 3.0</title>
		<link>http://blog.gerozahn.de/2012/01/firefox-passwortmanager-und-otrs-3/</link>
		<comments>http://blog.gerozahn.de/2012/01/firefox-passwortmanager-und-otrs-3/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 17:06:16 +0000</pubDate>
		<dc:creator>Gero Zahn</dc:creator>
				<category><![CDATA[Technik - IT - Computerkrams]]></category>
		<category><![CDATA[Benutzerskript]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Greasemonkey]]></category>
		<category><![CDATA[Manager]]></category>
		<category><![CDATA[OTRS]]></category>
		<category><![CDATA[Password]]></category>
		<category><![CDATA[Passwort]]></category>
		<category><![CDATA[Passwort speichern]]></category>
		<category><![CDATA[Passwortmanager]]></category>
		<category><![CDATA[speichern]]></category>
		<category><![CDATA[Userscript]]></category>

		<guid isPermaLink="false">http://blog.gerozahn.de/?p=1567</guid>
		<description><![CDATA[Wer im Kundenservice das Ticketsystem OTRS v3.0 verwendet und dies mit Firefox bedienen möchte, ist gekniffen: Der Firefox-Passwortmanager fühlt sich zwar geneigt, das eingegebene Passwort zu speichern, trägt es aber beim nächsten Login nicht ins Eingabefeld ein. Die Lösung: Zwei &#8230;<p class="read-more"><a href="http://blog.gerozahn.de/2012/01/firefox-passwortmanager-und-otrs-3/">Weiterlesen &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Wer im Kundenservice das Ticketsystem <a href="http://de.wikipedia.org/wiki/Otrs" target="_blank">OTRS</a> v3.0 verwendet und dies mit Firefox bedienen möchte, ist gekniffen: Der <a href="http://www.getfirefox.com/" target="_blank">Firefox</a>-Passwortmanager fühlt sich zwar geneigt, das eingegebene Passwort zu speichern, trägt es aber beim nächsten Login nicht ins Eingabefeld ein. Die Lösung: Zwei Zeilen Userscript, und fertig ist die Laube.</p>
<p><span id="more-1567"></span>Das Problem existiert seit geraumer Zeit: Irgendwann funktionierte das OTRS-Login mit Firefox via Passwort-Manager noch, aber seit irgendwann später eben nicht mehr. Das Problem kam mit irgend einem OTRS 3.0.x-Update oder mir irgendeinem Firefox 4/5/6/7/8/9-Update … retrospektiv weiß ich das nicht mehr, aber es macht die Sache ja nicht eben besser.</p>
<p>Des Pudels Kern ist, dass OTRS das Passwortfeld der Anmeldemaske auf Read-Only setzt und erst beim Eintritt des Cursors (&#8220;onFocus&#8221;) editierbar macht. Zweifelsohne handelt es sich dabei um eine sinnvolle Sicherheitserwägung, aber dieser Kniff führt effizient dazu, dass der Firefox-Passwortmanager sich bockig zeigt: Er speichert das Passwort zwar beim ersten Login auf Anfrage, trägt selbiges aber beim nächsten Login nicht mehr automatisch ein – weil das dösige Passwort-Feld in dem Moment halt nicht beschreibbar ist.</p>
<p><a href="http://bugs.otrs.org/show_bug.cgi?id=7719" target="_blank">Exakt diese Information entnahm ich dem OTRS-Bugtracker,</a> mitsamt einem Core-Patch, der der <em>Login.dtl</em>-Datei ein Stückchen JavaScript hinzufügt. Core-Patches an OTRS sind allerdings nervig, weil man immer damit rechnen muss, dass sie entweder mit dem nächsten Update überschrieben werden, oder (schlimmer noch) dass Sie eben dieses nächste Update der gepatchten Datei be- oder gar verhindern.</p>
<p>Da es sich um ein Stück JavaScript, genauer gesagt: einen Zweizeiler handelt, der aufgerufen werden soll, wenn die Login-Maske erscheint, lag es nahe, diese Funktionalität in ein Userscript (deutsch: Benutzerskript) zu stecken. Das sieht in etwa so aus &#8211; der funktionelle Kern ist ein Zweizeiler:</p>
<blockquote><p>// ==UserScript==<br />
// @name          OTRS Login Helper<br />
// @namespace     https://mein.ticketsystem.tld/otrs/<br />
// @description      Enables support for Firefox password manager<br />
// @include       https://mein.ticketsystem.tld/otrs/index.pl*<br />
// ==/UserScript==<br />
// Notes:<br />
//   based on http://bugs.otrs.org/show_bug.cgi?id=7719</p>
<p>document.getElementById(&#8216;User&#8217;).readOnly = false;<br />
document.getElementById(&#8216;Password&#8217;).readOnly = false;</p></blockquote>
<p>Um es tauglich für den eigenen Anwendungszweck zu machen, muss man natürlich &#8220;mein.ticketsystem.tld/otrs&#8221; durch den Pfad zum eigenen OTRS v3 ersetzen. Anschließend speichert man die Datei unter einem beliebigen Namen, der mit &#8220;.user.js&#8221; endet, also z.B. &#8220;otrsfix.user.js&#8221;.</p>
<p>Wie bringt man das Userscript zur Ausführung? <a href="https://addons.mozilla.org/de/firefox/addon/greasemonkey/" target="_blank">Ganz einfach: Mit Greasemonkey.</a></p>
<p><strong>Also:</strong></p>
<ol>
<li><a href="https://addons.mozilla.org/de/firefox/addon/greasemonkey/" target="_blank">Greasemonkey</a> installieren.</li>
<li>Firefox neu starten.</li>
<li>Leeres Fenster (oder Tab) öffnen.</li>
<li>Die Datei &#8220;otrsfix.user.js&#8221; aus dem Finder oder Explorer in das geöffnete Firefox-Fenster ziehen.</li>
<li>Userscript-Installation bestätigen.<br />
<a href="http://blog.gerozahn.de/wp-content/uploads/2012/01/OTRS-UserScript-Installation.png"><img class="alignnone size-full wp-image-1569" title="OTRS-UserScript-Installation" src="http://blog.gerozahn.de/wp-content/uploads/2012/01/OTRS-UserScript-Installation.png" alt="" width="526" height="454" /></a></li>
<li>Firefox-Fenster mit OTRS-Anmeldemaske öffnen bzw. neu laden.</li>
<li>Genießen. <img src='http://blog.gerozahn.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
</ol>
<p>&nbsp;</p>
<p><a href="http://blog.gerozahn.de/?ibsa=share&id=1567" id="share-link-">Share</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.gerozahn.de/2012/01/firefox-passwortmanager-und-otrs-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Facebook lagt mit Opera</title>
		<link>http://blog.gerozahn.de/2012/01/facebook-lagt-mit-opera/</link>
		<comments>http://blog.gerozahn.de/2012/01/facebook-lagt-mit-opera/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 17:15:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Technik - IT - Computerkrams]]></category>
		<category><![CDATA[Videos]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[lag]]></category>
		<category><![CDATA[langsam]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Screencast]]></category>

		<guid isPermaLink="false">http://blog.gerozahn.de/?p=1552</guid>
		<description><![CDATA[Aus die Maus: Facebook ist mit Opera nicht mehr bedienbar. Es war immer schon lahm, aber jetzt ist meine Schmerzgrenze überschritten. – Siehe nachfolgender Demonstrations-Screencast. Update: Mein Screencast zeigt Opera unter Mac OS X 10.6.8, aber das Problem ist auch &#8230;<p class="read-more"><a href="http://blog.gerozahn.de/2012/01/facebook-lagt-mit-opera/">Weiterlesen &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Aus die Maus: Facebook ist mit Opera nicht mehr bedienbar. Es war immer schon lahm, aber jetzt ist meine Schmerzgrenze überschritten. – Siehe nachfolgender Demonstrations-Screencast.</p>
<p>
<object width="630" height="295">
<param name="movie" value="http://www.gerozahn.de/scratch/Facebook-Opera-Lag.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#FFFFFF"></param>
<param name="allowScriptAccess" value="always"></param>
<embed type="application/x-shockwave-flash" width="630" height="295" src="http://www.gerozahn.de/scratch/Facebook-Opera-Lag.swf" quality="high" bgcolor="#FFFFFF" wmode="window" menu="false" ></embed>
</object>
</p>
<p><em>Update:</em> Mein Screencast zeigt Opera unter Mac OS X 10.6.8, aber das Problem ist auch unter Windows 7 und unter Ubuntu Linux 11.10 zu beobachten.</p>
<p><em>Update 2:</em> Mit Opera 11.61 scheint das Problem (vorerst) behoben zu sein.</p>
<p><a href="http://blog.gerozahn.de/?ibsa=share&id=1552" id="share-link-">Share</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.gerozahn.de/2012/01/facebook-lagt-mit-opera/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New Year&#8217;s Resolutions 2012 Vlog</title>
		<link>http://blog.gerozahn.de/2012/01/new-years-resolutions-2012/</link>
		<comments>http://blog.gerozahn.de/2012/01/new-years-resolutions-2012/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 09:02:24 +0000</pubDate>
		<dc:creator>Gero Zahn</dc:creator>
				<category><![CDATA[Videos]]></category>
		<category><![CDATA[GerZah]]></category>
		<category><![CDATA[New Year's Resolution]]></category>
		<category><![CDATA[New Years Resolutions]]></category>
		<category><![CDATA[PhD]]></category>
		<category><![CDATA[university]]></category>
		<category><![CDATA[Video Blogging]]></category>
		<category><![CDATA[Vlog]]></category>

		<guid isPermaLink="false">http://blog.gerozahn.de/?p=1549</guid>
		<description><![CDATA[I just noticed that I had totally forgotten to post my latest vlog on my blog &#8211; so here goes: My two resolutions for the new year 2012 &#8211; spending time and effort on making new videos, while at the &#8230;<p class="read-more"><a href="http://blog.gerozahn.de/2012/01/new-years-resolutions-2012/">Weiterlesen &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p><iframe width="620" height="349" src="http://www.youtube.com/embed/6G6rXmprmYo?fs=1&#038;feature=oembed" frameborder="0" allowfullscreen></iframe></p>
<p>I just noticed that I had totally forgotten to post my latest vlog on my blog &#8211; so here goes: My two resolutions for the new year 2012 &#8211; spending time and effort on making new videos, while at the same time spending time and effort on my new &#8220;hobby&#8221;.</p>
<p><a href="http://blog.gerozahn.de/?ibsa=share&id=1549" id="share-link-">Share</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.gerozahn.de/2012/01/new-years-resolutions-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Technological Review 2011</title>
		<link>http://blog.gerozahn.de/2011/12/technological-review-2011/</link>
		<comments>http://blog.gerozahn.de/2011/12/technological-review-2011/#comments</comments>
		<pubDate>Sat, 31 Dec 2011 15:32:23 +0000</pubDate>
		<dc:creator>Gero Zahn</dc:creator>
				<category><![CDATA[Videos]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[2012]]></category>
		<category><![CDATA[3DS]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[AppleTV]]></category>
		<category><![CDATA[Doctor Who]]></category>
		<category><![CDATA[Fire]]></category>
		<category><![CDATA[GerZah]]></category>
		<category><![CDATA[Gigabit]]></category>
		<category><![CDATA[jailbreak]]></category>
		<category><![CDATA[Kindle]]></category>
		<category><![CDATA[Kitchen]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[N]]></category>
		<category><![CDATA[Netflix]]></category>
		<category><![CDATA[Nintendo]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[StrongVPN]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[TFT]]></category>
		<category><![CDATA[Unblock-US]]></category>
		<category><![CDATA[Vlog]]></category>
		<category><![CDATA[VPN]]></category>
		<category><![CDATA[WiFi]]></category>

		<guid isPermaLink="false">http://blog.gerozahn.de/?p=1542</guid>
		<description><![CDATA[&#8230; and a happy new year! Share]]></description>
			<content:encoded><![CDATA[<p><iframe width="620" height="349" src="http://www.youtube.com/embed/rnHIvZwxGTU?fs=1&#038;feature=oembed" frameborder="0" allowfullscreen></iframe></p>
<p>&#8230; and a happy new year! <img src='http://blog.gerozahn.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://blog.gerozahn.de/?ibsa=share&id=1542" id="share-link-">Share</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.gerozahn.de/2011/12/technological-review-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

