Software development

If Ⅰ were to make my own Go…

The sleep states of the ESP32

24. July 2017

For the ESP8266 see here.

Both ESP-IDF and the Arduino core are still very unstable, again (as with the ESP8266) with the Arduino core being seemingly more mature. (Wire.begin() worked out of the box while Ⅰ couldn’t get i2c_master_cmd_begin() to work properly.) This is especially true for the power management functions, so…

Den ganzen Beitrag lesen »

The sleep states of the ESP8266

24. July 2017

For the ESP32 see here.

As there is quite a bit of confusing documentation about the power management of the ESP8266, here’s a little overview.

Den ganzen Beitrag lesen »

USB-Debugging mit Tablet von Point of View

8. November 2012

Das Tablet TAB-PROTAB30-IPS10 der niederländischen Firma Point of View ist nicht in der Liste der OEM-Treiber von Google gelistet, es wird aber auch nicht automatisch vom Google-USB-Treiber erkannt. Es hat die Vendor-ID 2207 und die Product-ID 0010.

Um damit USB-Debugging über ADB zu machen, muss man:

  • einen USB-Treiber von Google besorgen, z.B. über den SDK Manager
  • in der .inf-Datei im Abschnitt [Google.NTamd64] bzw. [Google.NTx86] hinzufügen:
    %CompositeAdbInterface% = USB_Install, USB\VID_2207&PID_0010&MI_01
  • damit es vom ADB auch erkannt wird, eine Datei %USERPROFILE%\.android\adb_usb.ini anlegen, in der steht:
    0x2207

Erkenntnisse zu Zeichensätzen und AJAX

3. May 2010

Da ich nirgendwo verlässliche Informationen über die Behandlung von Zeichensätzen im Zusammenhang mit XMLHttpRequests* finden konnte, habe ich selbst einige Versuche angestellt und bin zu folgenden Erkenntnissen gelangt:

Den ganzen Beitrag lesen »

Linksammlung: Firefox erweitern

1. February 2010

Ich stand vor dem Problem, ein Kryptographie-Modul für den Zugriff auf eine Smartcard für ein Client-Zertifikat installieren zu wollen.

In Firefox 3.0 ging das noch mit…

Den ganzen Beitrag lesen »

C-Schnellkurs

17. March 2009

Hier habe ich aus "The Ⅽ book" alles zusammengefaßt, was man nicht intuitiv erwartet:

Den ganzen Beitrag lesen »

PHP Token Viewer

15. March 2009

Um die Möglichkeiten und Nicht-Möglichkeiten der PHP-Funktion token_get_all() abzuschätzen, habe ich ein kleines Skript gebaut, das die Tokens anzeigt:

Markierte Tokens

Über Funktionen in PHP

7. March 2009

  • Funktionen müssen nicht definiert werden, bevor man sie verwendet, außer sie sind bedingt definiert. Die "Bedingung" kann auch darin bestehen, daß die Funktion innerhalb einer anderen Funktion definiert wird; die äußere Funktion muß dann erst ausgeführt werden bevor die innere aufgerufen werden kann. Dies steht auch in der Doku.
  • Funktionen, die direkt in einer Klasse definiert werden, werden Methoden. Funktionen, die in Methoden definiert werden, werden globale Funktionen, sobald die Methode aufgerufen wird. Funktionen, die in Funktionen in Methoden definiert werden, werden globale Funktionen, sobald die äußere Funktion ausgeführt wird, wozu zunächst natürlich die Methode ausgeführt werden muß:
    class Klasse { function aussen() { function mitte() { function innen() { } } } function foo() { // aussen(); // Call to undefined function // $this->mitte(); // Call to undefined method } } $instanz = new Klasse; // $instanz->foo(); // s.o. // mitte(); // -> Call to undefined function // innen(); // -> Call to undefined function $instanz->aussen(); // innen(); // -> Call to undefined function mitte(); innen();

  • Statische Variablen in Methoden sind global (also instanzübergreifend) statisch. Statische Variablen in globalen Funktionen sind natürlich sowieso global statisch, auch wenn die Funktionen in einer anderen Funktion definiert wurde.

Pfad in Baum ohne Rekursion

24. March 2008

Um in PHP eine Pfadliste in einen Baum einzusortieren, braucht man weder Rekursion noch eval() sondern:

$baum = array(); foreach ($liste as $pfad) { $pfadkomponenten = explode('/',$pfad); $pointer =& $baum; foreach ($pfadkomponenten as $komponente) $pointer =& $pointer[$komponente]; $pointer = true; // Irgendwas reinschreiben. } unset($pointer);

Nächste Einträge »