Lisp für Anfänger – Alles ist eine Liste

Da ich in letzter Zeit schon mehrfach Wundersames über die Programmiersprache Lisp gelesen habe, wollte ich nun endlich selbst ausprobieren, was es damit auf sich hat. Bei Lisp denken die meisten erstmal an furchtbar viel Mathe oder an eine uralte Sprache, die heute wohl kaum noch einer benutzt. Richtig ist, daß der Kreis der Lisp-Programmierer eher eine verschworene kleine Gemeinschaft als eine große Mainstream-Bewegung ist und der Ursprung der Sprache basiert ganz klar auf mathematischen Grundlagen. Trotzdem ist der Einstieg nicht schwer und jeder kann das mit einfachen Mitteln ausprobieren. Die schlichte Schönheit der Sprache lässt sich dabei schnell erkennen.

lisplogo

Paul Graham sieht die nach wie vor geringe Verbreitung von Lisp als Wettbewerbsvorteil für Lisp-Programmierer an. Konkurrenten müssten nach Graham in sogenannten „Blub-Sprachen“ programmieren und wären dadurch weit weniger flexibel in der Entwicklung. Dies ist natürlich recht überheblich formuliert, allerdings betonen doch eigentlich alle Lisp-Programmierer, welche Vorteile Lisp gegenüber allen anderen Sprachen hat und warum eben diese anderen Sprachen niemals genau diese Vorteile haben werden. Es sei denn, man baut sie zu Lisp um 🙂 Jeder mag natürlich die Sprache die er am besten kann am liebsten, dennoch lohnt es sich eigentlich immer über den Tellerrand hinauszuschauen.

john_mccarthyLisp wurde 1958 erstmals von John McCarthy am Massachussets Institute of Technology (MIT) als theoretische Erforschung einer mathematischen Syntax spezifiziert. Einer seiner Studenten implementierte dies schließlich als Programmiersprache. Seitdem wurden zahlreiche Lisp-Dialekte entwickelt, doch die Basis blieb stets dieselbe. Nach Fortran ist Lisp die zweitälteste Programmiersprache, die noch in Verwendung ist.

Der Begriff Lisp bedeutet „List Processing“  (Listen-Verarbeitung) und tatsächlich ist in Lisp alles eine Liste. Listen können beliebig verschachtelt sein und es läßt sich alles damit ausdrücken. So sind auch Programmanweisungen Listen, wobei das erste Element der Liste die auszuführende Funktion darstellt. Dies kann zum Beispiel ein Operator sein, wie bei Addition oder Multiplikation:

(* 3 (+ 2 5))

Wer als Ergebnis 21 herausbekommt, hat das Prinzip schon verstanden 🙂

Weiterlesen

JIRA-Administration: Anzeigen von benutzerdefinierten Werten in Scripted Custom Fields

Für JIRA-Vorgänge lassen sich standardmäßig jede Menge benutzerdefinierte Felder hinzufügen, die jedoch vom Bearbeiter dann manuell ausgefüllt werden müssen. Um in benutzerdefinierten Feldern automatisch Werte anzeigen zu lassen (read-only), die auf Berechnungen auf Werten aus der Datenbank basieren, können Scripted Custom Fields verwendet werden.

In folgendem Beispiel wird ein Feld zu einem JIRA-Vorgang hinzugefügt, in welchem angezeigt wird, wie lange sich ein JIRA-Ticket in einem bestimmten Workflow-Status befunden hat. Dies ist beispielsweise für die Ausgabe eines Berichts über die Bearbeitungsdauer der Tickets in einem Projekt interessant. Alle Felder können nämlich auch in Spalten eines Excel-Exports oder in Diagrammen auf dem Dashboard angezeigt und ausgewertet werden.

Hierzu muss zunächst das kostenlose Script-Runner-Plugin in der JIRA-Instanz installiert werden.

