Author: debugger

Chuck Norris…

  • Chuck Norris doesn’t write code…oh no, he thinks about the finished product and the code appears.
  • Chuck Norris has no need for virtual methods. Nothing can override Chuck Norris.
  • Chuck Norris wrote a program that calculated the last digit of pi.
  • Chuck Norris can finish an infinite loop in 1.3 seconds.
  • Chuck Norris normalizes all schema just by inserting random data
  • MVC actually stands for Model-View-ChuckNorris. Controller is just one of his nicknames.
  • A synchronize operation doesn’t protect against Chuck Norris, if he wants the object, he takes it.
  • Chuck Norris invented recursion to see what would happen if he roundhouse kicked himself.
  • Chuck Norris can multi-thread on a single processor by breaking it into pieces.
  • Chuck Norris’ compiler is afraid of displaying warnings to him. It just fixes the code automatically.
  • Chuck Norris’ first program was kill -9.

Quelle: Google Developer Central

Google Webmaster Sitemap: Gekürzte Antwort

Schon seit längerem zeigen die Google Webmaster Sitemap, unter dem Menüpunkt Crawling-Fehler, an dass bis zu 78% der BugBlog Seiten eine “Gekürzte Antwort” zurückgeben. Vor einem Monat waren es noch überwiegend “Zeitüberschreitung beim Verbindungsaufbau”, die jedoch durch die Deinstallation einer WordPress-Erweiterung, mit welcher PHP-Code direkt in einen Post geschrieben werden konnte und damit inkompatibel war zu einer Erweiterung um PHP-Code hervorzuheben, behoben wurde.

Im Access-Logfile vom Apache lässt sich das Ganze nachvollziehen. Neben der Größe muss dabei auch der Statuscode berücksichtigt werden, da bspw. Urls ohne abschließenden / einen 301 (Redirect) zurückliefern. Der Aufbau findet sich hier: http://httpd.apache.org/docs/2.2/logs.html

[PHP]
[04/Nov/2012:22:28:57 +0100] “GET /seo/bots-bots-bots/2011/05/29/ HTTP/1.1” 200 7547 “-” “Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)”
[08/Nov/2012:12:39:03 +0100] “GET /seo/bots-bots-bots/2011/05/29/ HTTP/1.1” 200 29952 “-” “Mozilla/5.0 (compatible; Infohelfer/1.3.0; +http://www.infohelfer.de/crawler.php)”
[09/Nov/2012:04:23:32 +0100] “GET /seo/bots-bots-bots/2011/05/29/ HTTP/1.1” 200 29950 “-” “Mozilla/5.0 (compatible; SISTRIX Crawler; http://crawler.sistrix.net/)”
[10/Nov/2012:20:14:27 +0100] “GET /seo/bots-bots-bots/2011/05/29/ HTTP/1.1” 200 7528 “-” “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; […])”
[/PHP]

Es ist erkennbar, das immer der Erfolgs-Statuscode 200 (OK) zurückgegeben wird, die Antwort jedoch zwischen 7547 und 29952 Bytes variiert. Kleinere Abweichungen sind dabei durchaus möglich, weil unterhalb der Posts verschiedene weitere relevante Posts angezeigt werden. Dies erklärt aber nicht eine Abweichung von bis zu 75% nach unten.

Google Webmaster Sitemap URL Fehler vom BugBlog

Als nächstes werde ich nochmal mit wget versuchen dem Fehler auf die Spur zu kommen, bzw. habe ich das LogLevel im Apache auf “info” gestellt und erhoffe mir dadurch weitere “sachdienliche Hinweise” ;-) Die Google Webmaster Sitemap bzw. der Menüpunkt Crawling Fehler lässt keine weiteren Rückschlüsse auf die Ursachen zu. So habe ich keine Einstellungsmöglichkeiten gefunden das Frontend auf Englisch umzustellen, um nach der Fehlermeldung besser suchen zu können, noch werden die fehlerhaften URLs aufgeführt.

ProTools: TYPO3 Frameworks

