Wednesday, February 8. 2012
A Scala example: Reverse Polish Notation Posted by Jochen Wierum
in English, Programmieren, Scala at
11:47
Comments (0) Trackbacks (2) A Scala example: Reverse Polish NotationAs you may already have heared, I am a big fan of Scala. I was asked to provide a few examples. I would not say that I am an expert, so I start with a really simple example. Let's write a really simple RPN calculator which reads a term from STDIN and prints out the result. The simple thing about RPN is that we only need a stack to calculate the result. So we start with this a class that includes the stack. Continue reading "A Scala example: Reverse Polish Notation"Sunday, November 27. 2011
Bücherempfehlungen: Grundlagen Posted by Jochen Wierum
in Buch, Clean Code, Java, Patterns, Programmieren, Refactorings, Studium at
19:17
Comments (0) Trackbacks (0) Bücherempfehlungen: GrundlagenProgrammieren macht Spaß. Doch was, wenn man den Spaß mit anderen Teilen will? Und wie sorgt man dafür, dass der Spaß auch dann anhält, wenn man länger an einem Projekt arbeitet? Ein paar Grundlagen und eine gemeinsame Sprache helfen dabei. Hier möchte ich ein paar Bücher vorstellen, die dies zu ihrem Thema machen. Continue reading "Bücherempfehlungen: Grundlagen"Sunday, November 20. 2011
Bücherempfehlungen: Funktionale ... Posted by Jochen Wierum
in Buch, Java, Perl, Programmieren, Scala at
11:49
Comments (0) Trackbacks (0) Bücherempfehlungen: Funktionale ProgrammierungEs gibt diverse Arten von Programmiersprachen. Heute wird viel von imperativen Programmiersprachen gebrauch gemacht. Sie sagen, welche Schritte etwas getan werden soll. Ein typischer Vertreter dieser Kategorie ist zum Beispiel Java (obwohl auch hier langsam Funktionale Elemente Einzug halten). Ein anderer, seit 1930 in der Mathematik bekannter Ansatz konzentriert sich nicht so sehr auf eine Schrittweise Anleitung, sondern darauf, wie die Funktionen kombiniert werden können, sodass neue Funktionalität entsteht. Ein häufig zitiertes, wenn auch längliches Paper mit dem Titel "Why Functional Programming Matters" von John Hughes stellt die Vorteile sehr schön zusammen. Ein paar typische funktionale Elemente wirken sehr praktisch. Hier ein Beispiel zur Quadrierung alle Elemente einer Liste in Java:
In Scala geht dies in einer Zeile:
Die Map-Funktion übernimmt als Parameter eine weitere Funktion. Diese nimmt einen Parameter x entgegen, und gibt x * x als Resultat zurück. "Map" ist hier eine Funktion höherer Ordnung. Dass sind solche Funktionen, die als Parameter weitere Funktionen entgegennehmen. Viele andere Probleme werden rekursiv ausformuliert. Ich möchte nicht behaupten, dass Funktionale Programmierung ein Allheilmittel ist. Insbesondere ist es eine nicht zu verachtende Umgewöhnung. Allerdings halten die Konzepte erneut Einzug in die Programmierung (sei es Javascript, Ruby, die .NET-Welt, oder eben Java), und es kann nicht schaden, zumindest ein paar Ideen zu kennen. Doch wie fängt man an? Ich möchte an dieser Stelle ein paar Bücher vorstellen, die vor allem die Vorzüge einer Mischung der Konzepte in den Vordergrund stellen, und so den Einstieg erleichtern. Sinnvoll sind diese Bücher in erster Linie für Leute, die schon Erfahrung im Programmieren haben. Continue reading "Bücherempfehlungen: Funktionale Programmierung"Saturday, November 12. 2011
Bücherempfehlungen: TDD Posted by Jochen Wierum
in Buch, Clean Code, Programmieren, Studium at
11:00
Comments (0) Trackbacks (0) Bücherempfehlungen: TDDIch lese relativ viel, und wollte die Gelegenheit einfach mal nutzen, um ein paar Bücher vorzustellen, die mir persönlich gut gefielen. Den Anfang machen heute drei Bücher zum Thema Tests. Tests sind bei der Entwicklung von Software unerlässlich. So selbstverständlich, wie dieser Satz klingen mag, ist dieser Grundsatz aber nicht immer eingehalten - und das nicht ohne Grund. Tests finden auf vielen verschiedenen Ebenen statt. Die unterste Ebene sind der Tests sind Unit-Tests. Diese Testen einzelne Funktionalitäten. Beim Testgetriebenen Ansatz werden die Tests geschrieben, bevor die Funktionalität entsteht. Das Resultat ist eine sehr hohe Testabdeckung und ein gutes Sicherheitsnetz für spätere Refactoring-Maßnahmen. TDD wirkt sich aber auch auf das Design der Anwendung aus: die Klassen sind loser gekoppelt, die Abhängigkeiten sind durchdachter. Continue reading "Bücherempfehlungen: TDD"Sunday, August 14. 2011
FrOSCon 6 Posted by Jochen Wierum
in Linux, Programmieren, Smalltalk, Studium at
12:08
Comments (0) Trackbacks (0) FrOSCon 6Gefühlt vergeht die Zeit immer schneller (stellt sich die Frage, ob es konvergiert Die Keynotes werden von Simon Phipps (ForgeRock) und Michael "Monty" Widenius (Autor von MySQL) gehalten. Ich würde mich freuen, das eine oder andere Gesicht dort wieder zu sehen!
Die Konferenz kostet für Samstag und Sonntag 5 €. Interesse? Thursday, June 23. 2011
Template für Bachelor/Masther-Thesis Posted by Jochen Wierum
in LaTeX, Studium at
11:02
Comments (0) Trackbacks (0) Template für Bachelor/Masther-ThesisIch wurde in der letzten Zeit häufiger nach meiner Bachelor-Thesis gefragt.Ich kann (und werde :-) ) sie nicht herausgeben. Ich habe aber mal ein minimales Template extrahiert, sodass man zumindest ein LaTeX-Sklett hat, auf dem man eine eigene Arbeit aufbauen kann. Ich habe die Arbeit mit make gesetzt. Außerdem habe ich gnuplot und graphviz verwendet. Die entsprechende Funktionalität ist noch vorhanden. Es lassen sich sowohl dvi-Dateien, als auch pdf-Dateien generieren, wobei das Make-File nur letzteres tut. DVI-Dateien sind im Zusammenspiel mit TeXlipse sehr interessant: hier kann man per Doppelklick auf eine Zeile direkt in den Quellcode springen. Ein paar Zeilen Beispielcode sind enthalten. Viel Spaß! Der Code darf beliebig verwendet werden, der Autor erhebt keinerlei Ansprüche, kann aber auch nicht für eventuelle Schäden verantwortlich gemacht werden. Sunday, February 13. 2011
Creating runnable wars with Maven ... Posted by Jochen Wierum
in English, Java, Programmieren at
11:43
Comments (3) Trackbacks (0) Creating runnable wars with Maven (and Jetty)Hudson is a really great tool if you work with source code in a team with more than two persons. One thing in hudson always fascinated me: the fact, that Hudson is runnable just by typing java -jar hudson.war I do not know if it really has practical relevance, but I searched a way to create such a jar only with Maven and Jetty. Continue reading "Creating runnable wars with Maven (and Jetty)"Thursday, December 30. 2010External authentication without double-login in tt-rssI already wrote about tiny tiny RSS (tt-rss) in this article. So far, the login-mechanism of tt-rss was used. However, tt-rss also allows to use authentication mechanisms of an webserver, which allowes the usage of htAccess and htUser-Files. Continue reading "External authentication without double-login in tt-rss"Sunday, October 24. 2010
OpenVPN Dienst bequem aus der ... Posted by Jochen Wierum
in Bash, Linux, Programmieren, Studium at
17:43
Comments (0) Trackbacks (0) OpenVPN Dienst bequem aus der Konsole steuernAn meiner Hochschule wird OpenVPN eingesetzt um die W-Lan Verbindungen effektiv zu verschlüsseln. Da ich relativ viel in Linux unterwegs bin, und OpenVPN in diversen Window-Managern (i3, XFCE, KDE) und auf der Konsole nutze, suchte ich eine Möglichkeit, um OpenVPN bequem und sicher starten und stoppen zu können. Continue reading "OpenVPN Dienst bequem aus der Konsole steuern"Sunday, October 10. 2010
Using Tiny Tiny RSS with Opera ... Posted by Jochen Wierum
in English, Mobil, PHP, Programmieren at
11:51
Comments (0) Trackback (1) Using Tiny Tiny RSS with Opera Mobile (updated)Tiny Tiny RSS (aka "tt-rss") is a very nice tool if you read many rss feads from various devices. It's an alternative to Google Reader and runs on your own server. You only need a database (MySQL or Postgres) and PHP. One of its features is a mobile view. This allows you to read news from you mobile phone. You just have to append A few hacks help to make the easier-to-read™ iPhone view available to other browsers. I tested it with Opera Mobile. Continue reading "Using Tiny Tiny RSS with Opera Mobile (updated)"Tuesday, August 17. 2010Die FrOSCon naht!Wer dieses Wochenende noch Zeit hat, dem sei die diesjährige FrOSCon wärmstens empfohlen. Die Konferenz jährt dich dieses Jahr zum fünften mal. Zu finden ist dort alles, was mit Open Source zu tun hat - nicht nur aus Entwickler-, sondern auch aus Anwendersicht. Außerdem gibt es diverse Räume, in denen sich Projekte treffen. Neben diversen Ausstellern (es gibt auch wieder was zum Einkaufen) werden zahlreiche interessante Talks zum Thema Datenbanken, Systemadministration, Sicherheit, Hardware, Software und Co. angeboten. Eine der beiden Keynotes wird dieses Jahr von MadDog gehalten. Eine Kinderbetreuung ist ebenfalls mit dabei. Dieses Mal gibt es sogar einen eigenen Track für Kinder zum Thema Lego Mindstorms, Spieleentwicklung und Geocaching. Für die größeren Besucher mit GnuPG/PGP-Schlüsseln findet eine Keysigning-Party statt. Abgerundet wird der Samstag Abend mit einem gemütlichen Beisammensein mit Grillgut und Bier. Das ganze kostet für Samstag und Sonntag 5 €.
Hochschule Bonn-Rhein-Sieg
Monday, July 12. 2010
XMPP/Jabber Notifications for new ... Posted by Jochen Wierum
in English, Jabber/XMPP, Linux, Mails, Perl at
22:41
Comments (0) Trackbacks (0) XMPP/Jabber Notifications for new Mails (written for dovecot)Have I already noted that I love Jabber? Jabber is relly great, and sometime I will write my own bot framework for it. In my oppinion jabber has great opportunities beyond pure chatting. I use Jabber as a kind of notification system for several things. E.g. for nagios (german). And since thunderbird consumes lots of ram only to show a notification about incoming mails, I decided to search a solution to provide Jabber notifications. Continue reading "XMPP/Jabber Notifications for new Mails (written for dovecot)"Thursday, June 24. 2010
Using DokuWikis ACL feature with ... Posted by Jochen Wierum
in DokuWiki, English, PHP at
21:07
Comments (0) Trackbacks (0) Using DokuWikis ACL feature with pre-authenticated apache usersDokuWiki is a very simple, PHP based wiki. It's strengh is simplicity. It uses txt files for storage and runs on nearly every Webserver which supports PHP, no database needed. DokuWiki supports Users and ACLs, so it's possible to allow editing only to a special group of people. DokuWiki supports many authentication backends, but the default plugins all assume that the wiki has a "login" button. In my case, the users are already authenticated via htAccess. So I started to search a solution which integrates these users. Continue reading "Using DokuWikis ACL feature with pre-authenticated apache users"Monday, June 21. 2010Clean CodeIch hatte diese Woche die Ehre, einmal mehr Stefan Lieser zu erleben. Stefan Lieser ist Berater und Trainer im Bereich Clean Code und hat in den letzten Jahren zusammen mit Ralph Westphal eine Frage gestellt: Was macht einen professionellen Software Entwickler aus? Stephan Lieser stellte diese Frage an der Hochschule Bonn-Rhein-Sieg. Continue reading "Clean Code"Wednesday, June 9. 2010UnicodeBeim Aufräumen meiner Links bin ich wieder einmal über JoelOnSoftware.com gestolpert. Joel Spolsky schrieb den meiner Meinung nach besten Artikel, wenn es darum geht, die Unterschiede zwischen Unicode, UCS-2, UTF-8, UTF-16, ASCII, ANSI, Latin 1, und vielen weiteren darzustellen. Egal wo, man begegnet als Entwickler immer wieder Encodings. Und ich erlebe es oft genug, dass Personen der Meinung sind, die Verwendung von höheren Programmiersprachen würde ausreichen, um sich der Problems zu entledigen. Doch das Gegenteil ist der Fall: Egal wo, man sollte wissen, was man liest und schreibt, und es nicht dem Zufall überlassen, wie die Sonderzeichen letztendlich aussehen. In diesem Sinne: There Ain't No Such Thing As Plain Text. |
QuicksearchStatic Pages |