24.9.13

DSL - Damn small Linux als Gateway auf gleichem Rechner installieren

  • Distribution herunterladen und in den VMWare Player als Laufwerk (iso) einbinden und installieren
  • Standardmäßig ist kein APT Paketmanager aktiv. Diesen als root auf der Shell installieren mit
    dpkg-restore

  • Firewall (falls vorhanden) anpassen und Forwarding aktivieren mit

    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    echo 1 > /proc/sys/net/ipv4/ip_forward

18.9.13

Screenshots mit PHP erstellen

aptitude install imagemagick wkhtmltopdf
<?php
 
// save this snippet as url_to_png.php
// usage: php url_to_png.php http://example.com
if (!isset($argv[1])){
    die("specify site: e.g. http://example.com\n");
}
 
$md5 = md5($argv[1]);
$command = "wkhtmltopdf $argv[1] $md5.pdf";
exec($command, $output, $ret);
if ($ret) {
    echo "error fetching screen dump\n";
    die;
}
 
$command = "convert $md5.pdf -append $md5.png";
exec($command, $output, $ret);
if ($ret){
    echo "Error converting\n";
    die;
}
 
echo "Conversion compleated: $argv[1] converted to $md5.png\n"; 
  

Whois-Klasse für PHP

Nach längerer Zeit habe ich mich mal wieder auf die Suche nach einer guten PHP-Klasse für Whois-Abfragen begeben.
Und jetzt bin ich endlich fündig (und glücklich) geworden :)

Hier findet ihr eine Klasse, die endlich das tut, was sie soll.

Chapeau!

19.8.13

Firefox - Plugin Entwicklung

An dieser Stelle möchte ich beschreiben, wie man ein Firefox-Plugin entwickeln kann.
Ich weiß, dass es schon einige Anleitungen in dieser Form gibt, vielleicht aber kann man auch hier etwas lernen ; )
Das Beispiel soll ein Plugin sein, welches eine Whois-Abfrage zu einer Domain oder IP-Adresse durchführt.

Was das Plugin leisten soll:

  • Der mit der Maus selektierte Text (IP oder Domain) soll ausgewertet und an eine bestimmte URL geschickt werden
  • Die Antwort mit den Whois-Informationen soll in einem neuen Div erscheinen; alternativ: neues Tab


Was muss ich vorher machen?


Der Code:

exports.main = function() {
   
    var contextMenu = require("context-menu");
    var tabs = require("tabs");
    var selection = require("selection");
    var Request = require('request');
   
    var menuItem = contextMenu.Item({
        label: "Whois Auskunft",
        context: contextMenu.SelectionContext(),
        contentScript: 'self.on("click", function() {'+
                            'var text = window.getSelection().toString();'+
                            'self.postMessage(text);'+
                            '});',
        onMessage: function(text) {
                        tabs.open("http://whois.domaintools.com/"+text);
                    }                       
        }) ;
  

    };

Tipps:

  • Debuggen → Fehlerkonsole vom Firefox
    Console.log(„Nachricht“);



to be continued....

23.7.13

PHP und JS Schnipsel - Datumsfunktionen

Datum aus einer MySQL-Datenbank formatieren:


$datum_de = date("d.m.Y ", strToTime($datum));



Datumspicker mit jquery einbinden:

  1. Framework und CSS einbinden 
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"</script>
    <script type="text/javascript" src="http://code.jquery.com/ui/1.10.3/jquery-ui.js">
    </script> <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" type="text/css" />
  2. Funktion definieren (geht auch ohne PHP :))
