Tech 4. May. 2018

The real value of JAMstack

It’s not a secret that I am a fan of JAMstack websites. Like REST - which is basically using the core communication of HTTP - JAMstack is basically about using static websites - with some more around.

Static websites alway were great due to:

  • best possible server side loading performace,
  • best security, and
  • low complexity.

Well, there are some downsides like the question how to manage the content by editors, using dynamic and personalised content and so on.

read more

Tech 20. Mar. 2018

Podio as CMS for a JAMstack website

In context of a collaboration tool evaluation for a client some years ago, I had first contact with Podio. And the most amazing aspect of Podio is the flexible data model. Together with all the other features, that makes Podio the perfect tool for internal data management.

Using Contentful in some web projects and trying out the built.io content stack, the concept felt quite familiar and I decided to have a second look at Podio - now as CMS for websites.

read more

Tech 4. Dec. 2017

An evaluation of NetlifyCMS

Netlify is doing a really great job with their hosting and build platform - specially for JAMstack addictive persons like me.

With NetlifyCMS they brought an idea to code, which for sure other developers had before as well - using git as content repository.

read more

Tech 2. Jun. 2017

Using GulpJS as website generator

Usually “GulpJS is a toolkit for automating painful or time-consuming tasks in your development workflow”. And that’s what we are using gulp for most of the time. Specially the asynchronous approach combined with controlling the flow as parallel or serial tasks and the pipelining make gulp quite powerful.

read more

Tech 20. Apr. 2017

MOTOR Digital meets built.io

MOTOR is constantly looking for great software and service solutions, which can be used as flexible components for different kinds of projects.

read more

Tech 11. Nov. 2016

Mac Port Forwarding by Ghostlab

If you are using Ghostlab anyway, you could use it as well for port forwarding - because in fact the tool is exactly doing this.

In addition use a DDNS service and a port forwarding on your router and wow - the external request goes directly through to my docker container.

read more

Tech 4. Nov. 2016

HTTP header "x-zapier-jobs"

Thats’ great. Zapier advertises their recruiting by HTTP headers within webhooks:

"x-zapier-jobs": "Woooo, a hacker like yourself should consider working at Zapier!"
"x-zapier-jobs-link": "https://zapier.com/blog/help-automate-business-zapier-jobs-and-careers/"

read more

Tech 3. Nov. 2016

Trigger a Distelli build by Zapier

Cool how easy some easy process chains can be build. E.g. on an content change at contentful just configure a webhook to Zapier and trigger a distelli build by Zapier. That imports the new content and creates all needed website updates. Great.

Of course zapier is not needed in the explained scenario, but we have additional actions defined, e.g. a slack notification on content changes an afterwards on deplyoments.

read more

Tech 25. Oct. 2016

Google Analytics without cookies

I haven’t heard about this before, but it is possible by default to use Google Analytics without cookies. Well, Google does not recommend this, but it is working just fine.

To make it work, some issues have to be solved:

  • deactivate the cookie storage
  • implement an alternative for the user id

read more

Tech 1. Oct. 2016

Performance boost for TYPO3

TYPO3 CMS is not known as the fastes content management system. But the developer team did a lot of cleanup and optimisation the last years.

But using PHP7, a static file cache and a crawler constantly triggered by the scheduler, the usage of HTTP/2 and Nginx instead of Apache and having a hoster using SSD disks really speeds up TYPO3.

It’s amazing to see TYPO3 runing that fast.

read more

Tech 25. Sep. 2016

My current favorite service based website tech stack

  • Contentful as GUI for content editing
  • Jekyll for template and website rendering
  • Cloudianry for image scaling and video transcoding (incl. responsive and cdn delivery)
  • Continous deployment by Distelli
  • Social media import and export by Zapier
  • Cloudflare for HTTPS/caching and HTTP/2 as well as SSL

    read more

Tech 16. Sep. 2016

BrowserStack screenshot service uses emulators

In my personal roadmap on automated tests integrated in a countious deployment strategy, my first phase was setting up screenshot regression tests. Within this phase I wanted to extend the tests from a simple setting at GhostInspector to cross device/browser tests. So I’ve got a subscription at BrowserStack with the aim to trigger the screenshot API an generate all browser screenshots automatically.

But on this way I recognizes 1) a lot of timeouts, 2) different browser display behaviours than on real devices, and 3) stange effects with backgrounds and fixed/sticky elements on longer pages. The first issue makes automation impossible, because you cannot trust on reliability. The second issue made the test results not usable - if the screenshot on android 4.4 has no main menu, a alarm rings in the head of a tester, but with not using emulators, everything is fine.

read more

Tech 21. May. 2016

Jekyll as frontend development tool

I am used to enforce a strict separation of frontend and backend development in web projects. Major reason is the amount of effort which is needed for quality assurance for frontends and the risks of changing frontend details while implementing backend logic. So with this separation, projects got a quality gate for the frontend independent of the backend and process complexity.

As I am using Jekyll quite a time for my own website and some smaller client project, I learned to love the easiness while utilising strong features at the same time. The gracious combination of features like

  • a template engine for separating content from layout markup while use things like if, else, loops and more
  • include templates with parameters
  • scss built in
  • having static html at the end makes Jekyll quite an easy and strong tool.

So I started to use it for building static web frontends as prototype phase before going into cms or shop implementation.

read more

Life 2. Apr. 2016

Next journalism?

In a meeting at Sternwald we asked who has a newspaper subscription - and there were only a few. The hypothesis is, that the format todays generation likes to consume, does not exist yet.

I thought about that: I like to read my local newspaper, because real local news are not available in the web in a proper format. Additionally I like to read (and listen) to some specialised blogs and podcasts like netzpolitik.org.

read more

Tech 18. Mar. 2016

TYPO3 with Nginx using RealURL and Static File Cache

While using the Docker TYPO3 Boilerplate and moving to a hoster who likes Nginx more than Apache, I gave Nginx a try for a TYPO3 installation.

So as expected nothing really failed. The only challenge was to configure Nginx for RealURL (quite easy) and Static File Cache (a little more advanced, because the given templates are not all complete).

read more

Tech 26. Feb. 2016

Experiences with the Docker TYPO3 Boilerplate

A classical situation: Caused by some misconfiguration on a server a friends website got down. To solve the problem in long-term we decided to move the TYPO3 installation to a specialised and managed hosting company.

But for moving the website we had to do an update of TYPO3 as well and I had the need to setup a development environment. My former setup on my local machine was gone through several OS updates and so on. And to make it even harden, we needed two different setups - one for the old system and one for the updated TYPO3 with newer PHP and MySQL versions.

So as I am using docker anyway at other projects, this seemed the best way - even if I was afraid to waste much time for setting up a clean docker environment.

read more

Tech 1. Feb. 2016

Continous integration with Distelli

It’s like a buzz word: Continous Integration.

All talk about countinous integration, high frequent releases and automated tests. But in regular business there is no one really doing it. At software and web development companies these practices are more a kind of vision than reality. For sure they are companies doing it and generate benefits for their business modell. But my guess is, that most who use a continious integration process have a digital business model and the DNA of the company supports a straight strategy. As software developer for non digital companies it’s mostly a dream nobody likes to pay for.

read more

Tech 22. Jan. 2016

ecommerce evolution leads to something like moltin

In several projects I could watch the evolution of ecommerce platforms in a way like that:

  • start by using a shop system like magento or shopware
  • using and extending the api
  • integrate third party apis
  • integrate rich clients and non-web fromtends like apps
  • thinking about rafactoring
  • creating an ecommerce api layer with the goal of a service architecture and finally a baas system

read more

Life 23. Oct. 2015

The drawback of digital data

We know about hacking SIM cards in mass at least since the beginning of 2015. Now a fraud series became public where criminals simply ordered SIM card copies at Telekom and others. Obviously mobile devices became more and more the focus on using security lacks in the communication chain.

The glory of software and digital data is the easiness of creating and distributing copies with nearly no effort - that is the drawback on security and privacy as well.

read more

Tech 4. Oct. 2015

Impressed by Model Driven Architecture

Well, not that commen anymore for usual web based software, but the generation of a significant amount of core code from models, e.g. data models or apis by uml, moves the priority from product quality to process quality, which ensures a higher product quality on living software systems.

In the sense of ISO9001 quality management the key to success is the process quality, which can be ensured over various unique systems and development projects.

read more

Tech 4. Oct. 2015

Impressed by Behavior Driven Development by Dan North

The idea of living and executable specifications combines the big questions on how to specify, how to test automatically and how to keep up to date all specifications and tests.

Bringing the specification to live and merge it with the quality insurance instance, closes the gap from waterfall-like linear models to the approach of the v-model.

Experience: Before Sternwald it was more theory an wish to me, but here we created detailed specs with stories and wrote tests with jbehave. No hassle with regression tests anymore.


Tech 18. Aug. 2015

Get rid of git branches

Recently I had to hop into a existing project and tried to manage dev, test, stage and production version in git and JIRA, which is no big deal at all. Because of the longer history we had about 100 feature branches within the git, which made it a little unconvinient to ge an overview. So I tagged all historical feature branches and removed them from origin. And because of the large amout I found some command line tricks to to that as batch:

git branch -r | awk -F/ '/\/PREFIX/{print $2}' | xargs -I {} git tag archive/{} origin/{}
git branch -r | awk -F/ '/\/PREFIX/{print $2}' | xargs -I {} git push origin :{}
git fetch -p


Tech 14. Aug. 2015

No smooth scrolling with overflow-x:hidden

A while ago I noticed that in most case you need a overflow-x:hidden on body to avoid a ugly horizontal scrolling of some pixels at smartphones. See as well my post Overflow-x makes scrolling choppy at mobile for some effects using it wrong.

Now I was hit back by the fact, that a smooth scrolling by jQuery scrollTo is not possible while overflow-x:hidden is set.

At the web I found some suggestions like: “But this bug occurs only if the html and the body have the overflow-x, so you can just remove theoverflow-x for the html and it’s okay for you I think.”. But in fact, I was not able to get it running.


Tech 12. Aug. 2015

Icons in email subjects

From time to time I receive some emails with nice icons in the subject and I was curious about how they are doing it. Maybe I am the last at the web to found out, but now I did.

It’s done by so called emoji icons which are included in the UTF-8 character set.

read more

Post 21. Jul. 2015

Pay by social share

That’s a great idea for free digital products: don’t give your stuff away for nothing, but ask for a social sharing action. Axure is doing that on their library market place.


Tech 16. Jul. 2015

Replace boot2docker with Kitematic (if on Mac)

Recently we had a lot of trouble getting our docker setup running on local developer machines. We had problems like non working volume mounts, self shutting down mysql containers and missing permissions on folders with almost every permission set.

And that was definetly not the goal of using docker.

As it turned out the problems come from the vm of boot2docker. boot2docker is using auto mounted shares on the local mac file system, which is in genaral a nice idea. But at this point the system user ids start to mix up and usual file system permissions do not work properly in all cases.

read more

Tech 15. Jul. 2015

Show hidden files in Mac Finder

Category dev clipboard: Enter “defaults write com.apple.finder AppleShowAllFiles 1“ on mac terminal to set Finder to show hidden files by default.

Now I can work much easier in my git repos and .docker folders.

read more

Tech 8. Jun. 2015

Port Forwarding to use a local docker with public address

Sounds easy and afterwards it seems easy.

The required setting: For development on an existing platform we use docker with several containers for database, application, search and so on. Here the local setup by docker is quite easy an well prepared by some scripts for define local properties and replacements. But due so a integration to external systems, the virtual docker environment has to be accessible by a public address even for local development.

So I needed a sequence of port forwardings.

read more

Tech 14. Apr. 2015

Overflow-x makes scrolling choppy at mobile

I don’t know exactly why but at mobile devices often the content width is larger than the screen width which leads to a ugly horizontal scrollig. This is easy to fix by adding a

overflow-x: hidden;

to a wrapper.

I tried to add it to html and body - the curious ting is, that leads to a choppy scrolling at mobile devices. Setting to only one wrapper - I did it on body - everything is fine.

body {
	overflow-x: hidden;
}

By the way: For -webkit-overflow-scrolling: touch; I could see no effect.

See more here as well: http://stackoverflow.com/questions/12845892/ios-overflow-x-or-position-absolute-makes-scrolling-choppy


Tech 13. Apr. 2015

Fasten CSS Transitions on mobile devices

It’s common to have some performance issues with animations on mobile devices. But on modern devices sometimes the promlems seem to be too heavy. Now I found a reason. “Webkit doesn’t involve the GPU unless you’re doing 3D transforms”.

So just force the browser to initialize GPU by CSS:

-webkit-transform: translateZ(0);

See: http://chrissilich.com/blog/fix-css-animation-slow-or-choppy-in-mobile-browsers/

Thanks a lot.


Post 14. Jan. 2015

Verschiebung bei Statusbewertungen - in Projekten und ĂŒberall

Im Kontext des Projektmanagements bzw. der Diskussionen ĂŒber die Verbesserung von Projektmanagementprozessen und der damit verbundenen Kundenkommunikation, stellt sich immer die Frage wie man den Projektstatus möglichst einfach aber dennoch korrekt aggregiert ermittelt und darstellt. Am Ende steht zumeist ein Ampelsystem, welches mehr oder minder gut mit Daten belegt ist:

  • grĂŒn: der Status entspricht der Planung
  • gelb: der Status liegt leicht hinter der Planung
  • rot: der Status ist kritisch und die Projektziele sind gefĂ€hrdet

Das grundsĂ€tzliche Problem bei diesem Ansatz ist, dass es eine ausschließliche Negativskala ist. Damit wird allerdings der RealitĂ€t zum einen nicht entsprochen und zum anderen das Bild des Status und damit auch die Erwartungshaltung der Beteiligten verzerrt.

read more

Tech 6. Jan. 2015

E-Mail Sicherheit

Spannend, wie Unternehmen den Prozess zur Absicherung Ihrer Netzwerke gestalten. Es wirkt recht umstĂ€ndlich aber immerhin konsequent. In der Signatur der “normalen” E-Mails wird explizit gebeten, Daten nicht unverschlĂŒsselt zu versenden. Nun habe ich verschlĂŒsselte AnhĂ€nge versendet - da ich keinen Public Key des EmpfĂ€ngers habe - und es gibt dann, sicher aufgrund von anderen Sicherheitsaspekten wie Virenschutz usw., eine manuelle technische PrĂŒfung des Anhangs.

Spannend.

read more

Life 8. Dec. 2014

Termin ĂŒber verschiedene Zeitzonen

Wow. Im Google Kalender kann man einen Termin mit unterschiedlichen Zeitzonen fĂŒr den Beginn und das Ende einstellen.

So kann ich dann tatsÀchlich meinen Flug korrekt im Kalender eingeben und alle Kollegen wissen wann ich nicht erreichbar bin.


Tech 25. Nov. 2014

Google Calendar API v3 angebunden

Letzte Woche stellte Google nun endgĂŒltig den Betrieb der “alten” Data APIs ein. Somit musste fĂŒr 88vier auf die schnelle die neue Google Calendar API v3 angebunden werden.

GlĂŒcklicherweise hatte ich damals bereits eine abstrakte Model Klasse in der TYPO3 Extension vorgesehen, sodass tatsĂ€chlich “nur” die API-Requests umgestellt werden mussten.


Tech 13. Sep. 2014

Impressed by 37signals

As working remotly since 2011 y lot changed in my daily business. As well clients and specially the project culture is shifting.

In this context the philosophy of 37signals - really nice expressed in their books - impressed not only me.

read more

Tech 15. Apr. 2014

Cloud basiertes Markdown Blog

Warum, wieso und wozu?

Die eigene Website ist ja immer auch Ziel von wirren Ideen und Inkubator Projeken. So auch mein Blog. Neben den Spieltrieb haben die bisherigen Lösungen aber auch immer Nachteile gehabt. Das massivste Manko der Web CMS Lösungen (Wordpress, Drupal, TYPO3 und Co.) ist, dass sie eigentlich nur online funktionieren. Und auch mit Blogging-Apps muss man i.d.R. vor dem Publishen mal im Web CMS mal nachsehen was aus dem Beitrag geworden ist. Da meine Zeitfenster zum Bloggen sich aber auf Lazenzzeiten unterwegs und viel ohne Internet (Zug, Flugzeug) beschrĂ€nken, ist das ein Problem. Hinzu kommt die Datenhaltung. Meine BlogbeittĂ€ge möchte ich nicht in einer MySQL Datenbank, sondern in einem einfacheren, besser greifbarem und bestĂ€ndigerem Format aufbewahren. Mehrere Migrationen von CMS zu CMS mit zumeist dann veralteten Versionen haben hier einen bleibenden Eindruck hinterlassen. Außerdem möchte ich zur Bearbeitung von all meinen GerĂ€ten zugreifen können. Darauf aufsetzend möchte ich dann einen automatisierten Publishing Prozess inkl. Social Media Marketing usw. haben.

Die Vision ist also:

  • Schnell, einfach und ĂŒberfall in einen einfachen und nachhaltigem Format Blog Posts erstellen und diese automatisch auf meine Website, Facebook, Twitter und Co. pushen
  • Und als Zuckerguss noch die
  • RĂŒckintegration von Facebook Posts in diese Blog Datenquelle.

read more

Tech 12. Mar. 2014

Responsive Content Formatting - Display-abhĂ€ngige ZeilenumbrĂŒche - ein Workaround

