Archive for the ‘Programmierung’ Category

Fallgruben in BASH

Posted on July 10th, 2014 in Konsole, Programmierung, Ubuntu | 9 Comments »

cat hunting the bash Immer wieder bin ich angenehm überrascht wie viele Aufgaben ich mit BASH in oft einer (langen) oder nur wenigen Zeilen lösen kann. Warum schreibe ich dann fast alles in Skriptsprachen wie Ruby, Python oder Perl?
Ganz einfach weil die Syntax einfacher zu merken ist und BASH doch einige Eigenheiten hat, die es zu merken gilt.

Darum hier ein Versuch sämtliche gern gemachte Fehler niederzuschreiben. Ich würde mich über Kommentare eurer Fallgruben von euch freuen.
Read the rest of this entry »

Web-Entwicklung mit Ubuntu

Posted on November 11th, 2009 in Programmierung, Ubuntu | 11 Comments »

Das Vorurteil das man keine Webseiten unter Linux entwickeln kann, möchte ich hiermit mal aus der Welt schaffen. Ich arbeite fast täglich an Webseiten mit Linux, seit Jahren und würde mit keinem Betriebsystem tauschen wollen.

Der Editor

Der Editor ist Geschmackssache dazu will ich nicht viele Worte verlieren. Ich verwende vim und bin durch die ganzen Plugins und der Konfigurationsmöglichkeiten sehr zufrieden damit. Quanta und Bluefish sind zwei speziell für web development zugeschnittene Editoren.

kleine Helfer

Ich finde eine Bildschirmlupe die Bereiche des Bildschirms vergrößert darstellt sehr praktisch dazu verwende ich kmag. Um Pixeln zumessen verwende ich kruler, das ein Bildschirmlineal ist das man in alle 4 Himmelsrichtungen drehen kann. Ksnapshot ist ein Programm das Screenshots erzeugt, es ist unter anderen möglich nur ein Fenster oder nur eine Region auszuwählen.

Firefox-Plugins

Der Firefox ist zum Entwickeln besonders geeignet durch die große Anzahl an Plugins.
Mit Firebug und dem Web Developer ist es möglich Informationen aller Art herauszufinden und direkt CSS oder HTML zu ändern. Tamper Data ist ideal um Werte von Formularen abzufangen und die Einträge zu manipulieren. Mit Selenium IDE kann man Navigationen und Interaktionen auf einer Webseite aufzeichnen und abspielen.

Browserchecks

Webseiten sollten auf allen gängigen Browsern funktionieren. Um Webseiten auf Windows zu testen verwende ich virtual box, eine Virtualisierungs Software mit einer Windows XP Installation und allen möglich installierten Browsern. Es gäbe auch das Programm ie4linux das verschiedene IE Versionen mit wine emulieren kann. Leider ist das sehr langsam, nach meiner Erfahrung. Für Safari den OSX Browser verwende ich Konqeuror der ebenfalls wie Safari Webkit verwendet zum rendern der Webseite und man so ziemlich die selbe Darstellung hat. Mit Lynx kann man auch Webseiten im Textmodus testen. Es gibt auch das Webservice browsershots.org die von einer URL mit beliebig einstellbaren Browsern Screenshots erzeugt.

Validierung

Um zu überprüfen ob die Seite valides HTML und CSS liefert, kann direkt der Validator von w3.org zum überprüfen verwendet werden. Wenn die Seite lokal am Rechner liegt kann man tidy verwenden, es gibt auch das Firefox Plugin Html Validator womit man auch offline validieren kann.

Server-Technik

Da auf den meisten Servern auch ein Linux lauft ist es natürlich klar das man auch die selbe Server-Technik lokal am Desktop installieren kann. Ein Webserver wie den Apachen lässt sich genau so einfach wie MySQL, PHP, Django oder Rails mittels aptitude installieren.

Diagramme generieren mit Graphviz

Posted on August 19th, 2009 in Konsole, Programme, Programmierung, Ubuntu | 8 Comments »

Nennt mich Nerd, aber ich erfreue mich an automatisch generierten Grafiken wie Diagrammen aus Datenmengen. Ein Tool das genau zu diesen Zweck verwendet werden kann ist Graphviz, damit lassen sich schnell und einfach Diagramme erstellen. Strukturdiagramme, Pfeildiagramme, automatisch erzeugte Diagramme und aufwändig manuell gestaltete Diagramme. Bevor eine Grafik erstellt werden kann wird eine Definitionsdatei erstellt in der Beschreibungssprache DOT.

