xscDevBlog – LastSharp & Co.

Der xscheme-DevelopmentBlog

nginx = Wow!

keine Kommentare

Nachdem ich ja diese Woche mit meinem Blog den Hoster gewechselt habe, stand ich vor einem kleinen Problem: der vServer, den ich mir angemietet habe, schien zeitweise extrem instabil, hing manchmal fest und tat gar nichts mehr.

Eine kleine Analyse brachte das Problem zutage: der installierte Apache 2 Server fraß die Resourcen auf, anscheinend beim Versuch, sich mit der MySQL-Datenbank (die ich zwecks einfacher Weiterbetreibung dieses Blogs behalten habe) zu verbinden. Und egal, wo ich an der Konfiguration herumgeschraubt habe, es hat nichts gebracht.

Also bin ich einen anderen Weg gegangen: ein neuer Webserver musste her. Und hierbei fiel mein Auge auf nginx (Engine X). (Homepage) Eine kurze Installation und eine unglaublich einfach zu erledigende Konfiguration später, lief er dann auch schon. Und siehe da: keine Abstürze, keine langen Wartezeiten. Einfach Wow!

Jetzt muss ich nur noch cakePHP zum Laufen bekommen, dann wäre die Welt perfekt… Läuft.

Den Rest dieses Beitrags lesen »

Autor: xsc

Februar 3rd, 2010 at 5:11 pm

Kategorien: Web

Umzug vollbracht

1 Kommentar

So, seit eben liegt diese Seite bei meinem neuen Hoster, der synergetic AG. Hat jetzt dann doch eine Woche gedauert, weil ich vergessen hatte, ein Formular an die DeNIC zu schicken. Shame on me…

Aber jetzt sollte wieder alles funktionieren. Wenn nicht, bitte bescheid sagen!

Update: Um das Forum kümmere ich mich morgen.

Autor: xsc

Januar 31st, 2010 at 3:07 am

Kategorien: General

[Release] LeSharp 1.2.2

6 Kommentare

Heute habe ich (weil ich einfach vor Ewigkeiten vergessen habe, das zu machen) eine ausgebesserte Version von LeSharp online gestellt. Im Vorgänger hat Pico nicht mehr richtig funktioniert, aber die Tatsache, dass sich darüber niemand aufgeregt hat, nehme ich jetzt einfach mal positiv auf… Wenn weiter Probleme mit LeSharp bestehen, bitte melden!

Download:
https://sourceforge.net/projects/lastsharp/files/lesharp/LeSharp%201.2.2/LeSharp1.2.2.zip/download

Autor: WordPress

November 5th, 2009 at 9:51 pm

Kategorien: LeSharp / Lea

Tags:

Aktuelle Situation: Stress.

keine Kommentare

Ich möchte diesen Artikel nutzen, um kurz meine aktuelle Situation zu beschreiben und mich im Zuge dessen dafür zu entschuldigen, dass ich diese Seite und meine Projekte im Moment eher ruhen lasse.

Zum einen bin ich letzten Samstag umgezogen (der klassische Studentenweg: von Zuhause weg und in eine 2er-WG) und da jetzt dann doch ziemlich eingebunden. Ich hab noch nichtmal ein Bett… (Lieferzeit: 3 Wochen)

Seit September arbeite ich zudem als Werkstudent bei Telefonica O2 Germany. Die 20h-Woche ist jetzt vielleicht nicht sooo auslastend, aber es summiert sich dann doch.

Zuguterletzt geht dann demnächst auch die Uni wieder los, was mein Pensum dann auf 50h die Woche erhöht. Aber mei, wir sind jung – wenn wir jetzt sowas nicht packen, wann dann?

Jedenfalls werde ich alle offenen Kommentare beantworten, sobald ich Zeit habe. Ebenso wird es dann neue Versionen der einzelnen Programme geben. Danke für’s Verständnis!

Autor: WordPress

Oktober 1st, 2009 at 10:05 pm

Kategorien: General

Scripe. Oder: Warum eine Scriptsprache auch nur eine Suppe ist.

3 Kommentare

Es ist wohl aufgefallen, ich erwähne es trotzdem: Seit einiger Zeit arbeite ich an einem Prinzip, dass es jedem Interessierten ermöglichen soll, eine eigene Script- oder Programmiersprache zu entwerfen. Meine theoretischen Überlegungen, so langweilig sie auch manches Mal seien mögen, habe ich in einer Reihe von Artikeln festgehalten; damit ich diese Texte aber auch schreiben konnte, musste ich immer ein kleines Stückchen vorausdenken und einiges an implementierungstechnischer Vorarbeit leisten.

