Kategorien
Erlang

List Comprehensions – Erlangs elegante for-Schleife

In Erlang gibt es das besondere Konstrukt der List Comprehension um elegant und ohne viel Code eine List von Zahlen schnell erzeugen zu können.

Sie werden meist in den folgenden Fällen eingesetzt:

  1. Anwendung einer Funktion auf eine Liste
  2. Filterung einer Liste
  3. verschachtelte for-Schleifen

Der Syntax der List Comprehensions

[Expression || Generaotor1, Guard11,...GuardN1, Generator2, Guard12,......GeneraotorM, Guard1M,...GuardNM,]

Expression: spezifiziert die Ergebniselement der Ergebnisliste

Generator: vergleichbar mit einer for-Schleife, bei der jedes Element der Liste durchlaufen wird: Syntax: Element<-Liste

Guards: haben eine Filter-Funktion, die bestimmt, ob ein Element in der Ergebnis-Liste landet

Einfache Beispiele für Lists Comprehensions

[X||X<-[1,2,3,4]].        
[1,2,3,4]
[X||X<-[1,2,3,4], X < 3].
[1,2]
[X||X<-[1,2,3,4], X rem 2 == 0].
[2,4]

Kategorien
Diverses

ErrorCode 8002: Invalid MBR Windows7

Bei einem Boot Fehler wie

ErrorCode 8002: Invalid MBR

bleibt einem nur die Reparatur mit der Windows7 DVD, wie bei Microsoft beschrieben. Der Fehler bedeutet, dass der Master Boot Record kaputt ist, mit dem Windows gebootet wird.

Oder in meinem Fall reichte schon ein Recovery Image von meine Programm Comodo Time Machine (Freeware). Damit konnte ich einfach den letzten Stand wiederherstellen. Das Tool läuft ruhig und ohne zu nerven im Hintergrund und bietet vor dem Hochfahren von Windows eine Option zur Wiederherrstellung auch in solch schweren Fällen wie hier.

Ich empfehle dieses Programm allen sehr, weil es mir persönlich jetzt schon zum Zweiten mal „das Leben gerettet“ hat.

Kategorien
JavaScript

Javascript Date Vergleich auf Tagesbasis

Zum Vergleich von 2 Date Objekten in Jacascript kann man die folgende Funktion benutzen, die bestimmt, ob ein Datum größer ist auf Tagesbasis. Dies ist sehr nützlich, wenn man ein Datum aus einem Datepicker auswählt:

function isDateInFutureOnDailyBasis(date1, date2)
{
     if(date1.getFullYear() > date2.getFullYear())
    {
        return true;
    }
    else if(date1.getFullYear() == date2.getFullYear())
     {
         if(date1.getMonth() > date2.getMonth())
         {
             return true;
         }
         else if(date1.getMonth() == date2.getMonth())
         if(date1.getDay() > date2.getDay())
         {
             return true;
         }
     }

    return false;
}

 

Kategorien
Webdeveloper Tools

Wie entpacke ich eine tar.gz Datei unter Windows7?

Dafür gibt einen sehr schönen kostenlosen Online-Service: wobzip.org.

Einfach Archiv hochladen und entpackt wieder runterladen.

Funktioniert auch mit den Formaten: 7z,ARJ,BZIP2,CAB,CHM,CPIO,CramFS,DEB,DMG, FAT,GZIP,HFS,ISO,LZH,LZMA,MBR,MSI,NSIS,NTFS, RAR,RPM,SquashFS,TAR,UDF,VHD,XAR,XZ,Z,ZIP

Eine andere Möglichkeit ist Winrar, was aber nur für 40Tage kostenlos als Testversion  oder kostenpflichtig mit einer Lizenz genutzt werden kann.

Kategorien
PHP

Cross Site Ajax Requests erlauben PHP

Bei der Entwicklung von Webapps oder modernen Webseiten steht man zwangsläufig vor dem Problem, dass man Ajax Requests zu anderen Domains oder Subdomains machen muss.

Als Cross Ajax Requests gilt auch schon ein Requests von http://foo.de zu https://foo.de.

Wennn man dies versucht kriegt man im Chrome und Safari die folgende Fehlermeldung auf der Javascript Konsole:

XMLHttpRequest cannot load Origin http://foo2.de is not allowed by Access-Control-Allow-Origin.

und ein Fehlerobject zurück:

Object {readyState: 0, status: 0, statusText: "Error: NETWORK_ERR: XMLHttpRequest Exception 101"}

Im Firefox bei Verwendung einer von Google gehosteten jQuery Version erhält man nur die kryptische Nachricht:

"[Exception... "Failure"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js :: <TOP_LEVEL> :: line 2"  data: no]"
Kategorien
Webdeveloper Tools

Testen von GET und POST Anfragen Firefox Addon

Wenn man ein Formular gebaut hat und dies testen will, kann man das sehr gut Firefox Addon HttpRequester benutzen. Damit ist es möglich GET/PUT/POST/DELETE Requests an eine URL zu senden und die Antwort als HTML anzeigen zu lassen.

Außerdem ist es auch sehr gut geeignet um andere Seiten komfortabel zu hacken:)

Kategorien
Phonegap/Cordova

Phonegap Präsentation

Eine Präsentation zu Phonegap mit Schwerpunkt auf die Programmierung unter Android.

Download: Phonegap Präsentation

Kategorien
Erlang

Threads in Erlang

Mit Erlang lässt sich besonders einfach verteilter Code schreiben, der auf verschiedenen Threads Laufen kann ohne Probleme.

Erlang ist somit die Sprache der Wahl um verteilte Anwendungen zu schreiben.

Regeln bei Threads in Erlang

  • Threads greifen dabei nicht auf gemeinsamen Speicherraum zu, sondern kommunizieren nur über Messages miteinander, um Kollisionen auszuschließen.
  • Senden ist asynchron, für synchrone Nachrichten muss self() mitgesendet und ausgewertet werden (self gibt die eigene Pid aus)
  • zum Kommunizieren zwischen den Prozessen kann entweder die Pid mitgesendet werden (elegant), oder erfragt werden mit whereis()
Kategorien
WordPress

Hacker Angriff WordPress Blog Kommentare

Heute hat jemand versucht über die Kommentarfunktion meines Blogs meine Webseite zu hacken- ohne Erfolg. Die Kommentare die eingegen wurden waren:

20121205-182344.jpg

Kategorien
HTML5

Vortrag über HTML5

Hier ein Präsentation über HTML5 und die Möglichkeiten/Grenzen der Technologie in englischer Sprache.

Gliederung:

  1. HTML & HTML5 Basics Facts
  2. Flash vs. HTML5
  3. HTML5 – the new features

Download Link: html5_presentation.ppt