Mit ‘Tech-Zeugs’ getaggte Artikel

Vim: IntelliSense für den besten Editor der Welt

Alle Anhänger der Church of Emacs mal kurz weglesen. Hier ein kleiner Tipp, um den besten Editor der Welt (Vim!) noch besser zu machen. Ehrlich: Bis Version 7 habe ich immer ziemlich neidisch zu den VisualStudio Schwestern und Brüdern geschaut. Deren Editor hat nämlich eine Autovervollständigung. Und sowas steigert die Produktivität auf Codeebene doch enorm. Aber Vim wäre Emacs wäre nicht Vim wenn es das nicht auch könnte!

Einfach folgendes Code-Snippet zur ~/.vimrc hinzufügen:

autocmd FileType c set omnifunc=ccomplete#Complete
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags

Und wie komme ich jetzt an Autovervollständigung? Einfach tippen und mit Ctrl-X Ctrl-O Vim den Rest erledigen lassen.

Btw: Wieso ist die Debian Standardkonfiguration von Vim eigentlich so unterirdisch? :wqa!

Typo3: Favicon einbinden

Als die Favicons mit dem Internet Explorer 5.0 aufkamen wurden die Dinger anfangs belächelt. Klickibuntispielerei. Und der Support der Browser war anfangs wirklich unterirdisch. Vor allem der Internet Explorer spielte Favicon-Lotterie. Heute sind die Dinger aus dem Netz nicht mehr wegzudenken. Um schnell eine Seite im Bookmark-Menü zu finden oder ein bestimmtes Tab schnell parat zu haben: Einfach praktisch.

Ein Favicon im CMS Typo3 einzubinden gestaltet sich ziemlich einfach:

page.shortcutIcon = fileadmin/images/favicon.ico

Bonuslevel iPhone: Die Sache wäre ziemlich einfach, gäbe es da nicht noch eine kleine Firma aus Cuppertino, die gerne ihr eigenes Süppchen kocht, wenn es um Icons geht. Das iPhone und der iPod Touch bieten die Möglichkeit Links als Favoriten direkt aus Safari zum Dashboard hinzuzufügen. Doch, wie bekommt man sein Icon in Typo3? Kein Problem, einfach folgendes Snippet in sein Typo3-Template aufnehmen:

page.shortcutIcon = fileadmin/images/favicon.ico
page.headerData.10 = TEXT
page.headerData.10.value = <link rel="apple-touch-icon" \
                                 type="image/png" \
                                 href="fileadmin/images/apple-touch-icon.png"/>

Die umgebrochene Zeile ohne Backslashes, die Spalte des KM2 Blogs ist zu schmal

Jürgen Siebert hat drüben im Fontblog eine geniale Anleitung zusammengestellt, wie man sich ein optimales iPhone-Icon bastelt. Sehr lesenswert. Read on.

Twitter Servermonitoring

twitterheartbeat_header1

Seitdem ich einen Twitteraccount habe, denke ich angestrengt darüber nach, welche Haushaltsgegenstände ich irgendwie dazu bringen könnte mit Twitter zu kommunizieren. Die KM2-Kaffeemaschine fällt leider flach (Frenchpress). Aber dann lassen wir eben die Server twittern. Für alle Kontrollfreaks Für alle die ihre Server ungern unbeobachtet lassen, habe ich mal ein kleines Script geschrieben, mit dem man seine Server twittern lassen: Ob es ihnen gut geht, ob sie genug Speicher haben, ihnen etwa schlecht ist, sie Langeweile haben etc.

Ideal für alle die auch abends per iPhone oder PDA noch schauen wollen, ob denn wirklich alles okay ist.

(mehr…)

Typo3: Zufälligen Inhalt anzeigen

Das schöne an meinem Handwerk ist: man lernt nie aus.

Die Zeit, die Zeit, sie saust im Sauseschritt und bringt Veränderung mit – und bei diesem ganzen Computerzeugs und so umso mehr.

Gerade musste ich stutzen, als ich für ein wirklich und total mindblowing Projekt im Enterprise CMS Typo3 zufälligen Inhalt anzeigen wollte. Macht man ja auch nicht jeden Tag. Die Lösung ist bestechend simpel und hat man als Datenbank-Entwickler schon häufiger verwendet: Eine Kombination aus LIMIT und ORDER. Yeah!

Und weil der Satz “Sharing is caring” gilt, hier mal ein Schnipsel TypoScript:

RANDOMCNT = COA
RANDOMCNT{
	10 = CONTENT
	10 {
		table = tt_content
		select {
			pidInList = {$randomholder}
			max = 1
			orderBy = rand()
			languageField = sys_language_uid
		}
	}
}

Der SysFolder (oder sogar eine reguläre Seite) “pidInList” / “{$randomholder}” enthält die Records. Per Constant macht es einem das Leben leichter. Die Select-Property “max” gibt an, wie viele Records ausgewählt werden sollten. Wichtig: Elemente vom Typ COA aktivieren Caching – wer keine Hightraffic Websites betreibt sollte COA_INT verwenden. w00t

Update: Da es in der Welt der RDBMS mehr als nur MySQL gibt, hier die Postgres Notation SELECT * FROM table OFFSET RANDOM() LIMIT 1;