iPhone-App MyVocab

19. April 2010, 20:08

Bald gibt es die erste iPhone-App aus dem Hause [systemfehler.net]. Und was könnte es treffenderes sein als ein Vokabeltrainer?

iPhone-App MyVocab

Assemblerprogramm

27. März 2010, 19:00

Beim Aufräumen meines Rechners habe ich noch einen interessanten Quelltext entdeckt, der während meines Studiums entstand, den ich niemanden vorenthalten möchte. Alles was dieses Assemblerprogramm macht, ist eine Folge von Hex-Werten in ihre ASCII-Entsprechung umzuwandeln.

Das Programm sollte auf einem MC 68000 Prozessor von Motorola noch lauffähig sein.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
* Christian Meilicke, Robert Schneider

  ORG     $0
  DC.L    $8000
  DC.L    START
  ORG     $2000

* 16 bytes mit den ascii-werten in hex darstellung
* werden im speicher abgelegt
  VALUES  DC.B    $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$41,$42,$43,$44,$45,$46

* register D0,D1,D4 loeschen bzw auf 0 setzen
  START AND.L #0,D0
  AND.L #0,D1
  AND.L #0,D4

* wert des bytes, das umgewandelt werden soll, in das datenregister D0 schreiben
  MOVE.B  #$FF,D0

* anfangsadresse des speicherbereichs, in dem die ascii werte abgelegt wurden
* in das adressregister A0 laden
  LEA     VALUES,A0

* damit am schluss der hex wert des bytes weiterhin in D0 steht,
* kopiere ich den wert in D4 und arbeite mit diesem wert weiter
  MOVE.B  D0,D4

* indem ich die zahl in D4 durch hex 10 teile,
* habe ich danach in den bits 0-15 von D4 den qoutienten, in den bits 16-31 den rest stehen
  DIVU  #$10,D4

* in D1 wird dann der wert der speicherstelle geschrieben, die in A0 steht, um die distanz
* von dem wert der bits 0-15 in D4 erweitert
  MOVE.(A0,D4),D1

* durch eine multiplikation mit hex 100 wird der inhalt an die richtige stelle nach rechts
* geschoben, sprich in das 2 byte
  MULU.W  #$100,D1

* durch den swap erreicht man eine vertauschung der 2 16-bit worten in D4
  SWAP  D4

* erklaerung dieses schrittes, siehe weiter oben
  MOVE.B  (A0,D4),D1

* hilfsdatenregister D4 wieder auf 0 setzen
  AND.L #0,D4

END BREAK

WP-Plugin Custom Footer

27. Februar 2010, 17:53

Kleines Wordpress-Plugin, das es einem Benutzer ermöglichen soll, den Footer einer Seite zu ändern, ohne das HTML-Template bearbeiten zu müssen. Dafür muss in der Datei footer.php des verwendeten Themes lediglich die Funktion wp_footer() eingebunden sein.

Download

Suchen, Ersetzen und reguläre Ausdrücke, Teil 1

22. Februar 2009, 23:57

Habe hier ein paar reguläre Ausdrücke für verschiedene Textwerte zusammengetragen, die ich während der Programmierung oft verwende. Natürlich könnte man diese noch weiter verfeinern, doch für meine Bedürfnisse waren sie bisher ausreichend.

Dezimalzahl:

'/^[0-9]*$/'

Textfeld:

'/^[a-zA-Z .-]*$/'

E-Mail:

"/^[a-z0-9]+([_\\.-][a-z0-9]+)*" . "@" . "([a-z0-9]+([\.-][a-z0-9]+)*)+" . "\\.[a-z]{2,4}" . "$/"
"'/[a-zA-Z0-9_-]?[a-zA-Z0-9_\.-]+[a-zA-Z0-9_-]?@[a-zA-Z0-9\.-]+\.[a-zA-Z]{2,4}/"

Datum:

'/^\d{2}\.\d{2}\.\d{2,4}$/'

Telefon:

"/[^+-\/0-9 ()]/"

Wer sich ein wenig mit regulären Ausdrücken beschäftigen möchte, findet hier ein sehr gutes Tutorial zu dem Thema.

Plesk und qmail

22. Oktober 2008, 09:53

Wenn der Versand einer E-Mail aus einem Client heraus länger dauert, als es normalerweise dauern sollte, kann man eine Anpassung in der Datei /etc/xinetd.d/smtp_psa vornehmen. Nach der Stelle “server_args = ” das Argument -Rt0 hinzufügen, danach xinetd neustarten rcxinetd restart und schon sollten die Mails um einiges schneller versendet werden.

MAMP-Zugriff über Parallels

26. September 2008, 17:16

