Archiv für den Monat: September 2012

Skype Fenster blinkt nicht mehr

Du hast einen Skype Kontakt und bekommst keine Anzeige mehr, wenn der dir was schreibt? Und bisher ging das immer? Löschen des Kontaktes und ein erneutes hinzufügen hat auch nicht funktioniert? Bei allen anderen Kontakten funktioniert es, nur bei einem nicht?

Dann willkommen in der Welt der „Hidden Features“ von Skype.
Wahrscheinlich ist die „Alert“-Funktion für diesen einen Kontakt auf „off“ … wie, du weist nicht, dass das geht? Klar, das kannst du aber weder in den Optionen noch beim Kontakt sehen. Das funktioniert nur per Konsole.

Jetzt keinen Schreck bekommen, mach das Chatfenster des Kontaktes auf und gib das hier ein:

/alertson

Und ab jetzt bekommst du auch wieder einen Hinweis, dass dich dieser Kontakt angeschrieben hat.

Es ist eines der „hidden features“ von Skype, hier sind noch ein paar:

  • /me irgendwas
    z.B. /me mag Kaffee zeigt im Fenster „Sascha mag Kaffee“ an (good old IRC style [nicht IRQ, wie zuerst behauptet])
  • /find Text
    Sucht den Text
  • /alertsoff
    stellt die Alert-Funktion für diesen Kontakt/diesen Chat ab
  • /alertson
  • stellt den Alert wieder an
  • /alertson Text
    Benachrichtigen, wenn der Text eingegeben wird (hilfreich bei Chats)

Noch mehr Kommandos und sogar ein paar „hidden smilys“ gibt es hier:
http://www.candy-college.com/tipps-tricks/geheime-skype-befehle-versteckte-funktionen-in-skype/

php Codesniffer und CI , Zeilenlänge und Windows Zeilenumbruch setzen

Windows, Continous Integration, 16:10 Bildschirme und phpcs.

Dies alles passt im Standard nicht zusammen, zumindest nicht mit unseren internen Regeln, daher hier die notwendigen Anpassungen, um zumindest die Zeilenlänge auf ein erträgliches Maß von 120 zu 160 zu bekommen (nicht mit dem Blutdruck verwechseln) und den Codesniffer an Windows-like Zeilenumbrüche von \r\n zu gewöhnen.

Meine phpcs.xml sieht dann in etwa so aus:

<?xml version="1.0"?>
<ruleset name="PHPCS Rules">
 <description>Using Zend Rules</description>
 <rule ref="Zend">
  <exclude name="Generic.WhiteSpace.DisallowTabIndent" />
  <exclude name="Generic.Functions.OpeningFunctionBraceBsdAllman" />
  <exclude name="Generic.PHP.DisallowShortOpenTag" />
  <exclude name="Generic.Files.LineEndings" />
 </rule>
 <rule ref="Generic.Functions.OpeningFunctionBraceKernighanRitchie" />
 <rule ref="Generic.Files.LineLength">
  <properties>
   <property name="lineLimit" value="120"/>
   <property name="absoluteLineLimit" value="160"/>
  </properties>
 </rule>
</ruleset>

PHP XML Daten in einer Session speichern

Beim Versuch, SimpleXML Objekte in eine Session zu speichern solltet ihr folgendes Wissen.

Ein trivialer Ansatz wie

if (!isset($_SESSION['xml'])) {
  $xml = simplexml_load_string($myxmlstring);
  $_SESSION['xml'] = $xml->someNode;
}
var_dump($_SESSION['xml']);

wird fehlschlagen. Im ersten Moment sind die Daten in der Session offenbar gespeichert, beim nächsten Aufruf der Seite werden allerdings alle values verschwunden sein, d.h. der xml-Key der $_SESSION ist zwar vorhanden (weshalb auch das Neuladen übersprungen wird), aber $_SESSION[‚xml‘] = null.

Ihr umgeht das Problem, in dem ihr jeden Wert, den ihr speichern wollt, vorher explizit Typkastet und dann erst in die Session einbringt:

if (!isset($_SESSION['xml'])) {
  $xml = simplexml_load_string($myxmlstring);
  $_SESSION['xml'] = array(
    'someNode' => (int)$xml->someNode,
    'otherNode' => (string)$xml->other->node[0]->attribName,
}
var_dump($_SESSION['xml']);

Nun erhaltet ihr die Werte bei jedem Aufruf und könnt die eingelesenen Werte in der Session transportieren.