Im ersten Beispiel soll eine Grafik erzeugt werden, die von “Linux” Verbindungen zu “Debian”, “Gentoo” und “Ubuntu” zeigt.

/* linux_family_1.dot */
digraph G {
    Linux -> Debian
    Linux -> Gentoo
    Linux -> Ubuntu
}

Mit dem Kommandozeilenbefehl dot wird nun der Quelltext zu einer Grafik (GIF, PNG, SVG oder PostScript) verarbeitet. In unseren Beispiel wollen wir eine PNG Datei aus dem DOT Quelltext erzeugen.

dot -Tpng linux_family_1.dot > linux_family_1.png

Read the rest of this entry »

Diese Woche in der Konsole #5

Posted on August 2nd, 2009 in Konsole, Programmierung | 2 Comments »

Diese Woche in der Konsole

  1. Datei kopieren mit dem selben Namen aber neue Endung (.bkp).

    cp datei{,.bkp}
    
    ls datei*
    datei  datei.bkp
    
  2. FTP Passwort vergessen? Aber es befindet sich noch in einem Programm wie gftp? Dann kann ngrep helfen. Zuerst ngrep auf das Netzwerkdevice lauschen lassen, wie das lautet kann aus ifconfig ausgelesen werden und den FTP Port angeben. Danach kann man sich mit dem Server verbinden und sieht den Login im Klartext vorbeihuschen.
    sudo ngrep -d eth1 port 21
    
    interface: eth1 (192.168.1.0/255.255.255.0)
    filter: (ip or ip6) and ( port 21 )
    #
    T 912.103.134.87:21 -> 192.168.1.4:41085 [AP]
      220 ProFTPD 1.3.0 Server (Debian) [::ffef:912.103.134.87]..
    ##
    T 192.168.1.4:41085 -> 912.103.134.87:21 [AP]
      USER benutzerin..
    ##
    T 912.103.134.87:21 -> 192.168.1.4:41085 [AP]
      331 Password required for benutzerin...
    ##
    T 192.168.1.4:41085 -> 912.103.134.87:21 [AP]
      PASS supergeheim23..
    

    Wie wir hier sehen, ist das Passwort des Benuzters “benutzerin” “supergeheim23″.

  3. Vier Zeilen einer Datei, hier von /etc/passwd per Zufall auslesen.
    shuf /etc/passwd -n 4
  4. Das Ziel eines Symlinks (ln) abkürzen mit einem Punkt.
    Wenn das Ziel eines Symlinks (ln) sich im gerade aktuellen Ordner befindet und der Dateiname der selbe sein soll, braucht es keinen Dateinamen.

    ln -s config/database.yml
    
    ls -al database.yml
    lrwxrwxrwx 1 user user 19 2009-07-31 22:52 database.yml -> config/database.yml
    
  5. Wer so wie ich die Programme “dig” oder “host” unter Ubuntu sucht der findet sie im Paket dnsutils.
    aptitude install dnsutils
  6. Mit der Konsolenversion von HandBrake, ein Video in ein ipodtaugliches Video konvertieren.

    HandBrakeCLI -i video.avi -o video_ipod.mp4 -e x264b13  \
    -b 700 -R 44100 -B 128 -2 -w 320

Diese Woche in der Konsole #4

Posted on July 26th, 2009 in Konsole, Multimedia, Programmierung, Ubuntu | 2 Comments »

Diese Woche in der Konsole

  1. Immer wieder tauchen Base64 enkodierte Dateien auf, mit OpenSSL können sie einfach en/dekodiert werden:decode:
    openssl enc -base64 -in in_file -d

    encode:

    openssl enc -base64 -in in_file -e
  2. Website-Mirror ziehen:
    wget -m -k -K -E http://url/of/web/site
  3. Alle verwendeten IP Adressen anzeigen.
    ifconfig | ruby -n -e 'puts $1 if /addr:(\S+)/'
    192.168.1.4
    127.0.0.1
    
  4. Mp3-Datei in eine Wav-Datei mit ffmpeg umwandeln.
    ffmpeg -i datei.mp3 datei.wav
  5. Mit wget mp3s von example.org runterladen mit den Namen (0 bis 9).
    ruby -e '10.times{|i| %x"wget http://example.org/#{i}.mp3"}'
  6. ~/.bashrc editieren, abspeichern und sofort ausprobieren:
    source ~/.bashrc

    Das funktioniert mit .cshrc etc. natürlich auch…