Um Webseiten, die auf einer lokalen MAMP-Installation auf dem MacBook laufen, auch mit dem Internet Explorer unter Parallels testen zu können, muss man unter Systemeinstellungen > Sharing > Web-Sharing aktivieren.

Nun ist der Webserver unter Parallels über sabu.local:8888 (wobei sabu der Name des Computers ist) zu erreichen.

Update:
Indem man Bonjour für Windows installiert, kann man auf die Einstellung oben verzichten.
Sollte der Rechner unter COMPUTERNAME.local nicht erreichbar sein, so kann man es alternativ auch mit der IP-Adresse versuchen.

Downloads tracken mit Google Analytics

15. September 2008, 23:20

Hier findet man ein kurze Beschreibung, wie man in Google Analytics seine Downloads erfassen kann.

Multiple Firefox unter Mac OS X

20. Juni 2008, 15:00

Da ich meinen Firefox, ungeduldig von den neuesten Features Gebrauch zu machen, auf die neueste Version 3 aktualisiert habe und dadurch das BE von TYPO3 bei Versionen < 4.2 nicht mehr funktionierte, stand ich heute vor dem Problem, wie installiere und benutze ich Firefox 2 und Firefox 3 parallel?

Die Lösung ist relativ einfach. Man lädt sich nochmal die Version 2 runter, mountet das dmg und kopiert Firefox.app z.B. auf seinen Desktop. Benennt die Datei in Firefox2.app um und verschiebt sie in den Programmordner.
Auf der Kommandozeile ruft man den Profile-Manager auf:

/Applications/Firefox.app/Contents/MacOS/firefox -ProfileManager

und legt ein neues Profil für Firefox 2 an. Das default-Profil kann man für Firefox 3 verwenden.

Nun erscheint beim jedem Start von Firefox der Profile-Manager. Indem man für die verschiedenen Versionen von Firefox unterschiedliche Profile verwendet, kommen sich die Add-Ons, Themes und sonstige Einstellungen nicht in die Quere.

Plesk Tricks

18. Juni 2008, 14:39

Um abweichende Einstellungen für einen bestimmten virtuellen Host vorzunehmen kann man wie folgt vorgehen:

  • unter /var/www/vhosts/systemfehler.net/conf die Datei vhost.conf anlegen
  • in der angelegten Datei die gewünschten Konfigurationen vornehmen
    1
    2
    3
    4
    5
    <Directory /srv/www/vhosts/domain.de/httpdocs>
    php_admin_value open_basedir none
    php_admin_flag safe_mode off
    # usw.
    </Directory>
  • durch folgenden Befehl wird die vhost.conf an das Ende des virtuellen Hosts in der Datei httpd.include eingefügt:
    /usr/local/psa/admin/sbin/websrvmng -u --vhost-name=domain.de
  • damit die Änderungen dann auch wirksam werden, muss Apache neu gestartet werden (rcapache2 reload oder rcapache2 restart). Davor würde ich aber mit rcapache2 configtest üeberprüfen, ob die Syntax der Konfigurationsdatei stimmt

Stoppen bzw. starten des Plesk-Dienstes (PSA) über die Shell mit folgenden Befehlen:

  • /etc/init.d/psa stop bzw.
  • /etc/init.d/psa start

Domainumleitung um Mehrfachcontent zu vermeiden

7. November 2007, 10:19

Hiermit lassen sich alle Domains, die auf den gleichen Inhalt zeigen, auf eine Domain weiterleiten.

1
2
3
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.systemfehler\.net [NC]
RewriteRule ^(.*)$ http://www.systemfehler.net/$1 [R=301,L]

Hiermit lässt sich eine Eingabe der Domain ohne www, auf die Domain mit www weiterleiten.

1
2
3
RewriteEngine On
RewriteCond %{HTTP_HOST} ^systemfehler\.net$ [NC]
RewriteRule ^(.*)$ http://www.systemfehler.net/$1 [R=301,L]

Apache-Direktiven

30. August 2007, 16:58
1
2
3
4
5
6
# direkter Aufruf von php-Dateien
# in einem Ordner verhindern
<Files *.php>
Order Deny,Allow
Deny from all
</Files>
1
2
# directory listing bei Apache > 1.3.x  erlauben
Options +Indexes
1
2
3
4
5
6
# verschiedene Werte in der php.ini ueberschreiben
<IfModule mod_php4.c>
php_value session.use_trans_sid On
php_admin_flag safe_mode Off
php_admin_value open_basedir None
</IfModule>
1
2
3
4
# teilt dem browser den zeichensatz mit,
# in dem die inhalte geliefert werden
AddDefaultCharset ISO-8859-1
AddCharset ISO-8859-1 .iso8859-1 .latin1