Technisch oft vernachlĂ€ssigt aber inhaltlich von Redakteuren hĂ€ufig bemĂ€ngelt werden Probleme bei der Steuerung oder ebene nicht-Steuerung von ZeilenumbrĂŒchen abhĂ€ngig von bestimmten GerĂ€teklassen bzw. DisplaygrĂ¶ĂŸen. Dem Thema kann man sich in guter alter Manier der Internet Pionierzeit mit tollen Workarounds nĂ€hern. Gezielte ZeilenumbrĂŒche anhand eines Beispiels:

Dieser Text liegt vor:

Ich möchte einen recht langen Text als Überschrift setzen und bestimmte UmbrĂŒche steuern.

Wenn der Platz irgendwann schmaler wird möchte ich bestimmte UmbrĂŒche vordefineren - wie es bei Marketingtexten hĂ€ufig der Fall ist:

Version 1:

Ich möchte einen recht langen Text als Überschrift setzen und
bestimmte UmbrĂŒche steuern.

Version 2:

Ich möchte einen
recht langen Text als
Überschrift setzen und
bestimmte UmbrĂŒche steuern.

read more

Tech 10. Mar. 2014

Pure CSS Sticky Navigation

So schöne Dinge man mit Javascript auch machen kann - man muss es nicht immer tun. Dazu habe ich schon verschiedene Male geschrieben. Heute zu einer reinen CSS-Lösung fĂŒr eine Sticky-Navigation. Die Anforderung an eine Sticky-Navigation lautet i.d.R. in etwa so: Beim Scrollen soll am oberen Fensterrand das MenĂŒ stehen bleiben damit der User immer das MenĂŒ im Zugriff hat. Der (zumeist darĂŒber liegende Header) kann dabei weggescrollt werden. zusĂ€tzlich hat das MenĂŒ auf Smartphone ggf. eine andere Darstellung und hat nicht das volle MenĂŒ am oberen Rand sondern bspw. nur einen Home-Button oder ein sogenanntes Burger-MenĂŒ. Die Idee ist einfach: Man nutz die Möglichkeit Layer per z-Index ĂŒbereinander zu legen und deren Verhalten beim Scrollen per postion-Angabe zu definieren.

read more

Life 11. Nov. 2013

ReCaptcha - Jetzt auch Foto-Erkennung

Offensichtlich arbeitet ReCaptcha nun auch mit Fotos. Das Feld der Human Computisation wird wohl von der Verbesserung von OCR-Software auf die Fotoerkennung ausgeweitet.


Tech 28. Sep. 2013

Die Tiefen des base64-Encodings

Bis vor einigen Stunden hatte ich offensichtlich keine wirkliche Ahnung was sich hinter einem base64-Encoding versteckt. Außer ein paar encode/decode Aufrufen in PHP hatte ich hier bisher keinen Bedarf.

Nun wollte ich aber Massen an Daten per Java ĂŒber die HTTP-API an Mixpanel schicken - und wumms. Jetzt weiß ich mehr ĂŒber die verschiedenen Varianten der Character Sets, Paddings, Chunks - und auch mehr ĂŒber die Unterschiede der Versionen der Apache Commons Codec und Eigenimplementierungen von Mixpanel.

Ein kleines Abendteuer - auf dass ich heute eigentlich keine Lust hatte.


Life 22. Sep. 2013

Apple sammelt biometrische Daten

Super das Apple voller Euphorie verkĂŒndet von nun an den Fingerabdruck bei jeder Nutzung von jedem User von den marktbeherrschenden iPhones und Co. digital zu verarbeiten. Wer mir nach GPS Daten Persitierung und Snowden erklĂ€ren möchte, dass die von Apple prĂ€sentierten Sicherheitsmaßnahmen nicht gehackt werden können - dann los. Aber womöglich gab es ja sogar UnterstĂŒtzung bei der Entwicklung dieses Feature und die Backdoor ist in dedizierten Kreisen bekannt? Auch wenn ich hier spekuliere - nun gehen nach Fotos, Videos, allen Siri Nachrichten, unseren AdressbĂŒchern, unseren Bewegungsdaten, unserem Surf- und Telefonverhalten, unseren App-Nutzungen auch noch direkt biometrische Daten durch den Prozessor. Holla die Waldfee. Und das alles ist ein Usability BedĂŒrfnis der User?


Tech 29. Oct. 2012

An jQuery und Modenizr Fetischisten

Also ehrlich. So toll und reizvoll einige der Nutzungsoptionen sein mögen und so modern sich Feature Detection usw. anhören - man sollte die Gesamtarchitektur der Software - und damit meine ich hier im engeren nur der frontendseitige Softwareschicht - nicht außer acht lassen.

Denn diese Technologien taugen eben auch nur etwas, wenn der Einsatzbereich passt.

Wenn Modenizr versucht Features zu finden, dann per Javascript. Und das ist bekanntlich auf einigen Browsern oder Devices langsam. Zum Teil sind auch die Prozessabfolgen anders. Doch genau die AbwĂ€rtskompatibilitĂ€t soll diese Technologie ja ermöglichen. Die Konsequenz ist ganz einfach: man muss auf den Aspekt der AbwĂ€rtskompatibilitĂ€t eben explizit achten und nicht blind auf Modenizr vertrauen. Und dann kann man z.B. auch mal eine No-Script Variante fĂŒr alte Devices stehen lassen. Das geht dann eigentlich ĂŒberall gut. Und auch LĂŒcken im Konzept - nein das stimmt nicht, LĂŒcken in der KompatibilitĂ€t - gibt es immer noch. Ein tolles Beispiel ist der KompatibilitĂ€tsmodus des IE. Der reagiert dann manchmal anders als erwartet. Und spannend sind auch VM Umgebungen - die stĂŒrzen dann auch gerne mal komplett ab - wegen ein bisschen Javascript fĂŒr runde Ecken. Stimmt, nicht nur runde Ecken, sondern mehr: dort noch ein Schatten, hier noch ein Verlauf, da noch ein Re-Rendering des Overlays, usw.

read more

Tech 25. Oct. 2012

TYPO3 - Language Overlay auf Feld-Ebene

Wer hÀtte gedacht, wie lange man da rum probieren kann. Also: Es gibt eine Seite mit einigen individuellen Feldern in den Seiteneigenschaften. Diese sollten in Teasern und auf der Detailseite automatisch per TypoScript ausgegeben werden. Soweit so gut.

Einige der Felder enthalten Namen, welche i.d.R. in mehreren oder sogar allen Sprachen gleich geschrieben werden (bei nicht-lateinischen Schriften gibt es ggf. andere Schreibweisen). Aber da sie hĂ€ufig identisch sind, sollen die Redakteure nicht fĂŒr jede Übersetzung der Seite wieder die Namen eingeben mĂŒssen. D.h. wenn ein Feld in einer Übersetzung leer ist, soll der Feldinhalt der Originalsprache verwendet werden.

Die language_overlay Mechanismen von TYPO3 lassen das im Standard offensichtlich nicht zu. Man kann zwar ein Overlay erzwingen, aber nie differenziert nach einzelnen Feldern.

Die Lösung sieht dann so aus:

22 = TEXT
22 {
	data = page : tx_myext_fieldname
	stdWrap {
		required = 1
		wrap = 
{LLL:EXT:myext/static/template/locallang.xml:pages.field.tx_myext_fieldname} |
		stripHtml = 1
		htmlSpecialChars.preserveEntities = 1
	}
	override = TEXT
	override {
		data = page : uid
		wrap = {DB:pages:|:tx_myext_fieldname}
		if.isFalse.field = tx_myext_fieldname
		insertData = 1
	}
	insertData = 1
}


Tech 29. Jun. 2012

TYPO3 - Workaround in den Core Funktionen

Da predigt man allen Entwicklern ĂŒber Jahre, dass man zwar fĂŒr eigene CEs wenn möglich die vorhandenen Felder in tt_content nutzen soll - aber natĂŒrlich nur dann, wenn sie semantisch sinnvoll sind. D.h. z.B. das Feld media fĂŒr ein BĂŒhnenbild in einem eigenen CE o.Ă€.

Nun ist das in TYPO3 scheinbar nicht so streng umgesetzt. Im Mailformular wird die EmpfÀnger-E-Mail Adresse in das Feld subheader geschrieben.

TYPO3-Backend-Subheader-E-Mail

Tja. So ist das wohl manchmal.


Tech 22. Jun. 2012

Chrome - Wachsender Application Folder

Als Nutzer einer SSD Platte mit einer leider etwas eingeschrĂ€nkten GrĂ¶ĂŸe habe ich ab und an das Problem, das mir mein OS einen Hinweis gibt, dass meine PLatte voll sei - oder zumindest fast.

Nun habe ich mal mit dem Disk Sweeper alles durch gescannt und mehrere witzige große Verzeichnisse gefunden (6 GB mehr frei und nicht wichtiges gelöscht).

Spanned ist, dass Chome im Application Folder ĂŒber 1 GB groß war. Warum? Weil Chrome bei automatischen Software Update - welche ja hĂ€ufiger vorkommen - jedes Mal die neue Version dazu speichert und die alten nicht ĂŒberschreibt. Chrome hat zwar nur gute 100 MB, aber nach ein paar Monate sind da dann schnell mal auch ein GB voll.

Lösung: Einmal die aktuelle Version herunter laden und die Datei im Application Folder ĂŒberschreiben. Fertig. ca. 900 MB mehr Platz.


Tech 13. Jun. 2012

Blogsy Test

See what will happen 



Post 31. May. 2012

Google - Zahlen bei PI-Akquise verschÀrft

Über 95% aller relevanten Zugriffe ĂŒber Suchmaschinen kommen von Google. Die restlichen Prozent(chen) teilen sich die anderen Suchmaschinen. Das ist ja nichts ĂŒberraschend Neues, aber wenn wieder jemand nach Bing, T-Online oder Yahoo fragt, hilft das vielleicht zur Fokussieung auf das Wesentliche.

Anteil von Google an den Gesamtzugriffen ĂŒber Suchmaschinen:

bei 1 PI ~ 81%
bei >= 2 PIs ~ 95%
bei >= 4 PIs ~ 97%
bei >= 5 PIs ~ 98%

Die Werte wurden bei einer deutschsprachigen Kampagnensite erhoben. Bei internationalen Seiten oder speziellen Branchen kann die Bedeutung auch anders ausfallen.


Life 31. May. 2012

eMobility eSmart Testfahrt

Nach der Entwicklung einer iPhone App fĂŒr eine Elektroauto Flotte letztes Jahr (ĂŒbrigens mit Sencha Touch, hat viel Spaß gemacht) habe ich nun endlich meine erste eMobility Erfahrung (im Sinne des Fahrens eines Elektroautos, Bahn fahre ich ja auch gerade mit Strom) gemacht.

Fahren konnte ich einen eSmart. Sexy ist ein Smart ja so oder so nicht, deswegen waren meine Erfahrungen auch nicht allzu hoch. ErwartungsgemĂ€ĂŸ war er extrem leise - so war ich am Anfang tatsĂ€chlich unsicher ob der Motor schon an ist und als ich dann aus der ParklĂŒcke raus rolle war ich noch immer nicht sicher, ob es die gelöste Handbremse oder der leichte Gasdruck waren.

read more

Tech 27. Apr. 2012

TYPO3 - EntitÀten und dynamische Formulare mit Seiten, Mailform und TypoScript

Eine sehr hĂ€ufige Anforderung ist bestimmte EntitĂ€ten in TYPO3 abzubilden und darauf aufsetzend dynamisierte Formulare zu erstellen. Klassische Beispiele sind Ansprechpartner mit eigenen E-Mail-Formularen, Veranstaltungen mit einem Anmeldeformular oder BroschĂŒren mit einem Bestellformular.

I.d.R. wird dann schnell auf den Formhandler oder selbst geschriebene Extensions zurĂŒck gegriffen. Dabei lĂ€sst sich das meistens mit den Standardfunktionen von TYPO3 nutzen.

Hier kurz eine Skizze des Lösungsansatzes - wozu ich spÀter nocheinmal Codebeispiele posten werde.

read more

Tech 25. Apr. 2012

TYPO3: Inhaltelemente mit Trennern und Wrappern - auch fĂŒr Insert Record

Bei speziellen Designanforderungen ist es ab und zu nötig, einzelne Inhaltelemente mit Wrappern zu versehen oder mit Separatoren - z.B. Trennlinien zwischen allen Elementen, aber natĂŒrlich nur dazwischen und nicht etwa ĂŒber oder unter allen Elementen.

Der Weg dahin fĂŒhrt ĂŒber einen Marker, den man pauschal auf alle Content Elemente setzt und anschließend ĂŒber eine Split Funktion mit den gewĂŒnschten Tags und Wrappern ersetzt.

Der Umweg ist nötig, da man zwar pauschal einen marker an alle Elemente hĂ€ngen kann, die Wrapper aber erst beim Rendern des Inhalts fĂŒr die jeweilige Seite bzw. Spalte gesetzt werden können.

read more

Tech 25. Apr. 2012

PHP - FĂŒr Menschen lesbare ZeitrĂ€ume

Datumsanzeigen sind nicht einfach. Und ZeitrĂ€ume auch nicht. Zumindest wenn man den Nutzern eine möglichst natĂŒrliche Schreibweise anbieten möchte, also nicht im “technischen” Format TT.MM.YYYY. Schöner wĂ€ren da doch Datums-ZeitrĂ€ume wie z.B.:

Donnerstag, 26. April 2012
Mittwoch, 11. bis Donnerstag, 26. April 2012
Donnerstag, 26. April bis Mittwoch, 9. Mai 2012
Samstag, 29. Dezember 2012 bis Mittwoch, 2. Januar 2013

Hier eine Beispielfunktion in PHP, welche eine solche Ausgabe erzeugen kann:

read more

Tech 18. Apr. 2012

T-Online Suche: Index ist nicht der Google Index

Seit einer Weile beobachte ich das PhÀnomen, dass der Suchindex der T-Online Suche nicht dem Index von Google entspricht.

Man könnte jetzt sagen, “wen interessiert T-Online”, aber gut - das ist ein anderes Thema und viele Telekom Kunden nutzen T-Online als Startseite.

Warum die Google Suche auf T-Online einen anderen Index als Google selbst hat, liegt in dem Vertriebskonzept von Google. Diese verkaufen die Suche an andere Plattformen und bei diesem Produkt ist der Index physisch ein anderer. Aber welchen Nutzer interessiert das.

Die große Frage ist also: Wie ist es machbar, eine Seite im T-Online Suchindex zu listen, wenn dies von alleine nicht funktioniert, aber die Seite sogar im Google Index drin ist?

Antworten bitte an mich: jhh@j2h.com.


Tech 28. Mar. 2012

Android: Hardware-Software-Verzerrung

Neben Apple, iOS und der dazugehörigen Welt ist bekanntlich Android eine nicht gerade irrelevante Alternative. Und letztlich habe ich mein iPhone am Anfang auch aus dem Grund gekauft (bzw. von form4 bekommen), um die ganze Welt kennen zu lernen. Jedenfalls bin ich so kĂŒrzlich zu meinem ersten Android GerĂ€t gekommen.

Und: Ich bin bisher ziemlich ernĂŒchtert. Und wĂ€hrend der Nutzung habe ich den Eindruck, dass ein wesentlicher Grund fĂŒr diese ErnĂŒchterung auch die Hardware ist (ein Odys-Loox - was auch immer das fĂŒr ein Ding ist).

Die Nutzung macht zumindest keinen Spaß und - wenn ich das versuche zu differenzieren - sind es folgende Probleme: (1) die Touch und gesten Bedienung reagiert miserabel, (2) die Reaktionen sind langsam und (3)Programme stĂŒrzen hĂ€ufig ab.

Wie viel davon nun Android, eine Variation von Android oder die Hardware ist, kann ich kaum sagen. Aber die “User Experience” ist nicht annĂ€hrend vergleichbar mit einem iPhone oder iPad.

Ein entscheidender Vorteil von Apple (neben einem recht hohen QualitÀtsanspruch) war und ist offensichtlich alles aus einer Hand zu liefern. Software und Hardware sind bei EndgerÀten heutzutage eben nur noch schwer trennbar und letztlich zÀhlt das Gesamtergebnis.


Tech 9. Mar. 2012

Webtracking: Facebook rocks!

Wieder ein Fall von: BauchgefĂŒhl durch Zahlen bestĂ€tigt.

Seit einer Weile poste ich meine (zugegebener Maßen wenigen) Blog-Artikel auf Facebook, Google+ und Twitter. Und im Tracking meines Blogs kann man sehen, wo die Leute so her kommen.

read more

Tech 9. Mar. 2012

TYPO3: PDF Generierung per Webkit

Nachdem ich im letzten Jahr sehr tiefgreifende Erfahrungen mit Print-Stylesheets machen durfte, ist mir schnell klar geworden, dass anspruchsvolle Layouts per CSS nicht Cross-Browser-Kompatibel zu realisieren sind. Die Menge an Detailproblemen und Browserweichen ist weit weg von dem, was man sich im Jahr 2012 vorstellt.

Die Lösung: anspruchsvolle Layout immer als PDF rendern. Denn dann sieht es ĂŒberall gleich aus, man hat keine Cross-Browser-Probleme, besondere Schriften funktionieren usw.

Wenn man nun aber ein Weblayout nicht nochmal in PHP, FOP oder was auch immer komplett neu setzen möchte, empfiehlt sich das Rendern der PDFs per Webkit Engine. Dann verwendet man eben doch HTML und CSS, muss es aber nur fĂŒr eine Engine optimieren. Und Webkit ist hier so ziemlich die beste Wahl, was besondere Layout-Features betrifft.

Nun gibt es diesen Ansatz im Kontext von TYPO3 gleich frei Haus als Extension. Super!

Link: http://typo3.org/extensions/repository/view/webkitpdf/current/


