Martin Lantzsch
Software Entwickler
2. Juli 2012

Defekte HD mit dd sichern und ddrescue output piping

2. Juli 2012 - Geschrieben von Martin - Keine Kommentare

Ich bin gerade dabei eine defekte Festplatte zu sichern, ddrescue kommt da natürlich sehr gelegen. Leider unterstützt ddrescue kein output piping um das Image mittels gzip on the fly zu komprimieren, da es im Ausgabe Image wild hin und herspringen muss um die Blöcke zu schreiben.
Sicher ist es ohne Komprimierung auch ein gangbarer Weg, allerdings nicht, wenn das Image übers Netz auf einen anderen Server geschrieben werden soll.

Also habe ich mir dd zurechtgerückt:

dd bs=1024 conv=noerror,notrunc,sync if=/dev/sda2 | gzip > /mnt/nas/sda2.img.gz

Damit überspringt dd defekte Sektoren. Verwendet man diese conv Parameter nicht, bricht dd ab, sobald es einen Sektor nicht mehr lesen kann.

2. Juli 2012

TeamSpeak die Zicke

2. Juli 2012 - Geschrieben von Martin - Keine Kommentare

slogin superadmin a31akv
ERROR, invalid login
slogin superadmin a31akv
OK

Ahja…

22. Juni 2012

iPhone leer

22. Juni 2012 - Geschrieben von Martin - Keine Kommentare


Mh, jemand eine Idee warum mein iPhone seine Bilder nicht mehr im Explorer anzeigt? Entsperrt habe ich es …

EDIT: Fehler gefunden. Erst Code Sperre entsperren, dann an den PC anschließen, dann klappt das auch.

18. Juni 2012

Zu heiß – Summeroffice

18. Juni 2012 - Geschrieben von Martin - Keine Kommentare

Da es heute in meinem Büro unter dem Dach zu heiß zum Arbeiten wurde, bin ich mal ins Vorzimmer ausgewichen, wo ich mich mit dem nötigsten niederließ.

Sehr inspirierend übrigens, mal wo anders zu sitzen, auf eine andere Wand zu schauen und vor allem nicht seinen ganzen Müll, der sich sonst so auf dem Schreibtisch ansammelt um sich zu haben. [/Lebenstipp]

23. Mai 2012

jQuery Easypassgen für Fomulare

23. Mai 2012 - Geschrieben von Martin - Keine Kommentare

Ich habe eine Modifikation an dem jQuery Plugin easypassgen vorgenommen um Passwörter auch in Formularfelder schreiben zu können. Es wird nun geprüft ob ein Attribut namens „value“ existiert, wenn ja wird das Passwort dort hineingeschrieben.

/* http://code.google.com/p/jquery-easypassgen/
   Easy Password Generator for jQuery v1.4.
   Written by Yuri Pikin (me{at}jurius.name) December 2010.
   Licensed under the MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) license.
   Please feel free to use it.
 
   Example page enable at http://pasw.pm-tools.ru
*/
 
(function( $ ){
 
    var methods = {
        init:   function ( options ){
 
            return this.each(function( ){
 
                var $this = $(this);
 
		if($this.attr('value') == undefined) {
			$this.html($.fn.easypassgen('generate', options ));
		} else {
			$this.attr('value', $.fn.easypassgen('generate', options ));
		}
            });
        },
        generate: function( settings ){
 
            var system = {
                commonChars:    "bcdfghkmnprstvz",
                allConsonants:  "bcdfghkmnprstvzjqwx",
                allVowels:      "aeuy",
                allChars:       "bcdfghkmnprstvzjqwxaeuy",
                specialChars:   "#^:_-",
                randomize:      function( from, to){
                    from = typeof(from) != 'undefined' ? from : 0;
                    to = typeof(to) != 'undefined' ? to : from + 1;	
                    return Math.round(from + Math.random()*(to - from));
                },
                getRandomCharacter: function(a){
                    return a.charAt(this.randomize(0,a.length-1));
                }
            };
 
            var defaultSettings = {
                'syllables':        3,
                'numbers':          true,
                'specialchars':     false
            };
 
            if (settings){
                $.extend( defaultSettings, settings );
            }
 
            var numberProbability = 0, numberProbabilityStep = 0.25;
            var specialProbability = 0, specialProbabilityStep = 0.5;
 
            var generatedPass = '';
 
            for(var i = 0; i < defaultSettings.syllables; ++i) {
                    if(Math.round(Math.random())) {
                            generatedPass += system.getRandomCharacter(system.commonChars).toUpperCase() +
                                                                    system.getRandomCharacter(system.allVowels) +
                                                                    system.getRandomCharacter(system.allChars);
                    } else {
                            generatedPass += system.getRandomCharacter(system.allVowels).toUpperCase() +
                                                                    system.getRandomCharacter(system.commonChars);
                    }
                    if(defaultSettings.numbers && Math.round(Math.random() + numberProbability) && ( i != (defaultSettings.syllables-1))) {
                            generatedPass += system.randomize(0,9);
                            numberProbability += numberProbabilityStep;
                    } else if (defaultSettings.specialchars && Math.round(Math.random() + specialProbability) && (i != (defaultSettings.syllables-1))){
                            generatedPass += system.getRandomCharacter(system.specialChars);
                            specialProbabilityStep += specialProbabilityStep;
                    }
            }
 
            return generatedPass;
        }
    }
 
    $.fn.easypassgen = function( method ) {
 
        if ( methods[method] ) {
            return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
        } else if ( typeof method === 'object' || ! method ) {
            return methods.init.apply( this, arguments );
        } else {
            $.error( 'Method ' +  method + ' does not exist on jQuery.easypassgen' );
        }
    };
 
})( jQuery );

23. Mai 2012

Sencha Touch 2 + Phonegap Android 4 Fix

23. Mai 2012 - Geschrieben von Martin - Ein Kommentar

<script>
// Fix for problem with android 3.x and 4.x which is
// the browser has a problem with urls with ? and this
// bug has not been fixed by google. See:
// http://code.google.com/p/android/issues/detail?id=17535 or
// http://www.sencha.com/forum/showthread.php?162322-Sencha-Touch-2-PhoneGap-are-not-working-on-Android-4/page3&highlight=Loader
//
 
Ext.Loader.setConfig({ disableCaching: false });
Ext.Ajax.setDisableCaching(false); 
</script>


Diesen Code Schnipsel in der index.html vor die app.js setzen. Anschließend funktioniert die App auch auf Android 4, da sie nun ihre JavaScript Files nachladen kann nicht mit einem weißen Screen endet.

Übrigens kann man die Fehler, die in einem WebView Produziert werden mit der App „Log Collector“ auslesen.

22. Mai 2012

Sencha Touch 2 – Tab Panel wird nicht angezeigt?

22. Mai 2012 - Geschrieben von Martin - Keine Kommentare

Stundenlanges suchen, frustrierendes herumprobieren und nun bin ich dahinter gekommen, warum mir nach dem Update auf die neuste Version von Sencha Touch 2 ein Tab in der Tab Bar fehlt. Dem Panel, das als Tab herhalten sollte, war eine „fullscreen“ Property zugeordnet die auf „true“ gesetzt war. Deshalb hat Sencha Touch diesen Tab beim Rendern aus der Tab Bar geworfen.

Eigentlich ganz logisch – Im Nachhinein. Fullscreen und Tab beißen sich nunmal.