HLint
Aus der Beschreibung von HLint geht hervor, dass es sich um ein Werkzeug handelt, das Hinweise für besseren Code gibt. Nachdem ich einen Artikel über HLint von Neil Mitchell, dem Autor von HLint, gelesen habe, installierte ich HLint sofort. Da die Installation per cabal aus unerfindlichen Gründen nicht funktioniert hat, habe ich es per yaourt installiert und über mein aktuelles Projekt laufen lass[...]
Linktipps #7
- Will content repositories kill the file?: Zwar ein sehr kurzer Artikel, dafür regte er mich jedoch zum Denken an.
- Do NOT try parsing with regular expressions: Kore beschreibt mithilfe des Pumping-Lemmas (für reguläre Sprachen), dass rekursive Strukturen nicht durch reguläre Sprachen erzeugt werden können und dass PCRE deshalb nicht zum Parsen dieser Strukturen verwendet werden sollten, was er im [...]
- Weiterlesen
- Kommentare (0)
- Tags: couchdb, links, php, theorie
Uncle Bob’s Bowling Game Kata
Vor zwei Tagen gab es auf ProgrammingPraxis.com die Aufgabe Uncle Bob’s Bowling Game Kata durchzuführen. Bei dieser Kata geht es darum, anhand von der umgefallenen Pins die Gesamtpunktzahl einer Bowling-Runde zu ermitteln. Die in Haskell angefertigte Lösung ist sehr elegant, weshalb ich sie hier präsentieren und verifizieren will. Aber davor müssen noch einige wichtige Begriffe und natürlich die R[...]
Mein erster Artikel auf phphatesme.com
Am Mittwoch ist mein erster Artikel auf phphatesme.com im Rahmen des Akademischen Tags erschienen. Das Thema waren reguläre Ausdrücke, worüber ich bereits vor einiger Zeit einen Artikel verfasst hatte. Diesmal ging es jedoch noch mehr um die Theorie, da dies mein wichtigstes Anliegen war, die Grundlagen verständlich zu machen, sodass man auf diesen aufbauen und noch interessantere Themen behandeln[...]
- Weiterlesen
- Kommentare (2)
- Tags: php, theorie
Mengenpackungen und Ferienwohnungen
Dieses Mal geht es um ein scheinbar kleines Optimierungsproblem: Mich hat die Frage umtrieben, ob es möglich ist, einen effizienten Algorithmus zu entwerfen, der eine optimale Auslastung bzw. den maximalem Gewinn einer Ferienwohnung bestimmt. Das erste Problem, das es zu lösen gilt, ist das Finden eines geeigneten Formalismus. Nach ein wenig erfolglosem Rumprobieren mit Graphen und Recherche im In[...]
- Weiterlesen
- Kommentare (0)
- Tags: theorie
Linktipps #4
- A Monad for Combinatorial Search with Heuristics: Der Artikel zeigt die Entwicklung einer Monade mit der man auch kompliziertere Backtracking-Algorithmen formulieren könnte. Basis hierfür sind Penalty-Listen durch die man Ansatzpunkte (für das Backtracking) priorisieren kann.
- Choosing between SQL and Non-SQL: Ricky Ho beschreibt, aufgrund der zahlr[...]
- Weiterlesen
- Kommentare (0)
- Tags: datenbank, haskell, links, php, theorie
Das n-Damenproblem und unabhängige Mengen
Jeder Informatik-Student wird das n-Damenproblem für kleine n bereits gelöst haben. Als ich gestern aber den heise-Artikel über die Lösung für n = 26 gelesen habe, habe ich mich gefragt, wie schwierig das n-Damenproblem zu lösen ist. Speziell wollte ich wissen, ob das n-Damenproblem NP-vollständig ist. Leider habe ich keine Aussage darüber gefunden, weshalb ich selbst ein wenig darüber gegrübelt h[...]
Kategorisierte Tags
Zefau hat mich am letzten Wochenende auf eine interessante Technik aufmerksam gemacht, die er bei Gmail-Labs verwendet hatte: Die Kategorisierung von Tags. Man kann seine Tags dabei baumartig strukturieren, wie man es bereits von den Kategorien, die auf vielen Blogs verwendet werden, kennt. Wählt man ein Tag, dann sind alle Tags, die darüber angeordnet sind, automatisch gewählt. Hierzu ein kleines[...]
goto Urzeit
Seit PHP 5.3 gibt es auch (eingeschränkte) goto-Statements. Meine Meinung wird ziemlich genau von einem xkcd-Comic beschrieben:
Für mich ist es ein Relikt aus Urzeiten, weshalb ich nicht so recht verstehen kann, weshalb dieses Feature integriert wurde. Nach kurzer Internetrecherche bin ich dennoch auf einige Argumente gestoßen, die für goto-Statements sprechen:
- Man muss das goto-Statement ni[...]
Verifikation von Algorithmen (anhand von Biphrost)
Seit einiger Zeit hat sich nichts an Biphrost verändert, was vor allem daran lag, dass bisher keine neuen Features notwendig waren, die mit dem Gedanken von Biphrost vereinbar sind, d.h. Biphrost ist bisher vollständig. Aber ist Biphrost auch korrekt, d.h. macht Biphrost das, was vorgesehen ist? Ich habe keinerlei Unit-Tests verwendet, aber macht das einen Unterschied in Bezug auf Korrektheit? Nei[...]