<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>basis42</title><link>https://www.basis42.de/</link><description>Recent content on basis42</description><generator>Hugo</generator><language>de-de</language><lastBuildDate>Fri, 10 Nov 2023 15:44:54 +0100</lastBuildDate><atom:link href="https://www.basis42.de/index.xml" rel="self" type="application/rss+xml"/><item><title>Apache Camel, Kubernetes, Microservices, AWS und der ganze Rest</title><link>https://www.basis42.de/apachecamel_kubernetes_microservices_aws/</link><pubDate>Fri, 10 Nov 2023 15:44:54 +0100</pubDate><guid>https://www.basis42.de/apachecamel_kubernetes_microservices_aws/</guid><description>&lt;p>Zusammen mit meinem Kollegen &lt;a href="https://web.archive.org/web/20231130213320/https://www.xing.com/profile/ThorbenOle_Heins">Thorben Heins&lt;/a> habe ich unsere 6-jährige Reise von einem einzelnen Microservice zu einer skalierbaren EAI Platform in einem Blogpost zusammengefasst.
Zu finden auf dem Bertelsmann Tech Blog: &lt;a href="https://tech.bertelsmann.com/en/blog/articles/automating-legacy-business-processes-using-cutting-edge-technologies-part-4-easiapache-camel">https://tech.bertelsmann.com/en/blog/articles/automating-legacy-business-processes-using-cutting-edge-technologies-part-4-easiapache-camel&lt;/a>&lt;/p></description></item><item><title>Talk beim Techcamp Hamburg: "Ich will doch nur entwickeln, oder: Was ich als Entwickler über die Cloud wissen sollte"</title><link>https://www.basis42.de/talk-beim-techcamp-hamburg-ich-will-doch-nur-entwickeln-oder-was-ich-als-entwickler-ueber-die-cloud-wissen-sollte/</link><pubDate>Thu, 18 Apr 2019 14:36:53 +0200</pubDate><guid>https://www.basis42.de/talk-beim-techcamp-hamburg-ich-will-doch-nur-entwickeln-oder-was-ich-als-entwickler-ueber-die-cloud-wissen-sollte/</guid><description>&lt;p>Ohne viele Worte zu verlieren: Es hat Spass gemacht, über das Thema Cloud zu sprechen! Was mich auf jeden Fall erstaunt hat, ist das Public Cloud Services von AWS, GCP, etc. nach wie vor nur von einem Bruchteil der anwesenden Entwickler produktiv eingesetzt werden, das hätte ich so nicht erwartet, da es bei mir im Team mittlerweile vollständig in unsere DNS übergegangen ist. Also: Einfach mal ausprobieren und die Vorteile schätzen lernen, würde ich sagen :-).
Hier geht es zu den &lt;a href="https://www.basis42.de/talks/ich_will_doch_nur_entwickeln_mario_rutz_techcamp2019.pdf">Sildes meines Talks&lt;/a>.&lt;/p></description></item><item><title>Enterprise Application Integration mit Apache Camel Talk</title><link>https://www.basis42.de/enterprise-application-integration-mit-apache-camel-talk/</link><pubDate>Fri, 23 Feb 2018 11:22:21 +0100</pubDate><guid>https://www.basis42.de/enterprise-application-integration-mit-apache-camel-talk/</guid><description>&lt;p>Schön war er, mein Talk zum Thema &amp;ldquo;Enterprise Application Integration mit Apache Camel Talk&amp;rdquo;, gestern bei meinem Brötchengeber Gruner + Jahr. Auch wenn ich das Minimal Beispiel für das nächste Mal ein wenig besser vorbereite und damit hoffentlich sicherstelle, dass nicht nur der entsprechende Code recht sexy ist, sondern auch die Live Demo das tut was sie soll :-).
Hier findet ihr die &lt;a href="https://talks.basis42.de/camel_talk/">Slides&lt;/a> und den &lt;a href="https://github.com/basis42/camel_talk/tree/master/example">Code&lt;/a> des Minimalbeispiels zum selber nachstellen und spielen. Und nur für den Fall: Die Access Keys für die Twitter Streaming API und S3 habe ich disabled, nicht das mir da jemand auf dumme Gedanken kommt.
Ich freue mich über weiteres Feedback und Erfahrungsaustausch zum Thema Enterprise Application Integration und Apache Camel.&lt;/p></description></item><item><title>rsync via ssh mit Passwort</title><link>https://www.basis42.de/rsync-via-ssh-mit-passwort/</link><pubDate>Wed, 14 Feb 2018 19:56:56 +0100</pubDate><guid>https://www.basis42.de/rsync-via-ssh-mit-passwort/</guid><description>&lt;p>Als Reminder to myself, unter der Annahme, das alles(z.B. sshpass &amp;hellip;) installiert ist und ja, das ist schmutzig, eigentlich gehört das Passwort mindestens in ein File und Keys sind sowieso besser und überhaupt:&lt;/p>
&lt;pre tabindex="0">&lt;code>
rsync -ratlz --rsh=&amp;#34;/usr/bin/sshpass -p [REMOTE_PASSWORD] ssh -o StrictHostKeyChecking=no -l [REMOTE_USER]&amp;#34; --exclude=&amp;#39;[FILES_TO_EXCLUDE]&amp;#39; [REMOTE_USER]@[REMOTE_SERVER]:[REMOTE_SOURCE_PATH] [LOCAL_PATH]
&lt;/code>&lt;/pre></description></item><item><title>Aktuelle node.js Version auf CentOS 6.3 installieren</title><link>https://www.basis42.de/aktuelles-node-js-auf-centos-63/</link><pubDate>Mon, 21 Jan 2013 18:38:21 +0100</pubDate><guid>https://www.basis42.de/aktuelles-node-js-auf-centos-63/</guid><description>&lt;p>Da es für CentOS keine Packages für node.js gibt, hier eine kleine Anleitung, um sich zu behelfen:
&lt;strong>Kurze Anleitung&lt;/strong>
&lt;del>Einfach das von mir gebaute RPM für node.js in Version 0.8.18 verwenden (falls die Architektur passt).&lt;/del>&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>Hinweis (2026):&lt;/strong> Das RPM biete ich nicht mehr zum Download an. Node.js 0.8 ist seit über zehn Jahren ohne Sicherheitsupdates und sollte nicht mehr eingesetzt werden. Aktuelle Versionen gibt es über die offiziellen Pakete von &lt;a href="https://nodejs.org/en/download">nodejs.org&lt;/a>.&lt;/p></description></item><item><title>Javascript- und CSS-Resourcen-Verwaltung mit grunt.js</title><link>https://www.basis42.de/javascript-und-css-resourcen-verwaltung-mit-grunt-js/</link><pubDate>Fri, 18 Jan 2013 17:26:11 +0100</pubDate><guid>https://www.basis42.de/javascript-und-css-resourcen-verwaltung-mit-grunt-js/</guid><description>&lt;p>Da ich im Rahmen eines Techtalks versucht habe, meinen Kollegen das Javascript-basierte Buildtool grunt.js näher zu bringen, will ich zumindest die &lt;a href="http://talks.basis42.de/grunt.js_talk" title="grunt.js Talk">Sildes&lt;/a> und den &lt;a href="https://github.com/basis42/grunt.js_talk" title="Beispielcode grunt.js">Beispielcode&lt;/a> hier verlinken, um die Informationen allgemein verfügbar zu machen.
Der Vortrag gibt anhand eines Beispiels eine Einführung wie man grunt.js in (nicht nur) JavaScript-Projekten nutzen und für die eigenen Belange konfigurieren und erweitern kann. zusätzlich spannend für mich war meine erste Mal &lt;a href="http://lab.hakim.se/reveal-js" title="reveal.js">reveal.js&lt;/a>, einem JavaScript Framework für Präsentationen. Wenn ich das so mit PowerPoint vergleiche, dann hat das Bauen der Präsentation damit auf jeden Fall 10x mehr Spaß gemacht, unbedingt ausprobieren :-).&lt;/p></description></item><item><title>Liebe Headhunter - Zunft</title><link>https://www.basis42.de/liebeheadhunter/</link><pubDate>Wed, 14 Nov 2012 18:29:13 +0100</pubDate><guid>https://www.basis42.de/liebeheadhunter/</guid><description>&lt;p>Gerade erhalte ich eine Mail von einer &amp;ldquo;Headhunterin&amp;rdquo;:&lt;/p>
&lt;blockquote>
&lt;p>Mein Auftraggeber hat eine Plattform für individuelle Premium-Grußkarten gebastelt, die seit mehreren Jahren sehr guten Anklang findet. Per Flash-App können Kunden ihre Wünsche in die Realität umsetzen - vom Design bis zum Papier ist alles in vielen Varianten auswählbar. Bereits 11.536 Menschen haben den Dienst mit 4,9 von 5 Punkten bewertet.
Die Atmosphäre ist sehr locker, aber leidenschaftlich; die Geschäftsleitung legt großen Wert auf entspannte und familiäre Arbeitsbedingungen.&lt;/p></description></item><item><title>Frustbewältigung</title><link>https://www.basis42.de/frustbewaltigung/</link><pubDate>Tue, 11 Sep 2012 08:50:23 +0200</pubDate><guid>https://www.basis42.de/frustbewaltigung/</guid><description>&lt;p>Auf Wunsch und zur Frustbewältigung eines einzelnen hier nicht genannten Freunds der Familie und glühenden St. Pauli Verehrers: &lt;a href="http://www.schubert-raus.de">http://www.schubert-raus.de&lt;/a>
Für mich mit dem angenehmen Seiteneffekt, mal &lt;a href="https://web.archive.org/web/20120911151319/http://twitter.github.com/bootstrap/">Bootstrap&lt;/a> und &lt;a href="https://web.archive.org/web/20120915131044/http://silex.sensiolabs.org/">Silex&lt;/a> einem Praxistest zu unterziehen und auf ihre RAD Fähigkeiten hin zu überprüfen. Den Test hat das Gespann auf jeden Fall bestanden, einmal Lübeck - Hamburg und zurück mit der Bahn und fertig.
Und wer weiß, vielleicht baue ich dem Herrn Yildirim, seines Zeichen Trainer beim VfB Lübeck, auch gleich eine Seite, da siehts im Moment auch nicht besser aus :-).
Fussball, die zweitschönste Nebensächlichkeit der Welt.&lt;/p></description></item><item><title>Windows für Web-Entwickler ist doof</title><link>https://www.basis42.de/windows-fur-web-entwickler-ist-doof/</link><pubDate>Fri, 13 Jul 2012 08:19:18 +0200</pubDate><guid>https://www.basis42.de/windows-fur-web-entwickler-ist-doof/</guid><description>&lt;p>Ich weiß, das wissen wir alle schon länger, aber ich durfe gerade eine svn Workingcopy unter Linux auschecken, nur um einen Symlink anlegen zu können und diesen anschließend auch ins Repository commiten zu können.
Darüber ob Symlinks im svn gut sind läßt sich sicher streiten, aber manchmal muss es eben doch sein und frei nach Monty Python möchte ich einfach die prinzipielle Möglichkeit haben Babies zu bekommen, äh ich meine natürlich Symlinks anlegen zu können.
So, jetzt geht&amp;rsquo;s mir schon ein wenig besser :-)!&lt;/p></description></item><item><title>Wiederverwendbare Framework Erweiterungen</title><link>https://www.basis42.de/wiederverwendbare-framework-erweiterungen/</link><pubDate>Fri, 01 Jun 2012 09:33:21 +0200</pubDate><guid>https://www.basis42.de/wiederverwendbare-framework-erweiterungen/</guid><description>&lt;p>Auch wenn es gestern Abend in dem Vortrag von Pierre Minnieur bei der Symfony Usergroup Hamburg im wesentlichen um das Thema &amp;ldquo;Bundles are not Plugins&amp;rdquo; ging, hab ich dort für mich einen ganz anderen Aspekt mitgenommen, der meiner Meinung nach häufig von Entwicklern vergessen wird, die sich im wesentlichen in einer Frameworkwelt, sei es Symfony, Zend, Flow3 oder was auch immer, bewegen.
Routiniert packt man seine Funktionen in z.B. Symfony Bundles, nutzt die dort vorgegeben Methoden der Vererbung, Strukturierung, etc. und verwendet bestenfalls diese Bundles sogar in mehr als einem Projekt. Bis hier hin eine schöne Welt! Aber was passiert, wenn ich wesentliche Funktionalitäten aus meinem Bundle nun in einem Zend Projekt verwenden will?
Man merkt, eigentlich haben wesentliche Codebestandteile aber so gar nichts in einem Bundle zu suchen, sondern sind für eine gute Wiederverwendung viel besser in einer eigenständigen Library aufgehoben. Nun ist lediglich ein schlanker &amp;ldquo;Wrapper&amp;rdquo;, im Falle Symfony ein Bundle, nötig, welches die Funktionalität der Library in den Kontext des Frameworks hebt. Der Code, der sich an ein spezielles Framework bindet, ist deutlich reduziert und die Library wird hoffentlich häufiger wiederverwendet, da diese mit geringem Aufwand auch in anderen Frameworks einfach eingebunden werden kann.
Wesentlicher Grund gegen so ein Vorgehen mag in der Vergangenheit das Fehlen, bzw. die fehlende Akzeptanz von Werkzeugen wie Composer gewesen sein. Mit Composer und Packagist scheint sich in der PHP Welt so langsam eine Entsprechung von Maven und Apache Commons durchzusetzen, so dass zu hoffen bleibt, dass wir bald alle einfach und schnell tolle Libraries in unseren Lieblingsframeworks benutzen können.&lt;/p></description></item><item><title>Neues Jahr, neues Glück!</title><link>https://www.basis42.de/neues-jahr-neues-gluck/</link><pubDate>Thu, 05 Jan 2012 21:42:10 +0100</pubDate><guid>https://www.basis42.de/neues-jahr-neues-gluck/</guid><description>&lt;p>Ich hoffe, man ist allenthalben gut ins neue Jahr gekommen! Das neue Jahr ist auf jeden Fall ein guter Anlass, mal wieder ein paar Zeilen zu tippen.
Mein persönliches Highlight über die Jahreswende war auf jeden Fall, dass ich entdeckt habe, dass offensichtlich jemand in der letzten Zeit Code aus meiner frühen C64 Schaffensphase in Images für C64 Emulatoren überführt hat, so dass ich endlich mal wieder in den Genuss gekommen bin, über die alten Werke zu schauen. Was ein Spaß! Bis dato war lediglich ein &lt;a href="http://noname.c64.org/csdb/scener/?id=10129" title="c64.org">Demo&lt;/a> online zu finden, aber wie mir scheint, ist der Backkatalog, der &lt;a href="http://noname.c64.org/csdb/scener/?id=10658" title="c64.org">hier verlinkt&lt;/a> ist, doch recht vollständig - ich glaube da fehlt nur besagtes Demo, welches ich doch tatsächlich unter Klarnamen zusammengelötet hab.
Ach ja, die guten alten Zeiten &amp;hellip; aber vielleicht schwelge ich auch gerade besonders darin, da ich gerade &lt;a href="https://www.amazon.de/dp/398114175X">Extraleben von Constantin Gilles&lt;/a> gelesen habe, welches lesenswert ist, aber natürlich nicht ganz so in die Tiefe geht, wie man es sich wünschen würde, wenn man jahrelang in Hexdumps mit nem Maschinensprachemonitor rumgewühlt hat :-).&lt;/p></description></item><item><title>International PHP Conference Spring Edition 2011 – Mittwoch</title><link>https://www.basis42.de/international-php-conference-spring-edition-2011-mittwoch/</link><pubDate>Wed, 01 Jun 2011 22:51:01 +0200</pubDate><guid>https://www.basis42.de/international-php-conference-spring-edition-2011-mittwoch/</guid><description>&lt;p>&lt;strong>Keynote: Das digitale Paradies und seine Sklaven, Gernot Pflüger&lt;/strong>
Der Mittwoch beginnt mit einer Keynote von Gernot Pflüger, der mir bis dato zwar gänzlich unbekannt war, aber die in seiner Keynote popagierte Wirtschaftsdemokratie mit flachen Hierarchien, alle Mitarbeiter bekommen das gleiche Gehalt, etc. hat mir ganz gut gefallen. Alles in allem gings dann aber doch ein wenig ausschweifend durch zu viele Aspekte des Lebens. Ein Satz sollte zumindest im Sinne nicht unzitiert bleiben: &amp;ldquo;Secondlife ist das Ruhrgebiet des 21. Jahrhunderts, was soll vor dem Hintergrund bloß mal aus Facebook werden?&amp;rdquo; Großartig!
&lt;strong>Hidden features of PHP, Ilja Alshanetsky&lt;/strong>
Ein Dauerfeuer an interessanten und weniger interessanten Features und PHP Extensions die Ilja vorgestellt hat. Klasse vorgetragen, aber ob der Fülle fehlte mir ein wenig die Tiefe, irgendwann verliert man den Faden. Hängengeblieben sind aber mindestens 2 Dinge, zum einen gibt es eine von Ilja geschriebene Library PHP-Excel, welche anstrebt Exel-Reader und Excel-Writer zeitgemäß zu beerben. Weiterhin xhprof ein lightweight PHP profiler, der angeblich auch in Live Umgebungen eingesetzt werden kann, da er nur wenig Resourcen benötigt. Mein Tip: Einmal die Slides überfliegen und die Keywords für den späteren Gebrauch indexieren.
&lt;strong>Doctrine NoSQL, Benjamin Eberlei&lt;/strong>
Da ich mich bis jetzt nur theoretisch mit NoSQL Datenbanken beschäftigt hab, begreife ich diesen Talk für mich als eine Ergänzung meines theoretischen Wissens über NoSQL. Darüber hinaus hat Benjamin aber auch einige allgemeingültige Dinge über Doctrine2 und die Unterschiede zwischen OR(Objekt-Relational) Mappern und OD(Objekt-Dokument) Mappern im Doctrine2 Kontext vorgestellt, die mein Bild insgesamt weiter abrunden.
&lt;strong>Keynote: Der virale Faktor, Martin Oetting&lt;/strong>
Auch Martin Oetting verzichtet, wie auch Gernot Pflüger, auf eine Powerpoint Präsentation, ein Trend, der zumindest bei Vorträgen, die im wesentlich als gedankliche Anregung zu verstehen sind, durchaus zu begrüßen ist. Sehr gekonnt referiert er Anektdoten wie z.B. Marketing Manager die ohne mit der Wimper zu zucken zwar 25 Millionen Euro für eine 4-wöchige werbliche Dauerbeschallung Deutschlands auf allen konventionellen Werbekanälen ausgeben, aber anschließend überfordert sind, 19 schlechte Meinungen auf Facebook über das entsprechende Produkt in sinnvolle Relation zu setzen und dementsprechend maßlos überragieren. Vieles von dem was Martin sagt, klingt schlüssig, einzig die Behauptung er könne ohne Probleme ca. 3000 Social Network Freunde/Kontakte ernsthaft und gut handhaben, will ich nicht so recht glauben.
&lt;strong>Fighting Layout Bugs, Michael Tam&lt;/strong>
Eigentlich fast aus der Verlegenheit heraus geboren, da nichts anderes superinteressantes auf dem Plan stand, bin ich ohne besondere Erwartung in den Talk von Michael Tamm gegangen, quasi um mal ein wenig in das webinale Programm hineinzu schnuppern. Was mich dort allerdings erwartet hat war goße Klasse, auch wenn der Präsentationsstil etwas eigenwillig war. Nach kurzem Vorgeplänkel ging es im wesentlichen um einen Selenium Test Treiber, entwickelt von Michael Tamm, welcher im Zusammelspiel mit verschiedenn Javascript/CSS Kniffen Probleme bei Webseiten Layouts automatisiert erkennen kann. Klasse Sache das!
&lt;strong>Code, don&amp;rsquo;t click!, Lukas Smith&lt;/strong>
Lukas Smith beginnt seine Talk mit schmunzelndem Drupal gebashe, welches seiner Meinung nach gut für einfache &amp;ldquo;one-click&amp;rdquo; Installationen ist, aber grausam für Entwickler. Im folgenden geht es um die Architektur des kommenden Content-Managment-Frameworks (CMF) für Symfony 2, welches als universelle Plattform für die Entwicklung von Symfony 2 basierten Content Management Systemen dienen soll. Was sich bis hier schon nach ein wenig Namedropping anhört, wird im Anschluss noch etwas heftiger. Als Datenspeicher für das CMF wird eine eigene Entwicklung präferiert, welche grob der JSR-283 Spezifikation folgt, sich PHPCR ODM nennt und im wesentlichen einem Java Content Repository entspricht aber &amp;ldquo;php-ified&amp;rdquo; ist. Ja, da schlackern einem die Ohren :-).
Ein spannende Entwicklung in jeden Fall und es bleibt abzuwarten, ob es am Ende wirklich noch soviel schlanker und einfacher ist wie die, in dieser Hinsicht, gerne mal geschähte Java Welt.
Und was in jedem Fall auch wichtig ist, die Entscheidungen für die Architektur sind gefallen, allerdings fehlen noch wesentliche Teile der Implementation.
&lt;strong>Real World Dependency Injection, Stefan Hochdoerfer&lt;/strong>
Zum Abschlus der IPC 2011 habe ich mich dann nochmal eine Thema gewidmet, welches in der Vergangenheit eigentlich schon relativ umfassend erörtert wurde. Ich denke für die zugegebenermaßen wenigen Newbies im Talk, DI ist offensichtlich in den Köpfen angekommen, war das ein souverän gehalten Vortrag, aus dem man einen Menge mitnehmen konnte.
Verbleibt mir nur noch ein kurzes Fazit: Spaß hats gemacht und ich nehme vielen Anregungen mit nach Hause. Die vielleicht spannenste Frage hat meiner Meinung Lukas Smith auf dieser Veranstaltung aufgeworfen: Ich bin wirklich gespannt, ob sich eine doch recht komplexe Architektur wie sie vom Symfony CMF angestrebt wird, in der PHP Welt durchsetzen wirdin der Breite durchsetzen wird. Ich freue mich auf die Antworten, vielleicht schon nächstes Jahr auf der IPC.&lt;/p></description></item><item><title>International PHP Conference Spring Edition 2011 – Dienstag</title><link>https://www.basis42.de/international-php-conference-spring-edition-2011-dienstag/</link><pubDate>Wed, 01 Jun 2011 00:20:18 +0200</pubDate><guid>https://www.basis42.de/international-php-conference-spring-edition-2011-dienstag/</guid><description>&lt;p>Der Dienstag beginnt erst mal mit anständig ausschlafen, was trotz allem nicht geholfen hat, denn um 9 Uhr gerate ich gänzlich unvorbereitet in die Keynote &amp;ldquo;Warum freie Daten wichtiger sind als fliegende Autos&amp;rdquo; von Julia Schramm. Das ist wohl die Dame die in letzter Zeit so viel als Datenschutzgegenerin zitiert worden ist, vermute ich zumindest mal. Alles in allem eine doch recht mäßige Vorstellung, die vom Blatt abgelesen klang, um zu zitieren: &amp;ldquo;ein äh &amp;hellip; Spaß!&amp;rdquo;, war das leider nicht. Schade, weil ich eigentlich Stefan Priebsch gerne hätte hören wollen mit seiner Keynote.
&lt;strong>JavaScript Tools, Wolfgam Kiesing&lt;/strong>
2. Tagesordnungpunkt für mich Wolgang Kiesings Zusammenstellung von Javascript Development Tools. Da waren zum einen die üblichen Verdächtigen dabei, aber auch für mich gänzlich neue Dinge wie eine web-basierte IDE namens Cloud9, die ganz interessant aussah. Anschließend noch ein paar Ideen für Javascript minifying, wobei ich hoffe, das es dabei um Ideen für automatisches Minify ging und nicht händisches &amp;ldquo;optimieren&amp;rdquo; des Codes, das war mir nicht so deutlich herausgearbeitet, aber hoffentlich selbstverständlich. Weiterhin der Hinweis, mal über den klassischen Weg der Dokumentation hinaus zu denken und sich Dinge wie beispielsweise dojodocs anzusehen. Schöne Anregung für mich war es auch, mehr auf der Firebug Console zu machen, Stichwort &amp;ldquo;in Place Fixing&amp;rdquo;, um sich Reloads und elendig lange Clickpfade zu sparen. Das ist ja nun nicht so das das alles neu wäre, aber irgendwie schleifen sich da gelegentlich doch schlechte Manieren ein.
Empfehlenswert auch die Hinweise bezüglich Testing mit Jasmine und Jellyfish, am besten mal in den &lt;a href="http://www.slideshare.net/wolframkriesing/javascript-tools-phpconference-2011-berlin">Slides&lt;/a> nachlesen, 63 an der Zahl, das dürfte bis jetzt Spitze sein, jedenfalls was die Talks angeht, die ich gesehen hab.
&lt;strong>HTTP is the architecture, Tobias Schlitt und Kore Nordmann&lt;/strong>
Souverän vorgetragen und anschaulich erklärt was GET, POST, PUT, HEAD etc. tun oder eben nicht tun sollten, mit der Conclusion: App servers usally suck! Da HTTP stateless ist und im Sinne der Scalierbarkeit nichts geshared werden sollte. Perfekt für beispielsweise die interne Storageanbindung(z.B. Couch DB, oder andere DBs) mit REST Interface.
An dieser Stelle könnte man dann noch gleich einen ähnlich qualitativ hochwertigen Vortrag über REST anschließen, dann wäre das ein rundrum gelungenes Package.
&lt;strong>Keynote Your Users Will Be Mobile Soon, Prepare!, Zeev Suraski&lt;/strong>
Zeev Suraski zeigt im wesentlichen sein vergammeltes Telefon von 2010 und eine schöne Livedemo einer einfachen PHP mobile App via Flex for PHP, keine Gewähr für die Bezeichnung, aber ich denke man kann sich da auch so etwas drunter vorstellen. Spannend dran: Der Cross-Compiler welcher Flash zu nativem iOS Code compiliert, so man iPhone / iPad als Zielplattform wählt.
&lt;strong>Continious Integration with Jenkins, Sebastian Bergmann&lt;/strong>
Guter Vortrag, der eigentlich weit über den Titel hinaus ging, da über Jenkins hinaus auch die komplette Toolchain für Continious Integration angesprochen wurde(phpunit, phploc, pdepend, phpcs, phpmd, phpcpd), Sebastian präferiert da natürlich Produkte aus der eigenen Feder ;-). Während dieser Teil sehr gelungen war, kam mir Jenkins an sich aber etwas zu kurz.
&lt;strong>Javascript Best Practices, Martin Ruprecht&lt;/strong>
Der Vortrag kommt eher langsam in Fahrt und bedient erst mal viele Allgemeinplätze, wie z.B. Namespaces, das fehlende Semikolon, etc. Dann empfiehlt Martin noch den Einsatz von post-commit hooks für die Javascript Validierung via jslint, was natürlich besser ist wie keine Validierung, aber wenn man soweit ist, dann ist mal ja fast schon den halben Weg zu einer Lösung mit z.B. Jenkins gegangen.
&lt;strong>Large-scale Data Processing with Hadoop and PHP, David Zuelke&lt;/strong>
Mein absolutes Highlight des Tages, es hat wirklich einen riesen Spaß gemacht dem David zuzuhören und super toll war darüber hinaus seine ausführliche Live-Demo, bei der er auf seinem &amp;ldquo;MacBook Cluster&amp;rdquo; eine Logfileanalyse durchgeführt hat. Einzig der konkrete Anwendungsfall fehlt mir persönlch im Moment, ansonsten hätte ich wirklich richtig Lust den gelben Elefanten mal anständig über die Platte zu treiben :-).
Zum Abschluss des Tages gab es im Berliner Babylon noch die Preisverleihung des Internet Filmwettbewerbs webcuts, inklusive Vorführung der Filme, dort waren einige wirklich großartige Filme dabei, allerdings war meine Aufnahmefähigkeit doch langsam erschöpft, zumal die Filme im wesentlichen nicht kurzweilige Unterhaltung, sondern eher was fürs Köpfchen waren.
Fazit des 2. Tages: Nachdem ich letztes Jahr so von CouchDB angetan war, kommt nun das nächste super spannende Projekt aus der Map and Reduce DB Ecke wo es kribbelt. Ich hoffe, es ergibt sich da mal die Möglichkeit, etwas zu machen, was über das Spielstadium hinaus geht.&lt;/p></description></item><item><title>International PHP Conference Spring Edition 2011 - Montag</title><link>https://www.basis42.de/international-php-conference-spring-edition-2011-montag/</link><pubDate>Tue, 31 May 2011 00:18:39 +0200</pubDate><guid>https://www.basis42.de/international-php-conference-spring-edition-2011-montag/</guid><description>&lt;p>Konferenzbesuch und gleich ein kleines Experiment, ich werde versuchen die von mir besuchten Sessions und hoffentlich auch ein wenig von der Atmosphäre einzufangen, los gehts :-):
Die Anreise aus Lübeck war eigentlich ganz gemütlich und nachdem ich in Büchen auf die aus Hamburg anreisenden Kollegen Jörg und Melwin getroffen bin, kam so langsam auch etwas Leben in die Figur, ich bin und bleibe nicht für das Aufstehen vor 6:00 Uhr gemacht.
&lt;strong>9:30 los gehts!&lt;/strong>
html5 ist das Schlagwort 2011, zumindest wenn man Sebastian Meyen glauben darf, welcher soeben die webinale/IPC/RailsWayCon eröffnet hat. Und, der besondere Hit, mobile ist abgeschafft, weil alles &amp;lsquo;irgendwie&amp;rsquo; mobile ist, wobei ich hier immer noch super viele Laptops sehe.
&lt;strong>Keynote Bundesbeauftragter für den Datenschutz Peter Schaar&lt;/strong>
Viele Warme Worte, so lässt es sich wohl am besten zusammenfassen. Ich hab bei Formulierungen wie &amp;ldquo;Weiterentwicklung von Privatsphäre und Datenschutz&amp;rdquo;, &amp;ldquo;Wiedererlangung der Hoheit über seine Daten&amp;rdquo;, etc. immer echte Schwierigkeiten das in etwas zu transformieren, was ich wirklich in der Praxis verwenden kann. Wobei ich wenigstens eine Sache mitnehme, auch bei mir ist weiterhin &amp;ldquo;Privacy by default&amp;rdquo; way to go, auch wenn ich da nicht immer mit Kunden einer Meinung sein werde. Was ich allerdings gar nicht teile ist die Ansicht der Herrn Schaar, der sich für ein &amp;ldquo;Don&amp;rsquo;t Track Me&amp;rdquo; im Browser ausspricht, da bin ich eher skeptisch ob Sites die wirklich evil sind, diese respektieren.
&lt;strong>Designing multilingual Applications, Kore Nordmann&lt;/strong>
Der Vortag beginnt bei den Basics wie z.B. das Detektieren der User Sprache via accept-headers. Als negatives Beispiel für Lokalisation verweist Kore auf IP basierte Lokalisation wie sie beispielsweise von Google. Recht hat er, ich habe mich auch schon des öfteren gefragt, was das wohl soll. Lokalisierte Dienste, ok, aber die Sprache möchte ich gerne selbst bestimmen.
Weiterhin wir das Language Handling von ezPublish als gutes, aber sehr komplexes Beispiel zitiert, welches aber einen mächtigen Wrapper benötigt um bedienbar und performant(caching) zu sein. Da gettext eine Abhängigkeit zu setlocale hat und setlocale nicht threadsafe ist, rät Kore dringend davon ab, in Szenarien, wo mehrere Sprachen verwendet werden, gettext zu verwenden und empfiehlt stattdessen QT Linguist. Die immer wieder gerne aufgeworfene Frage nach dem Key für die Adressierung von übersetzten Strings beantwortet Kore mit sprechenden Ids für Strings, z.B. der englische Text und zusätzlicher Context wie z.B. Modulname.
Da habe ich irgendwo auch schon andere Meinungen gelesen, die genauso nachvollziehbar waren :-). Auf der View-Seite sollte Formatierung von z.B. Zahlen über NumberFormator der Intl Extension geschehen. Diese ist nicht defaultmäßig aktiv, Benjamin Eberlei merkte allerdings an, das es im Symfony Projekt einen Wrapper dafür gibt, der die Methoden der die Schnittstelle abstrahiert und den man ggf. da wohl auch für andere Anwendungszwecke rausziehen kann.
&lt;strong>PHP 5.4, Johannes Schlüter&lt;/strong>
Johannes Schlüter berichtet über Neuerungen von PHP und ich versuche mal im Schnelldurchlauf zusammenzufassen.
Zuerst mein persönlicher Favorit: Überraschung! Auch PHP 5.4 hat auch keine vollständige Unicode Unterstützung und ein Release Termin steht noch nicht fest.
Und im Schnelldurchlauf: sqllite(2) Engine unterstützt, default_charset utf-8, safe mode fällt raus, magic_quotes werden ersatzlos gestrichen, short open tags ala &lt;?= $foo; ?> gehen unabhängig von den php.ini Settings immer.
Neu ist direktes ansprechen von Arrays nach einem Funktionsauruf z.B foo()[42], closures + $this, wobei der Ursprungscontext für $this angesetzt wird, Traits, das sind Methoden die über das Keyword use in z.B. Classendefinitionen genutzt werden können und dann noch einige Verbesserungen der Interactive Shell, die ich persönlich nicht so spannend finde, aber da Johannes diese zu verantworten hat, hat er diese natürlich angepriesen ;-).
Neu auch das JsonSerializable Interface mit der Methode jsonSerializable mit Hilfe dessen die Json-Serialierung via json_encode() beeinflusst werden kann. Und schließlich viele kleine Perfomance tweaks, wobei Johannes zwar keine plakativen Beispiele zur Hand hatte, aber lt. Benjamin Eberlei 20-30% weniger Speicherbedarf bei einigen Unittest Szenarien benötigt.
Ales ganz fluffig vorgetragen und insgesamt vor zu viel um hier in die Tiefe zu gehen.
&lt;strong>The rise of the social App - trends to look for, Andrew Gill&lt;/strong>
Ich bekenne, ich halte von dem ganzen Social Media Gebrabbel insbesondere in einer so ausgeprägten Inkarnation wie wie sie Andrew Gill propagiert nicht wirklich viel! Ich lasse hier mal 2 Dinge stehen die mir in Erinnerung geblieben sind, die jeder für sich interpretieren mag: &amp;ldquo;I don&amp;rsquo;t call callcenters, I tweet my problem.&amp;rdquo; und er würde sein Bewegungsprofil verkaufen, wenn er wüsste was die Maketeers damit tun. Wenn man davon lebt, das dies Szenario eintritt, dann ist es vermutlich opportun diese Position zu beziehen. Ist ja auch irgendwie alles Geschmackssache &amp;hellip;
&lt;strong>Agility and Quality, Sebastian Bergmann&lt;/strong>
In diesen Talk bin ich eher zufällig hinein geraten, da dieser Vortrag wohl &amp;ldquo;Mit Retrospektiven zu erfolgreicheren Projekten&amp;rdquo; ersetzt hat. Ansich gabs dann zumindest für mich und meine Mitstreiter nichts wirklich neues. Außer vielleicht einer schönen Idee, die Sebastian über die Einführung von Usernamen in Facebook zu erzählen wusste:
So wie ich es verstanden hab, hat Facebook im Vorwege der Einführung des Username Features, quasi versteckte Tests der neuen API Funktionalität durch realen Traffic der User durchgeführt, eine Idee die ich zumindest im Hinterstübchen speichere, &amp;ldquo;wenn man mal die gleichen Problem wie Facebook&amp;rdquo; hat, um mal Melwin zu zitieren.
&lt;strong>Your Tests are lying!, Sebastian Bergmann&lt;/strong>
Der Vortrag von Sebastian Bergmann zum Thema Tests handelt in den ersten 10 Minuten über das Testen und oder eben nicht Testen von Gettern und Settern und endet in der Conclusion das man das eben machen kann, oder auch nicht. Ich scheine währenddessen ob der schlechten Luft kurz den Faden verloren zu haben, da sich mir nicht unmittelbar erschlossen hat, warum das eine wichtige Frage ist.
Ansonsten beinhalten seine Slides ein paar sehr schöne Beispiel, die anschaulich verdeutlichen, wie man eben nicht testen sollte, da lohnt reinschauen unbedingt.
Dann vielleicht noch eine sehr schöne Antwort auf die Frage aus dem Publikum wie man denn wohl Controller am besten testet: &amp;ldquo;Ideally your Controllers are so simple that they don&amp;rsquo;t need testing.&amp;rdquo;. Das lass ich mal so stehen.
&lt;strong>Deeper into Git, Stefan Koopmanschap&lt;/strong>
Dieser Vortrag fiel qualitativ doch etwas hinter den anderen heute gehörten ab, im wesentlichen beschränkte sich das Vorgetragene auf eine kurze Erklärung der Kommandos rebase, bisect und blame. Darüberhinaus noch eine Erklärung eines typischen Workflows, wie er zum Beispiel von Projekten die auf github gehostet werden praktiziert wird und noch ein paar Verweise auf git SAS Dienste und zack, das wars, wie gesagt etwas dünn und entsprechend dann auch in 30 Minuten erledigt.
Mein Fazit des ersten Tages: Die Revolution scheint auszubleiben, es werden im wesentlichen bereits bekannte Themen vertieft. Darüber hinaus soll es aber wohl einen sehr guten Vortrag von Johann-Peter Hartmann zum Thema DevOps gegeben haben, den ich leider verpasst habe. Die Kollegen waren aber voll des Lobes! Und soeben gefunden: Ein Video dazu auf YouTube: &lt;a href="http://www.youtube.com/watch?v=S2lCH84oVvs">klick&lt;/a>!&lt;/p></description></item><item><title>Hübsch machen für den Frühling!</title><link>https://www.basis42.de/hubsch-machen-fur-den-fruhling/</link><pubDate>Thu, 10 Mar 2011 18:34:01 +0100</pubDate><guid>https://www.basis42.de/hubsch-machen-fur-den-fruhling/</guid><description>&lt;p>Es wurde mal Zeit, ich hab mich dann doch mal drangesetzt und ein neues Design meines Blogs geklöppelt. Da ich design-mäßig nun nicht sooo die Kanone bin, gibts sicherlich schönere, aber dafür ist es wenigsten sebstgemacht, die ersten selbstgekochten Spaghetti haben ja schießlich auch &amp;ldquo;irgendwie&amp;rdquo; geschmeckt :-).
Technisch gesehen hab ich ich erstmal ignoriert, das es im IE keine runden Ecken gibt, mit IE 9 soll da ja alles gut werden. Ich denke mal IE User sind hier auch nur bedingt Zielgruppe, he,he.&lt;/p></description></item><item><title>Entenbrüste</title><link>https://www.basis42.de/entenbrueste/</link><pubDate>Thu, 10 Mar 2011 18:09:08 +0100</pubDate><guid>https://www.basis42.de/entenbrueste/</guid><description>&lt;p>Nachdem ich in der letzten Zeit viel mit der &lt;a href="http://www.tadaa.net">iPhone App tadaa&lt;/a> unterwegs war, um meine kleine Freuden des Alltags einzufangen, hab ich meinen kleinen Fotostream hier etwas vernachlässigt. Dies Schild, gefunden auf Usedom über Weihnachten, ist allerdings so groß, das ich das mal nachschieben muss:
&lt;a href="https://www.basis42.de/uploads/2011/03/20110310-1811451.jpg">&lt;img class="alignnone" src="https://www.basis42.de/uploads/2011/03/20110310-1811451.jpg" alt="" />&lt;/a>&lt;/p></description></item><item><title>Javascript, Cookies, IFrames, Ads und all die Dinge</title><link>https://www.basis42.de/ads_iframes_sicherheit/</link><pubDate>Wed, 01 Dec 2010 18:11:22 +0100</pubDate><guid>https://www.basis42.de/ads_iframes_sicherheit/</guid><description>&lt;p>Da ich heute ein Gespräch mit einem Kollegen hinsichtlich der Gefahren von fremd-gehosteten Ads hatte und ich bezüglich dessen nun schon mal den Großteil fein aufgeschieben habe hiermal meine Gedanken dazu:
Im konkreten Fall ging es um Ads die über &lt;a href="https://web.archive.org/web/20101202021232/http://dfp.doubleclick.net/">DFP&lt;/a> ge-scheduled werden. Generell sind im Grundsatz 2 Arten denkbar, eine Ad welches über ein Netzwerk, wie z.B. DFP, ausgeliefert wird, eingebunden werden kann:
Zum einen direkt in die Seite eingebettet oder aber in einem speziellen IFrame, welches lediglich einen kleinen html Schnipsel enthält, der für das Einbinden des Ads notwendig ist. Wobei bei ersterer Variante relativ offensichtlich ist, das das im Prinzip recht böse ist, wir laden uns (meist) Javascript in den Scope unseres Dokuments, welches dann auf Cookies, DOM, etc. zugreifen kann.
Auch ein IFrame bringt wenig Besserung, wenn  z.B. ein Ad über die im IFrame geladene Datei &lt;a href="http://www.example.com/ads/iframe.html">http://www.example.com/ads/iframe.html&lt;/a> geladen wird, so hat man gegenüber einer direkten Einbindung unter z.B. &lt;a href="http://www.example.com/seite.html">http://www.example.com/seite.html&lt;/a> zumindest hinsichtlich der Cookies nichts gewonnen, das DOM der einbettenden Seite ist allerdings geschützt. Für die Cookies hilft hier das setzen eines Cookies mit vollem Pfad oder aber auf verschiedene Subdomains z.B. &lt;a href="https://www.example.com">www.example.com&lt;/a>, während Ads über eine eigene Subdomain ausgeliefert werden, z.B. ads.example.com.
Nehmen wir also an wir sind auf des selben Domain, haben unsere Cookies nicht auf eine speziellen Pfad gebunden und die böse Cookieräuberin ist in unserem Fall Frau Google. Google ihrerseits spannt nun generell ein iframe auf, in etwas so:&lt;/p></description></item><item><title>Erste Schritte mit Git</title><link>https://www.basis42.de/erste-schritte-mit-git/</link><pubDate>Fri, 12 Nov 2010 18:30:31 +0100</pubDate><guid>https://www.basis42.de/erste-schritte-mit-git/</guid><description>&lt;p>Es hat lange gedauert, bis es bei mir soweit war, das ich mich mit Git beschäftigen musste(keine Abneigung, aber bei SVN hat mir einfach nichts gefehlt), aber just diese Woche ergab sich die Gelegenheit.
Eine Library(&lt;a href="https://web.archive.org/web/20101025193220/http://phpthumb.gxdlabs.com/">PHPThumbs&lt;/a>) die ich verwenden möchte hosted ihren Code auf &lt;a href="https://github.com/masterexploder/PHPThumb">github.com&lt;/a> und da mir die Library gut gefällt, mir aber eine Funktion zum Erzeugen von Tiles aus einem Image gefehlt hat, habe ich das kurzerhand als Anlaß genommen, mir mal Git anzusehen, indem ich das Projekt forke, mein benötigtes Plugin implementiere und dann das ganze dann hoffentlich zurück fließen lassen kann. Das Plugin ist implementiert und den Pull-Request hab ich auch rausgeschickt und nun warte ich ganz gespannt, was als nächstes passiert, ich bin ja soooo aufgeregt :-).
Und weil mir das Ganze so gut gefallen hat mit dem social coding(und das obwohl ich nicht mal ein Facebook Acount habe, he, he) hab ich gleich mal meine &lt;a href="https://www.basis42.de/zend-framework-beispielapp/">Zend Framework Beispiel Applikation&lt;/a> (&lt;a href="http://urlino.com">urlino.com&lt;/a>) nach Github migriert. Jetzt heißt es warten und schauen, wann ich zum ersten Mal geforkt werde. Ich hab schon mal das &amp;ldquo;Fork me on GitHub&amp;rdquo; Ribbon anschraubt :-).
Ansich ist Git ja wirklich angenehm, wobei ich zumindest jetzt am Anfang noch keine unerwartete Offenbarung erfahren habe, ist halt ein SCM, scheint meinen Bedürfnisse zu erfüllen und ist auch recht intuitiv zu bedienen, aber eine Sache ist mir zumindest untergekommen, die mir momentan noch nicht gefallen will: Und zwar das Einbinden von externen Libraries von denen es kein Git Repository gibt, also quasi ein svn:externals für Git, welches nicht nur mit Git Repositories spricht(gibt es und wird über submodules realisiert), sondern es auch erlaubt entfernte SVN (Teil-)Repositories auch in Git einzuhängen, was umgekehrt, also Git Repos in SVN Repo, Klasse funktioniert. Falls da ich da was übersehen habe und jemand eine clevere Lösung hat, das wär schon was :-).&lt;/p></description></item><item><title>International PHP Conference und Webtechcon 2010</title><link>https://www.basis42.de/international-php-conference-und-webtechcon-2010/</link><pubDate>Thu, 14 Oct 2010 20:41:23 +0200</pubDate><guid>https://www.basis42.de/international-php-conference-und-webtechcon-2010/</guid><description>&lt;p>Der erste Arbeitstag nach 3 Tagen auf &lt;a href="https://web.archive.org/web/20101023234858/http://webtechcon.de/">besagter Veranstaltung&lt;/a>, neigt sich dem Ende, trotzdem, selbst mit einem Tag Abstand schwirrt mir noch der Vortrag &amp;ldquo;CouchDB - a Database for the Web&amp;rdquo; von &lt;a href="https://web.archive.org/web/20101024175652/http://blog.innerewut.de/">Jonathan Weiss&lt;/a> im Kopf herum, NoSQL Datebanken wie eben CouchDB hab ich auf jeden Fall bis jetzt viel zu wenig beachtet, das schreit förmlich danach, sich damit mal einzuschließen und ein paar Dinge mal ganz praktisch im stillen Kämmerlein auszuprobieren.
Was auf jeden Fall auch hängen geblieben ist, sind viele kleine Denkanstöße aus diversen Vorträgen hinsichtlich jQuery bzw. allgemein Javascript, die zwar alle allein betrachtet nichts wirklich besonderes sind, aber so geballt nochmal serviert auf jeden Fall eine Bereicherung für den Alltag. Und wo ich gerade bei Kleinigkeiten bin: Der window.onError Handler der bei Javascript Fehlern im Frontend auf einen Webservice loggt, ist zwar nicht sooo neu, aber immer noch genial und als &lt;a href="http://www.nicosteiner.de/">Nico Steiner&lt;/a> eben jenen Handler in seinem Vortrag über die 1&amp;amp;1 Frontend-Architektur erwähnte, viel es mir wie Schuppen von den Augen, das Ding hatte ich vor Jahren auch schon mal, aber leider ist es bei aktuellen Projekten verloren gegangen, was aber nun zack nachgeholt wird.
Ansonsten gabs Dienstag Abend lecker Bierchen, welches die Gespräche über Softwareentwicklung, Prozesse und Konzepte doch ganz anständig emotionalisiert hat. Aber nun ja &amp;hellip; das muss auch mal sein :-). Bleibt also nur zu hoffen, das auch nächstes Jahr wieder ein vergleichbar reichhaltiges Angebot an zumindest für mich interessanten Themen geboten wird, dann bin ich auf jeden Fall wieder mit dabei.&lt;/p></description></item><item><title>DER Veranstaltungsserviceagentur</title><link>https://www.basis42.de/der-veranstaltungsserviceagentur/</link><pubDate>Sun, 29 Aug 2010 01:18:25 +0200</pubDate><guid>https://www.basis42.de/der-veranstaltungsserviceagentur/</guid><description>&lt;p>Der Heiko war ja schon als Fläming 2000 der Burner, aber das neue Banner ist echt der Hammer(wobei der Gute mir selbstredend immer noch lieber ist wie die Nazispacken, die nebenan in ihrer Garage unter der Reichskriegsflagge gesessen haben):&lt;/p>
&lt;p>&lt;a href="https://www.basis42.de/uploads/2010/08/l_2048_1536_AA0741C5-B112-44F5-A4C2-1CB7EBBEED35.jpeg">&lt;img src="https://www.basis42.de/uploads/2010/08/l_2048_1536_AA0741C5-B112-44F5-A4C2-1CB7EBBEED35.jpeg" alt="" class="alignnone" />&lt;/a>&lt;/p></description></item><item><title>svn: Tree Conflicts als einziger Commiter</title><link>https://www.basis42.de/svn-tree-conflicts/</link><pubDate>Thu, 26 Aug 2010 17:45:39 +0200</pubDate><guid>https://www.basis42.de/svn-tree-conflicts/</guid><description>&lt;p>Alle paar Wochen laufe ich in die selbe Falle, beim Refactoring eins kompletten Stangs von Dateien die in einem svn Repository liegen, endet es in einem Tree Conflict der unerwartet ist, wenn man sich die Definition eines Tree Conflicts in der &lt;a href="http://svnbook.red-bean.com/nightly/en/svn.tour.treeconflicts.html">svn Dokumentation&lt;/a> ansieht:&lt;/p></description></item><item><title>Wordpress Comments über XML-RPC</title><link>https://www.basis42.de/wordpress-comments-xml-rpc/</link><pubDate>Tue, 24 Aug 2010 17:32:22 +0200</pubDate><guid>https://www.basis42.de/wordpress-comments-xml-rpc/</guid><description>&lt;p>Ich baue an einer Wordpress Installation die Comments via XML-RPC Schnittstelle entgegen nimmt, um diese innerhalb der Wordpress Admin Oberfläche zu verwalten. Dabei ist mir das Problem untergekommen, das Comments ihre IP und den User-Agent verlieren, bzw. nicht die IP und der User-Agent des orginal kommentierenden Benutzers durchgeschliffen werden können, sondern zwangsläufig die IP und der User-Agent der via XML-RPC zugreifenden Applikation verwandt wird.
Ein wenig Gewühle im Wordpress Code bestätigt die Vermutung: IP und User-Agent werden in der wp_new_comment() Funktion hart mit $_SERVER[&amp;ldquo;REMOTE_ADDR&amp;rdquo;] und $_SERVER[&amp;ldquo;HTTP_USER_AGENT&amp;rdquo;] belegt. Um das Problem zu lösen hab ich den Entwicklern einen kleine Patch zukommen lassen, der diese unflexible Handhabung von IP und User-Agent behebt. Und was soll ich sagen, es sieht ganz danach aus, als würde der &lt;a href="https://core.trac.wordpress.org/ticket/14601">Patch in Wordpress 3.1&lt;/a> einfließen. Welch Freude für mein kleines Entwicklerherz, da ich dann zumindest ein Wordpress Plugin schreiben kann, welches die XML-RPC Schnittstelle dahin gehend erweitert, IP und USER-AGENT bei Bedarf durchzuschleifen.&lt;/p></description></item><item><title>Ramstein</title><link>https://www.basis42.de/ramstein/</link><pubDate>Mon, 16 Aug 2010 23:05:41 +0200</pubDate><guid>https://www.basis42.de/ramstein/</guid><description>&lt;p>Da ist Musik drin, ein ganzes Gigabyte von den Herren Ramstein!&lt;/p>
&lt;p>&lt;a href="https://www.basis42.de/uploads/2010/08/l_2048_1536_6E404620-6272-488B-B33A-9CCBA979297F.jpeg">&lt;img src="https://www.basis42.de/uploads/2010/08/l_2048_1536_6E404620-6272-488B-B33A-9CCBA979297F.jpeg" alt="" class="alignnone" />&lt;/a>&lt;/p></description></item><item><title>Wordpress Plugin: Advanced Media Button Remover</title><link>https://www.basis42.de/wordpress-plugin-advanced-media-button-remover/</link><pubDate>Mon, 16 Aug 2010 18:32:59 +0200</pubDate><guid>https://www.basis42.de/wordpress-plugin-advanced-media-button-remover/</guid><description>&lt;p>Da ich im Moment eine Menge mit Wordpress mache und ich dort auf ein Problem gestoßen bin, welches ohne Modifikationen des Wordpress Core nicht ganz trivial zu lösen ist, habe ich ein kleine Wordpress Plugin geschieben welches sie des Problems annimmt.
Und zwar geht es um die &lt;a href="https://www.basis42.de/uploads/2010/08/upload_buttons.png">4 kleinen Media Upload Buttons&lt;/a> oberhalb des visuellen Post Editor in Wordpress. Diese lassen sich zwar kollektiv über unregistrieren der defaultmäßig registrierten media_buttons Action entfernen, aber eben nicht einzeln. Für die einfache, schnelle, aber auch schmutzige Lösung sei auf die entsprechende media_buttons() Funktion in wp-admin/includes/media.php verwiesen, einfach schwups ein, zwei Zeilen Code rausschmeißen.  Aber eigentlich wollen wir ja eben nicht am Core rumdrehen, um uns damit das Leben beim nächsten Wordpress-Update so einfach wie möglich zu machen, richtig?
Allen, die sich eine einfache Updatemöglichkeit und  maximale Konfigurierbarkeit erhalten wollen sei mein Plugin &lt;a href="http://downloads.wordpress.org/plugin/advanced-media-button-remover.1.0.zip">Advanced Media Button Remover&lt;/a> ans Herz gelegt.
Einziger Wermutstropfen: Das Plugin blendet die Buttons nur aus, die Funktion bleibt erhalten, so das man sich mit der Javascript Console und rudimentären jQuery Kenntnissen die Köpfchen wieder hinzaubern kann.&lt;/p></description></item><item><title>Boatpeople oder Bootsleute</title><link>https://www.basis42.de/boatpeople-oder-bootsleute/</link><pubDate>Tue, 02 Mar 2010 18:37:30 +0100</pubDate><guid>https://www.basis42.de/boatpeople-oder-bootsleute/</guid><description>&lt;p>Man sollte sich schon entscheiden! Wobei die Menge der &lt;a href="http://de.wikipedia.org/wiki/Boatpeople">Boatpeople&lt;/a> an der Trave gegenüber den Lübecker Mediadocks meiner Erfahrung nach eher gering sein dürfte.
&lt;a href="https://www.basis42.de/uploads/2010/03/boatpeople.jpg">&lt;img src="https://www.basis42.de/uploads/2010/03/boatpeople-300x219.jpg" alt="" title="Bootsleute oder Boatpeople" width="300" height="219" class="aligncenter" />&lt;/a>&lt;/p></description></item><item><title>Reise nach Costa Rica</title><link>https://www.basis42.de/pflanze_fue_costa_rica/</link><pubDate>Thu, 21 Jan 2010 20:16:35 +0100</pubDate><guid>https://www.basis42.de/pflanze_fue_costa_rica/</guid><description>&lt;p>Mal abgesehen davon, das ich mich nur ungern mit einer Pflanze verwöhnen möchte, was aber sicher Geschmackssache ist, würde ich schon gerne eine Reise nach Costa Rica gewinnen, allein ein Weg der Kontaktaufnahme fehlt mir zu meinem Glück, ob das eine Sparmaßnahme ist, denn wir haben ja Krise :-), oder aber hat sich da jemand einen viralen Effekt erhofft und ich bin Multiplikator?
Im Moment zu Hauf in den Hamburger S und U-Bahn Stationen zu finden:
&lt;a href="https://www.basis42.de/uploads/2010/01/p_2048_1536_529709B8-EB22-4065-8C91-E2EE3C3B8BCF.jpeg">&lt;img class="alignnone" src="https://www.basis42.de/uploads/2010/01/p_2048_1536_529709B8-EB22-4065-8C91-E2EE3C3B8BCF.jpeg" alt="" width="225" height="300" />&lt;/a>&lt;/p></description></item><item><title>ExtJS, leere Form Panels und deren Values</title><link>https://www.basis42.de/extjs-form-panels-value/</link><pubDate>Wed, 23 Dec 2009 16:04:48 +0100</pubDate><guid>https://www.basis42.de/extjs-form-panels-value/</guid><description>&lt;p>Im Moment baue ich an einer relativ komplexen Webapplikation deren Frontend auf dem Javascript-Framework &lt;a href="http://www.extjs.com">ExtJS&lt;/a> basiert. Im Zuge dessen bin ich auf ein Verhalten  des Frameworks gestoßen, was ich ungünstig finde:
Wenn ich auf einem Objekt des Types Ext.FormPanel die Methode getValues() aufrufe, bekomme ich nicht wie man vermuten könnte NULL oder zumindest eines der kranken Javascript Derivate davon, sondern ein Objekt welches eine Eigenschaft [Leerstring] mit dem Wert &amp;lsquo;undefined&amp;rsquo; hat. Ein Objekt welches man &amp;lsquo;zu Fuss&amp;rsquo; so konstruieren könnte:&lt;/p></description></item><item><title>Überzieher!</title><link>https://www.basis42.de/ueberzieher/</link><pubDate>Thu, 17 Dec 2009 09:07:31 +0100</pubDate><guid>https://www.basis42.de/ueberzieher/</guid><description>&lt;p>&lt;a href="https://www.basis42.de/uploads/2009/12/ueberzieher.jpg">&lt;img class="alignright" title="Überzieher" src="https://www.basis42.de/uploads/2009/12/ueberzieher-150x150.jpg" alt="Überzieher" width="150" height="150" />&lt;/a>Wie es scheint war ich nicht der einzige der sich nicht gerne einen nassen Popo beim radeln holt. Die Damen und Herren vom Stadtrad Hamburg haben sich da was keckes einfallen lassen: Der Überzieher! Damit bleibt der Allerwerteste jederzeit hübsch trocken.
Damit ist die von mir weiter unten erwähnte Aktion wohl obsolete und praktisch ists obendrein auch noch, den das gute Stück ist nur mit grobem Vorsatz vom Rad zu entfernen und somit immer zur Hand.&lt;/p></description></item><item><title>Stadtrad Hamburg und eine clevere Idee</title><link>https://www.basis42.de/stadtrad-hamburg/</link><pubDate>Wed, 25 Nov 2009 09:10:23 +0100</pubDate><guid>https://www.basis42.de/stadtrad-hamburg/</guid><description>&lt;p>&lt;a href="https://www.basis42.de/uploads/2009/11/stadtrad_hamburg_tuete.jpg">&lt;img class="alignright" title="Tüte drüber!" src="https://www.basis42.de/uploads/2009/11/stadtrad_hamburg_tuete-150x150.jpg" alt="stadtrad_hamburg_tuete" width="150" height="150" />&lt;/a>Wer mich kennt, der weiß vielleicht das ich glühender Verehrer und heavy User der Stadtrad Hamburg Geschichte bin. So weit so gut, was mich aber wirklich in der letzten Zeit genervt hat: Regen! Und das nicht nur während der Fahrt, das lässt sich durch geeignete Kleidung noch einigermaßen abfedern. Viel mehr jedes Mal das gleich Spiel, wenn man das Rad besteigen will: Die Räder stehen alle samt nicht überdacht, so das der Sitz zumindest zu dieser Jahreszeit quasi durchgehend nass ist. Also immer was dabei haben zum trocken wischen oder aber, patsch, den Allerwertesten nass haben, beides irgendwie doof.&lt;/p></description></item><item><title>svn: Nested working copy, und jetzt?</title><link>https://www.basis42.de/svn-nested-working-copy-und-jetzt/</link><pubDate>Thu, 13 Aug 2009 16:56:18 +0200</pubDate><guid>https://www.basis42.de/svn-nested-working-copy-und-jetzt/</guid><description>&lt;p>Nachdem ich mich gerade mit einer eben solchen ungewollten nested working copy(es gibt da sicher auch praktische Anwendungfälle einer gewollten nested working copy, z.B. als Alternative zum einbinden von externals) herumgeschlagen habe, stellt sich als erstes die  Fage wie komme ich zu einer solchen und vielleicht noch viel wichtiger: Wie werde ich sie wieder los?
Die erste Frage beantwortet sich ganz einfach: Mal kurz einen Moment nicht nachgedacht, das man sich  in einer mit svn verwalteten Struktur befindet und schwubs hat man beim manuellen refactorn ein Directory verschoben ohne sich den Kommandos &amp;lsquo;svn move&amp;rsquo; zu bedienen. In diesem Moment hat man den Bezug der svn root zu diem Teilstrang aufgelöst. Gleichzeit erkennt der svn-Client aber ganz richtig, das es sich bei dem noch vorhanden Strang um eine svn Struktur handelt. Zack da ist sie, unsere nested working copy, die wir gar nicht wollten.
Wenn wir Glück haben bemerken wir das Missgeschick recht zügig, machen ein revert und machen dann ein svn move und alles ist gut. Wenn wir aber Pech haben, haben wir so viel über den Haufen geworgen, das es ein echtes Stück Arbeit, das alles wieder zurückzudrehen und geordnet nochmals durchzuführen. In diesem Fall hilft es, in den nested working copies die .svn Verzeichnisse zu löschen. Einziger Wermutstropfen: Die History der files geht verloren, was unter Umständen zu verschmerzen ist.
Und weil es mir so gut geholfen hat,  die Zeile zum rekursiven Löschen der .svn Directories, das Kommando löscht alle .svn Directories vom aktuellen Pfad abwärts:&lt;/p></description></item><item><title>urlino.com - ein Beispiel für das Zend Framework</title><link>https://www.basis42.de/zend-framework-beispielapp/</link><pubDate>Mon, 08 Jun 2009 11:53:02 +0200</pubDate><guid>https://www.basis42.de/zend-framework-beispielapp/</guid><description>&lt;p>Da ich in der letzten Zeit recht viel mit dem PHP Framework &lt;a href="http://framework.zend.com/" title="Zen d Framework Homepage">Zend Framework&lt;/a> herumgespielt hab, will ich den geneigten Leser an meinen Erfahrungen teilhaben lassen, auch wenn im Zuge des allgemeinen (PHP-)Framework Hypes wahrscheinlich schon mehr unnützes als informatives dazu geschrieben wurde. Da jeder halbwegs erfahrene PHP Entwickler sich sicherlich schon mit dem einen oder anderen Framework beschäftigt hat, spar ich mir mal die einleitenden Worte wie: Was ist ein Framework, warum muss ich das haben und, und, und &amp;hellip;.
Ohne das ich ein PHP Framework Guru bin, der sie alle schon gesehen hat: Was mir bei ersten Arbeiten mit ZF aufgefallen ist: Im Vergleich zu &lt;a href="http://www.symfony-project.org/" title="Homeapge Symfony project">Symfony&lt;/a>, einem anderen im Moment mächtig gehypten PHP Framework, ist der Einstieg in ZF wesentlich intuitiver, es gibt nur wenige Arbeitsschritte zu tun, um eine Minimalapplikation zum Laufen zu bringen, die dann wirklich auch minimal ist. Bei meinem ersten Gehversuchen mit Symfony hatte ich zumindest das Gefühl, das da doch ein Menge Code durch das symfony commandline tool generiert wird, den man im Prinzip anschließend komplett entsorgen kann. ZF geht da gefühlt wesentlich übersichtlicher zu Werke, was aber auch mit einer gewissen Lernkurve meinerseits im Umgang mit solchen Frameworks zu tun haben kann.
Da ein bischen Code mehr sagt wie 1000 Worte findet sich eine Beispielapplikation im  svn Repository unter &lt;a href="https://web.archive.org/web/20090718065747/http://svn2.xp-dev.com/svn/majo-urlino/trunk/" title="Repository urlino.com Beispielapplication">http://svn2.xp-dev.com/svn/majo-urlino/trunk/&lt;/a>. Bei der Appliktion handelt es sich um einen simplen kurzurl-Dienst ala tinyurl.com. Die Applikation in Aktion kann unter &lt;a href="http://www.urlino.com" title="Beispielapplikation urlino.com">http://www.urlino.com&lt;/a> begutachten. An sich ist die Applikation nicht weiter spannend, allerdings greift das Beispiel ein paar klassische Probleme wie Internationalisierung, Einbindung eines Javascript Frameworks(in diesem Falle Dojo) und den Aufbau einer Struktur für eigene Erweiterungen des Frameworks auf.
Um die Anwendung in der eigene Entwicklungsumgebung laufen zu lassen, sollte man sich eine frische MySql  Datenbank mit dem name zf und einen user zf mit dem passwort zf auf localhost einrichten(Konfiguration in ./application/configs/application_localhost.ini). Im Verzeichnis ./resources/sql befindet sich die Datei setup.sql mit dem nötigen sql für die Initialisierung der Datenbank. Zusätzlich hab ich auch meine Eclipse Project Datei eingecheckt, so das man sich die Applikation direkt mit Eclipse aus dem Repository auschecken kann.
Viel Spaß beim ausprobieren und ich freue mich auf Anmerkungen, Fragen und Verbesserungsvorschläge.&lt;/p></description></item><item><title>Scope von Javascript Variablen</title><link>https://www.basis42.de/scope-von-javascript-variablen/</link><pubDate>Tue, 19 May 2009 20:41:42 +0200</pubDate><guid>https://www.basis42.de/scope-von-javascript-variablen/</guid><description>&lt;p>Nachdem ich mich heute im Dojo Support Forum doch relativ &lt;a href="https://web.archive.org/web/20090705135929/http://www.dojotoolkit.org/forum/dijit-dijit-0-9/dijit-support/dijit-byid-throws-object-doesnt-support-action-ie7" title="Post im Dojo Forum">konsequent zum Obst gemacht&lt;/a> hab, ist dieser Artikel ein kleiner Reminder to myself beim Schreiben von Javascript Code nie, aber auch wirklich nie wieder das kleine Wörtchen &amp;lsquo;var&amp;rsquo; vor der Variable zu vergessen. Ansonsten hat man ganz schnell mal ein unerwartetes Objekt am Wickel.  Sei es mir eine Lehre und ich verbitte mir spöttische Kommentare, ich leide auch so schon genug :-).&lt;/p></description></item><item><title>Codeverwaltung mit Hilfe eines svn-Repositorys</title><link>https://www.basis42.de/subclipse_branch_merge/</link><pubDate>Tue, 21 Apr 2009 16:53:49 +0200</pubDate><guid>https://www.basis42.de/subclipse_branch_merge/</guid><description>&lt;p>Nachdem ich in der letzten Zeit häufiger den Aufbau und die klassischen Arbeitsabläufe bei der Codeverwaltung eines mittelmäßig komplexen PHP Projekts zum Besten gegeben habe, stellte sich beim Betrachten der klassischen Struktur in einem svn Repository doch häufiger die Frage: Trunk, Branches, Tags &amp;hellip; wass&amp;rsquo;n das und wofür brauch ich das überhaupt und was passiert eigentlich beim branchen, tagen, mergen, etc. ?
Dieser Artikel soll als praktischer Einstieg in die Codeverwaltung anhand eines svn Repositorys unter Verwendung des subclipse Plugins unter Eclipse dienen. Vorweg anzumerken ist natürlich, dass der von mir vorgestellte Arbeitsablauf sicher nicht der einzig &amp;ldquo;richtige&amp;rdquo; Weg ist, sondern lediglich den Weg beschreibt, der sich für mich als praktikabel erwiesen hat und der, wie ich finde, für den Einstieg die wenigsten Fallstricke bereithält.
Bevor wir allerdings zu den praktischen Handgriffen kommen, betrachten wir zuerst einmal unsere eigentliche Problemstellung anhand eines hypothetischen Projekts und vergessen wir vorerst all die o.g. Verzeichnisse, Strukturen, etc.:
Die Entwickler der FrickelNReload AG haben das Projekt TOLL 1.0 nicht nur laut Spezifikation abgeliefert, sondern, weil sie clever waren, das ganze Projekt auch in einem svn-Repository abgelegt, um Änderungen zu dokumentieren, selbige zurückdrehen zu können, etc. Tag X kommt und die Software wird vom erwartungsvollen Anwendern in Betrieb genommen! Aus Erfahrung weiß man: Es wird kaum 10 Minuten dauern, da ist schon der erste Featurerequest für das nächste Release geschrieben. Und, auch wenn die Entwickler einen anständigen Haufen Testcases geschieben haben, wird sich wohl auch bald der erste Bug finden&amp;hellip;
Da der Releaseplan für das nächste Release sehr ambitioniert ist, ist unmittelbar nach dem releasen von TOLL 1.0 mit der Entwicklung von TOLL 1.1 begonnen worden und auch die ersten Featurerequests wurden aufgenommen. Kaum haben die fleißigen Entwickler die Arbeit für das kommende Release aufgenommen und grundlegende Änderungen in einigen Teilbereichen begonnen, trudelt der erste Bugreport ein. Da der Bug kritisch ist, duldet das fixen keinen Aufschub, es muss sofort ein neues Release her. Im Handumdrehen haben wir ein Problem: Unser Code befindet sich aufgrund der Entwicklung von TOLL 1.1 in einem nicht konsistenten Zustand, so dass wir nicht ohne weiteres besagten Bug fixen können ohne sämtliche für die Entwicklung von TOLL 1.1 gemachte Änderungen zurückzudrehen bzw. gemachte Änderungen herauszuziehen, hinterher wieder zurückzupatchen oder was man sich da sonst noch verrücktes einfallen lassen mag.
Zugegeben, natürlich lässt sich diese Situation mit konservativen Methoden der FrickelNReload AG retten, besser allerdings ist, sich von Anfang an der klassischen Struktur eines mit svn verwalteten Projekts zu orientieren, die aus den Verzeichnissen Trunk, Branches und Tags besteht.
Wenn wir mal die Tags vernachlässigen, zu denen wir später kommen, dann hätte sich zum Zeitpunkt des Release von TOLL 1.0 lediglich im Trunk der Code von TOLL 1.0 befunden. Um nun die Entwicklung von TOLL 1.1 zu starten, wäre es sinnvoll gewesen, für diese Entwicklung einen eigenen Branch anzulegen. Dieser liegt, wer hätte es gedacht, im Verzeichnis Branches und ist im ersten Schritt, also bevor die Enwicklung von TOLL 1.1 beginnt, nichts weiter als eine Kopie des Trunks.
Nachdem also halbwegs klar sein sollte, warum wir ein solches Feuerwerk abbrennen, ein Blick auf die Praxis. Im Folgenden gehe ich mal davon aus, dass das Anlegen eines neuen Projekts im svn-Repository samt dazugehöriger Ordnerstruktur keine besondere Hürde darstellt; sollte hier Interesse bestehen, bitte ich um einen kurzen Kommentar, dann werde ich hier entsprechendes ergänzen.
Sehen wir uns also im Detail an, wie man einen Branch unter Eclipse mit Hilfe des Subclipse Plugins anlegt, wenn wir davon ausgehen, dass wir uns auf einer working copy des Trunks befinden:
Zuerst über den Punkt Team des Kontextmenüs den Punkt &amp;lsquo;Branch/Tag&amp;hellip;&amp;rsquo; wählen:
&lt;a href="https://www.basis42.de/uploads/2009/04/svn_branch_1.png">&lt;img title="Branch mit subclipse Step 1" src="https://www.basis42.de/uploads/2009/04/svn_branch_1-150x150.png" alt="Branch mit subclipse Step 1" width="150" height="150" />&lt;/a>
Im nächsten Schritt gilt es, den Namen bzw. daraus resultierend den Speicherort des Branches zu wählen, wobei der Speicherort(bzw. der Name) unter &amp;ldquo;Copy to URL&amp;rdquo; anzugeben ist. Defaultmäßig ist dort der Speicherort des Trunks vorgegeben, den man dann am einfachsten per Hand anpasst. Die weiteren Einstellungen bleiben wie vorgegeben:
&lt;a href="https://www.basis42.de/uploads/2009/04/branch_location.jpg">&lt;img title="Branch mit subclipse Step 2" src="https://www.basis42.de/uploads/2009/04/branch_location-150x150.jpg" alt="branch_location" width="150" height="150" />&lt;/a>
Typischerweise wird man wohl einen Branch auf Basis des aktuellen Trunks fahren wollen, sprich man belässt es beim vorgewählten HEAD revision of repository. Zusätzlich werden noch 2 weitere Optionen geboten, wobei mir die zweite noch nie in der Praxis untergekommen ist. Die dritte Option, working copy, macht Sinn, wenn man während eines Bugfixes im Trunk bemerkt, dass es mit einer kleinen Änderung dann doch nicht getan ist und man sich mit Hilfe eines Branches mehr Flexiblität verschafft.
&lt;a href="https://www.basis42.de/uploads/2009/04/branch_head.jpg">&lt;img title="Branch mit subclipse Step 3" src="https://www.basis42.de/uploads/2009/04/branch_head-150x150.jpg" alt="Branch mit subclipse Step 3" width="150" height="150" />&lt;/a>
Anschließend sollte man seinem Branch unbedingt noch einen Namen in Form eines Kommentars geben, um diesen später ansteuern zu können. Gleichzeitig kann man seine working copy durch einen Haken bei &amp;ldquo;Switch working copy to new branch/tag&amp;rdquo; auf das durch Kopie erzeugte neue Verzeichnis setzen. In der Praxis hat es sich für mich allerdings bewährt, im Zweifel lieber Branch und Trunk in zwei einzelne working copies auszuchecken, da ansonsten das Potenzial für Verwirrung recht groß ist:
&lt;a href="https://www.basis42.de/uploads/2009/04/branch_comment.jpg">&lt;img title="Branch mit subclipse Step 4" src="https://www.basis42.de/uploads/2009/04/branch_comment-150x150.jpg" alt="Branch mit subclipse Step 4" width="150" height="150" />&lt;/a>
Nach dem Klick auf Finish haben wir unseren Branch gefahren, was sich spannender anhört, als es wirklich ist, denn eigentlich haben nichts weiter getan, als eine Kopie unseres Trunk angelegt und dieses Anlegen der Kopie mit einer Revisionsnummer und einem Kommentar versehen.
Ab sofort kann also im Branch &amp;ldquo;myBranch&amp;rdquo; fleißig entwickelt werden und der Trunk steht bereit für das Fixen von Bugs.
Prinzipiell gibt es jetzt 2 Möglichkeiten, wie es weitergeht:&lt;/p></description></item><item><title>DotNetNuke 5.0 und Internationalisierung</title><link>https://www.basis42.de/dnn-50-und-internationalisierung/</link><pubDate>Mon, 23 Mar 2009 20:28:00 +0100</pubDate><guid>https://www.basis42.de/dnn-50-und-internationalisierung/</guid><description>&lt;p>Und hier sind sie schon, die .net Geister, die ich gestern rief: Ich bin gerade auf meiner momentanen Lieblingsbaustelle DotNetNuke unterwegs und quäle mich mit einer Sache, die sich so nicht erwartet hätte.
Ziel ist es auf Basis der aktuellen &lt;a href="http://www.dotnetnuke.com/" title="dotNetNukeWebsite">DotNetNuke&lt;/a> Version 5.0 ein Portal zu bauen, das in mehreren Sprachen verfügbar ist. Zugegeben, das hört sich erstmal nach keiner allzu großen Herausforderung an, zumal wir uns im Jahr 2009 befinden, aber bis jetzt bin ich leider nicht sehr erfolgreich. Eine längere Google Arie hat mich auch nur zu der Erkenntnis gebracht,  dass das wohl alles irgendwie geht, wenn, ja wenn, man eine ältere Version(4.x) und 1-2 zusätzliche Module verwendet, aber von einem Framework welches mit den Worten:&lt;/p></description></item><item><title>Hallo Welt!</title><link>https://www.basis42.de/hallo-welt/</link><pubDate>Sun, 22 Mar 2009 13:39:37 +0100</pubDate><guid>https://www.basis42.de/hallo-welt/</guid><description>&lt;p>Nun ist es also soweit! Ich habe mich dazu entschlossen, meine täglichen kleinen Erfolgserlebnisse und Rückschläge für die Nachwelt zu dokumentieren, um vielleicht den einen oder anderen davor zu bewahren, unnötig viel Zeit auf ähnlich gelagerte Probleme zu verschwenden.
Vordringlich wird es wohl um Problem aus der PHP Welt gehen, aber da ich mich momentan (notgedrungen!) auch mit .net beschäftigen muss, wird sich da sich die eine oder andere spannende Problemstellung ergeben, insbesondere da das ganz für mich weitgehend Neuland ist.&lt;/p></description></item><item><title>About_Me</title><link>https://www.basis42.de/about/</link><pubDate>Sun, 22 Mar 2009 10:52:45 +0100</pubDate><guid>https://www.basis42.de/about/</guid><description>&lt;p>&lt;a href="https://www.basis42.de/images/mario.jpg">&lt;img class="alignleft" title="mario" src="https://www.basis42.de/images/mario-400.jpg" alt="mario" width="200" height="200" />&lt;/a>basis42 ist mein Blog in den ich versuche Dinge die mir in meinem Alltag als Softwareentwickler Zeit und Nerven gekostet haben, so dokumentiert abzulegen, das andere davon profitieren können und vielleicht ähnlich gelagerte Problem schneller gelöst bekommen.
Gleichzeitig freue ich mich über Kommentare, Anmerkungen und Korrekturen zu dem was ich so von mir geben.&lt;/p></description></item><item><title>Datenschutzerklärung</title><link>https://www.basis42.de/datenschutz/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.basis42.de/datenschutz/</guid><description>&lt;h2 id="verantwortlicher">Verantwortlicher&lt;/h2>
&lt;p>Verantwortlich für die Datenverarbeitung auf dieser Website ist Mario Rutz (Anschrift siehe &lt;a href="https://www.basis42.de/impressum/">Impressum&lt;/a>), erreichbar per E-Mail an &lt;a href="mailto:mario@basis42.de">&lt;a href="mailto:mario@basis42.de">mario@basis42.de&lt;/a>&lt;/a>.&lt;/p>
&lt;h2 id="kurz-gesagt">Kurz gesagt&lt;/h2>
&lt;p>basis42.de ist eine rein statische Website. Es gibt keine Cookies, keine Kommentarfunktion, keine Kontaktformulare, kein Tracking und keine Analyse-Tools. Schriften und Bilder werden ausschließlich von diesem Server geladen, nicht von Drittanbietern.&lt;/p></description></item><item><title>Impressum</title><link>https://www.basis42.de/impressum/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.basis42.de/impressum/</guid><description>&lt;h2 id="angaben-gemäß--5-ddg">Angaben gemäß § 5 DDG&lt;/h2>
&lt;p>Mario Rutz&lt;br>
Kometenweg&lt;br>
23562 Lübeck&lt;br>
Deutschland&lt;/p>
&lt;h2 id="kontakt">Kontakt&lt;/h2>
&lt;p>E-Mail: &lt;a href="mailto:mario@basis42.de">&lt;a href="mailto:mario@basis42.de">mario@basis42.de&lt;/a>&lt;/a>&lt;/p>
&lt;h2 id="verantwortlich-für-den-inhalt-nach--18-abs-2-mstv">Verantwortlich für den Inhalt nach § 18 Abs. 2 MStV&lt;/h2>
&lt;p>Mario Rutz, Anschrift wie oben&lt;/p>
&lt;h2 id="haftung-für-links">Haftung für Links&lt;/h2>
&lt;p>Diese Website enthält Links zu externen Websites Dritter, auf deren Inhalte ich keinen Einfluss habe. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber verantwortlich. Zum Zeitpunkt der Verlinkung waren keine Rechtsverstöße erkennbar. Werden mir Rechtsverletzungen bekannt, entferne ich derartige Links umgehend.&lt;/p></description></item></channel></rss>