Und heute war ich dann soweit, dass ich eine gar nicht so üble Version vor mir hatte, die ich nun (nicht detailliert, eher angeberischerweise ;) ) präsentieren will. Vorhang auf für Scripe!

Den Rest dieses Beitrags lesen »

Autor: WordPress

September 2nd, 2009 at 10:40 pm

Kategorien: C#, Projekte, Software

Wie entwickle ich meine eigene Scriptsprache? (Teil 3: Syntax)

keine Kommentare

Nun, wie weit sind wir bisher? Wir haben einen Lexer, der unsere Eingabe in Einzelteile spaltet, und wir können einfache Ausdrücke in eine verwertbare Form bringen. Was wir bisher noch nicht (bewusst) gemacht haben, ist, einen Ausdruck zu analysieren und zu prüfen, ob er sinnvoll ist oder nur unzusammenhängend aneinandergereihte Token enthält.

Zur Erinnerung: sowohl “1+2+3″ als auch “1+(” wären Zeichenfolgen, die der Lexer akzeptieren und ohne zu meckern zerkleinern würde. Das ist auch in Ordnung so, da die syntaktische Prüfung ohnehin eher Aufgabe des Parsers ist. Aber was genau gilt es denn dabei zu beachten?

“Syntaxfragen”

  • Sind genau so viele öffnende wie schließende Klammern vorhanden und passen diese zusammen?
  • Stimmt die Zahl der Parameter, mit der eine Funktion aufgerufen wird?
  • Stimmen die Parametertypen, mit denen eine Funktion aufgerufen wird? (“+” arbeitet normalerweise nur auf Zahlen, der Punkt z.B. in PHP auf Strings, etc…)
  • Befinden sich Operatoren an den richtigen Positionen? (Die Fakultät einer Zahl wird z.B. durch Anhängen eines Ausrufezeichens gekennzeichnet: “3!”)
  • Darf eine Funktion geschachtelt vorkommen? (z.B. wäre “echo(echo(1))” eher sinnlos, wenn “echo” die Ausgabefunktion ist)
  • Darf eine Funktion/ein Konstrukt in einer untergeordneten Umgebung vorkommen? (Das wäre z.B. der Fall, wenn man Funktionsdefinitionen innerhalb von Funktionsdefinitionen zulässt.)

Neben der Syntax gibt es noch weitere Punkte, die eine Programmier-/Scriptsprache ausmachen. Eine Auflistung findet man z.B. hier.

Den Rest dieses Beitrags lesen »

Autor: WordPress

August 30th, 2009 at 1:26 pm

Wie entwickle ich meine eigene Scriptsprache? (Teil 2: Grundlagen des Parsens)

1 Kommentar

Einen wichtigen Schritt haben wir an dieser Stelle bereits hinter uns: Der hier beschriebene Lexer verwandelt eine Eingabesequenz wie “1+3*(4-2)”  in eine Liste von Tokens mit Typ und Wert:

zahl        :    1
operator    :    +
zahl        :    3
operator    :    *
open        :    (
zahl        :    4
operator    :    -
zahl        :    2
close       :    )

Damit haben wir eine maschinenlesbare Repräsentation des gewünschten Ausdrucks – allerdings keine Garantie dafür, dass dieser syntaktisch korrekt ist. Ebensowenig kann eine Maschine, die diese Liste nun vorgelegt bekommt, “einfach mal so” den Wert des Ausdrucks berechnen, da ihr Informationen zur Auswertungsreihenfolge fehlen. (Wenn 1+3 zuerst berechnet wird, lautet das Ergebnis 8, wenn 3*(4-2) zuerst berechnet wird, lautet es 7.)

Wir brauchen also eine Darstellung unseres Ausdrucks, die bezüglich der Reihenfolge der Auswertung eindeutig ist und eine Maschine, die diese erstellt  – und wie könnte es anders sein: auch dieses Problem wurde bereits einmal gelöst.

Wandeln wir also auf den Spuren von Edsger W. Dijkstra.

Den Rest dieses Beitrags lesen »

Autor: WordPress

August 15th, 2009 at 3:51 pm

Wie entwickle ich meine eigene Scriptsprache? (Teil 1: Der Lexer)

3 Kommentare

Die Aufgabe, die ich mir hier gestellt habe, eine eigene Script- oder Programmiersprache zu entwickeln, bringt so ihre Probleme mit sich. Wie und wo fange ich an? Ist das nicht zu viel für mich? Und sollte ich nicht auf bereits vorhandene Bibliotheken zurückgreifen, anstatt alles von Grund auf neu zu entwickeln?

Vor allem die letzte Frage kann einem zu schaffen machen. Warum etwas möglicherweise nicht gut funktionierendes entwickeln, wenn es doch überall schon tausendfach durchdachte Lösungen gibt? Immerhin lautet doch eine der obersten Regeln in der Softwareentwicklung:

Don’t reinvent the wheel!

Nun, ich bin Informatikstudent. Ich will wissen, wie die Dinge “unter der Haube” aussehen, ich will lernen. Und wenn alle nur noch auf vorgefertige Bibliotheken zurückgreifen, weiß doch bald keiner mehr, was dem Zauber eigentlich zugrunde liegt… Dementsprechend:

Don’t reinvent the wheel, unless you plan on learning more about wheels!

Diese Anleitung soll jedem helfen, der interessiert daran ist, was im Inneren eines Interpreters oder Compilers eigentlich (ungefähr so) abläuft. Ich selbst habe gerade erst das zweite Semester hinter mir, d.h. allzu theoretisch wird es hier nicht und jeder mit ein wenig logischem Denken und genug Engagement sollte es hinbekommen, meinen Ausführungen zu folgen.

Lasset uns beginnen. ;)