Tech 7. Mar. 2012

Webtracking: Mehr Klicks im Inhalt als in der Navigation

Alles nichts Neues, aber wenn man frĂŒhere Erkenntnisse nocheinmal mit Fakten untermauern kann, ist das trotzdem gut.

So habe ich in verschiedenen Usability Tests mitbekommen können, welchen Weiterleitungen Nutzer eher folgen und welche Navigationswege sie einschlagen. Dabei sehen sich die meisten Nutzer den Inhaltbereich einer Webseite an und soweit sie dort sinnvolle Links finden, werden diese auch genutzt. Fehlt die Orientierung weichen die Nutzer hĂ€ufig auf die Volltextsuche aus. Werden sie dort auch nicht fĂŒndig, versuchen sie es ĂŒber die Hauptnavigation.

read more

Tech 2. Mar. 2012

Webtracking: Share Links auf Websites sind Quatsch

Die Anzahl der Klicks auf Share-Links auf einer Website lassen schon zu wĂŒnschen ĂŒbrig.

Hier ein Ausschnitt aus einem echten Tracking:

  • Twitter: 0,27%
  • Facebook: 0,05%
  • E-Mail: 0,05%

(in % der Gesamtbesucher)


Tech 2. Mar. 2012

Google: Gute Akquise von Besuchern mit vielen PIs

Dass Google fĂŒr fast alle Websites die wichtigste Herkunfts-Quelle zumindest im Segment der Suchmaschinen ist, ist ja klar.

Interessant ist die Kreuzanalyse der Suchmaschinen im Vergleich in Hinblick auf die Page Impressions pro Besuch.

  • Anteil von Google bei >= 2 Pis 87,01%
  • Anteil von Google bei >= 4 Pis 91,81%
  • Anteil von Google bei >= 5 Pis 93,28%

Denn dabei nimmt die Bedeutung von Google sogar noch zu. Die Akquise von Besuchern mit hohen PIs pro Besuch gelingt Google anscheinend auch besser als den anderen.


Tech 1. Mar. 2012

Newsletter: Tragische E-Mail Vorschau ist gÀngige Praxis

Eins sehr witziges PhÀnomen fÀllt mir immer wieder auf, welches man in Zeiten der SEO- und Usability Optimierungen doch wunderlich finden kann.

So ziemlich alle Newsletter die ich bekomme, zeigen im Vorschautext der E-Mail einen Problemhinweis an. “Wenn Sie den Inhalt nicht lesen können 
”, “Sollten Sie Probleme haben 
”, “Wird der Newsletter nicht dargestellt 
” sind der Standard.

read more

Tech 8. Feb. 2012

SharePoint Web Apps made with Sencha Touch

Eine interessante Entwicklung: Sencha scheint sich in breiteren Segmenten aufzustellen und zeigt nun, wie man mit Sencha Touch Web Apps auf Basis von MS SharePoint realisiert. Eine spannende Perspektive fĂŒr individuelle Business Anwendungen, wenn man auf die UnterstĂŒtzung mobiler EndgerĂ€te nicht verzichten möchte - und wer will das heutzutage noch?

Link: http://www.sencha.com/blog/building-sharepoint-web-apps-using-sencha-touch


Tech 11. Jan. 2012

TYPO3: Ist DAM tot?

Ein einer langen Phase, wo DAm quasi Standard jeder TYPO3 Website war, habe ich mich irgendwann schonmal gefragt, wo die tatsÀchlichen Mehrwerte liegen und insbesondere ob diese die immer wieder auftauchenden Probleme aufwiegen (half-featured GUI, wechselnde Verwendung der mm-Relationen, sich Àndernde API bei den DAM-Referenz-Funktionen, fehlender Workspace-Support usw.). Zumindest konnte ich jetzt schon lÀnger drauf verzichten.

Nun kam ĂŒberraschend vor einer Weile eine RĂŒckmeldung zu einem Workspace-Bug von 2009. Da denkt man erst - wow, da wurde doch noch was getan, aber weit gefehlt:

read more

Tech 8. Dec. 2011

CufĂłn im Druck: Partiell problematisch

CufĂłn wird mittlerweile in vielen Webprojekten eingesetzt, da hiermit mehr Optionen fĂŒr das Design eröffnet werden und nahezu jede Schrift fĂŒr Titel und Überschriften verwendet werden kann. Bei zu vielen Elemente dauert das Rendering zwar etwas, aber gut - es funktioniert.

Es wĂ€re anzunehmen, dass sich das Rendering beim Druck einer Website identisch verhĂ€lt. FĂŒr Browser wir Chrome und Safari trifft das auch zu. Die Internet Explorer scheinen hier unterschiedlich zu reagieren - denn manchmal stĂŒrzen diese ab (freeze). Vermutlich wenn ihnen der Speicher ausgeht. Beim Firefox (auf Windows) ist es am dramatischsten, denn dieser stĂŒrzt bei umfangreichen Website mit vielen CufĂłn Elementen immer ab.

Sehr schade. Letztlich bleibt wohl doch die serverseitige PDF-Generierung die beste und sicherste Variante.


Tech 7. Nov. 2011

.htaccess Sprach-Redirect

In jedem Webprojekt wieder kommt die Frage auf, wie nun konkret ein Redirect per .htaccess anhand der Browsersprache des Users funktioniert. Und dann googlet der eine hier und recherchiert der andere dort und dabei sind es nur ein paar simple Zeilen.

Hier also als Memo:

RewriteCond %{HTTP:Accept-Language} ^de [NC]
RewriteRule ^$ /de/ [L,R=301]
RewriteRule ^$ /en/ [L,R=301]

Die Anweisung wir bei bestehenden Redirect Rules einfach oben drĂŒber geschrieben. So funktioniert sie auch mit den Standards von TYPO3 oder Drupal.


Post 1. Sep. 2011

CMS benutzerfreundlich entwickeln

inline-left-small

t3n Magazin Nr. 25, 09/2011 - 11/2011

Content Management Systeme (CMS) wie TYPO3 sollen in erster Linie die redaktionelle Arbeit unterstĂŒtzen. Es erklĂ€rt sich eigentlich von selbst, dass sich das CMS an den BedĂŒrfnissen der Redakteure orientieren sollte. HĂ€ufig entspricht dieser Anspruch jedoch nicht der RealitĂ€t. Dabei bedarf es nicht viel Entwicklungsaufwand, um Redakteuren die Arbeit zu erleichtern.

read more

Tech 2. Jul. 2011

Google Analytics Benchmark

Spannend: Conversion liegen ĂŒberall bei ca. 1% - also keine Angst vor EnttĂ€uschung beim Kunden. Kleine Zahlen sind normal.

Und: Die CPC Suche bringt intensivere Nutzer - das ist auch mal spannend.


Tech 21. Jun. 2011

Google Apps discontinues support of IE7

Google Apps beendet den Support von alten Browsern. Zu denen zÀhlt Google den Microsoft Internet Explorer 7, Mozilla Firefox 3.5 und Apple Safari 3.

Das ist ein großer Schritt in die richtige Richtung - und man beachte: der Support des IE 7 (!) wird eingestellt.


Tech 17. Jun. 2011

Sencha Touch: Einstieg

Neue Frameworks mĂŒssen ersteinmal eine Weile sanft beĂ€ugt und betastet werden - und dann mit harten Projektanforderungen so richtig auf die BewĂ€hrungsprobe gestellt werden. Hört sich einfach an, macht aber auch lange Abende. Aber es schon sehr cool, wenn die Seiten so hin und her flippen und swipen und scalen und man auf seiner eigenen Arbeit mit fettigen Fingern rumwischen kann. Klasse Framework. Sehr cool.


Tech 18. May. 2011

Webtracking: Logfileanalyse vs. Pixeltracking (2)

Die Hauptursache, warum die Logfile-Analyse so stark von den reellen Nutzungswerten abweicht, ist, dass Seiten und Seitenressourcen an verschiedenen Stellen gecacht werden - allen voraus die Browsercaches, welche bereits geladene Dateien (hoffentlich) nicht nocheinmal vom Server abrufen - dann aber gleich gefolgt von CDN, Proxies und Ă€hnlichen Systemen. Hinzu kommt, dass sich diese VerfĂ€lschung in den Logfiledaten erhöht, sobald das Performance-Tuning nach vorne raus intensiviert wird - was glĂŒcklicherweise immer hĂ€ufiger passiert.

Entgegen einiger Autoren und Spezialisten des Webtrackings, sehe ich keine sinnvolle Alternative zum Pixeltracking, um realistische Daten zu erheben.


Tech 16. May. 2011

TYPO3: RealURL und nicht valide Lookup-Ergebnisse (nomatch bei postVarSets mit lookUpTable)

Wenn man per RealURL bestimmte Parameter bzw. Datenbank-IDs kodiert, kann man wunderhĂŒbsche URLs erzeugen. I.d.R. macht man das fĂŒr Datenbank-Records mit “postVarSets” ĂŒber eine “lookUpTable”.

StandardmĂ€ĂŸig werden so aber alle Werte angenommen und als gĂŒltig verarbeitet - was in der RealitĂ€t aber vollkommen falsch ist. Wird eine URL mit einem Alias aufgerufen, welches anhand der lookup-Konfiguration nicht gefunden werden kann, erwarte ich eine Fehlermeldung. Am besten einen 404-Fehler, welcher ĂŒber das TYPO3 Handling abgearbeitet wird.

HierfĂŒr muss man aber selbst Hand anlegen.

read more

Tech 13. May. 2011

Was den IE6 und Monkey Island verbindet

Jetzt fĂŒhle mich wie vor einem Jahr 
 da habe ich alte Amiga Spiele auf meinem Laptop installiert und Monkey Island 2 gespielt.

Jetzt hab’ ich endlich wieder einen nativen Internet Explorer 6. Man ist das retro. Nur dass man zu solchen Spielereien durch seinen Job genötigt wird ist eigenartig: Meine Monkey Island Zeit hat mir damals niemand bezahlt. Im IE6 spielen nun schon.

Und da rufen immer alle nach Innovationen.


Tech 6. May. 2011

Webtracking: Logfileanalyse vs. Pixeltracking

Zitat auf dem etracker Anwenderhandbuch: “Carsten Pohle von der Humboldt UniversitĂ€t in Berlin hat eine Studie ĂŒber die QuantitĂ€t dieser Abweichungen [Abweichung zwischen Logfileanalyse und Pixeltracking] verfasst. Diese kommt zu dem Ergebnis, dass bei der Logfile-Analyse beispielsweise die gemessene Anzahl der Besuche einer Website um mehr als 30 Prozent vom tatsĂ€chlichen Wert abweicht.”


Life 6. May. 2011

Facebook und Demokratie

Das ist doch mal toll, dass ein Facebook-Post mit dem Hinweis auf eine Petition beim Bundestag eine so positive Resonanz auslöst.

Wollte man den viralen Effekt berechnen, könnte man sagen: ein Post = 3 Mitzeichner der Petition. Wenn man es auf die Anzahl der Freunde rĂŒckrechnet wĂ€ren drei Mitzeichner auf die ca. 170 potenziellen Leser des Postings (also die Freunde, 170 liegt in etwa im Durchschnitt). Also ein Post der Petition erzeugt bei ca. 1,8 % der “Freunde” nicht nur einen Klick, sondern eine reelle demokratische AktivitĂ€t - die Mitzeichnung einer Petition. Eine Quote von der Werber hĂ€ufig trĂ€umen!

Das kann man dann weiter hochrechnen, da aus dem Feedback hervorgeht, dass der Link weiter verteilt wurde. Übrigens habe ich auch nur auf einen Twitter-, Facebook- oder Sonstwas-Link reagiert.

  • Meine SchlĂŒsse: Virale Effekte können reale Effekte sein!
  • Facebook ist ein Kommunikationsmedium, welches solche Effekte möglich macht.


Tech 8. Apr. 2011

PHP: Shorten String

KĂŒrzen eines Strings unter erhalt vollstĂ€ndiger Wörter;

if(strlen($str)>30) $str = substr($str, 0, strpos(wordwrap($str,30,"###END###"), "###END###"));


Tech 23. Mar. 2011

Seitenbereiche aus dem Google Index ausschließen per googleoff: index

FĂŒr seiteninterne Suchen tritt das Thema ja hĂ€ufig auf: Was kommt in den Index und was nicht?

So wird im CMS gewöhnlich nur der Inhaltbereich einer Seite in den Index geschrieben, da Seitenteile wie Navigation, Randspalte und insbesondere Teaser zu anderen Seiten dort nur das Suchergebnis unscharf machen wĂŒrden. In TYPO3 macht man das simple per Index Search Boundaries. In Drupal stellt sich die Frage nicht, da die Nodes indiziert werden und nicht sie Seiten.

Das gleiche geht offensichtlich auch fĂŒr Google “googleoff: index” und “googleon: index” EintrĂ€ge als HTML-Kommentare. Vermutlich alles nichts neues, aber ich hab mich das oft gefragt und nie nach der Antwort gesucht. Und trotzdem habe ich sie jetzt gefunden.

Link: http://perishablepress.com/press/2009/08/23/tell-google-to-not-index-certain-parts-of-your-page/

Toll, so Antworten zu Fragen, wonach man gar nicht sucht.


Tech 6. Mar. 2011

TYPO3: Zend Gdata - Google Kalender importieren

In manchen FĂ€llen hat man auch in der PHP und Web-CMS Welt das GefĂŒhl, dass gute Softwareentwicklung möglich ist. Eine super Kombination hierfĂŒr sind TYPO3 als ziemlich leitungsstarkes Web-CMS-Framework und den Zend Komponenten, wo Unmengen an Features und Services angeboten werden.

So kann man z.B: ĂŒber die Zend Gdata Komponenten wunderbar die Google API ansprechen und nutzen. So kann ich mehrere Google Kalender bspw. recht einfach in eine Website bringen. Einfache eine Scheduler Komponente in TYPO3 aufsetzen, die ganze Gdata API da rein - und schwupp, sind alle Daten in der CMS-Datenbank.

Toll ist die Kombination vor allem, wenn man verteilte Kalenderdaten zusammen fĂŒhren möchte. So können verschiedene Personen die einzelnen Kalender unabhĂ€ngig voneinander verwalten. Das zusammenfĂŒhren erfolgt noch per Google. Und aus dem Account mit der Kalender-Agregation werden dann die Daten importiert.

So bleiben einem auf diesem pragmatischen Weg die lÀstigen Aufgaben der Dateneingabe und der Kalenderformate usw. erspart - das können andere mit Services wie Goole nÀmlich mittlerweile besser.

Live zu sehen ist das Ganze in KĂŒrze auf einer tollen Website - aber die Spannung wo, die bleibt.


Tech 28. Feb. 2011

Trac und Subversion auf Ubuntu mit Plesk

Microblogging im Blog - darf man das? Egal. Endlich lÀuft auf meinem Server Subversion und Trac und das ohne Plesk-Konflikte. Super. Vermutlich liegt es an Ubunto und den neuen Distributionen, da ich mit Suse 10 und PLesk 9 beim besten Willen keinen Weg gefunden habe, Trac zum Laufen zu bekommen.


Tech 14. Feb. 2011

Drupal: Facebook Modul-Familie

KĂŒrzlich habe ich die Facebook Modul Familie fĂŒr Drupal ausprobiert und war erstaunt, dass diese auch fĂŒr Drupal 7 relativ rund lĂ€uft. Facebook Connect ließ sich problemlos und ohne Anpassungen konfigurieren und nutzen - was vermutlich einer der spannensten Punkte ist. Die API-Integration zur Nutzung von Drupal als Facebook-App-Host ist dann der nĂ€chste Schritt. So lassen sich wunderbar die Facebook-Rechweite mit dem Content-und-Community-Management ĂŒber Drupal vereinbaren und einem bleiben rein handgeschriebene PHP-Applikationen erspart. Toll.


Tech 1. Nov. 2010

Thunderbird mit ĂŒberraschend praktischem Feature

Hui, bei Thunderbird erwartet man zwar einen soliden Mail-Client, aber nicht unbedingt Usability oder gar kleine Feature-Innovationen - bei der neuen Suche ist das ja beides nicht wirklich gelungen und Text kopieren im Adressbuch ist noch immer schwer.

Aber: Thunderbird erinnert an Attachments, welche man ggf. anfĂŒgen wollte, aber das noch nicht getan hat.


Tech 13. Oct. 2010

JW Player released

Nun ist es soweit - der berĂŒhmte JW Player ist als Duallösung fĂŒr Flash und HTML5 released: http://www.longtailvideo.com/players/jw-flv-player/


Life 6. Oct. 2010

Bloggen per iPhone

So - dazu hat man also moderne Handys. Dass man sich darĂŒber freut ĂŒberall bloggen zu können aber nicht weiß, was man schreiben soll.


Tech 17. Sep. 2010

TYPO3: cropHTML

Die Funktion cropHTML kĂŒrzt Texte und behĂ€lt dabei korrektes HTML bei. Das ist genau die Funktion, welche man fĂŒr automatisch Teasertexte benötigt. Bisher haben wir hier eine eigene Funktion genutzt. cropHTML kann einfach per StdWrap genutzt werden. Super!


Tech 15. Sep. 2010

JW Player wird ein unified HTML5- und Flash Player

JW PLAYER 5.3 BETA. HTML5 & JAVASCRIPT SUPPORT:

“The next release of JW5 is going to be a big one. JW Player 5.3 introduces a unified model for working with Flash and HTML5. How? We’ve taken our Flash & HTML5 players and rolled them together, giving them a single JavaScript API and skinning model. JW Player 5.3 will deliver on the promise of “embed once, run anywhere.”