Als nächstes wird in der System-Administration von JIRA ein neues benutzerdefiniertes Feld angelegt. Um die Zeit des Vorgangs in dem Status „In Progress“ zu berechnen, erstellt man ein Feld „Time In Progress“ und benutzt dafür den durch das Plugin hinzugefügten neuen Typ „Scripted Field“.

scriptedfields3

Weiterlesen

Developers united in Berlin – AtlasCamp 2014

AtlasCamp is the yearly conference for Plugin Developers of Atlassian products, which provides insights in the product APIs, informs about new features and of course is a great opportunity to get to know each other.

With Berlin Atlassian chose a great location for developers to meet and enjoy the sunny weather with about 30 degrees and interesting talks with a very international audience. A quick research unvailed that more than 50% of the attendees were new to AtlasCamp, which means that the community is still growing fast. There was no hackathon during the camp this year, but a competition for developers in advance to present their latest Atlassian Connect Add-on and win a price. I guess that was because some developers were complaining about missing all of the conference while hacking away for the hackathon last year. So even though it was fun having intensly working people around in Amsterdam, it was much more laid back this year and talking and getting connected was more in focus of the event. Also the Wifi-Connection at the Maritim-Hotel was so bad, that nobody was really able to work, but had to stay offline with the surrounding participants to talk (Lächeln)

atlascamp2014atlascamp2014atlascamp2014

2014-06-04 20.01.56

Weiterlesen

AtlasCamp 2013: Plugin Developers United in Amsterdam

Just came back from Amsterdam and as the whole event was in english and my notes too, this blogpost will be an english one as well.

AtlasCamp is a yearly event which is organized since 2009 from Atlassian for Plugin Developers to give them insights in the product APIs, inform about new features and of course get to know each other. After 3 years of coding in California, last year was the first event in Europe (Wiesbaden/Germany) and this year in Amsterdam.

For the first time there was a ShipIt-Hackathon on the first day of the AtlasCamp at the Atlassian Amsterdam Office. Around 20 Plugin Developers were participating and competing for the best plugin shipped during one day. Most of them were fulltime plugin developers, who came with 2-4 people from the same company and had specific ideas for a plugin, for example a new feature for their already existing plugins, as the gliffy-team did, who also won the contest with a great performance at the end. It was quite difficult as a beginner to get involved, because teams were already formed by the people who came together and no introduction talks or tutorials were given. Thats why there was not much to do for me as a newbee who coded her first HelloWorld-Plugin a couple of days ago. But still i got some insider hints about where the flaws of the API can be found 🙂

The next two days were full of interesting talks about new features at atlassian and also very interesting live demonstrations in plugin coding, so on the third day I would have been ready to really try out what I´ve learned. I guess I will do so soon.

There were around 150 Plugin Developers from all over the world participating at AtlasCamp. They were showing a map at the beginning of the conference, which showed that Germany was with 37 participants by far the biggest group. Only 8 came from the netherlands as the guest country, and next were 6 from sweden, italy and another country which i just forgot. I met people from Belgium, 1 guy from Malaysia, some from Russia and many from the westcoast of the US (mainly San Francisco Atlassian Office). But also the polish community was represented by 6 people, which my polish collegue found out the next day. Atlassian itself came with around 30 people to the event.

For those who didn´t make it to the camp but are still interested in what its all about, I made a lot of notes and will present it to you in the following. Its a lot to read, but you can also pick the talks that you are interested in. Maybe Atlassian will also publish some of the slides later on. If so, I will collect the links in the link section below.

It has been an awesome location in the koepelkerk at the Renaissance hotel in Amsterdam. An old church with a huge organ, a big dome and a lot of atmosphere. And of course Amsterdam is beautiful too.

Weiterlesen

Atlassian-Plugins schreiben für Jedermann

In Vorbereitung auf das große Atlassian-Entwickler-Event „AtlasCamp“ in Amsterdam Ende Mai habe ich mir endlich mal angeschaut wie man denn ein eigenes Plugin für die Atlassian-Produkte schreibt. Die riesige Anzahl von Plugins im Atlassian-Marketplace läßt vermuten, daß die Pluginentwicklung von Atlassian gut unterstützt und gefördert wird und auch auf dem AtlasCamp ist sie das zentrale Thema.

