Softwareentwicklung, SEO und mehr» PHP http://m-software.de Software und IT Blog                                            Michael Jentsch Fri, 12 Oct 2012 18:46:33 +0000 de-DE hourly 1 http://wordpress.org/?v=3.4.2 Web2Kindle.de nun noch einfacher http://m-software.de/web2kindle-de-nun-noch-einfacher http://m-software.de/web2kindle-de-nun-noch-einfacher#comments Thu, 11 Oct 2012 23:58:17 +0000 Michael Jentsch http://m-software.de/?p=2215
  • Freitag der 13. und der Kindle Store ist offline
  • Webseiten offline auf dem Kindle lesen (Web2Kindle)
  • SEO, Internet und Mobile Software Entwicklung – SEOzehnario … und noch immer nicht auf platz 10 ?!?!?
  • ]]>
    Wer meinen Dienst Webseiten offline auf dem Kindle lesen (Web2Kindle) kennt und ihn so regelmäßig nutzt wie ich selbst, hat sich sicher schon einmal darüber geärgert, dass man jedes mal aufs neue seine E-Mail Adresse eintragen muss und das Häkchen “Ich habe [email protected] in die E-Mail-Liste für genehmigte persönliche Dokumente eingetragen.” setzen muss. Mir ging es jedenfalls in den letzten Wochen immer mehr auf den Geist. Zum Glück gibt es Ja Menschen, die weiter denken und so hat mich Thomas vor längerem mal darauf hingewiesen, dass es doch einfacher währe, die Daten in einem Cookie zu speichern und beim nächsten Besuch der Seite die Formular-Felder aus dem Cookie wieder zu rekonstruieren. Klingt nach einer einfachen Lösung, die auf jeden Fall fehlt gefehlt hat :-)

    Denn nun ist das Feature eingebaut und nun kann man noch schneller eine Webseite auf den übertragen und het so mehr Zeit zum Lesen.

    Ich hoffe, dass der Webservice zum offline Lesen von Webseiten so noch besser zu nutzen ist und Kindle Inhaber (so wie ich) noch mehr Zeit zum Lesen haben.

    Links:
    web2kindle.de
    Artikel: Webseiten offline auf dem Kindle lesen

    Related posts:

    1. Freitag der 13. und der Kindle Store ist offline
    2. Webseiten offline auf dem Kindle lesen (Web2Kindle)
    3. SEO, Internet und Mobile Software Entwicklung – SEOzehnario … und noch immer nicht auf platz 10 ?!?!?
    ]]>
    http://m-software.de/web2kindle-de-nun-noch-einfacher/feed 0
    Rekursiv Tar Achive entpacken http://m-software.de/rekursiv-tar-achive-entpacken http://m-software.de/rekursiv-tar-achive-entpacken#comments Fri, 31 Aug 2012 15:02:13 +0000 Michael Jentsch http://m-software.de/?p=2017 OK, ich habe mal wieder ein kleines konkretes Problem für das ich eine kleine schnelle Lösung gebastelt hebe, die evtl. dem einen oder anderen das Leben ein wenig leichter machen kann. Dieses mal stehe ich vor dem Problem, dass ich eine beliebig tief verschachtelte Verzeichnisstruktur vor mir habe, in der unzählige tar Files abgelegt sind. Um die nun alle auf einmal an Ort und stelle zu entpacken habe ich ein kleines Script geschrieben, das genau diese Aufgabe erfüllt.

    Erst habe ich ja noch gedacht, es gibt bestimmt irgendeine Option mit dem der tar Befehl das von sich aus macht, aber ich habe nichts gefunden. Das Ergebnis ist folgendes kleine Shell Script.

    #!/bin/sh
    # set -x

    for i in `find . -name "*.tgz" -print`
    do
    cd `dirname $i`
    tar -xvzf `basename $i`
    cd -
    done

    Total easy und schnell gemacht. Während ich das Skript gerade laufen lasse habe ich noch Zeit einen kleinen Artikel im Blog zu schreiben und dann mache ich mich wieder daran, weiter zu entwickeln. Was es ist wird noch nicht verraten :-)

    No related posts.

    ]]>
    http://m-software.de/rekursiv-tar-achive-entpacken/feed 2
    Java vs. PHP http://m-software.de/java-vs-php http://m-software.de/java-vs-php#comments Fri, 22 Jun 2012 16:06:14 +0000 Michael Jentsch http://m-software.de/?p=1803
  • Java Network Monitor FAQ
  • Java Network Monitor
  • Mobile Games – Spieleprogrammierung für Handys mit Java ME von Thomas Lucka
  • ]]>
    Wer mich kennt, weiß, dass ich mich als Programmierer im wesentlichen mit Java und PHP beschäftige. Dabei verwende ich für meine privaten Projekte meistens PHP und für berufliche Projekte eher Java, aber auch das ist nicht immer so. So war die erste Version meines Thumbshot Generators ein Java Projekt mit JSPs,  Tomat und einer Oracle Datenbank. Heute ist es ein PHP Projekt mit MySQL Datenbank auf einem Apache Webserver.

    Auf der Arbeit muss ich PHP oft in Schutz nehmen da es in Enterprise Projekten noch nicht das Ansehen hat wie es Java aktuell hat. Aber genau die gleiche Situation habe ich schon einmal erlebt. Als Ende der 90er Jahre Java noch ganz neu war und wir alle noch mit C oder C++ programmiert haben. Damals hat das Debuggen von Pointer Arithmetik mehr Zeit benötigt, als es gut war für jedes Projekt, statt ant gab es make und Webseiten konnten mit CGI oder FastCGI in C oder sogar mit Shell Scripten umgesetzt werden. Aber das ist lange her (zum Glück). Heute hat man dank moderner Programmiersprachen und umfangreicher IDEs Möglichkeiten, die vor 10 Jahren noch nicht denkbar waren.

    Doch zurück zum Thema “Java vs. PHP”.

    Zum Vergleich habe ich mal mit Hilfe von Google Insights das Suchvolumen bei Google in der Kategorie Computer und Elektronik hier als Bild eingefügt. Die blaue Linie ist das Suchvolumen für den Begriff java und die rote Kurve für den Begriff PHP. Es ist deutlich zu erkennen, dass Java in Deutschland ein wesentlich höheres Suchvolumen hat als PHP.


    Tipps fürs Java lernen

    Ganz Klarer Gewinner ist Java, doch was sagt die Kurve eigentlich aus? Denn eigentlich ist es kein Kriterium für die Auswahl der Programmiersprache, wie oft danach gegoogelt wurde. Statt dessen sollte man sich überlegen, welche Programmiersprache einen bei der Arbeit am besten unterstützt. Heute hat man einen Application-Server, Load-Balancer und so tolle Werkzeuge wie Maven, Hudson und JUnit, die einem das Leben einfacher machen. Trotzdem ist es in vielen Fällen einfacher, mal schnell ein PHP Script zu schreiben, als eine Web-Anwendung in Java zu realisieren und genau da liegt der große Vorteil der Programmiersprache PHP. PHP ist einfacher, schneller und mittlerweile auch sehr weit verbreitet bei Open Source Projekten. Die API ist sehr intuitiv zu verstehen und selbst BWL Stundenten haben im Studium Kontakt damit und kommen damit klar.

    Heute ist bei so gut wie jedem Webhoster auch PHP und eine MySQL Datenbank dabei und so kann sich jeder, der einen Text-Editor bedienen kann auch eine Web Anwendung programmieren. Auch wenn es nur ein einfaches Gästebuch oder ein Counter oder sonst was ist. Genau dafür ist PHP wesentlich besser geeignet als Java.

    Aber was ist mit wirklich großen Projekten, an denen mehrere Duzend Mitarbeiter über einen längeren Zeitraum entwickeln müssen? Tja, da ich leider keine Erfahrung damit habe, größere Projekte in PHP umzusetzen bin ich also auf eure Mithilfe angewiesen. Was ist eurer Meinung nach besser geeignet, ein großes Projekte umzusetzen Java oder PHP?

     

    Related posts:

    1. Java Network Monitor FAQ
    2. Java Network Monitor
    3. Mobile Games – Spieleprogrammierung für Handys mit Java ME von Thomas Lucka
    ]]>
    http://m-software.de/java-vs-php/feed 12
    Magento2 preview – naja fast :-) http://m-software.de/magento2-preview-naja-fast http://m-software.de/magento2-preview-naja-fast#comments Tue, 22 May 2012 18:41:12 +0000 Michael Jentsch http://m-software.de/?p=1786
  • Firefox Marktanteil fast bei 20%
  • ]]>
    Ich komme gerade von der meet magento und habe dort auch ein wenig über magento2 erfahren. Daher habe ich mich entschlossen, dass ich mir magento2 auf dem Weg von Leipzig nach Herne in’s schöne Ruhrgebiet mal ansehen möchte. In dem Zusammenhang kann ich auch endlich mal Git auf meinem Netbook installieren und möchte auch ein paar andere Kleinigkeinten die auch sehr interessant waren mal ausprobieren. Unter anderem z.B. das jumpstorm script und magento german setup.

    Dieser kleine Bericht ist kein Tutorial oder eine Anleitung oder sowas. Es ist eher ein Roman – die Geschichte, wie ich Magento2 kennengelernt habe. :-)

    Installiert habe ich also erst mal:

    1. xampp-win32-1.7.7-VC9-installer.exe
    Quelle: http://dfn.dl.sourceforge.net/project/xampp/XAMPP Windows/1.7.7/xampp-win32-1.7.7-VC9-installer.exe
    Weitere Informationen zu xampp unter: http://www.apachefriends.org/

    2. Git-1.7.10-preview20120409.exe
    Quelle: http://msysgit.googlecode.com/files/Git-1.7.10-preview20120409.exe
    Informationen dazu unter: http://msysgit.github.com/

    Dann habe ich das Magento2 Repository unter https://github.com/magento/magento2 geforkt und mit der Git-BASH ein lokal geclonnt.

    git clone https://[email protected]/msoftware/magento2.git

    Das gleiche habe ich mit dem Repository von netresearch gemacht. Erst ein fork und dann git clone (https://github.com/netresearch/jumpstorm). Hier ist aber dringend darauf zu achten, dass ein rekursives clone durchgeführt wird. Da aus dem jumpstore Repository heraus auch noch andere Repositorys benötigt werden. Z.B. die Dateien unter /lib/Symfony/Component. Das es sich hier um verknüpfte Repositories handelt, kann man unter github.con auch gut an dem kleinen grünen Icon erkennen (z.B. hier https://github.com/msoftware/jumpstorm/tree/master/lib/Symfony/Component).

    Und weil es so einen Spaß macht, habe ich auch direkt mal das FIREGENTO GermanSetup Repository (https://github.com/firegento/firegento-germansetup) kopiert und auch geklont.

    Ja, mir ist schon klar, dass der ganze Aufwand mit dem Forken eigentlich überflüssig ist, aber wer weiß wozu es mal gut ist. Ich glaube zwar nicht, dass ich über das reine “Mal reinschauen” hinauskomme, aber wer weiß …

    So weit erst mal zur Vorbereitung. Jetzt, da ich alles zusammen habe, was ich für die ersten Schritte benötige, checke ich erst mal, ob der Apache läuft und muss dann mit Hilfe von jumpstorm ein Magento aufsetzen. Vor ein paar Stunden habe ich noch einen Vortrag darüber gehört und bin sehr gespannt, ob ich das nun auch hin bekomme.

    Nachdem ich http://localhost/ in die Adress-Zeile meines Browsers eingegeben habe, erscheint der mir bekannte xampp Start Screen und so wie es scheint läuft der Apache (Xampp) perfekt und ich werde mir jetzt mal jumpstore ansehen. Im Hauptverzeichnis finde ich eine PDF Datei mit dem Namen README.pdf. Der Name klingt vielversprechend und ich schaue einfach mal rein. Das PDF ist in englischer Sprache verfasst und erklärt sehr anschaulich mit vielen kleinen Beispielen die Vorgehensweise.

    Als erstes sehe ich mir mal die sample.jumpstorm.ini an. Da ich nicht mit sample.jumpstorm.ini arbeiten möchte, benenne ich die Datei um in “jumpstorm.ini” und editiere sie in meinem bevorzugten vim :-) . Als erstes fällt mir auf, dass hier jemand vor dem einchecken vergessen hat das MySQL Passwort zu entfernen. Eigentlich nicht so schlimm, da es sich bei der Konfiguration ganz offensichtlich um eine lokale Entwicklungsumgebung handelt, aber es wirkt doch erst mal nicht unbedingt vertrauensbildend. Das gleiche gilt auch für das adminPass. Auch hier hätte ich mir eher einen leeren Eintrag gewünscht.

    Da ich auf den ersten Blick nicht verstehe, was ich in meinem Fall unter “magento” -> “source” eintragen soll, muss ich wohl erst mal in die jumpstorm sourcen schauen. Das ist so oser so erst mal eine gute Idee, denn evtl. baut ein Blick in den Source-Code mein Vertrauen in die Entwickler wieder auf.
    Nach dem öffnen der jumpstorm Datei sehe ich auf den ersten Blick das dieses Skript nicht unter Windows entwicklet wurde und daher in meinem Fall einige Anpassungen benötigt. Da es in PHP geschrieben ist, habe ich damit aber wenig Probleme und mache mich erst mal daran, jumpstorm für meine Umgebung anzupassen.

    Klar, die Pfade müssen alle angepasst werden, aber ich treffe auch noch auf andere Problem.

    1. In der Datei \jumpstorm\lib\Netresearch\Source gibt es eine Methode “isFilesystemPath”, die so erst mal nicht funktioniert – wenigstens unter Windows.

    public static function isFilesystemPath($sourcePath)
    {
    return (0 === strpos($sourcePath, ‘/’)); // path is absolute filesystem path
    }

    Egal. Ich denke mir mal kleine Änderung – große Wirkung und ändere die Methode ein wenig ab.

    public static function isFilesystemPath($sourcePath)
    {
    return (is_dir($sourcePath)); // path is absolute filesystem path
    }

    Beim nächsten Test komme ich wieder einen kleinen Schritt weiter. Als nächstes versucht das Script die Dateien per rsync zu kopieren. Das ist eine sehr gute Idee, aber unter Windows doch wieder ein Problem. Bei meiner Suche in den Sourcen finde ich 2 Stellen an denen rsync verwendet wird.

    $ grep -r rsync *
    lib/Netresearch/Source/Filesystem.php:
    $command = sprintf(‘rsync -a -h %s %s 2>&1′, $this->source, $target);
    src/Jumpstorm/Extensions.php:
    $command = sprintf(
    ‘rsync -a -h –exclude=”doc/*” –exclude=”*.git” %s %s 2>&1′,
    $source . DIRECTORY_SEPARATOR,
    $this->config->getTarget()
    );

    Dabei denke ich natürlich direkt an Clean-Code und Refactoring und …. Aber ich kann mich bremsen und suche kurz mal bei Google nach einer geeigneten Funktion und werde unter http://aidanlister.com/2004/04/recursively-copying-directories-in-php/ fündig. Unter dem Titel Recursively copying directories in PHP hat Aidan Lister eine copyr Funktion veröffentlicht, die – so hoffe ich – auch ihren Zweck erfüllt. Zu dem Zweck habe ich ein weitere PHP Datei unter \jumpstorm\lib\AidanLister angelegt, in der ich die Datei Copyr.php mit der entsprechenden Funktion hinterlegt habe. Beim Test wird klar, warum die Kollegen von netresearch hier auf rsync gesetzt haben, denn das Kopieren der Dateien ist so ungluablich langsam, dass ich in der Zeit auch eben rsync für Windows instalieren könnte.

    Nach dem Kopieren der Dateien treffe ich auf das nächste Problem. Der Nächste Schritt versucht die Anlager der MySQL Datenbank. Auch hier wir mit dem exec Kommando gearbeitet und mit Hilfe vom mysql Kommando Datenbanken gelöscht und angelegt. Da der Befehl mysql in meinem Fall nicht im Pfad ist, bekomme ich erst mal nur eine Reihe von Fehlermeldungen. Was dann dazu führt, dass die MAgento Installation mit der folgenden Exception abbricht.

    [Exception]
    Could not create live database

    Also mysql in den Pfad aufnehmen. Bei mir liegt das Kommando mysql unter C:\xampp\mysql\bin und genau das Trage ich dann auch in meine PATH Variable ein. Während mein Test läuft und ich wieder darauf warte, dass die Dateien geladewn werden, lese ich ein wenig über das Symfony Framework. Ich selbst habe es noch nie eingesetzt und nutze die Gelegenheit, mich mal kurz damit zu beschäftigen. Unter http://symfony.com/symfony-in-five-minutes finde ich eine Zusammenfasssung des Symfony Frameworks, dass ich zwar nicht in 5 Minuten lesen kann, aber das Kopieren der Dateien lauft ja auch ein wenig länger :-) . Na toll. Mittlerweile bin ich zum Senior Symphony Developer geworden und ich sehe wieder nur die Exception. Tja, das hat wohl nicht viel gebracht. Ich greppe noch mal durch die Sourcen nach mysql und sehe, dass es nur eine Stelle gibt, an der das Kommando mysql wirklich benötigt wird. Soll ich einfach den Pfad in der Funktion prepareMysqlCommand ergänzen. Vermutlich wird es klappen, aber so macht das einfach keinen Spaß. Ich sitze ja so oder so hier im Zug fest und erst in Hannover. D.H. ich habe noch ca. 2 Stunden vor mir und daher noch genug Zeit, es richtig zu machen. Geanu in dem Moment geht mir eine Frage durch den Kopf. Warum ist es eigentlich immer so, dass es ungleich länger dauert etwas “richtig” zu machen als es mal eben rein zu fummeln? Die Antwort kenne ich zwar, aber daran will ich mich jetzt nich hoch ziehen. Statt dessen mache ich es richtig unb baue den Pfad zu mysql in die jumpstorm.ini mit ein. Auch wenn ich mir nicht ganz klar darüber bin, ob das schon ausreicht, denn eigentlich währe es noch viel besserm ganz auf den Aufruf von mysql zu verzichten und mit den PHP Methoden mysql_connect und mysql_querry zu arbeiten. Aber das habe ich schon 100 mal gemacht und heute habe ich mal Lust auf was neues.
    Nachdem ich mir nun die Arbeit mit der jumpstorm.ini gemacht habe, muss ich feststellen, dass es alles nichts bringt. Der mysql Befehl wird nun zwar ordnungsgemäß gefunden, aber die Exception bleibt. Mist!
    Also weiter Suchen und nicht aufgeben. Vermutlich bin ich wieder einen kleinen Schritt weiter gekommen und darf jetzt nicht aufgeben. Das ist halt das Lehrgeld dass man zahlen muss, wenn man “mal wieder was neues probieren möchte”. OK, ich schaue mir also den Teil in der Base.php noch mal genauer an. Eigentlich kann hier nicht viel passieren und daher entscheide ich mich für eine pragmatische Herangehensweise und gebe einfach mal das erzeugte mysql Kommando aus. Beim Test sehe ich was ich nicht sehen wollte. Das Passwort aus der jumpstorm.ini steht hier im Aufruf. Ach Schei… das habe ich beim vielen Schreiben ja total vergessen. Das PAsswort muss natütrlich raus aus der php.ini, da ich gar kein Passwort für meine lokale xampp Installation nutze. So weit so gut, doch alles jamern und probieren hat keinen Zweck. Irgendwie schaffe ich es nicht, diesen Konstrukt aus mysql.exe und den benötigten Parametern zu übergeben. Ich sehe mir den Return Wert an, der immer 1 statt 0 ist und suche danach bei Google. Evtl. gibt es ja eine Besonderheit unter Windows oder irgendeinen Bug – was weiß ich? Aber nichts. Ich sehe mir das Result des Aufrufs an und bekomme immer eine mysql Hilfe als Result. Das ist sehr verwunderlich und ergibt meiner Meinung nach keinen Sinn, ist aber so. Mittlerweile bin ich fast im Hamm und folge dem was meine Oma immer zu mir gesagt hat. ” Junge, bleib doch lieber bei den bewährten alten Methoden. Das ganze moderne Zeug ist doch nicht gut für Dich”. Eigentlich stimmt es nicht so ganz, denn der aufruf mysql_connect ist jünger als das mysql commando, aber das ist mir jetzt egal und ich baue die Base.php um. In der Magento.php habe ich eine ähnliche Konstruktion entdeckt, um die ich mich jetzt aber noch nicht kümmere. Ich bin mir sicher da werde ich noch ganz von allein drauf treffen. So schaffe ich es dann auch tatsächlich, dass die Datenbank angelegt wird. Hurra! Jetz kann ich also Dateien kopieren und eine leere Datenbank anlegen. Der Nächste Schritt ist die Anlage der Magento Sample Data Tabellen und Inhalte. Auch bei diesem Schritt darf ich mich über eine Exception freuen, was aber daran liegt, dass ich den Punkt noch nicht konfiguriert habe.

    [Exception]

    Could not detect sample data sql file in source directory git://git.example.org/magento/sampledata.git

    Also muss ich nun in der jumpstorm.ini Datei die richtige Lokation der Datei angeben und schon kann es weiter gehen. So lange der Download dauert (Leider habe ich die Zip Datei noch nicht herunter geladen und im Zug ist die UMTS Verbindung leider nicht sehr stabil) schaue ich mir schon mal die Stelle an, die zu der Exception geführt hat. Ich habe ja nun schon eine Menge über jumpstorm gelernt und evtl. hilft mir das Wissen ja weiter.
    Siehe da, es ist die Stelle in der Magento.php, die ich gerade noch vor mir hergeschoben habe. Was für ein Wunder. Klar muss hier wieder ein SQL Statement ausgeführt werden und klar ist auch, dass es wieder mit prepareMysqlCommand und exec gemacht wird. Dieses mal ist es aber nicht so einfach wie noch gerade. Ein einfaches DROP DATABASE oder CREATE DATABASE ist doch etwas anderes als eine mehrere 100 MB große SQL Datei einzulesen und dann mit mysql_query auszuführen. Aber ich halte mich an das was meine Oma gesagt hat und versuche, es wieder ohne exec zu machen. Doch aktuell heißt es erst mal Geduld haben und auf den Download warten. In der Zeit google ich das Problem mal. Vermutlich hat so ein Problem schon mal jemand vor mir gehabt und warum soll ich das Rad jedes mal neu erfinden. Dabei fällt mir was ein. Ich habe doch auf der Symphonny Website gelesen, dass es bei einem guten Framework darauf ankommt, dass man das Rad nicht jedes mal neu erfinden muss. Dementsprechend ist das Internet irgendwie auch ein Framework. Man kann es nicht so ohne weiteres benutzen, aber hier findet man auch zu fast jedem Problem eine Lösung, da man so gut wie nie der erste ist, der darauf gestoßen ist … und wenn doch? Dann hat man vermutlich etwas tatal falsch gemacht und sollte lieber alles löschen und noch mal von Vorne anfangen.

    So, der Download ist fertig und ich bin in Dortmund. Mist. Selbst mit Verspätung hat die Zeit nicht gereicht. Ich muss in 10 Minuten aussteigen und dann ist erst mal Sense mit Magento2. In den nächsten Tagen werde ich wohl erst mal nicht mehr dazu kommen, hier weiter zu arbeiten. Außerden sehe ich keinen Grud darain, mein Netbook in die Hand zu nehmen, wenn ich einen richtigen Rechner habe.

    So wie es aussieht ist das der Punkt an dem ich erst mal aufgeben muss. Ja, ich weiß, dass Magento nicht für Windows gemacht wurde und das hat so wie es scheint auch einen Hintergrund :-) . Ich werde das ganze wohl noch mal in Ruhe auf einem Linux Server probieren und gebe damit zurück an die anderen Webseiten.

    Related posts:

    1. Firefox Marktanteil fast bei 20%
    ]]>
    http://m-software.de/magento2-preview-naja-fast/feed 1
    Trash Mail Dienst Stinkefinger.net http://m-software.de/trash-mail-dienst-stinkefinger-net http://m-software.de/trash-mail-dienst-stinkefinger-net#comments Tue, 24 Apr 2012 05:46:56 +0000 Michael Jentsch http://m-software.de/trash-mail-dienst-stinkefinger-net/
  • Open Source Wegwerf E-Mail Adresse
  • Mail Server für die eigene Domain von Google?
  • WordPress XML-RPC Ping-Dienst
  • ]]>
    Nachdem mein Open SourceTrash Mail PHP Script nun schon sehr ausgereift ist und ich schon viel positives Feedback von Webmastern bekommen habe, musste ich einfach mal wieder eine eigene Instanz online stellen. Da ich noch die Domain stinkefinger.net im Portfolio brach liegen hatte, war die Installation schnell erledigt. Kurz die Sourcen installiert und den Google Apps Dienst konfiguriert und schon ist ein neuer Trash Mail Dienst im Web verfügbar.
    Zum Glück hatte ich die Google App Engine und die Google Mail MX Einträge schon lange fertig gemacht, so musste ich nicht auf die Freischaltung von Google warten.
    Zum Schluss habe ich noch den Text auf der Startseite angepasst, um wenigstens hier den Duplicate Content zu verhindern. Wenn ich Zeit finde, werde ich auch noch die FAQ anpassen und die Beschreibung für die Trash Mail API anpassen, aber das ist mir jetzt erst mal zu viel Aufwand.

    So, das war’s jetzt erst mal. Ich hoffe, ihr könnt den Trash Mail Dienst noch mal brauchen – stinkefinger.net kann man sich ja auch gut merken :-) .

    Tras Mail Stinkefinger.net

    Related posts:

    1. Open Source Wegwerf E-Mail Adresse
    2. Mail Server für die eigene Domain von Google?
    3. WordPress XML-RPC Ping-Dienst
    ]]>
    http://m-software.de/trash-mail-dienst-stinkefinger-net/feed 0
    Gelöschte Domains Finden – HowTo http://m-software.de/geloschte-domains-finden-howto http://m-software.de/geloschte-domains-finden-howto#comments Tue, 29 Nov 2011 19:24:53 +0000 Michael Jentsch http://m-software.de/?p=1501
  • KubaSeoTräume Keywort Domains
  • Trennen von Domains und Subdomains
  • Die richtigen Suchbegriffe finden
  • ]]>
    Jeder SEO, der sich schon mal mit gelöschten Domains beschäftigt hat, weiß, dass man 3 Dinge benötigt, um gelöschte Domains zu finden.

    1. Eine Domain Liste

    2. Ein Script mit dem man gelöschte Dateien finden kann

    3. Viel Rechenpower und ein schnelles Netz

    Beim dritten Punkt kann ich leider nicht helfen. Meine Server sind alle mehr als ausreichend damit beschäftigt, die Thumbshots zu generieren. Aber zu Punkt 1 habe ich auf einem USB Stick ein Skript gefunden, dass schnell und einfach auf jedem Linux MacOS oder Windows (mit cygwin) Computer installiert und ausgeführt werden kann.
    Zu Punkt 2 gibt es ja sehr viele Möglichkeiten. Dazu könnt ihr einfach mal nach Domain Listen bei Google suchen.
    Auch wenn das Script eigentlich nicht dazu gedacht war, um endlose Domain Listen zu checken. Ich habe es eine Zeit lang dafür genutzt, um ausgewählte Domains zu prüfen und mir dann im Falle eines Falles eine E-Mail zu senden. Aber irgendwann habe ich das Interesse daran verloren und es ist in Vergessenheit geraten.
    Jetzt habe ich das Script wieder ausgegraben und hoffe, dass der Eine oder Andere was damit anfangen kann und evtl. sogar mal eine Premium Domain erwischt. Ich wünsche echo damit viel Erfolg.

    Die Liste enthält 453501 .de Domains. Weitere Einträge, Ergänzungen und Hinweise sind immer erwünscht.

    Auf Wunsch hier noch mal das Shell Script zum finden von gelöschten Domains. Wie schon gesagt ist das Script nichts besonderes, aber es funktioniert wunderbar.

    #!/bin/sh
    DOMAINLIST=domains.txt
    TMPFILE=tmp.txt
    # Cleanup tmp Data
    touch $TMPFILE
    rm $TMPFILE
    echo 1. IP Adress check
    # IP Adress Check
    for i in `cat $DOMAINLIST`
    do
    echo $i _ `host -t A $i` | grep -i "not found" | awk -F "_" '{ print $1 }' >> $TMPFILE
    echo -n .
    done
    echo
    echo 2. Whois check
    # Whois Check
    for i in `cat $TMPFILE`
    do
    echo Check Domain: $i
    whois $i
    echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    # % Error: 55000000002 Connection refused; access control limit exceeded
    sleep 20
    done
    rm $TMPFILE

    Related posts:

    1. KubaSeoTräume Keywort Domains
    2. Trennen von Domains und Subdomains
    3. Die richtigen Suchbegriffe finden
    ]]>
    http://m-software.de/geloschte-domains-finden-howto/feed 9
    Die Google+ API ist da http://m-software.de/die-google-api-ist-da http://m-software.de/die-google-api-ist-da#comments Fri, 16 Sep 2011 07:32:33 +0000 Michael Jentsch http://m-software.de/die-google-api-ist-da
  • Google Profile
  • ]]>
    Es ist endlich so weit. Die google+ API ist da. Hier schon mal die 2 wichtigsten Links. Werde jetzt erst mal checken, was das API so drauf hat und mich dann wieder melden.

    http://developers.google.com/+/

    http://googlecode.blogspot.com/2011/09/getting-started-on-google-api.html

    Update:
    Ok, das ist schon die erste schlechte Nachricht. Folgendes habe ich gerade unter http://developers.google.com/+/api/ gelesen.

    Note: The Google+ API currently provides read-only access to public data. All API calls require either an OAuth 2.0 token or an API key.

    Nur read-only? Wie soll denn so eine brauchbare Integration gelingen? Read-only ist doch eine Einbahnstrasse und daher nicht zu gebrauchen. Es mag sicher Anwendungsfälle geben, die mit der Read-Only auskommen, aber mir ist das noch zu wenig.

    So, habe nun mal meine Mittgaspause genutzt um die Google + API auszuprobieren. Habe natürlich alle Erkenntnisse mitgeschrieben und unter http://m-software.de/google-api-howto veröffentlicht.

     

    Related posts:

    1. Google Profile
    ]]>
    http://m-software.de/die-google-api-ist-da/feed 5
    Open Source Wegwerf E-Mail Adresse http://m-software.de/open-source-trash-mai http://m-software.de/open-source-trash-mai#comments Mon, 21 Mar 2011 16:02:37 +0000 Michael Jentsch http://m-software.de/?p=896
  • Mail Server für die eigene Domain von Google?
  • Open Source wins
  • Geld verdienen mit OpenSource Produkten
  • ]]>
    Unter http://www.wegwerf-e-mail-adresse.de/ kann man nun ein Open Source Wegwerf E-Mail Adresse PHP Script herunter laden.
    Das Script habe ich in den letzten Wochen programmiert und es ist meiner Meinung nach nun so weit, dass man es produktiv einsetzen kann. Alle Details zu dem Skript kann man unter http://www.wegwerf-e-mail-adresse.de/ nachlesen. Eine Live Demo habe ich unter http://1pad.de/ installiert.

    Related posts:

    1. Mail Server für die eigene Domain von Google?
    2. Open Source wins
    3. Geld verdienen mit OpenSource Produkten
    ]]>
    http://m-software.de/open-source-trash-mai/feed 2
    Thumbshots als Linkvorschau benutzen http://m-software.de/thumbshots-als-linkvorschau-benutzen http://m-software.de/thumbshots-als-linkvorschau-benutzen#comments Wed, 09 Mar 2011 12:44:32 +0000 tbrodt http://m-software.de/?p=860
  • Thumbshots FAQ
  • Thumbshots verwenden
  • Thumbshots Technik
  • ]]>
    Autor: Torben Brodt

    Ich habe ein JavaScript entwickelt, mit dem ihr die Thumbshots als Linkvorschau nutzen könnt. Das Script reagiert auf das Bewegen der Maus über externe Links und blendet daraufhin unter dem Link eine Vorschau des Screenshots an.

    Hier könnt ein Beispiel dafür sehen.

     

    Zuerst müsst ihr definieren bei welchen Links die Vorschau angezeigt werden sollen. Meistens will man die Linkvorschau nur bei externen Seiten verwenden. Dazu stattet ihr alle externen Links mit einer HTML Klasse aus. Im Beispiel verwende ich die Klasse “externalURL”.

    Beispiel:

    <a class="externalURL" href="http://www.easy-coding.de">easy-coding.de</a>

    Bindet das JavaScript für die Vorschau auf keinen Fall direkt von diesem Pfad ein, sondern ladet es euch stattdessen hier herunter und speichert die Datei dann auf eurem Webspace.

    Google, Yahoo & Co empfehlen aus Performancegründen alle JavaScripts erst am Ende der Seite einzubinden. Deswegen solltet ihr den nun folgenden Code direkt vor das schließende Tag einfügen:

    <script type="text/javascript">
    // <![CDATA[
    Bubble.init("externalURL", function (D) {
    return '<img style="width: 150px; height: 100px;" src="http://m-software.de/screenshot/Screenshot.png?url='+ escape(D.href) +'&amp;commingsoonimg=http://fadeout.de/images/thumbshot.png" alt="" />';});
    // ]]>
    <script type="text/javascript">

    Ich bin Webmaster von easy-coding.de und habe das Script unter der LGPL v3 veröffentlicht. Ihr könnt das Script also kostenlos auf kommerziellen, sowieso auf nicht kommerziellen Seiten verwenden. Wenn ihr selbst Programmierer seit, dann interessiert euch vielleicht auch der Aufbau des Codes. Weitere Informationen zur Programmierung findet ihr im easy-coding wiki unter Link Vorschau Bubble.

    Zuletzte solltet ihr nicht vergessen, dass der super Service von Michael kostenlos ist, er aber auf unterstützende Links angewiesen ist. Deswegen lest die Thumbshots FAQ und vergesst nicht den Link zu seiner Seite.

    <a class="externalURL" href="http://m-software.de/thumbshots-html">Thumbshots von M-Software.de</a>

    Related posts:

    1. Thumbshots FAQ
    2. Thumbshots verwenden
    3. Thumbshots Technik
    ]]>
    http://m-software.de/thumbshots-als-linkvorschau-benutzen/feed 0
    PHP Weiterleitung mit 301 HTTP-Code http://m-software.de/php-weiterleitung-mit-301-http-code http://m-software.de/php-weiterleitung-mit-301-http-code#comments Sat, 09 Oct 2010 14:15:38 +0000 Michael Jentsch http://m-software.de/?p=314
  • http://webdav.smartdrive.web.de mounten unter Linux mit OpenSuse 11
  • Google folgt Links in JavaScript Code
  • HTTP-Status-Codes 200, 301 und 302
  • ]]>
    Braucht man immer mal wieder. Ist zwar in 5 Minuten runter geschrieben, ber Copy und Paste geht dann doch schneller. Dafür habe ich hier nun meine Lösung für eine permanente Weiterleitung mit einem Google konformen HTTP Code 301 hinterlegt.

    <?
    /* Permanente Weiterleitung mit einen HTTP 301 Code */

    $url = “http://xn--sms-sprche-geb.org/”;

    header(“HTTP/1.1 301 Moved Permanently”);
    header(“Location: ” . $url);
    ?>

    Für denjenigen, der mehr Details über die HTTP Statuscodes erfahren möchte, kann ich auf jeden Fall mal die Seite unter http://de.wikipedia.org/wiki/HTTP-Statuscode empfehlen.

    Der 301 Status-Code ist einer aus der Gruppe der 3XX Umleitungen. 301 hat den Namen “Moved Permanently”, was bedeutet, dass die angeforderte URL ab sofort unter der im „Location“-Header-Feld angegebenen Adresse zu finden ist.

    Related posts:

    1. http://webdav.smartdrive.web.de mounten unter Linux mit OpenSuse 11
    2. Google folgt Links in JavaScript Code
    3. HTTP-Status-Codes 200, 301 und 302
    ]]>
    http://m-software.de/php-weiterleitung-mit-301-http-code/feed 1