Genau das wan man möchte: Ein Versprechen, dass es ĂŒberall lĂ€uft. Somit kann man die ganzen How-Tos und Tutorials aus T3N und Internet vergessen und wie auch vor dem iPhone wieder den JW Player nutzen. Gut, dass es auch Konstanten im Internet gibt.


Tech 9. Sep. 2010

Priority Inbox

Endlich ist sie da. Seit ein paar Tagen erwarte ich schon, dass das Rollout der Priority Inbox von Google Mail bei mir ankommt und nun ist es geschenen. Toll!


Tech 27. Aug. 2010

cufón: Individuelle Schriften auch auf Apple GerÀten

Seit lĂ€ngeren verwenden wir cufĂłn fĂŒr die Nutzung von individuellen Schriften auf Websites. Wir haben zunĂ€chst auch sIFR in ErwĂ€gung gezogen, eine Lösung per Javascript und Flash - diese scheint aber etwas langsamer im Rendering zu sein und fĂŒr die Erzeugung der Schriftdateien muss man Flash verwenden. Dagegen spricht ebenfalls, dass Apple fragwĂŒrdige Strategie gegen Flash, den Einsatz von sIFR auf iPhones oder iPads verhindert. cufĂłn kann hier Punkten und unterstĂŒtzt das iOS. KĂŒnftig könnte man auch Google Fonts in ErwĂ€gung ziehen. Allerdings ist die Auswahl an Schriften sehr mager und kann nicht individuell mit lizenzpflichtigen Schriften genutzt werden. Zudem sieht das Rendering derzeit noch sehr pixelig aus. Also derzeit ein klares Pro cufĂłn.


Tech 21. Aug. 2010

TYPO3: Real URL genau erlÀutert

Sprechende URLs sind bei weitem kein neues Thema und auch Real URL (oder eine entsprechende Alternative) kommt in jedem Projekt zum Einsatz. Aber gerade wenn es um eine semantische und Suchmaschinen-optimierte URL-Generierung auch fĂŒr komplexe Parameterkombinationen oder Records geht, muss man sich die Konzepte nocheinmal detaillierter ansehen. Ein sehr gut erlĂ€uternder Beitrag von Dmitry Dulepov ist hier zu finden.


Tech 21. Aug. 2010

Drupal/TYPO3: Facebook Connect und Co.

Druapl als klassische User Generated Content Management System hat in der Modulbreite natĂŒrlich einiges fĂŒr den Social Network Bereich zu bieten. So z.B. ein Facebook Connect Modul, auch wenn dieses noch im Dev-Status ist. In KĂŒrze werde ich dieses mal evaluieren und hier berichten. Aber auch fĂŒr TYPO3 sind Extensions verfĂŒgbar - allerdings mit mageren Usage Zahlen. Aber auch hier steht eine Evaluierung an. Ein Facebook Login fĂŒr eine einfache Kommentarfunktion ist schon eine Klasse Sache. Besser noch wĂ€re natĂŒrlich die ganze Palette mit Login an der Website, Facebook Connect, Twitter Login etc. wie es z.B. bei Future of Web Strategy realisiert ist.


Tech 25. Jun. 2010

Chrome - ein schneller und guter Browser

Vermutlich wird Chrome in der Verbreitung noch eine Weile ein Schattendasein fĂŒhren. Aber nach einigen Wochen intensiver Nutzung ist es ein durchaus guter, schneller und wunderbar nutzbarer Browser. Keine ĂŒberfĂŒssige Trennung mehr zwischen URL- und Suchfeld, viele viele Extensions inkl. Web Developer Tools, SEO Tools, Scribefire, Twitter- und Facebook Sharing u.v.m.


Post 25. Apr. 2010

Website Performance Optimierung - Fokus Frontendoptimierung

inline-left-small

TYPO3 Camp Berlin / Potsdam 2010

Die Performance ist ein wesentlicher Faktor fĂŒr den Erfolg einer Website. Viele Aspekte der Performance spielen sich im Frontend ab und weniger in der Anwendungsentwicklung oder der Serverinfrastruktur. In einem Vortrag auf dem TYPO3 Camp Berlin/Potsdam 2010 gibt Jan-Henrik Hempel einen Überblick zum Thema “Website Performance Optimierung” mit dem Fokus auf Frontendoptimierung und erlĂ€utert die wesentlichen Maßnahmen.

read more

Tech 16. Apr. 2010

TYPO3: T3BLOG

Das T3BLOG ist eine recht umfangreiche Blog-Extension. Sie hat einfachere Eingabemodule im Backend, verschiedenste Frontendanzeigen und vor allem: Sie unterstĂŒtzt Features wie Blogroll, Trackback, Ping usw. Allerdings arbeitet die Extension mit vollkommen eigenen Tabellen und Modulen und somit leider recht weit von den Kernstrukturen von TYPO3 entfernt. Dadurch ist auch die Codemenge sehr umfangreich, wobei viele Strukturen und Funktionen eigentlich schon vorhanden sind. Der Umfang und die FunktionalitĂ€t sieht auf den ersten Blick aufgerĂ€umter als bei TIMTAB aus, allerdings ist das Kernkonzept Ă€hnlich wie bei tt_news nicht das, was ich mir wĂŒnschen wĂŒrde.


Tech 16. Apr. 2010

TYPO3: Flexible Tagging Extension

Die TYPO3 Extension Tag Pack bietet eine flexible Möglichkeit TYPO3 Inhalte beliebiger Tabellen zu taggen. Gerade die UnabhĂ€ngigkeit der Tabellen macht sie attraktiv. In der Standardkonfoguration sind zunĂ€chst “pages” und “tt_content” aktiviert. Das Tagging erfolgt ĂŒber die einfache Eingabe in ein AJAX-Feld. Ist das Tag noch nicht vorhanden, wird es einfach angelegt. Sind passende Tags zur Eingabe vorhanden, erscheint eine Live Search unter der Box. Von Drupal und anderen Blog Tools ist man sowas gewöhnt - fĂŒr TYPO3 ist das eine kleine Revolution und lĂ€sst das Tagging vielleicht endlich in die TYPO3-Welt einziehen. Die Tags können ĂŒber das Listenmodul verwaltet werden - oder ĂŒber ein sehr eigenartiges Backend-Modul. Die Extension brigt noch eine Tagclound und eine Liste von EintrĂ€gen mit. Also im Grunde erstmal das, was man braucht. Toll ist, dass sich durch die UnabhĂ€ngigkeit von den Tabellen die eigenen Konzepte - wie z.B. semantische Seitentypen als GrundentitĂ€ten - einfach durch das Tagging ergĂ€nzen lassen.


Tech 16. Apr. 2010

Logitude/Latitude Marker and Tooltip fĂŒr Google Maps

Google Maps bietet fĂŒr den User zusĂ€tzliche Tools. Eines ist bspw. ein Logitude/Latitude-Marker, ein anderes ein Logitude/Latitude-Tooltip. Besonders geeignet sind solche Tools fĂŒr Webredakteure, die im Backend von TYPO3 oder Drupal direkt die Geodaten eingeben mĂŒssen - welche aber natĂŒrlich kein Normalsterblicher kennt oder aus dem Stehgreif heraus findet.


Post 28. Jan. 2010

Workshop - Die Indexed-Search-Alternative Lucene in TYPO3 integrieren

inline-left-small

t3n Magazin Nr. 17, 09/2009 - 11/2009

Compared to indexed search, the Lucene-based TYPO3 search described here achieves a significantly higher speed in load tests. The effort for the basic setup of Lucene as a TYPO3 search is quite low. More complex, however, is the implementation of special functions, such as the consideration of user authorizations, the use of “Boost Factors” and extended search functions. However, Lucene offers a lot of potential as a search engine and the implementation tasks do not refer to the development of optimized algorithms for indexing and searching, but to the application logic. This is a significant difference, as no technology risks are to be expected in the development here.

read more

Tech 28. Jan. 2010

ZK mit tollen Modulen

Das ZK Framework hat in unsere Projekten bereits seine StĂ€rken und seine SchwĂ€chen zeigen können. Letztere liegen insbesondere in der Performance und der Cross-Browser-KompatibilitĂ€t, wobei letztere zumeist auch eher ein Performanceproblem ist. So sind mittelmĂ€ĂŸig aufwĂ€ndige OberflĂ€chen in normalen Browsern wie IE7 oder Firefox 3 nur passabel nutzbar. Im IE6 mag man gar nicht mehr irgendwo klicken. Im Safari 4 oder IE8 hingegen, geht alles relativ flot - vermutlich wegen der dort neu eingebauten JavaScript Engines, welche primĂ€r auf Geschwindigkeit hin optimiert wurden.

Sollten die Probleme also die Einsetzbarkeit nicht ĂŒberwiegen, kann man sich auf viele spezielle Controls freuen. Besonders bemerkenswert finde ich die Spreadsheet Komponente, mit Rendering von Diagrammen, Formeln usw. Entsprechende Komponenten im Open Source Bereich sind nicht allzu weit verbreitet. Ebenfalls sehr schön und umfangreich ist die Kalender Komponente, welche irgendwie durch den Minimalismus und das hellblau an Google erinnert.

Ich bin gespannt, wo wir die Komponenten mal einsetzen werden.


Tech 28. Jan. 2010

Adobes BrowserLab ist nun online

Als Alternative zu Litmus oder vielfĂ€ltigen Systeminstallationen kann nun auch Adobes BrowserLab genutzt werden. Meine ersten Versuche waren durchaus gut, die Tests laufen recht schnell durch, sodass man nicht lange auf seine Testergebnisse warten muss. Die Browservielfalt ist allerdings recht ĂŒberschaubar - die wichtigsten Kandidaten wie IE6 und IE8 sowie lĂ€tere Firefox Browser sind allerdings verfĂŒgbar. Hier geht’s weiter: https://browserlab.adobe.com/.


Tech 30. Jun. 2009

Neuer Browser: Safari 4

Ein Hoch auf die Browservielfalt: Es gibt eine neue Safari Version 4. Die Highlights: CSS 3 Webschriften, SVG-UnterstĂŒtzung, Nitro JavaScript-Engine (soll schnell sein), spannende Entwicklerwerkzeuge u.v.m.

Bleibt nur zu hoffen, dass die Safarinutzer sich weiterhin Ă€hnlich wie die Operanutzer verhalten und recht zĂŒgig ihre Versionen aktualisieren und die Vielfalt nicht noch steigt. Mein Appell: Seid Vorbilder fĂŒr die MS Community und nutz eine und nicht drei Browserversionen gleichzeitig. Da man sich darauf aber nicht verlassen kann, werden Tolls wie Xenocode immer wichtiger (Danke an MH).


Tech 25. Jun. 2009

TYPO3: Index-Einstellungen im TypoScript Setup

Kleine Erkenntnis: Die Index-Einstellungen im Setup mĂŒssen in config UNTERHALB von page stehen! Und natĂŒrlich NICHT in page einer Druckansicht oder einer Feed-Ausgabe. Ansonsten landen diese Ansichten alle im Suchindex.

page {
	config {
		index_enable = 1
		index_externals = 1
	}
}


Tech 24. Jun. 2009

phpDocumentor fĂŒr Eclipse

Zur Doku von PHP-Code ist die klassische phpDoc-Dokumentation am eingÀngigsten. Per phpDocumentor kann aus dieser Dokumentation im Code eine HTML-Doku erstellt werden. Hier gibt es eine einfache Anleitung, wie man das ganze in Eclipse verwendbar macht.


Post 12. Jun. 2009

TYPO3: Lucene vs. Indexed Search - Ein Performancetest

Nun ist die mitunter schlechte Performance der Indexed Search nicht mehr nur ein Verdacht, sondern bewiesene Tatsache. Um fĂŒr sehr umfangreiche TYPO3-Seiten noch eine gute Performance einer Volltextsuche gewĂ€hrleiten zu können, mussten wir zum einen Fakten schaffen, um die Probleme einschĂ€tzen zu können. Und da die Bedenken auf der Hand liegen, haben wir gleich die PHP Lucene auf Basis der Powersearch Extensions in den Test mit einbezogen.

read more

Tech 11. Jun. 2009

Google Maps Performance - Cubes als mögliche Lösung

Zum letzten Artkel wurden mir als alternative Lösungsmöglichkeit mehrmals die Geo Cubes (www.geocubes.com) von skilldeal empfohlen. Das besondere an den Cubes ist vor allem das Clustering, d.h. hier werden Massen an Geo-Punkte je nach Zoomstufe zu Clustern zusammengefasst und dem User angezeigt, dass dort weitere EintrÀge beim nÀheren Heranzoomen zu sehen sind. Klasse! Ein Beispiel ist direkt auf der o.g. Website zu sehen.

Und noch ein Nachtrag:  Den auch die Google Maps API selbst bietet weitere Optimierungsmöglichkeiten. Dieser kann man sagen, dass z.B. nur Punkte welche im aktuellen Viewport auch sinchtbar sind, gerendert werden. Dies sollte die kritischen Lastgrenzen nocheinmal deutlich entschÀrfen. Ein entsprechendes Proof of Concept steht noch aus - aber auch an.


Tech 22. May. 2009

Google Maps Performance - ein Test

Entgegen dem Stand vor wenigen Jahren ist Google Maps sehr belastbar und stabil geworden. Um die Möglichkeiten und Grenzen fĂŒr den Einsatz etwas besser einschĂ€tzbar zu machen, habe ich einige Tests gemacht.

Zur Erzeugung von vielen Punkten auf einer Map verwendete ich dazu einen “Random Point Generator” (http://www.geomidpoint.com/random/). Hiermit kann man große Mengen an Punkten erzeugen und in Google Maps darstellen. Allerdings wird hier kein HTML-Code fĂŒr die Beschreibung des Punktes mitgeliefert. Getestet habe ich auf einem recht schnellen Desktop Rechner mit aktuellen Browsern, auf einem aktuellen mittelmĂ€ĂŸig schnellem Notebook und einem alten Rechner mit dem Internet Explorer 6.

read more

Tech 5. May. 2009

TYPO3: Workspaces - Teaserlisten, Bildvorschau und weitere Kinderkrankheiten

Die TYPO3 Workspaces sind fĂŒr die Trennung von redaktionellen Arbeiten und dem letztlichen Publizieren eine sehr gute Idee - jedoch gibt es im Detail noch eine Reihe von technischen Problemen und scheinbar auch Bugs in TYPO3. Hier einige Punkte und deren Lösungen:

<!–break>

  • FĂŒr Teaserlisten - welche wir gewöhnlich mit TYPO3 MenĂŒs erstellen - verwenden wir je nach Anforderung hĂ€ufig das HMENU mit special = list, worin wir dann eine UID-Listen von Seiten ĂŒbergeben. Das HMENU löst bei special = list allerdings nicht die Workspace Versionen bzw. das Version Overlay auf. Das fĂŒhrt dazu, dass man solche Teaserlisten im Draft Workspace zwar anlegen kann, aber die Vorschau je nach Versionszustand der Zielseite falsche Teaser anzeigt. Wir haben die Stelle per XCLASS angepasst. (TYPO3 Bugtracker 0010901: HMENU with special = list does not use versionOL)
  • Ebenfalls fĂŒr solche Teaserlisten aber z.B. auch fĂŒr andere Zwecke nutzen wir zusĂ€tzliche Bild-Attribute in den Seiteneigenschaften (genau wie das Feld wie Media). Leider werden die DAM Referenzen zur Tabelle pages nicht entsprechend ihrer Workspace Versionen aufgelöst und auch hier kommt es folglich zu Problemen. (TYPO3 Bugtracker 0010902: dam references of page attributes do not work with workspaces)
  • Bei der Verwendung von Bildern und Dateien im Draft Workspace kommt es zu dem PhĂ€nomen, dass die Seitenvorschau nur bereits Live publizierte Bilder oder Dateien anzeigt. Laut TYPO3 Bugtracker soll das Problem bereits behoben sein, aber bei uns treten die Probleme noch auf. Neuigkeiten folgen! (TYPO3 Bugtracker 0007344: DAM does not preview correct files in workspaces)

Evtl. sind die Workspace nicht hĂ€ufig bei grĂ¶ĂŸeren Websites im Produktivbetrieb - jedenfalls scheint es noch einige “Kinderkrankheiten” zu geben.


Post 2. Mar. 2009

Single-Source-Publishing mit Open Source - Alfresco-Kopplung an TYPO3

inline-left-small

t3n Magazin Nr. 15, 03/2009 - 05/2009

When the Berliner Philharmoniker were due to integrate a document solution and relaunch their website, there was a great deal of overlap in the content to be managed. In order to no longer have to maintain these multiple times, the decision was made in favor of an open source single-source publishing solution. The basis is Alfresco as the leading content source, TYPO3 is one of the possible output media.

read more

Tech 11. Feb. 2009

TYPO3: Das "No Temlpate found!" Problem

Offensichtlich gibt es das Problem durchaus hĂ€ufig, dass beim zweiten Laden einer Seite ein fröhliches “No Temlpate found!” erscheint. Das ganze hat was mit dem Zeichenencoding der Datenbank beim Cachen von Template Records zu tun. Hierzu gibt es verschiedenste Bugreports und Lösungsversuche, von wilden Umkodierungen der Datenbank bis hin zu Patches mit base64 Encoding.

Bei uns (ohne Patch) geholfen hat folgender beitrag: http://bugs.typo3.org/view.php?id=6006#c15411

Anstatt:

SET NAMES utf8
SET CHARACTER SET utf8

nur

SET NAMES utf8

verwenden (TYPO3 Version 4.2.1 und 4.2.5).

read more

Tech 9. Feb. 2009

TYPO3: Indexed Search Performance unter Verdacht

Die berĂŒcktigten Performanceprobleme der Indexed Search sind mittlerweile offiziell unter “Verdacht” - in der Extensiondokumentation der Indexed Search wird dieser Aspket auch unter den “Known Problems” aufgehĂŒhrt.: http://typo3.org/documentation/document-library/extension-manuals/doc_indexed_search/4.2.1/view/1/9/

Probleme mit der Suchperformance sind mir in mehreren Projekten unter gekommen. BeeintrĂ€chtigend werden diese Probleme scheinbar bei Webseite mit sehr vielen Inhalten und einen entsprechend großen Suchindex. Dies deckt sich auch mit den in der o.g. aufgefĂŒhrten Punkten. Zudem scheint es so, als ob die Anzahl der maximalen Ergebnisse die Performance beeinflussen (doch die Anzahl kann man eigentlich nicht herunter setzen, wenn viele Inhalte vorliegen). In letzterem Fall stellte sich auch heraus, dass der Wortindex langsamer ist als der Volltextindex (was der Zielsetzung dieser Mechanismen entgegen lĂ€uft).

Mögliche Optimierungen der Suchperformance könnten folgende sein:

read more

Tech 16. Jan. 2009

ncftpput -R

FĂŒr Dummys interessant - ein gesamtes Verzeichnis per FTP auf einen Server spielen! Von Server zu Server kann das sogar schnell gehen.

ncftpput -u [username] -p [password] -R [host] . *


Tech 2. Jan. 2009

Drupal: Lesbare URLs

Auch Drupal kann wie TYPO3 “lesbare URLs” erzeugen. Eine nicht sehr schöne Variante davon ist hier allerdings Systemstandard und funktioniert out-of-the-box. Zu beachten ist allerdings, dass die RewriteEngine noch aktiviert und konfiguriert werden muss. Der Drupal-Artikel hierzu beschreibt das ganze recht gut. Blöd ist nur, wenn die angeblich mitgelieferte .htaccess-Datei fehlt, wie es in meinem Package der Fall war.

Diese kann aber schnell mit folgendem Inhalt angelegt werden und alles ist gut.

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]