Es gibt so viele verschiedene Tools und Frameworks im Internet das die Entscheidung oft nicht leicht fällt. Zumal die Weiterentwicklung besonders bei kostenlosen Tools und Frameworks stark von der jeweiligen Community abhängig ist. Eine große Community ist kein Garant für die Weiterentwicklung, zumal groß relativ ist, jedoch ist man später, bei einer möglichen Migration nicht alleine und kann somit auf vorgefertigte Skripte zurückgreifen.

Nachfolgend eine Aufstellung von Robert Lemke (Foliensatz: http://de.slideshare.net/robertlemke/t3con12-keynote-a-new-cms), welche Frameworks u.a. in der TYPO3 Familie verwendet werden:

  • jQuery
  • Canvas Indicator
  • jQuery UI
  • Chosen
  • Dynatree
  • Codemirror
  • Twitter Bootstrap
  • Font Awesome
  • Symfony DomCrawler
  • VIE
  • plupload
  • Doctrine
  • ember.js
  • iSecurity randomizer
  • Symfony YAML Parser
  • php-peg
  • create.js
  • Imagine
  • Hallo Editor
  • Aloha Editor
  • jCrop

[random_content group_id=”211″ num_posts=”1″]

Die Anhänger des Benutzers – wie ist die Übersetzung für Follower

Es wirkt etwas befremdlich, wenn plötzlich eine Meldung wie die angehängte erscheint mit dem Hinweis “Die Anhänger des Benutzers können nicht abgerufen werden.”. Wer oder was waren doch gleich nochmal meine Anhänger? Sicherlich hat es hier nur jemand besonders gut gemeint und die Meldung aus dem Englischen vollständig übersetzen wollen. Bei dict.cc (http://www.dict.cc/?s=follower) eingegeben erscheinen die folgenden Treffer für den Begriff “Follower”:

  1. Anhänger
  2. Nachfolger
  3. Mitläufer
  4. Gefolgsmann
  5. Jünger
  6. Folger
  7. Schüler
  8. Unterstützer
  9. Verfolger
  10. Anhängerin
  11. Twitter-Follower

“Anhänger” ist auf dem ersten Platz. Persönlich bevorzugen würde ich “Unterstützer”, weil es aktiv klingt und nicht suggeriert das jemand von mir abhängig ist.

Die Anhänger des Benutzers

CoSchni#10: TYPO3 CMS Register

Im TypoScript kann auf verschiedene Konstanten bzw. Register zurückgegriffen werden. Diese beinhalten z.B. die Anzahl vom Menüelementen bei der jeweiligen Seite oder viele andere Sachen. Der häufigste Anwendungszweck den ich bisher kenne, ist die dynamische Aufteilung des Menüs in zwei Teile, wie in diesem Beispiel verdeutlicht: http://www.typo3wizard.com/de/snippets/menus/menue-dynamisch-in-2-teile-aufteilen.html

Neben dem Register “count_menuItems” gibt es noch eine Reihe weiterer. Die einzige Dokumentation die ich bisher kenne, ist im Bugtracker (http://forge.typo3.org/issues/11564) von Francois Suter und schon über zwei Jahre alte. Die letzte Aktualisierung erfolgte jedoch vor 28 Tagen, von daher gehe ich aus, das es aktuell ist. Nachfolgend mal alle Register aufgeschlüsselt:

[PHP]
class.tx_cssstyled_content_pi1.php

function render_uploads($content,$conf) – Rendering the “Filelinks” type content element, called from TypoScript (tt_content.uploads.20):
$GLOBALS[‘TSFE’]->register[‘ICON_REL_PATH’] – keeps relative path to file + filename
$GLOBALS[‘TSFE’]->register[‘filename’] – self-explainable
$GLOBALS[‘TSFE’]->register[‘path’] – self-explainable
$GLOBALS[‘TSFE’]->register[‘fileSize’] – self-explainable
$GLOBALS[‘TSFE’]->register[‘fileExtension’] – self-explainable
$GLOBALS[‘TSFE’]->register[‘description’] – description for current file from ‘imagecaption’ field
$GLOBALS[‘TSFE’]->register[‘linkedIcon’] – not sure about that, but I think is is bool value, defining, should file icon be linked or not
$GLOBALS[‘TSFE’]->register[‘linkedLabel’] – same as above, but for label

function render_textpic($content, $conf) – Rendering the IMGTEXT content element, called from TypoScript (tt_content.textpic.20)
$GLOBALS[‘TSFE’]->register[‘imageCount’] – count of all image in block
$GLOBALS[‘TSFE’]->register[‘renderGlobalCaption’] – bool value, which defines, shoul a global caption be rendered below image block
$GLOBALS[‘TSFE’]->register[‘IMAGE_NUM’] – number of current image in set (DEPRECATED)
$GLOBALS[‘TSFE’]->register[‘IMAGE_NUM_CURRENT’] – number of current image in set (not deprecated :))
$GLOBALS[‘TSFE’]->register[‘ORIG_FILENAME’] – path to the image + image name
$GLOBALS[‘TSFE’]->register[‘imagewidth’] – self-explainable
$GLOBALS[‘TSFE’]->register[‘imagespace’] – self-explainable
$GLOBALS[‘TSFE’]->register[‘imageheight’] – self-explainable
$GLOBALS[‘TSFE’]->register[‘rowwidth’] – width of whole block of images
$GLOBALS[‘TSFE’]->register[‘rowWidthPlusTextMargin’] – same, as above + margin to the text
$GLOBALS[‘TSFE’]->register[‘columnwidth’] – maximum possible width of image block + spaces at left and right side of block
$GLOBALS[‘TSFE’]->register[‘totalwidth’] – not sure, but I guess it is same as $GLOBALS[‘TSFE’]->register[‘rowwidth’]

class.tslib_content.php

function IMGTEXT
$GLOBALS[‘TSFE’]->register[‘IMAGE_NUM’]
$GLOBALS[‘TSFE’]->register[‘IMAGE_NUM_CURRENT’]

function HMENU
$GLOBALS[‘TSFE’]->register[‘count_HMENU’] – current number of a generated HMENU on a website
$GLOBALS[‘TSFE’]->register[‘count_HMENU_MENUOBJ’] – number of current menu item for current HMENU object

function SEARCHRESULT
$GLOBALS[‘TSFE’]->register[‘SWORD_PARAMS’] – search words

function TEMPLATE
$GLOBALS[‘TSFE’]->register[‘SUBPART_’.$theKey] – contains html code of subpart, defined by $theKey

public function SWFOBJECT
$GLOBALS[‘TSFE’]->register[‘MMSWFID’] – not sure, what it used for, but it holds: uniqid(‘mmswf’);

public function QTOBJECT
$GLOBALS[‘TSFE’]->register[‘MMQTID’] – uniqid(‘mmqt’);

function lastChanged($tstamp) – Sets the SYS_LASTCHANGED timestamp
$GLOBALS[‘TSFE’]->register[‘SYS_LASTCHANGED’] – timestamp of page (or content on current page) last modification

function splitObj($value, $conf) – Implements the “split” property of stdWrap; Splits a string based on a token (given in TypoScript properties), sets the “current” value to each part and then renders a content object pointer to by a number.
$GLOBALS[‘TSFE’]->register[‘SPLIT_COUNT’] – current number of item in split

class.tslib_menu.php
function makeMenu() – Creates the menu in the internal variables, ready for output.
$GLOBALS[‘TSFE’]->register[‘count_menuItems’] – number of all items in current menu

function subMenu($uid, $objSuffix=”) – Creates a submenu level to the current level – if configured for.
$GLOBALS[‘TSFE’]->register[‘count_menuItems’] – as I understood this register holds number of items not for the whole menu, but for current menu level

function writeMenu() – Traverses the result array of menu items configuration (made by generate()) and renders each item.
$GLOBALS[‘TSFE’]->register[‘count_HMENU_MENUOBJ’] – number of current menu item for current HMENU object
$GLOBALS[‘TSFE’]->register[‘count_MENUOBJ’] – number of current menu item for ALL HMENU objects on a page
[/PHP]

[random_content group_id=”211″ num_posts=”1″]