Den Rest dieses Beitrags lesen »

Autor: WordPress

August 11th, 2009 at 8:55 pm

[Release] LastSharp 0.4.4

16 Kommentare

lastsharp044Nach den Änderungen bei Last.FM und den zwei Beta-Versionen der letzten 15 Tage kommt nun wieder eine offizielle Version von LastSharp.

Es gab einige Anfragen und Wünsche, von denen jedoch einige noch weitere Überlegungen benötigen, weshalb sie noch nicht realisiert wurden. Das passiert dann in der nächsten Version. Oder der übernächsten. ;)

Neu in LastSharp 0.4.4 ist:

  • Last.FM-Abonnenten können das neue Radio-API verwenden.
  • Die Parameter, mit denen mp3Gain die heruntergeladenen Dateien normalisiert, sind im Einstellungsdialog modifizierbar.
  • Der Name der Cover-Dateien ist  nun veränderbar.
  • Überlange Titel (tritt vor allem bei klassischer Musik auf) werden nun über eine dreistellige Zeichenfolge am Anfang des Dateinamens eindeutig identifizierbar gemacht.
  • Der komplexe Filter unterstützt über das Präfix “t:” nun auch die Filterung nach Titel.

Hinzu kommen einige Bugfixes, sowie die Unabhängigkeit von LastFmLib.Net, die v.a. Platz spart. An dieser Stelle sei nochmals meine eigene, im Moment im Bau befindliche .NET-Schnittstelle für das Last.FM-API erwähnt, die sich an alle richten wird, die “einfach mal schnell” Anfragen an das API schicken wollen und das ganze Drumherum von LastFmLib.Net nicht benötigen.

Dann habe ich mir noch etwas vorgenommen: Wenn es das nächste Mal eine Änderung bei Last.Fm gibt, werde ich sofort eine neue Version rausbringen und nicht erst warten, bis ich genug zusammengetragen habe, um die Versionsnummer zu rechtfertigen…

Viel Spaß mit LastSharp!

Download (Sourceforge): https://sourceforge.net/projects/lastsharp/files/lastsharp/LastSharp%200.4.4/

Autor:

August 9th, 2009 at 3:39 am

LastSharp feiert Geburtstag!

10 Kommentare

Heute, am 8. August 2009 feiert LastSharp seinen ersten Geburtstag! Ich gebe zu, ich habe nicht gedacht, dass das Programm es so lange mitmacht (immerhin schweben da doch einige rechtliche Fragen im Raum…), aber ich freue mich natürlich trotzdem!

Anbei eine kleine (nicht ganz vollständige) Gallerie zur optischen Entwicklung des Programms!

Den Rest dieses Beitrags lesen »

Autor:

August 8th, 2009 at 7:32 pm

Kategorien: LastSharp