Tech 2. Jan. 2009

Drupal: Google Analytics

So einfach kann’s sein: Das Modul “Google Analytics” kann einfach installiert werden und fertig. Man gibt dann noch schnell den UA-Code ein und damit ist das Tracking aktiviert.

Was mir dabei sehr gefĂ€llt: Die Beschreibungen und Anleitungen zu dem Modul sind sehr ausfĂŒhrlich und detailliert (auch auf Deutsch) geschrieben. Eine solch schöne ErlĂ€uterung zu einer CMS-Extension wĂŒnscht man sich bei TYPO3 öfter.

Ist das hier bei Drupal eine andere Philosophie oder nur bei diesem Modul ein GlĂŒckstreffer? Wir werden es erleben.


Tech 12. Dec. 2008

Kritische Aspekte bei eCards und Tip-a-Friend

Funktionen wie eCards und Tip-a-Friend sind rechtlich aus zwei Gesichtspunkten her nicht ganz einwandfrei und bieten immer das Risiko von rechtlichen Auseinandersetzungen. Im Folgenden eine knappe (laienhafte) Zusammenfassung - ohne konkrete Quellenbelegung oder Anspruch auf Korrektheit etc.

read more

Tech 5. Dec. 2008

TYPO3 goes OpenID

Mit der 4.3er Version (voraussichtlich im Februar oder Maerz 2009) gibt es nun eine native Unterstuetzung von OpenID - und das fuer das Backend un das Frontend. Ich bin gespannt!

Und fuer besorgte bzgl. der Ankuendigung, dass HTMLarea keinen Support mehr bietet - In der Version 4.3 ist der Editor in aktualisierter Form noch enthalten.


Tech 5. Dec. 2008

OpenEMM

Viel habe ich mir noch nicht angesehen, aber offensichtlich ist OpenEMM eine weitqus professionellere Newsletter Loesung als Direct Mail. Vermutlich sollte man die Software mal testen. Und eine Integration in TYPO3 gibt es auch schon mit der Extension TE Openemm Newsletter (te_openemm_newsletter).


Tech 2. Dec. 2008

Thunderbird: Select Address Book Text 1.0

Thunderbird beweist wieder einmal, dass auch schlechte Software einsetzbar gemacht werden kann. Man kann es bewerten wie man will, dass es ein solches Add-On geben muss - aber ohne das kann man eigentlich nichts mit Thunderbird anfangen. Download now!


Tech 18. Nov. 2008

TYPO3: Media Center mit Podcast

Das Media Center kann ein Inhaltelement - also einen Player mit Playlist - als XML exportieren.

Über den Syntax

http://www.domain.de/index.php?type=66&amp;playerUid=[tt_content Uid] 

wird die Playlist des angegebenen Inhaltelements als XML ausgegeben. Eine PageUid ist dabei nicht nötig. Der Type 66 ist die Standardkonfiguration und kann per Constant Editor verĂ€ndert werden. FĂŒr einen schöneren Link, kann RealURL entsprechend konfiguriert werden.

Das Media Center bietet drei verschiedene Feed Formate an: XSPF, RSS+Media und RSS+iTunes. Die letzteren beiden Formate sind RSS 2.0 Feeds. Die o.g. URL zur XML Ausgabe muss dann noch in die Headerdaten der Seite eingefĂŒgt werden. Das geht wie gewohnt ĂŒber einen link-Tag in den headerData.

# Podcast XML
page.headerData.1 = TEXT
page.headerData.1.value = <link rel="alternate" type="application/rss+xml" title="RSS 2.0" xhref="http://www.domain.de/index.php?type=66&amp;playerUid=[tt_content Uid]"> 

Sinnvoll ist es diesen Eintrag in der Datenbank am Template Record zu vermerken, soweit die Uid zum Inhaltelement hierin enthalten ist. Diese kann natĂŒrlich auch ĂŒber Konstanten ausgelagert werden.

Problematisch bleibt wie bei allen Podcasts die Auswahl der richtigen Audio- und Videoformate. FLV ist das beste Format fĂŒrs Web, dies kann aber kaum ein normaler Client Rechner abspielen. MOV, MP2 oder MP4 Dateien kann man per Default ĂŒber das Media Center gar nicht hochladen - diese wĂ€ren fĂŒr die Verwendung in einem Feed aber besser als FLV.

Nebenbei zum Media Center: Ein Blick in den Constant Editor lohnt sich, denn hier können die Darstellungseigenschaften wir Farben, Icons, Autoplay etc. voreingestellt und an das Design der Website  angepasst werden. Ein tolles Feature ist das “Logo”. Hier kann man ein PNG ĂŒber das Video legen - ganz wie im Fernsehen.


Tech 11. Nov. 2008

TYPO3: Static File Cache Killer

So, natĂŒrlich geht ein statisches Caching nur solange, wie auch statische Inhalte vorliegen - wer hĂ€tte das gedacht. Ein echter Killer hierfĂŒr ist z.B. ein Counter von irgendwelchen EintrĂ€gen, der ĂŒberall auf der Seite sichtbar ist. Dieser muss natĂŒrlich immer aktuell sein. Folglich kann aber keine einzige Seite statisch erzeugt werden:

page has INTincScript.


Tech 10. Nov. 2008

TYPO3: Mehr Performance mit Static File Cache und Scriptmerger

Neben dem Ausnutzen der TYPO3 Caching Mechanismen und dem Datenbanktuning sind noch einige Dinge möglich. Das Motto dabei ist “back to the roots” - an den Browser sollen möglichst wenige und kleine Dateien ausgeliefert werden und fĂŒr die Auslieferung sollen möglichst wenige Systemdienste bemĂŒht werden.

Praktisch heißt das: es werden statische HTML Dateien und möglichst wenige zusĂ€tzliche Dateien (CSS, JavaScript) ausgeliefert.

Erledigt werden diese beiden TĂ€tigkeiten von den wunderbaren Extensions Static File Cache (nc_staticfilecache) und CSS/JS Merger (scriptmerger).

Mein PlÀdoyer: Diese beiden Extensions sollten in jedem Projekt eingesetzt werden.


Tech 10. Nov. 2008

Firefox: Cooliris macht aus der Google Bildsuche eine Slideshow uvm.

Super dieses Firefox Pugin: Bisher fand ich die Google Bildersuche immer recht grausam - zu viele Klickt fĂŒr zu schlechte Ergebnisse. Doch mit Cooliris wird aus dem Suchergebis eine Slideshow mit den Großformatbildern. So muss man nicht mehr auf jedes Bild klicken, schlechte Webseiten besuchen und dann wieder das Bild klicken bis man sieht, ob es einem gefĂ€llt.


Tech 30. Oct. 2008

Zwei Hintergrundgrafiken mit CSS 2

GrundsÀtzlich kann man aktuell nicht zwei Hintergrundgrafiken gleichzeitig verwenden - CSS 2 gibt das an sich nicht her (in CSS 3 ist das glaube ich schon anders). Aber was wÀre die Webentwicklung ohne kleine Work-Arounds.

Man kann eine Grafik wie gewohnt auf den Body-Tag setzen und eine zweite per CSS einfach auf den HTML-Tag. Man muss hier ggf. die Höhe und Breite des HTML-Tags ebenfalls angeben, aber das war es auch schon. So kann z.B. ein gekacheltes Muster als Basis verwendet werden und z.B. ein Bild- oder Fotomotiv an einer bestimmten Stelle per background-position gesetzt werden.

Und man staune: Das funktioniert einwandfrei sogar noch im Internet Explorer 6.


Tech 22. Oct. 2008

TYPO3: Media Center als FLV-Player

Die Media Center Extension (media_center) verwendet den bekannten und bewĂ€hrten JW-Player und funktioniert einwandfrei ohne zusĂ€tzlichen Aufwand. Sehr schön. Schade ist, dass aufgrund einer Playlist-Funktion immer extra Records fĂŒr die Videos angelegt werden mĂŒssen und das nicht direkt beim EinfĂŒgen des Plugins möglich ist - aber damit lĂ€sst sich leben. Zudem muss man beim Testen aufpassen: Das Plugin funktioniert nicht im Preview-Modus einer Seite (welche auf hidden gestellt ist), da hier die generierte XMLS-Datei fĂŒr den Flash Player durch den bekannten roten Preview-Vermerk von TYPO3 zerstört wird - hier also nicht wundern.


Tech 21. Oct. 2008

mySQL Query Cache - eine Kurzanleitung fĂŒr Lesefaule

PĂŒrfen, ob der Query Cache verfĂŒgar ist (sollte YES sein):

SHOW VARIABLES LIKE 'have_query_cache';

Anzeige der aktuellen GrĂ¶ĂŸe des Query Cache (sollte mind. 40KB sein):

SHOW VARIABLES LIKE 'query_cache_size';

Anzeige des Modus (sollte ON oder 1 sein):

SHOW VARIABLES LIKE 'query_cache_type'

Setzen des Query Cache:

SET GLOBAL query_cache_size = 1000000;

Mehr Infos: http://dev.mysql.com/doc/refman/5.0/en/query-cache-configuration.html


Tech 21. Oct. 2008

GeoDaten auf Webseiten - eigentlich nichts neues


 aber es stellt sich eben doch die Frage, wie man es macht, dass moderne Kartenanwendungen auch nach Web 2.0 aussehen und Spaß machen. Hier einige Beispiele aus dem Internet:

Eine Demoanwendung die eine AJAX Live-Search mit GoogleMaps kombiniert: http://www.vivid-planet.com/sandkiste/google_maps_autocompleter/

Von der gleichen Website eine kleine Anwendung, welche die Geo-Koordinaten zu einem Kartenpunkt heraussucht und dem Nutzer ermöglicht, die Position des Punktes manuell zu verschieben, was hÀufig nötig ist, wenn die Hausnummern falsch angezeigt werden: http://www.vivid-planet.com/sandkiste/google_maps_koordinaten/

PHP Scripte fĂŒr eine Umkreissuche auf Basis von OpenGeoDB: http://www.mprobst.de/OpenGeoNearestNeighbours/


Tech 27. Sep. 2008

SPAM: Bei Yahoo als Spam erkannte E-Mails “sĂ€ubern”

Die großen Mailprovider - insbesondere die Freemailer - bemĂŒhen sich korrekter Weise um recht restriktive Spam Filter. Dabei kommt es allerdings auch vor, dass der ein oder andere “saubere” Server als Spam-Mailer “erkannt” wird. Letztlich ist dies mit einem Kundenserver bei Yahoo! vorgekommen und sowohl vom Server versendete E-Mails (RegistrierungsbestĂ€tigungen, Notifications etc.) als auch ganz regulĂ€re E-Mails von einem Mailprogramm aus verschickte sind allesamt als Spam/Bulk erkannt worden.

Wenn Verzweiflung naht, kann man folgende Formulare von Yahoo verwenden. Hier kann man Server und Services fĂŒr eine ÜberprĂŒfung und Freischaltung anmelden.

http://help.yahoo.com/l/us/yahoo/mail/postmaster/forms_index.html

Im o.g. Fall gab es scheinbar sogar eine Besserung - allerdings sollte man nicht auf die angekĂŒndigte Antwort von Yahoo warten - im Zweifelsfall wird diese nĂ€mlich nicht kommen 
 oder im Junk Ordner landen. ;-)


Tech 27. Sep. 2008

Komplettbackup von Shared Hosting Paketen

Wer kennt das nicht: eine Ă€ltere Website liegt bei irgendeinem Hoster, wo man ohne weiteres nur einen FTP-Zugang hat. Um die Daten nun zu sichern oder auf einen anderen Server umzuziehen, möchte man aber vermeiden, alle Dateien ersteinmal herunterzuladen, um sie dann ggf. wieder auf einen anderen Server hochzuladen. Gerade wenn es um große Datenmengen geht kann das extrem zeitaufwĂ€ndig und vor allem auch fehleranfĂ€llig sein.

Ein kleiner Trick ist ein folgender: Auf dem Zielserver einfach ein rekursives wget mit “wget -r” aufrufen und als Ziel den FTP-Zugang mit entsprechenden Verzeichnisangaben eintragen:

wget -r ftp://username:password@domain.com/directory/

Das wirkt Wunder!


Tech 27. Sep. 2008

Individuelle Schriften auf Websites per sIFR

Eine interessante Technologie ist das sIFR - hier werden Schriften mit einem generischen Flash Modul auf dem Client angezeigt, auch wenn dort die gewĂŒnschte Schriftart nicht vorhanden ist.

Aber kann man hierzu nicht auch einfach serverseitig Grafiken rendern? TYPO3 macht das einfach möglich.


Tech 5. Sep. 2008

Netscape ist tot

“Official End of Support: Given AOL’s current business focus and the success the Mozilla Foundation has had in developing critically-acclaimed products, we feel it’s the right time to end development of Netscape branded software. Read the history page for more details about this decision.” (http://browser.netscape.com/)

Ein wenig wehleidig wird da schon, wenn man die einfachen alten InternetanfĂ€nge denkt, wo Netscape das Licht am Horizont war. Aber “Angst” um die Browservielfalt muss man ja nicht haben, wenn nun auch Google anfĂ€ngt Browser bauen zu wollen. ;)


Tech 27. Jun. 2008

Drupal: Module VIEWS und CCK als Beta verfĂŒgbar

Die beiden Module VIEWS (zur einfacheren Erstellung individueller Listen und Ansichten von Inhalten) und CCK (zur Erstellung eigener Content Types) sind seit kurzem beide als Beta-Versionen fĂŒr Drupal 6.x verfĂŒgbar. Dann mal auf einen Test 



Tech 27. Jun. 2008

Animiertes favicon

Man lernt nie aus. Offensichtlich ist es möglich als Favicon auch eine Animation einzusetzen. Zuerst gesehen habe ich das hier www.q-wert.net.

Hier wird nicht nur das klassische favicon.ico angegeben, sondern zudem auch ein gif (animiert mit 16×16 Pixel).

<link rel=“shortcut icon” href=“/favicon.ico” type=“image/x-icon” />
<link rel=“icon” href=“/favicon.gif” type=“image/gif” />


Tech 23. Jun. 2008

TYPO3: Abstract Tree Control

Die Extension Graytree Library (graytree) verspricht abstrakte Methoden bereit zu stellen, welche es ermöglicht in eigenen Extensions Tree Controls einfach einzusetzen. Mal sehn, ob das auch so einfach geht, wie man sich das erhofft 



Tech 11. Jun. 2008

UTF-8 kodiertes mySQL Dump importieren

Manchmal kann man Dumps nur ĂŒber unterschiedliche Tools dumpen und importieren. Klassisch: Export per phpMyAdmin (weil es keinen Shell-Zugriff gibt) und Import per Command Line auf Linux. Dabei entstehen dann je nach Tool, Website-Encoding, Datenbankencoding und Encoding des lokalen Systems wo das SQL zwischengespeichert wird komische Encoding-Fehler.

Liegt das Dump bspw. als UTF-8 vor, muss beim Import darauf geachtet werden, dass entweder das Default Encoing der importierenden Datenbank auf UTF-8 gestellt ist (zumeist ist das nicht der Fall) oder das Character Set muss beim Import einfach mit angegeben werden.

less typo3db.sql | mysql –default-character-set=utf8


Tech 30. May. 2008

Test von HTML Newslettern