Nachdem ich das nun ausprobiert habe kann ich nur sagen: Toll gemacht Atlassian! Ein erstes Plugin kann wirklich jeder ohne jegliche Hindernisse erstellen! Die Anleitung ist detailliert und gut verständlich, selbst für Nicht-Programmierer durchführbar und die Erfolgserlebnisse treten schon nach kurzer Zeit ein. Ein erstes HelloWorld-Plugin läßt sich in weniger als einer Stunde schreiben und in einer eigenen JIRA-Instanz, die gleich mitgeliefert wird, aufrufen und ausprobieren. Als einzige Systemvorraussetzung muss ein Java SDK 1.6.*  installiert und der Port 2990 offen und zugänglich sein, aber auch hierfür gibt es eine detaillierte Anleitung. Alles andere wird von dem Atlas-SDK mitgebracht, neben einer Jira-Standalone-Version auch Maven 2.1.0 und ein Tomcat 6-Server.

Die genaue Anleitung auf englisch von Atlassian findet ihr hier. Ich werde nur eine kurze Zusammenfassung geben, um euch auf den Geschmack zu bringen 🙂

Weiterlesen

Grenzen und Möglichkeiten von Scrum

Historische Hintergründe

Die Anfänge von Scrum lassen sich auf Ikujiro Nonaka zurückführen. Mit seinem Buch „The Knowledge-Creating Company“, legte der mittlerweile eremitierte Professor der japanischen Hitotsubashi-Universität 1991 zusammen mit Hirotaka Takeuchi die Grundlage für ein neues Wissensmanagement. Er unterscheidet zwei Arten von Wissen: explizites Wissen, das in Betriebsanleitungen und Prozeduren enthalten ist und implizites Wissen, das nur durch persönliche Erfahrungen erlernt werden kann. Dieses implizite Wissen ist subjektiv und intuitiv, es enthält unser Bild der Realität und unsere Vision für die Zukunft. Während explizites Wissen sich leicht darstellen und verarbeiten lässt, ist dies bei implizitem Wissen deutlich schwerer. Unternehmen wie Toyota oder Canon profitieren vom impliziten Wissen ihrer Mitarbeiter, indem sie hohen Wert auf die Interaktion zwischen ihren Mitarbeitern legen. Dieses implizite Wissen in explizites Wissen umzuwandeln, macht nach Nonakas Meinung den Erfolg japanischer Firmen aus und wird von ihm als das erstrebenswerte Modell dargestellt. Er bezeichnet Wissen als die Schlüsselkompetenz unseres Zeitalters und den Erwerb und die Anwendung von Wissen als einen wesentlichen Wettbewerbsfaktor. Dieses „Wissen sammeln durch gemeinsame Erfahrungen“ findet sich auch in Scrum wieder.

knowledge_creating_companyNonaka_Photo

Weiterlesen

Ruby rules! Von japanischen Edelsteinen und RailsGirls

Ruby ist eine Programmiersprache aus Japan die seit Anfang der 90er Jahre revolutionäre Wege geht. Die Besonderheit von Ruby findet sich in der Balance zwischen Einfachheit und Leistung. Fans nennen es schön und künstlerisch, aber gleichzeitig funktional und praktisch.

Ihr Schöpfer Yukihiro “matz” Matsumoto vermischte Teile seiner Lieblingssprachen (Perl, Smalltalk, Eiffel, Ada und Lisp) und formte daraus eine neue Programmiersprache. Er betonte, daß er versucht “Ruby natürlich zu machen, nicht einfach”, als Spiegel des echten Lebens. Den Namen, hergeleitet vom Edelstein Rubin, wählte er als Anspielung auf die Programmiersprache Perl.

Bild: Quelle Wikipedia

Weiterlesen