function datepicker($fieldId)
{
    ?>
    <script type="text/javascript">

        jQuery(function($){
            $.datepicker.regional['de'] = {clearText: 'enternen', clearStatus: 'Auswahl löschen',
                closeText: 'schließen', closeStatus: 'Änderungen nicht übernehmen',
                prevText: 'vorheriger Monat', prevStatus: 'vorheriger Monat',
                nextText: 'nächster Monat', nextStatus: 'nächster Monat',
                currentText: 'heute', currentStatus: '',
                monthNames: ['Januar','Februar','März','April','Mai','Juni',
                    'Juli','August','September','Oktober','November','Dezember'],
                monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',
                    'Jul','Aug','Sep','Okt','Nov','Dez'],
                monthStatus: 'anderer Monat', yearStatus: 'anderes Jahr',
                weekHeader: 'Wo', weekStatus: 'Woche des Monats',
                dayNames:
                    ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
                dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
                dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
                dayStatus: 'Setze DD als ersten Wochentag', dateStatus: 'Wähle D, M d',
                dateFormat: 'yy-mm-dd', firstDay: 1,
                changeMonth: true,
                changeYear: true,
                initStatus: 'Bitte wählen Sie ein Datum', isRTL: false};
            $.datepicker.setDefaults($.datepicker.regional['de']);
        });
        $(function() {
            <?php echo "\$(\"#" . $fieldId . "\").datepicker();";
            ?>
        });

    </script>
    <?php
}

29.4.13

Verschlüsselte Verbindung mit MySQL Server

Diese Anleitung ist sehr gut, jedoch gab es bei immer noch folgende Fehlermeldung, obwohl die Rechte zu den Pfaden mit chown mysql:mysql entsprechend angepasst wurden:

SSL error: Unable to get certificate from '/etc/ssl/mysql/server.cert'
130429 13:09:59 [Warning] Failed to setup SSL
130429 13:09:59 [Warning] SSL error: Unable to get certificate

Erst dieser Fund hat die Lösung gebracht.

Und wieder war Apparmor mein Problem :(

Auch diese Anleitung ist ganz gut gemacht :)


Mini-Tools, die ich immer wieder brauche und nicht verloren gehen dürfen :)

Große Dateien finden:
 ls -lahS $(find / -type f -size +10000k)

 Findet alle Dateien größer 10MB

SCP ohne Abbruch
Wer kennt es nicht? Man will per SCP eine große Datei übertragen, die Übertragung bricht jedoch bei 70,80 oder 90% ab und man muss von vorn beginnen.
 Lösung: Rsync

rsync -P ——bwlimit=45 ——rsh=ssh /Quelldatei benutzer@server:/Zieldatei

Root Laufwerk nach Booten der Wiederherstellungskonsole wieder beschreibbar einbinden:

mount -o remount,rw /
 
 
System zeigt mit df 0% freien Platz an, obwohl die Festplatte noch nicht voll ist
Grund: Die restlichen 10% an Platz sind dem Benutzer root vorbehalten.

Änderung:
tune2fs -m 1 /dev/sdb1
 
MySQL Root Passwort setzen 
Mysql stoppen
/usr/bin/mysqld_safe --skip-grant-tables --user=root
login als root
UPDATE mysql.user SET Password=PASSWORD('passwort') WHERE User='root';
FLUSH PRIVILEGES;
 

Samba Freigabe mounten

mount -t cifs -o username=USERNAME,cruid=UID_DES_NUTZERS,sec=krb5i,vers=3.0 //192.168.1.100/Tausch /media/austausch  

27.2.13

Facebook Tool - Try

Es gibt für C# mittlerweile einige Sourcecodes, die sich mit der API von Facebook befassen.
Mein Problem momentan ist, die Daten, die von Facebook im JSON Format angeliefert werden, entsprechend zu verarbeiten.

Dabei bin ich auf folgende Bibliothek gestoßen:
FastJSon

Die Ergebnisse stimmen mich bislang jedoch noch nicht zufrieden.

Ein eigenes Facebooktool ist in Planung....


To be continued...

3.1.13

Mit JQuery (Input)-Felder "disablen"


 Feld deaktivieren:
$('#submit').prop('disabled', true);
 Feld aktivieren:
$('#submit').prop('disabled', false);
 

Openhab und Ecoflow Max - API Anbindung

 Ich wollte die neu erworbene Powerstation in Openhab einbinden, um den aktuellen Status (Ladestand etc.) über Openhab auswerten zu können. ...