Die korrekte Darstellung von HTML-Newslettern ist grundsĂ€tzlich ein Problem - man erstellt ja einmal das HTML und verschickt dieses an unbekannte Clients. Wo man im Web noch Browserweichen einsetzen kann, ist man bei E-Mail auf eine vollstĂ€ndige KompatibilitĂ€t angewiesen. Durch die EinfĂŒhrung von Outlook 2007 hat sich das Problem nochmal potenziert und artet bei anspruchsvollen Designs in einen Alptraum aus. Man muss nicht nur HTML anno 1998 schreiben - sondern auch dort noch EinschrĂ€nkungen in Kauf nehmen.

Wie schlimm das auch ist, muss man sich damit auseinandersetzen. Ein hervorragendes Werzeug ist der Service Litmus. Mit Litmus können KompatibilitĂ€ts-Tests mit Webbrowsern und E-Mail-Clients durchgefĂŒhrt werden. Beim Mail Test versendet man den zu testenden Newsletter an eine von Litmus erzeugte temporĂ€re Adresse und der Service erzeugt fĂŒr die zuvor gewĂ€hlten Clients (derzeit 13 mögliche) Screenshot in verschiedenen Varianten. Wenn man ĂŒberlegt, dass man ansonsten alle Clients selbst installieren mĂŒsste (man bedenke auch die Lizenzkosten fĂŒr alle Outlook Versionen), dann ist Litmus Gold Wert - und Geld kostet es ja auch.


Tech 19. Apr. 2008

Alfresco: MS Office Integration Add-In (Office 2007)

Das Alfresco Add-In fĂŒr Office unter MS Office 2007 scheint nicht zu funtionieren. Jedenfalls ließ sich das Add-In maximal bis in die Liste der deaktivierten Add-Ins bekommen - zum Aktivieren gab es leider keinen Weg. Möglicherweise liegt es auch nur an der Testversion. Weiß jemand mehr?


Tech 30. Mar. 2008

PHP: UTF-8 Detection

Ein leidiges Thema - man erhĂ€lt irgendwoher einen String oder einen Text - z.B. aus Textdateien, CSV-Dateien oder RSS-Feeds - und weiß leider nicht immer sicher, um welches Encoding es sich handelt. Das kann insbesondere ein Problem sein, wenn das einzige was man sicher weiß die tatsache ist, dass verschiedene Encoding vorliegen - z.B. eine Import-Datei in ISO1 und eine andere in UTF-8.

Die Multibyte String Functions können hier weiter helfen. Die Funktion mb_detect_encoding() gibt bspw. das Encoding zurĂŒck. Allerding nicht immer korrekt. Es sollte also immer der dritte Parameter “strict” auf “true” gesetzt werden. Das fĂŒhrt zwar z.T. dazu, dass kein Encoding ermittelt wird, aber das ist im Zweifel immer noch besser, als ein falsches Encoding.

Benötigt man nur eine PrĂŒfung auf ein bestimmtes Encoding, kann dies mit der Funktion mb_check_encoding() geprĂŒft werden. Wird das Encoding nicht erkannt, kommt einfach ein “false” zurĂŒck. Das ist vor allem hilfreich, wenn man z.B. nur UTF-8 gebrauchen kann und im Zweifel alles andere durch ein uft8_encode() schickt.


Tech 26. Mar. 2008

TYPO3: baseURL serverspezifisch in der localconf.php

Endlich geht es - die baseURL genau dort anzugeben, wo sie hingehört: in der Serverkonfiguration also der localconf.php. Seit der Version 4.1.5 gibt es im Install Tool ein paar mehr Felder, welche man in der localconf Datei setzen kann, z.B. defaultTypoScript_constants. Und so einfach geht es dann.

Im TypoScript Setup eine statische Referenz auf eine Constant einfĂŒgen.

page.config.baseURL = {$config.baseURL}

Und die Constant in der localconf.php ĂŒber das Install Tool eintragen.

[defaultTypoScript_constants]
config.baseURL = http://www.projectdomain.de/


Tech 22. Jan. 2008

TYPO3: Mailformulare mit vernĂŒnftiger Validierung - Accessible Form Validation

Bei jeder Webseite gibt es das gleiche leidige Problem: Entweder man nimmt die Standard-Mailformulare von TYPO3, wobei man nach einer Auffrischung des Markups per TypoScript der Redaktion pflegbare Formulare bereit stellen kann, welche allerding nur mit JavaScript Validierungen durchfĂŒhren und selbst mit JavaScript die Alert-Box bei der Valisierung nicht unbedingt den gehobenen AnsprĂŒchen entsprechen. Oder man wĂ€hlt eine Alternative, wie z.B. “MailformPlus“, welches die freiere und tiefer gehende Optimierung von solchen Funktionen ermöglicht, jedoch nicht durch die Redaktion editierbar ist.

Aber man recherchiert ja auch zu wenig - und zerbricht sich den Kopf ĂŒber lĂ€ngst gelöste Aspekt. Mit der Extension “Accessible Form Validation” werden die gewöhnlichen Mailformulare optimiert und stellen eine (BITV) optimierte Anzeige der Formularvalidierung ohne JavaScript zur VerfĂŒgung. Die Fehler werden alle gesammelt oberhalb des Formulars in einer sauberen Listen ausgegeben und können natĂŒrlich per CSS speziell hervorgehoben werden.

Die Extension lĂ€uft direkt nach der Installation und es sind keine zwingenden Konfigurationen nötig. Was zu beachten ist: Es werden wohl Core-Funktionen - vermutlich fĂŒr das FE Rendering der cObjects - ĂŒberschrieben, was natĂŒrlich bei Updates und eigenen Patches zu berĂŒcksichtigen ist.


Tech 22. Jan. 2008

TYPO3: Include von TYPO3 Libs und eigenen Extension-Funktionen in standalone PHP Skripten

In einigen FĂ€llen braucht man eigenstĂ€ndigt PHP Skripte, welche nicht durch das TYPO3 Seiten Rendering laufen, z.B. beim Crawler der Indexed Search oder Direct Mail und auch dem Captcha Tool. Z.T. ist die auch nötig, um Dateien zu streamen oder Webservices anzubinden. Dabei mĂŒssen aber auch die eigenstĂ€ndigen PHP Skripte auf TYPO3 Libs und Extension Funktionen (z.B: Model APIs) zurĂŒckgreifen können. Die genannten Beispiele tuen so etwas und man kann sich daran orientieren. Allerdings ist die Implementierung der Includes im Detail etwas unterschiedlich und verursacht bei unterschiedlichen Serverkonfigurationen z.T. Probleme. Hier ein Code-Beispiel, welches dieses Problem adressiert und versucht zu beheben.

error_reporting (E_ALL ^ E_NOTICE);

session_start();

define(’TYPO3_MODE’, ‘FE’);
define(’PATH_root’, $_SERVER[’DOCUMENT_ROOT’]);

