8.11.12

Einstieg in die Android-Programmierung

Irgendwann muss man ja mal anfangen ;)

Nachdem Android sich langsam aber sicher zum Quasi-Standard der Mobilfunkbetriebssysteme durchsetzt, möchte ich mich etwas näher mit der App-Programmierung befassen.

Was brauche ich, um Android-Apps zu programmieren?

Hier habe ich eine schöne Anleitung gefunden, die einiges, was für den Anfang wichtig erscheint, erklärt.
Allerdings möchte ich aus alter Verbundenheit lieber weiterhin Netbeans für die Entwicklung nutzen.

Um das zu gewährleisten, scheint diese Seite eine gute Anleitung zu geben.
  • Installation des Java SDK
    Bevor Netbeans eingesetzt werden kann, muss von der Oracle Seite das Java SDK herunterladen und installiert werden.
  • Installation von Netbeans
    Unter netbeans.org die neueste Version herunterladen (im Moment 7.2 - allerdings nur auf Englisch)
  • Neues Update-Center unter Plugins/Settings eintragen: http://nbandroid.org/release72/updates/updates.xml
  • Installation des Android SDK
  • Wenn die Umgebungsvariable JAVA_HOME nicht gesetzt ist, kann es Probleme geben. Dann gem. dieser Anleitung den richtigen Pfad setzen.

Weiteres folgt.....

4.11.12

Internet über UMTS-Stick ZTE MF112 und die FritzBox

Dieser Artikel passt eigentlich nicht so richtig zum Thema Programmieren, doch soll meine intensive Webrecherche in Zukunft auch anderen zur Verfügung stehen.

Ausgangslage:
  • UMTS-Stick MF112 vom Hersteller ZTE (die chinesische Firma, die im Moment mit Smartphones auf den deutschen Markt prescht), Simlock auf einen ausländischen Provider
  • FritzBox 7240

Ziel:
Internetzugang über Sim-Karte eines deutschen Providers.

Zunächst einmal ist festzustellen, dass ohne einen entsprechenden Patch der Stick, der im Ausland erworben wurde, für deutsche Mobilfunknetze nutzlos ist.
Also gilt es, den Simlock zu deaktivieren. Nach einigen Recherchen und dem Fund von zumeist kostenpflichtigen Angeboten (10€ für das Unlocken) habe ich in einem Forum diese Software gefunden.
Ein kurzer Check bei Virustotal.com ergab zwar Hinweise darauf, dass es sich um einen Trojaner handeln könnte. Aufgrund der Zeitstempel halte ich das jedoch für fragwürdig.
Dennoch: Wer sicher gehen möchte, sollte an dieser Stelle aufhören!


Weiter gehts: Modem eingesteckt (mit Sim-Karte!),  die dem Stick schon beiliegende Software gestartet, damit er erkannt wird, gleich wieder beendet und dccrap.exe gestartet.






Nach Einstellen der Firma und Klick auf den Suchen-Button sollte das Modem gefunden werden. Nun noch noch auf Unlocking und das Simlock (den Simlock?)  aufheben.

Nach dieser Prozedur war mit der mit der auf dem Stick installierten Software weiterhin kein Verbindungsaufbau möglich, denn diese war (natürlich) auf das eigene Netz ausgerichtet.

Darum diese Software entfernen und die Standardsoftware (von dieser Seite) installieren. Bei dieser Gelegenheit habe ich auch den Standardtreiber von hier installiert.

Nun nochmal ausprobiert und schon funktioniert auch eine andere Sim-Karte in dem Stick!
Also ab damit in den USB-Port der FritzBox:


Leider erfolglos, nur der USB-Speicher wird richtig erkannt, im Menüpunkt "Internet" der FritzBox taucht kein Eintrag "Mobilfunk" auf.
Also wieder einmal gegooglet und nach dem Abgrasen einiger Seiten endlich die Lösung in diesem Forum gefunden:


ich konnte das Problem lösen

Anleitung:

-Putty downloaden
-UMTS-Stick am PC anschließen und die Software des Anbieters schließen (Task Manager)
-im Gerätemanager unter Modems auf den entsprechenden Eintrag klicken und nach dem COM-Port suchen
-Putty starten, auf Serial umstellen und COM-Port eingeben, auf open klicken
-ATZ eingeben ->Enter, als Antwort kommt OK
-ATI eingeben ->Enter, es kommen Infos zum Stick
-AT+ZCDRUN=8 eingeben ->Enter, nun ist das CD-Laufwerk deaktiviert (mit AT+ZCDRUN=9 kann man es wieder aktivieren
-sobald man den Stick nun an der Fritzbox ansteckt wird er erkannt

Auf der Fritzbox-Oberfläche erscheint jetzt der Punkt Mobilfunk. Hier wählt man:

Mobilfunk-Betreiber: anderer Anbieter
Zugangspunkt: drei.at
Einwahlnummer: *99#
Benutzername:
Kennwort:

Fritzbox neu starten




Und nun:
Die Unlocker-Software soll übrigens auch auch mit vielen anderen UMTS-Sticks funktionieren.

2.11.12

RDP - Remote Desktop geht nicht (Windows Server 2003)

Nachdem RDP einige Zeit problemlos lief, konnte auf einmal keine Verbindung mehr hergestellt werden.

Was nun?
Ich hätte gedacht, dass es reichen würde, unter

Start -> Einstellungen -> Systemsteuerung -> System im Reiter "Remote"
das Häkchen "Remotedesktop auf diesem Computer aktivieren" manuell zu löschen und dann neu zu setzen.

Doch weiterhin war keine Verbindung möglich, auch nicht von der Konsole mit

telnet server 3389

Ein netstat -ano ergab keinen Prozess, der auf Port 3389 (Standardport für RDP) lauscht.
Also schien der entsprechende Prozess nicht gestartet zu sein.

Ein

tasklist/svc 
bestätigte diese Vermutung.  Der entsprechende Dienst "TermService" war nicht zu finden.

Unter Verwaltung -> Dienste war zu sehen, dass die Terminaldienste (aus welchen Gründen auch immer) nicht gestartet waren. Also schnell manuell starten und......

Bingo! RDP funktioniert wieder!

29.10.12

XML Ausgabe mit MySQL

Eher durch Zufall bin ich auf eine Funktion in MySQL gestoßen, mit der man Daten als XML ausgeben kann.

Dazu kann man sich in der Konsole einloggen mit:

mysql -uroot -p --xml;

Jetzt erfolgen alle Ausgaben auf Selects, showdatabases etc. im XML-Format:

show databases;

<?xml version="1.0"?>

<resultset statement="show databases;" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <row>
        <field name="Database">information_schema</field>
  </row>
  <row>
        <field name="Database">mysql</field>
  </row>

  <row>
        <field name="Database">performance_schema</field>
  </row>
</resultset>

26.10.12

Header nur auf erster Seite bei TCPDF

TCPDF ist eine sehr schöne Klasse, um mit PHP PDF-Dateien zu generieren.
Was ich allerdings bei den Beispielen nicht finden konnte ist die Möglichkeit, einen Header nur auf der ersten generierten Seite anzeigen zu lassen.

Doch das ist ziemlich einfach, nach dem Includieren von TCPDF wird die Klasse erweitert mit

class MYPDF extends TCPDF
{

Dann könnte man eine Variable definieren, mit der man je nach Anwendungsfall das Generieren des Headers auf jeder Seite  ein- oder abschalten kann:

public $showHeaderOnlyOnFirstPage = true;

Anschließend wird die Header-Funktion modifiziert:

public function Header()
    {
       
        if($this->showHeaderOnlyOnFirstPage &&  $this->page>1) return;

 Danach folgen die weiteren Anweisungen für den Header, wie beispielsweise:

// Logo
        $logo = K_PATH_IMAGES . PDF_HEADER_LOGO;
        $wappen = K_PATH_IMAGES . PDF_HEADER_LOGO_NDS;
        //echo $logo; echo "<br>" . $wappen;
        $this->Image($logo, 25, 10, 25, '', 'JPG', '', 'T', false, 250, '', false, false, 0, false, false, false);
        $this->Image($wappen, 170, 10, 16, '', 'JPG', '', 'T', false, 300, '', false, false, 0, false, false, false);
        // Set font
        $this->SetFont('helvetica', '', 16);
        // Title
        $this->SetXY(65, 15);
        $this->Cell(10, 15, PDF_HEADER_TITLE, 0, false, 'M', 0, '', 0, false, 'M', 'M');
........

Einfach, oder??



25.10.12

Formulardaten auswerten aus WYMeditor

Der WYMeditor ist ein  WYSIWYM (What You See Is What You Mean) XHTML Editor, welcher sehr leicht in die eigene Webanwendung implementiert werden kann.

Mein Problem war, dass die Formulardaten aus einer Textarea nicht so einfach zu erhalten waren.
Nach einer Google-Suche fand ich dann die Lösung:

$.wymeditors(0).update();
Anschließend kann das Formular versendet werden und die entsprechenden Daten werden per POST übertragen.
Eine Ajax-Funktionalität ist auch sehr leicht möglich.
Nach dem o.a. Update einfach den Text per ID selektieren (JQuery erforderlich - ansonsten document.getElementById......):
 // Text selektieren (nach Update!)
    var text = $('#meineTextarea').val();   
// Aktion definieren
var aktion = {
        "aktion" : "editNotice",
        "editnoticearea" : text
    }
// Daten per Ajax Request versenden
    var ajaxRequest = $.post("PHP-SCRIPT.PHP", aktion, function(data) {
 // hier könnten weitere Befehle stehen....... })
// Wenn erfolgreich -> führe nächste Funktion aus
    .success(function(data) {  responseReceived(data);    })
    .error(function() { alert("Ein Fehler ist aufgetreten");    });

22.10.12

Linux: Große Dateien finden

Liste die 20 größten Dateien auf:
du -m | sort -n | tail -n 20

 Zeige Dateien größer als 10MB:

 ls -lahS $(find / -type f -size +10000k)


Nur Gesamtgröße auflisten:

du -hs


Große Verzeichnisse auflisten:

du -h -a /home/user | sort -hr | head -n 20

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. ...