if ($_SERVER[’PHP_SELF’]) {
	if (!defined(’PATH_thisScript’)) define(’PATH_thisScript’,$_SERVER[’PHP_SELF’]);
} else {
	if (!defined(’PATH_thisScript’)) define(’PATH_thisScript’,str_replace(’//’,'/’, str_replace(’\',’/', $_ENV[’_'])).’/');
}

// ATTENTION: check in which level the current script is
define(’PATH_site’, str_replace(’//’,'/’,
$_SERVER[’DOCUMENT_ROOT’].'’.dirname(dirname(dirname(dirname(dirname(PATH_thisScript))))).’/'));

define(’PATH_this’, PATH_root.dirname(PATH_thisScript).’/');
define(’PATH_typo3conf’, PATH_site.’typo3conf/’);
define(’PATH_t3lib’, PATH_site.’t3lib/’);

if (!defined(’PATH_tslib’)) {
	if (@is_dir(PATH_site.’typo3/sysext/cms/tslib/’)) {
		define(’PATH_tslib’, PATH_site.’typo3/sysext/cms/tslib/’);
	} elseif (@is_dir(PATH_site.’tslib/’)) {
		define(’PATH_tslib’, PATH_site.’tslib/’);
	}
}

require_once(PATH_t3lib.’class.t3lib_div.php’);
require_once(PATH_t3lib.’class.t3lib_extmgm.php’);
require_once(PATH_t3lib.’config_default.php’);


Tech 1. Dec. 2007

Tagging Dimensionen

Web 2.0-typisch kann man beliebige Inhalte auf einer Webseite (ob durch die Redaktion oder die Besucher) taggen. Der freieste und zunÀchst naheliegenste Weg ist dabei eine Verschlagwortung anhand einer Liste beliebiger Begriffe oder Wortfetzen.

Möchte man ein Tagging, allerdings fĂŒr eine optimierte Strukturierung der Inhalte verwenden und ebenso eine darauf basierende komfortable BenutzerfĂŒhrung realisieren, reicht das nicht immer. Zumeist werden dann je nach Art der Webseite, der vorhandenen Inhalte oder der Zielgruppen irgendwelche Maßnahmen eingefĂŒhrt: mal eine Kategorisierung von Tags, eine Verwandtschaft von Tags, eine Typisierung von Seiten oder eine zusĂ€tzliches Tagging nach Zielgruppen - entweder separat oder auch als kategorisiertes Tag. Kurzum: Ein konzeptioneller Wildwuchs.

read more

Life 14. Nov. 2007

Finalizer als Job-Bezeichnung

Wer macht eigentlich die Website fertig? Also nicht nur die Entwicklung des Softwarecodes oder die Konfiguration von RealURl oder das grundsĂ€tzliche Layout - sondern eben richtig fertig. Typischerweise gibt bei frontendlastigen Projekten eine Menge an Kleinigkeiten zu beachten, welche bei der Umsetzung einzelner Anforderungen nicht direkt auffallen oder nicht im Fokus stehen. Aspekte wie “ZurĂŒck-Links” bei Suchmasken, Detailanzeigen oder komplexeren Use Cases, Locallang-EintrĂ€ge der Benutzerregistrierung , Community-Funktionen, RealURL-Konfiguration fĂŒr parametrisierte Plugins, Caching-Optimierung usw. usf. gibt es zu Tausenden und einige von diesen sind nach Abschluss der Entwicklung von allen FunktionalitĂ€ten noch offen.

read more

Tech 26. Sep. 2007

TYPO3: Sprach-Domains (config.baseURL)

HĂ€ufig werden fĂŒr verschiedene Sprachversionen einer Webseite verschiedene Domains verwendet - z.B.

  • .com fĂŒr Englisch und
  • .de fĂŒr Deutsch.

HierfĂŒr sind mehrere Aspekte relevant:

  • die automatische Auswahl der richtigen Sprache oder Ziel-URL anhand der eingehenden Domain,
  • die Behandlung von Sprachparametern zum Beibehalten der Sprache und
  • die Verwendung der richtigen URL entsprechend der aktuellen Sprache.

FĂŒr den ersten Punkt gibt es verschiedene AnsĂ€tze, welche genĂŒgend diskutiert sind. Persönlich prĂ€feriere ich die Nutzung von .htaccess zur Auswertung der Browser/Client-Spracheinstellungen mit einer Weiterleitung auf entweder die entsprechende Domain oder z.B. einen Pfad /www.j2h.com/en/.

RealURL kann dann hierĂŒber direkt die Sprache als Pfadsegment kodieren bzw. anders herum der L-Parameter direkt im TypoScript verwendet werden. Hat man nun verschiedene Domains, kann man auch das RealURL beibringen.

Allerdings mĂŒssen auch die seiteninternen Links, welche auf dem Attribut config.baseURL basieren, korrekt gesetzt werden, um die sprachspezifische Domain auch beim Surfen beizubehalten. D.h. man verwendet fĂŒr das Setzen der baseURL eine Condition im TypoScript und stellt damit sicher, dass eine Domain richtig fĂŒr Links verwendet wird.

[PIDinRootline = 2]
	config.baseURL = http://projects.j2h.com/
[global]

Das geht natĂŒrlich auch wunderbar mit Subdomains, um z.B. bestimmte Subdomains, welche direkt in Seitenbereiche verlinken, offen zu profilieren. Beim Surfen wechselt dann die die Domain je nach Seitenbaumanschnitt. Weitere Möglichkeiten in dieser Richtung ergeben sich auch aus dem Setzen von Domain-Records an Unterseiten oder ggf. sogar Template-Records um das Seitenroot umzudefinieren. Aber hierzu spĂ€ter mehr.


Tech 13. Sep. 2007

Tipp: FindBugs

Gestern wurde mir das Tool FindBugs empfohlen und nun werden wir es in den nĂ€chsten Java Projekten mal testen. Es verspricht anhand sogenannter Bug Patters Fehler in Java Quellcode zu finden, z.B. geöffnete aber nicht geschlossene File Pointer oder abgefangene aber nicht behandelte Exceptions. FĂŒr die einfache Nutzung gibt es ein Eclipse Plugin, welches alle gefundenen Hinweise und Fehler in den Warnings mit anzeigt.


Tech 12. Sep. 2007

Favicon online erzeugen

Manchmal hab ich mich schon gefragt, wie man nun am besten ein Favicon fĂŒr eine Website erstellt und ob man dafĂŒr nun irgendwelche Photoshop Plugins oder sonstige Programme benötigt. Nein, viel einfacher.

Auf der Website http://www.chami.com/html-kit/services/favicon/ kann man einfach ein Bild hochladen und erhĂ€lt anschließend ein hĂŒbches Favicon. Wer skeptisch ist, kann sich das Icon auch direkt ĂŒber die Seite testweise anzeigen lassen. Super! In TYPO3 gibt man dann einfach noch das Attribut

page.shortcutIcon = fileadmin/images/favicon.ico

an und fertig ist das Icon auf der Website.


Tech 10. Sep. 2007

TYPO3: Locale Konfiguration (config.locale_all)

HÀufig besteht das Problem, dass lokalisierte Ausgaben auf dem Entwicklungssystem anders erscheinen als auf dem Live-System. Aus vielen ForeneintrÀgen bekannt ist das Problem insbesondere im Zusammenhang mit tt_news, weil diese Wochentage und Monatsnamen per PHP in das Frontend rausschreibt.

In PHP wird dafĂŒr die Funktion “setlocale” verwendet, welche die TYPO3 Konstante “config.locale_all” ĂŒbergeben bekommt. Hier ist es wichtig den Hintergrund zu wissen. Die Konstante wird einfach an die PHP Funktion weitergegeben und diese gibt anhand des Strings eine Locale Einstellung zurĂŒck bzw. setzt diese global. Die Locales kommen dabei aber nicht aus PHP selbst, sondern direkt vom Betriebssystem. Ist dort keine Locale Einstellung mit dem gleichen Namen (Identifier String) vorhanden, wird von PHP eine andere verwendet. Gewöhnlich wird das dann eine englische sein.

Somit muss die Konstante “config.locale_all” einen Wert enthalten, welche auf dem Betriebssystem als Locale verfĂŒgbar ist. Man kann sich alle verfĂŒgbaren Locale Einstellungen ĂŒber das Linux Kommando “locale” anzeigen lassen. Fazit: Die Einstellung “config.locale_all” ist BetriebssystemabhĂ€ngig und kann sich dehalb auch bei gleiche TYPO3 und PHP Konfiguration auf verschiedenen Systeme unterscheiden.


Tech 25. May. 2007

Trac & Subversion

Schon mehrmals haben wir ĂŒber eine elegante Lösung zum Schließen der LĂŒcke zwischen CVS und unserem Tickektsystem nachgedacht. Die Idee ist einfach: auf irgendeinem Weg muss das CVS Commit mit einem Ticket verknĂŒpft werden können.

GrundsÀtzlich gibt es zwei Möglichkeiten, wenn man eine dritte Datenquelle vermeiden möchte: (1) das Speichern der jeweiligen Ticketnummer im CVS Commit oder ein Vermerk der Ressourcen und Ihrer Versionen von CVS im Ticket.

Da man als Entwickler zunÀchst in einer IDE wie z.B. Eclipse arbeitet, wÀre eine Integration der Ticketinformationen in die Version-Kommentare vorzuziehen. Zudem hat dieser Weg den Vorteil, dass die VerÀnderungen am Code auch wirklich als Versionskommentare gepflegt werden, wo diese auch hingehören.

Nun bin ich erneut ĂŒber Trac gestoßen, und zwar, weil es eine Subversion Schnittstelle anbietet. Eine Schnittstelle kann dabei ja vieles sein. ZunĂ€chst handelt es sich nur um die Module TracRevisionLog und TracChangeset, mit welchen das Repository eingesehen werden kann, aber auch Versionsvergleiche und Diffs möglich sind.

Interessant wird das ganze allerdings erst bei der VerknĂŒpfung. HierfĂŒr gibt es zum einen die “manuelle” Method ĂŒber TracLinks. Damit können ĂŒber einen speziellen Syntax VerknĂŒpfungen zwischen verschiedenen Trac Ressourcen hergestellt werden, also auch zwischen Tickets und SubversionĂ€nderungen.

Der andere Weg ist dabei der spannendere. Über ein “Subversion post-commit hook script” können Posts in das Trac System erfolgen, wobei dieses Script von Subversion als post-commit aufgerufen werden kann.

Das hört sich nach einer sehr spannenden Variante an. Leider endet dieser Beitrag genau da, wo es interessant wird, aber in Bezug auf die Post-Commit-Kommandos fehlt mir bisher noch einiges Detailwissen ĂŒber Subversion.


Tech 15. Apr. 2007

TYPO3: Perfomance der Indexed Search

In einem Projekt hatten wir deutlcihe Performance Probleme mit der indexed Search. Dies hatte zum einen die Ursache, dass wir die Suchergebnisse der Indexed Search selbst (nach ZeitrÀumen oder Art des Inhalts) nachgefiltert haben und deswegen die maximale Anzahl der Suchergebnisse sehr hoch eingestellt werden musste.

Zur Optimierung haben folgende Hinweise geholfen:

“We had performance issues as well. After investigating the source we change the default search type from 1 to 20. After this every search was fast and mysql did not produce high server load.”

Spannend dabei ist, dass ĂŒber den Search Type 1, die Wortindizierung verwendet wird, welche bei dem Typ 20 ĂŒbergangen wird. An sich sollte man denken, dass die Indizierung von Wörtern mit der Intention entwickelt wurde, durch die zusĂ€tzliche Indizierung einen Performancezuwachs zu erzielen.

Ursache fĂŒr den gegenteiligen Effekt scheinen die wesentlich komplexeren SQL-Statements zu sein. Es mĂŒssen zusĂ€tzlich zum normalen Index eben auch die Worttabellen in die Suche integriert werden. Bei vielen Seiten und Inhalten scheint diese erhöhte KomplexitĂ€t wesentlich mehr Zeit in Anspruch zu nehmen. In unserem Projekt handelte es sich dabei um Suchanfragen, die 10 bis 15 Sekunden dauerten, dabei wurden mindestens 80% nur fĂŒr die Datenbankabfragen benötigt.


Tech 15. Apr. 2007

TYPO3: Bugfix beim Einsatz von Shortcuts und “typolinkCheckRootline”

Bei der Verwendung von mehreren Domains (ĂŒber verschiedene Domain Records), welche auf verschiedene Ebenen in einem Seitenbaum zeigen, besteht die Problematik, dass Links aus einem Seitenbereich mit Domain A in einen anderen Seitenbereich mit Domain B jeweils die richtige Domain verwenden sollen.

HierfĂŒr sieht TYPO3 die Einstellung “typolinkCheckRootline” vor. HierĂŒber werden bei der Erstellung von Links ĂŒber die Typolink Funktion auch die Domain Records berĂŒcksichtigt, so dass immer die richtige Domain verwendet wird.

Ein Problem (vermutlich ein Bug) besteht beim Einsatz von Shortcuts auf einer Seite unter Domain A zu einer Seite unterhalb von Domain B. Beim Erzeugen des Links eines Shortcuts wird aus irgendeinem Grund nicht die gewöhliche Typolink Funktion verwendet, sondern die darunter liegende Funktion “t3lib_tstemplate.php->linkData”. Diese Funktion berĂŒcksichtigt allerdings nicht die Konfoguration “typolinkCheckRootline” oder die Domain Records.

read more

Tech 15. Apr. 2007

PGP mit Mac Mail

Immer mal wieder beschĂ€ftige ich mich mit den Themen “Digitale Signaturen” und “VerschlĂŒsselung von Daten”. Dabei landet man natĂŒrlich immer wieder bei PGP bzw. OpenPGP. Und schon mehrmals hatte ich den Eindruck, dass es nicht erwĂŒnscht ist VerschlĂŒsselungstechnologien einzusetzen. Das macht sich z.B. daran bemerkbar, dass zwar PGP Funktionen in E-Mail Clients verwendet werden können, aber zum einen nicht in allen und zum anderen immer nur ĂŒber komplizierte Umwege und zusĂ€tzliche Software.

Diesmal war ich allerdings fĂŒndig. Ich habe beim Stöbern einen alten Blog Eintrag “PGP for Mac Mail” gefunden, welche einfach erklĂ€rt, wie man PGP in sein gelibtes Mailprogramm von Apple integrieren kann.

Wunderbar! Jetzt sehe ich, wer eine Signatur verwendet, kann selbst eine in meinen E-Mails verwenden und meine E-Mails bei Bedarf auch verschlĂŒsseln. Und das alles sehr einfach und intuitiv ĂŒber Mac Mail.

read more

Tech 7. Mar. 2007

TYPO3: Frontend Dateiupload mit DAM

Beim Einsatz von DAM fĂŒr die Dateiverwaltung und gleichzeitiger Nutzung von Funktionen zur Interaktion mit den Website-Benutzern gelangt man schnell zu der Frage: Wie bekomme ich nun Bilder oder Dateien die ein Frontend-User hochlĂ€dt in das DAM rein.

Der Ansatz ist einfach. Man bastelt sich eine API Funktion, welche Uploads in einem PI entgegennehmen kann und beim Speichern ein paar Funktionen aus dem DAM Framework aufruft, mit denen die Benennung, die Indizierung und das Anlegen der richtigen Meta-Daten erfolgen kann.

Leider stĂ¶ĂŸt man dabei immer wieder auf eine HĂŒrde: Die DAM FunktionalitĂ€ten sind fĂŒr das TYPO3 Backend ausgelegt. An vielen Stellen findet man Funktionen, mit denen man die AbhĂ€ngigkeit von dem Backend-Kontext umgehen kann, doch immer un immer wieder kommt man wieder am Anfang an. Es muss ein Backend-Kontext bestehen.

Der einzige Weg scheint also die Emulation eines Backend-User innerhalb der Frontend-Plugins zu sein. HierfĂŒr (auch in Zusammenhang mit der DAM Problematik) haben wir eine gute Anleitung mit Beispielfunktionen gefunden.

Wir haben diese Funktionen jetzt in einem Projekt eingesetzt und sie funktionieren wunderbar. Allerdings fehlt noch ein Include der Datei class.t3lib_tsfebeuserauth.php. Ebenfalls sind noch ein paar Zeilen Code fĂŒr den Upload selbst nötig.


Tech 22. Feb. 2007

TYPO3: Schwerer Bug in Direct Mail

Direct Mail (direct_mail) funktioniert beim Newsletterversand bekanntlich etwas speziell. So ist es ĂŒblich einen Newsletter zu erstellen und einzelne Inhaltelemente verschiedenen Newsletterkategorien (dmail_category) zuzuordnen. Durch dieses Prinzip ist es möglich, beispielsweise einen monatlichen Newsletter an alle Abonnenten zu versenden und trotzdem die Inhalte auf die jeweiligen EmpfĂ€nger zuzuschneiden. So weit so gut.

Nutzt man nun diese Herangehensweise fĂŒr den Newsletterversand und erstellt trotzdem sehr spezifische Newsletter fĂŒr nur eine oder einige wenige Abonnenten, kann es vorkommen, dass einige Personen diesen Newsletter gar nicht erhalten. Und das ist auch richtig so, weil diese ja sonst eine leere E-Mail erhalten wĂŒrden.

Problematisch ist jedoch der Algorithmus zum Versand in dem Modul mod/class.dmailer.php. Hier wird immer eine bestimmte Anzahl an E-Mails auf einmal verarbeitet (in den Standardeinstellungen 50), bevor der Versand fortgesetzt wird. Als Offset fĂŒr diese 50 E-Mails wird die letzte E-Mail aus dem Maillog verwendet. D. h. der Versand wird immer beim ersten EmpfĂ€nger nach der zuletzt versandten E-Mail wieder begonnen.

Bei der Iteration durch die 50 EmpfĂ€nger werden jedoch alle EintrĂ€ge hochgezĂ€hlt. Sind nun alle Newsletter der 50 EmpfĂ€nger ab dem gegebenen Offset leer, stoppt der Versand und beginnt wieder an der gleichen Stelle. D. h. er wird nie fortgefĂŒhrt.

read more

Tech 22. Feb. 2007

TYPO3: Daten Ă€ndern ĂŒber sr_feuser_register

Man muss sich ja doch immer ein wenig mehr Zeit fĂŒr die Benutzerregistrierung ĂŒber sr_feuser_register einplanen. Mal abgesehen davon, dass durch die fĂŒlle an FunktionalitĂ€ten die Konfiguration recht zeitintensiv ist, stĂ¶ĂŸt man auch immer wieder auf kleinere Fehler oder Ungenauigkeiten.

In der aktuellen Version ist beispielsweise das HTML-Template nicht ganz korrekt. Die Folge ist, dass eingeloggte Benutzer beim Bearbeiten Ihrer Daten ein leeres Formular erhalten.

Ursache hierfĂŒr ist eine falsche Angabe des id-Attributs. Hier steht id=”tx-srfeuserregister-pi1-###FORM_NAME###”. Wichtig ist, dass hier der exakte String steht, damit die PI-Vars von der Extension ausgelesen werden können. Die Extension ersetzt den Marker allerdings schon durch den voll qualifizierten Identifier. Folglich wird ein zu langer String ausgegeben und die Extension versteht sich selbst nicht mehr.

Die Lösung hierfĂŒr stammt aus einer Mailingliste.


Tech 1. Feb. 2007

TYPO3: DAM Bearbeitungsrechte fĂŒr Redakteure

Eigentlich ist das ein typischer Wiki-Eintrag, aber unser JBoss Wiki braucht noch eine Weile, bis es von der Entwicklungsinstallation in den Produktivbetrieb geht.

Bei mehreren TYPO3 Projekten tauchte beim Einrichten der RedaktionszugÀnge das Problem auf, dass ein Admin Dateien bearbeiten und löschen kann, ein Redakteur jedoch nicht. Warum?

“Die Lösung fĂŒr das Problem [
] ist mal wieder denkbar einfach. Der vom DAM angelegte Media-Ordner muss bei den Nutzern oder Gruppen als DB-Mount eingetragen sein. Dann geht auch das Bearbeiten und Löschen von Dateien [
].”

Vielen Dank an setsuko fĂŒr den Post auf dem TYPO3forum.


Tech 1. Feb. 2007

IE7: Endlich PNG Grafiken und Transparenzen

In einem der vielen Ordner mit HTML- und CSS-Spielereien lagen noch dynamische 3D Button rum, die ich gerade wiederentdeckt habe. Dabei arbeite ich mit verschiedenen PND Grafiken, um die Button-Grafiken mit Schatten ĂŒber einen beliebigen Hintergrund zu legen und zudem ein Icon ebenfalls mit Schatten auf dem Button selbst zu plazieren. Wunderschön.

Das Problem machte hier immer der IE6, der nur mit grausamen JavaScript Hacks dazu zu bewegen war, die Transparenz der PNGs auch anzuzeigen. Der IE7 kann das nun, und man könnte meinen, dass diese tollen Buttons evtl. einsetzbar werden könnten.

Nur leider bauen diese noch auf einer HTML-Tabelle auf und die sind ja bekanntlich nicht dafĂŒr gedacht. Eine Alternative wĂ€ren :before und :after Angaben, aber nein - die kann wiedermal der IE7 nicht!


Life 19. Jan. 2007

E-Mail Konto ohne Spam

Die Junk Mail Problematik ist ja bei den meisten doch noch sehr prĂ€sent. Das ist auch gar kein Wunder. In einem Zeitungsartikel Ende Dezember schrieben sie, dass ca. 93% des gesamten E-Mail Verkehrs die unerwĂŒnschten Spam Mails gewesen seien. Die Zahl mag evtl. doch etwas hochgegriffen sein, aber auf jeden Fall ist der Anteil betrĂ€chtlich.

Nach meinen Versuchen GMail als Spamfilter zu nutzen (was an sich auch gut funktioniert) bin ich nun doch auf den komerziellen Anbierter Fastmail umgestiegen. So kann ich endlich alle Vorteile eines IMAP Accounts nutzen und habe einen synchronen Datenbestand lokal und im Web. Und gleichzeitig habe ich einen hochqualitativen Spam- und Virenscanner im Hintergrund. Die GrĂ¶ĂŸe des Online-Storages variiert je nach PaketgrĂ¶ĂŸe und kann somit entsprechend der eigenen BedĂŒrfnisse skaliert werden.

Fastmail selbst bietet dazu auch eine Webmail OberflÀche an. Diese sieht zwar etwas altmodisch aus, lÀsst sich aber trotzdem gut bedienen. Leider gibt es immernoch das alte Problem, dass keine Synchronisierung des Adressbuchs möglich ist. Der einmalige Import aus den verschiedensten Formaten ist aber problemlos möglich.

Jetzt bekomme ich nur noch im BĂŒro lĂ€stige Spam Mails.


Tech 14. Dec. 2006

Neue Pando Version: Integration in Skype, Outlook und GMail

Des öfteren höre ich von Kunden, Freunden und Bekannten immer wieder die gleiche Anforderung: Wie kann ich schnell, einfach und gĂŒnstig große Datenmengen von A nach B transferieren?

Der erste Ansatz ist immer eine Webplattform ggf. mit FTP-ZugĂ€ngen zumindest fĂŒr das Backend - wer kennt nicht die Probleme mit einfachen HTTP-Uploads. Zur Vereinfacherung könnte man hier abgespeckte FTP-Programme als Drolets, JavaApplets zum Upload ĂŒbers Web oder auch ActiveX Controls anbieten. Doch auch bei all diesen AnsĂ€tzen besteht weiterhin das Problem, dass die Daten in einem StĂŒck kopiert werden mĂŒssen.

Eine elegante Antwort auf all diese Fragen bietet Pando. Pando ist ein kleines einfach zu installierendes Programm (DAU-User Test wurde bereits bestanden, Dank an J.), welches die Vorteile von Peer-to-Peer mit einem konvetionellen Upload kombiniert und das Messaging ĂŒber E-Mail abhandelt. Die wesentlichen Vorteile sind:

  • der Upload kann jederzeit unterbrochen werden (gewollt oder ungewollt)
  • der Transfer ist in der schnellst möglichen Weise ĂŒber P2P möglich
  • der Download ist ebenfalls mit Unterbrechungen und unabhĂ€ngig vom Uploader möglich

Mit der kĂŒrzlich erschienen Version wird nun der Web 2.0 Trend eingefĂŒhrt: Integration in Skype sowie ein PlugIn fĂŒr Outlook und GMail ermöglichen nun die reibungslose Integration in die gĂ€ngigen ÃƓbertragungsmethoden. Alle Dateien, die eine definierte GrĂ¶ĂŸe ĂŒberschreiten, werden automatisch ĂŒber Pando geleitet.

Da bleiben keine WĂŒnsche mehr offen - außer vielleicht eine integrierte VerschlĂŒsselung und eine kostenpflichtige Variante ohne Werbung. Aber nun gut.


Tech 14. Dec. 2006

IE7: Alte Internet Explorer Versionen als Standalone

Als Entwickler benötigt man z.T. trotz des neuen und ggf. besseren IE7 den IE6 (oder Ă€lter) - z.B. fĂŒr KompatibilitĂ€tstests und zum Test von internen oder lokalen Anwendungen, wo noch keine Systemupdates vorgenommen werden (sollen). HierfĂŒr gibt es direkt bei Microsoft die dafĂŒr gedachten Standalone Versionen verschiedener Internet Explorer Versionen zum Download.

Nur leider ist zumindest die des IE6 nicht (!) zu installieren, wenn man bereits den IE7 installiert hat. Heißt das Standalone? Und in Zukunft wird es nicht besser: laut heise online (Juni 2003) war der IE6 die letzte “Standalone” Version. In Zukunft soll es das nicht mehr geben.

Doch zum GlĂŒck gibt es findige Entwickler, die sich diesem Problem bereits angenommen haben. TredoSoft bietet einen Installer fĂŒr alle IE Versionen (IE3, IE5, IE5.5, IE6) zum kostenfreien Download an. Anschließend hat man in seinem StartmenĂŒ alle IE Versionen verfĂŒgbar. Das ganze funktioniert einwandfrei. Eine Nebenwirkung ist laut TredoSoft selbst der gelegentliche Absturz des Standalone Browsers - aber ich denke damit lĂ€ĂŸt sich leben.


Tech 9. Dec. 2006

TYPO3: Plaintext Newsletter mit DirectMail und TemplaVoilÃ

Eine ganz einfache Anforderung: innerhalb einer TYPO3 Webseite, die mit TemplaVoilå  erstellt wurde, soll auch ein Newsletter verwendet werden. Typischerweise mit DirectMail und natĂŒrlich auch mit eine Plaintext Variante.

Im Prinzip geht man davon aus, dass die gewönliche Verwendung des Static Templates “alt_plaintext” ausreichen mĂŒsste. Tut es auch, solange man keine FCEs (Flexible Content Elements) verwenden möchte. Ist dies aber der Fall - was bei einer TemplaVoilĂĄ-Seite nicht weit hergeholt ist - gibt es hĂ€ĂŸliche Debugausgaben.

Nach einiger Recherche bin ich auf folgenden Kommentar gestoßen:

“[..] Please note that FCEs can`t be rendered with a plain text newsletter [
]”

Zum GlĂŒck wird im selben Artikel eine Alternative aufgezeigt. Es kann alternativ zu “alt_plaintext” eine Extension namens “svo_tvplaintext” verwendet werden. Diese Extension umgeht jegliches Rendering, sodass eine AbhĂ€ngigkeit von den RendermodalitĂ€ten der Inhaltelemente ausbleibt. Anstattdessen verwendet sie eine html2text Funktion und erzeugt einfach Plaintext anhand des ausgegebenen HTML-Quellcodes.

Nach einigen Modifikationen an den Regeln fĂŒr die Tag-Replacements ist diese Extension wunderbar einsetzbar und nicht weniger gut als die herkömmliche. Sie hat sogar einen Vorzug: sie verzieht in der Seite vorhandene Links mit einem index und fĂ€hrt die jeweiligen URLs am Ende der Nachricht in einer Liste auf. Super!


Tech 8. Dec. 2006

TYPO3: HTML Ausgabe von IMG-Tags optimieren

Wenn man als Typo Object ein Bild ausgibt, sei es als normales Inhaltelement (z.B. Bilb mit Text) oder innerhalb einer Extension (genauer gesagt in einem PI) werden zumeist veraltete Attribute ausgegeben. Mit der folgenden Angabe im Setup lĂ€ĂŸt sich zumindest das Border-Attribut unterdrĂŒcken:

config {
	disableImgBorderAttr = 1
}

Ein weiterer Aspekt ist die Handhabung des Title-Attributs. Bei einem Blick in den Quellcode kann man sehen, dass es verschiedenen Varianten gibt. Über den zusĂ€tzlichen Parameter “emptyTitleHandling” des imgConf-Arrays lĂ€sst sich bestimmen, was passieren soll, wenn ein Title leer ist:

keepEmpty: Einfach leer lassen
useAlt: Den Inhalt des Alt-Attributes nehmen
removeAttr: Das Attribut komplett entfernen

$imgConf[”emptyTitleHandling”] = $image[’keepEmpty’];

Ein Blick in den Quellcode lohnt sich doch immer wieder - eine bessere Typo3 “Doku” gibt es nicht.


Tech 8. Dec. 2006

IE7: Kommandozeilenparameter (Command Line Switchs)

Manchen hat es angst gemacht, andere warteten sehnlichst und jetzt ist er da: der Internet Explorer 7.

Und natĂŒrlich hat sich einiges geĂ€ndert, was in den meisten FĂ€llen mit Sicherheit auch gut ist. Allerdings hat man sich an einige Features auch gewöhnt; z.B. den Kisok-Modus, der beim DrĂŒcken von F11 bisher den kompletten Bildschirm eingenommen hat und außerdem auch ĂŒber JavaScript zu starten war.

Diese Funktion ist nun aus SicherheitsgrĂŒnden entfallen. Was aber, wenn man fĂŒr eine Anwendung die lokal, im Intranet oder auf einem Kiosk-Terminal lĂ€uft trotz alledem in einem echten Fullscreen-Modus anzeigen möchte?

read more

Life 26. Nov. 2006

Vitale Softwarelösungen brauchen Pflege, Wartung und Technologiewandel

Als Unternehmen, welches individuelle Softwarelösungen entwickelt die mindestens mittelfristig oder langfristig eingesetzt werden sollen, gelangt man frĂŒher oder spĂ€ter an den Punkt, dass die einst sehr gute und aktuell noch produktiv eingesetzte Lösung nicht mehr mit einer vielversprechenden Perspektive weiterentwickelt werden kann. Aber warum eigentlich?

Der Bedarf des Kunden fĂŒr diese Lösung ist meist unverĂ€ndert vorhanden oder hat sich höchstens um verschiedene Aspekte erweitert, sei es dass zusĂ€tzliche Funktionen oder die Integration in andere Systeme benötigt wird. Hier kann also nicht das Problem liegen. Dies merkt man auch daran, dass der Kunde selbst eine Lösung gar nicht fĂŒr veraltet ansieht. Sie löst ja alle Aufgaben nach wie vor und konnte in der Vergangenheit auch immer um weitere Aspekte erweitert werden. Also warum jetzt plötzlich nicht mehr?

Die Ursache liegt also doch eher auf der technologischen Seite. Mit einem gewissen Abstand zur IT ist dies zunÀchst verwunderlich, denn eine EDV Lösung basiert immer auf gewissen Standardtechnologien (verschiedenste Arten und Schichten von Hardware, Software und Vernetzung). Diese Technologien sind nicht mehr neu, weit verbreitet und bereits unzÀhlig oft verwendet worden. Doch wie immer steckt der Teufel im Detail und die Technologien, die als Standard erscheinen sind es im Detail eben doch nicht. Besonders die Softwaretechnologie(n) verÀndern sich durchaus schnell. Dies bietet zwar immer neue Möglichkeiten, stellt aber vor allem dann ein Problem dar, wenn der Lebenszyklus einer Softwarelösung lÀnger ist, als der ihrer zugrunde liegenden Technologie. Was passiert denn, wenn die Technologie veraltert?

read more

Life 19. Nov. 2006

Spam pragmatisch filtern - Piraterie im Web 2.0

Seit einer ganzen Weile macht mir die Flut an Spam zu schaffen. ZunÀchst war es die enorme Menge auf dem einen Mailaccount, dann auch auf den anderen. Und zudem eine ganze Reihe an kritischen False-Negatives; es ist eben nicht mehr nur nervig, wenn sich Kundenprojekte verzögern, weil die Kommunikation von Spam Filtern vernichtet wird (wobei die Inbox trotzdem voll davon ist).

Deswegen habe ich mich eingĂ€ngig mit diesem Thema beschĂ€ftigt, jedoch keine wirklich neuen Erkenntnisse gewonnen. Die Konzepte sind ĂŒberschaubar: ein Portfolio aus verschiedenen, lernfĂ€higen Filtern und dazu eine Reihe an White- und Blacklists. Das ergibt ein großes klebriges Konstrukt, welches eine gute Sortierung ermöglichen kann.

Allerdings gehört dazu eine Menge Disziplin. SpamAssassin und ein clientseitiger Filter fĂŒhren noch lange nicht zu einem akzeptablen Ergebnis - ein ausgiebiges Training ebensowenig. Also was tun?

read more

Tech 10. Nov. 2006

TYPO3: Achtung beim nachtrÀglichen Filtern von Suchergebnissen

Leider können nicht immer ohne grĂ¶ĂŸere Anpassungen an der Indexed Search beliebige zusĂ€tzliche Filter-/Suchkriterien hinzugefĂŒgt werden. Wenn allerdings eigene Filterkriterien und gleichzeitig eine Stichwortsuche (z.B. auch in PDF Dateien) erfolgen soll, ist so etwas nötig.

HierfĂŒr kann einfach die Indexed Search fĂŒr die Stichwortsuche verwendet werden und anschließend ĂŒber den Hook getResultRows das Ergebnis nachbearbeitet werden. Dies funktioniert soweit auch wunderbar.

Problematisch wird, wenn man sehr viele mögliche Treffer in einem Suchergebnis hat. Hier kommt nĂ€mlich die Maximalanzahl an ErgebniseintrĂ€gen der Indexed Search zum Tragen und man erhĂ€lt nur diese Anzahl an EintrĂ€gen fĂŒr die Weiterverarbeitung. Das fĂ€hrt natĂŒrlich zu verwirrenden Ergebnissen, wenn man z.B. zunĂ€chst per Stichwortsuche sehr viele Resultate finden möchte, um sie anschließend weiter zu filtern. An dieser Stelle fehlen bereits eine Reihe an Suchergebnissen, die sinnvollerweise hĂ€tten erscheinen sollen.

Es ist also bei solch einer Anwendung darauf zu achten, dass die Einstellung fĂŒr die Anzahl der Ergebnisse entsprechend hoch ist.


Tech 11. Aug. 2006

IE CCS Auto Clearing

HĂ€ufig macht der Internet Explorer merkwĂŒrdige CSS Cascaden, die entweder falsch oder nicht nachvollziehbar sind, zumeist aber unerwĂŒnscht.

Allerdings kann dies verhindert werden. Der Internet Explorer hat die Eigenschaft das sogenannte auto-clearing der Elemente nur dann anzuwenden, wenn diese eine GrĂ¶ĂŸenangabe haben. Gibt man den betroffenen oder potenziel betroffenen Elementen das Attribut

div.classname {
	height:1%;
}

oder etwas Àhnliches, werden die Styles wieder sauber angewendet. Da bleibt nur zu hoffen, dass es sich zufÀllig um Elemente handelt, wo eine Höhenangabe entweder möglich oder irrelevant ist.


Tech 18. Jul. 2006

TYPO3: Remote-Löchen des FE Caches

Beim Entwickeln von TypoScript oder Extensions nutze ich derzeit ausschließlich Eclipse und ein automatisiertes Deployment ĂŒber Ant (sowohl lokal als auch fĂŒr das live System).

Dabei werden zum einen alle verĂ€nderten Dateien im fileadmin und alle lokal vorhandenen Extensions aus typo3conf per FTP kopiert. Zum anderen soll hier aber auch der FE Cache gelöscht werden, um nicht mehr das Typo3 Backend fĂŒr Script-Änderungen nutzen zu mĂƒÂŒssen und das Testing wĂ€hrend der Entwicklung zu beschleuningen.

Bisher löschte ich den Cache immer mit dem sql-Task von Ant, was zwar lokal funktioniert, jedoch auf den meisten live-Systemen nicht möglich ist, weil zumeist die Ports zur Datenbank aus SicherheitsgrĂŒnden gesperrt sind.

Nun gibt es eine kleine Frontend Extension (j2h_remoteclearcache) die das Löschen des FE Caches ermöglicht. Sie wird als Frontend-Plugin auf einer beliebigen, möglichst unsichtbaren, Seite installiert. Anschließend kann diese Seite ĂŒber die ID mit dem Ant-Task get angesprochen werden. Als Parameter wird ein Admin-User mit Namen und Passwort, optional auch ein md5-kodiertes Passwort, ĂŒbermittelt. Ein Nebeneffekt ist, dass der Cache auch ĂŒber die Webseite selbst gelöscht werden kann, indem man die Seite per ID ĂŒber den Browser anspringt und hier Name und Passwort eines Admin-Users eingibt.

Sicherlich gibt es noch einige Verbesserungsmöglichkeiten, aber fĂŒr die schnelle Entwicklung mit CVS, lokaler Entwicklungsumgebung und automatisiertem Deployment ist sie eine unerlÀssliche Hilfe.


Tech 14. Jul. 2006

TYPO3: Mehrsprachigkeit mit TemplaVoilĂĄ

Endlich ist eine 1.x Version von TemplaVoila! verfĂŒgbar, alsoeine gute Gelegenheit sich die neue Template Engine noch einmal genau anzusehen. Das bauen eines Seiten-Templates mit MenĂŒs, Inhalt, Stylesheets usw. ging recht problemlos. Das Konfigurieren von RealURL war dann schon eher ein Trip, aber nach ein paar Versuchen auch lauffĂ€hig.

Letztlich mach die Kombination aus mehreren Sprachen (in einem Baum mit Translate Feature), RealURL und einem SprachmenĂŒ (echt dynamisch und als Text) einige Probleme

ZunĂ€chst zu den SprachmenĂŒs. Das HMENU special language tut sich leider schwer einen Textlink mit dem SprachkĂŒrzel (aus dem Backend) auszugeben; anstatt dessen wird ein Link auf die eigene Seite (als Ziel richtig, aber als Label falsch) ausgegeben. Dies kann nur (oder nicht) manuell per TypoScript ĂŒberschrieben werden. Alternativ ist oft von sr_language_menu die Rede. Diese hat leider meine Typo3 Installation zum Absturz gebracht - schade. Letztlich bin ich auf die Extension cab_realurl_languageselector ausgewichen, welche anhand der RealURL Konfiguration ein MenĂŒ aufbaut, also genau das was man benötigt.

read more

Tech 18. May. 2006

BPEL vs. XForms

It took some weeks until I finally recieved the thesis of S. Perkles about Server-side XForms processing. Well, it deals not only about XForms but about building a XForm based frontend for BPEL processes. So I realized that “a Web service’s WSDL document provides all the information needed for creating an XForms based front end to the BPEL process” (Ch. 5.2.2). That’s right but was a new perspective for me.

Within the instance data of the XForm all data elements are included - and structured what is the idea of XForms. So after the validation the instance data could be mapped to a SOAP call, which finally invokes the BPEL process engine. All we need is a connector between the XForms processor and the BPEL engine, which maps the instance data of the XForm to SOAP.

But Perkles goes one step further. Since the WSDL document includes all definitions of the interaction and also references XML shemas for details and type definitions, all XForm-relevant information is actually given here. In consequence it is possible to generate the XForm or even to build a generic XForm, which represents the GUI part of any WSDL document. - A quite impressive idea. Actually I thought something more between the WSDL and the user frontend would be needed.

How that could be done is explained in the thesis. And because it sounds like theory I like to mention the sixth chapter, which presents a case study of an implementation using BPWW4J from IBM. I am curious if I am able to go through this.

Reference: Server-side XForms Processing - A Browser-independent Implemantation of the Next Generation Web Forms by Siegfried Perkles, 2003, TU Vienna

Another article: Send Part of an XForms Instance to a Web Service by developerWorks.


Tech 3. May. 2006

BPEL

As we are planning and prototyping a new technology for web based business applications at form4, I am constantly looking for future proof components for not only the use case but the business case view.

So I started with a little research abount workflow engines like jBPM and ended up with BPEL and some articles about this language. Well, one interesting aspect is the business process perspective and a second is the independence of the implementation technology.

For some reasons we focus on MDA by using UML for modelling and Java J2EE for the runtime and so I was looking for engines which are able to supply those languages: UML -> BPEL -> J2EE. So I found some insteresting articles: MagicDraw is going to support BPEL, jBPM announced an alpha release of a BPEL support and something about BPEL vs. Java writte by BEA and IBM.

But still open: the prototype. But I had some tries with jBPM - for my desperation not that successful as expected, but I will give it another try.


Tech 13. Apr. 2006

TYPO3: deploy with eclipse

Not only Typo3 released its new version 4.0. While the ftp was transferring the files of the 4.0 version, I wrote the first working version of an automated typo3 deploy process. Usually we use eclipse with cvs for every project and deploy everything via ant. So why still working with BBedit or UltraEdit via ftp on the remote server within typo projects?

Now the automated task copies all files from my resource folder (typoscript, html, css, layout images), all content of the typo3conf folder (localconf, user extensions) to the remote host and finally clears the page cache. Because only changed files are copied the update is finished within less than ten seconds. Press F5 and see the result. Quite perfect.

Now I can use all the features of eclipse, there is always a proper backup and working in a team is much easier with cvs. So let’s see, what Typo3 4.0 brings with it 



Tech 12. Apr. 2006

Symbolize link target with CSS2

Who doesn’t know the idea of a little icon in front of a hyperlink to show where it goes to? I thought by using an attribute dependenp syntax in my css it should be quite easy. And it is:

<style media="screen" type="text/css">
	div.example a {
		padding-left:35px;
		background-repeat:no-repeat;
		background-position:left;
		height:20px;
	}
	div.example a[target=_self] {
		color:red;
		background-image:url(wp-content/css2_link/icon_samewindow.gif);
	}
	div.example a[target=_blank] {
		color:green;
		background-image:url(wp-content/css2_link/icon_newwindow.gif);
	}
</style>

<a target="_self" href="http://www.j2h.info/blog/">Link with target self</a>

<a target="_blank" href="http://www.j2h.info/blog/">Link with target blank</a>

But though it is CSS2 and of course not every browser has implemented that syntax, what a miracle - it doesn’t work in IE. So my little hack goes direct into the trash bin because until IE will support all the CSS2 features the link target should be part of CSS at all.


Tech 6. Apr. 2006

XForms

Some more about XForms. Thanks to a presentation of Jörn Turner (Chiba) the capabilities of XForms are much more clear to me now. My suggestion of using the switch syntax for multi screen forms was right. But XForms is able to solve much more as I expected such as external validation functions through customized xpath functions or the use of XML-shemas to use customized data types. I have to admit that the integrety of W3C standards brings much more benefits as I thought it could do. Next step: a midi-complex prototype.


Tech 5. Apr. 2006

Localized price formats in Java

A while ago I got the requirement to internationalise an application for creating and organising offers. As I found out how complex the formatting of dates and numbers is, if you are dealing with different countries and languages, I was quite happy that there is something like Java Locale.

So I realized that it seems to be common to write out a price in Euro with a Euro-Sign within the European Union and with EUR instead outside Europe and the similar with US-Dollar. Furthermore the position of the currency sign, the separator character for fractions, the space (or no space) between sign and value and the number of fraction digits are quite different per country or language ñ€© I was a kind of fascinated about all that details. All for all that you can easily use the Locale in combination with Currency and CurrencyFormat.

Perfect - I thought till today. So how should we deal with a Japanese locale, which should format and display prices in Euro? Well, probably use the instance of CurrencyFormat with an ISO sign, which allows using an individual currency. Wrong! The Euro-price with the Japanese locale is rounded to full numbers without fraction digits - but with by showing EUR as currency. So there is no way around, as setting the currency, the minimum fraction digits and the maximum fraction digits of the CurrencyFormat instance manually by using the default values of the used currency.

Now it works fine. The price is shown in the right currency, the format of the price value depends on the currency and the position of the sign, the space and the separator character are dependent on the used locale.


Tech 27. Mar. 2006

What about XForms and multi screen dialogs?

I am still curious about the ability of XForms for multi screen dialogs. Somehow the group element could used for splitting up a XForm into various screens. Probably the switch/case module is the right way, like Mozilla is using it in their Tax Form example.

But what about this:

“While the concept of an application-independent ñ€Ɠscreen flow managerñ€? that determines the next view is described in the Java BluePrints [16], no framework seems to exist yet that employs this pattern to implement complex dialog constructs such as the arbitrarily nestable modules and device-specific dialog flows offered by the DCF. The World Wide Web Consortiumñ€ℱs XForms initiative [5] is mostly concerned with the specification of widgets on pages and does not support nestable dialog modules.” (Matthias Book and Volker Gruhn, April 2004)

For sure there is no way around reading the specifications in detail and build some prototypes. I hope it will turn out that not only multi screen dialogs are possible but rather they could be used for (complex) workflows in web applications.


Tech 27. Mar. 2006

Office Apps @ AJAX

While reading the AJAX blog from time to time some nice applications came up to me and I am wondering how we are still using a desktop system in the offeice. Well, there are some reasons of course, but the todays weballpications are nearly as good as destop applications. The are some quite good word processors like AJAXwrite or Writely. But totally thrilling is the spreadsheet editor iRows. Image all theses high end features within a suite like Zimbras’s Collaboration Suite. Wao! That’s where it goes.