Dear all,
on Wednesday, 30th of July, once again our monthly Haskell Meeting takes
place. We meet at 19h30 at Max-Emanuel-Brauerei in Munich. If you plan
to join, please go here to find the details and don't forget to click
the button:
http://www.haskell-munich.de/dates
Have a nice evening,
Heinrich
Hi *,
am Montag, 28. Juli 2014 treffen wir uns um 18.00 in India King für
unser Hackathon. Bringt eure Laptops!
Treffpunkt: India King scheint unseren Treffen sehr gut geeignet zu sein!
Es gibt jetzt auch ein Twitter-Feed für das Hackathon:
https://twitter.com/Haskell_hackers
Themen:
- Was sind die Monadschen Gesetze, und wie sichert man dass sie
eingehalten werden? Warum ist das wichtig?
- Funktoren
- Kommutative Diagramme in Kategorietheorie
- Aplikative Funktoren
- Komonaden
- Wir schreiben eine Komonade für Binärbäume und beweisen die
Komonadsche Gesetze dafür
-- BERICHT --
17. Juli:
Einsteiger-Hackathon! Wir haben:
- "Hello World" geschrieben
- über Typklassen gesprochen, dass sie ähnlich wie APIs und Interfaces sind
- uns angeschaut, wie man einfache Monaden benutzt: List, IO, Maybe
- über das do-syntax gesprochen
- darüber gesprochen was eine Monade macht (aufbauen von Struktur
(return); Kausalität (bind, also >>=))
- eine Liste von grund auf implementiert und Algebraische Datentype erklärt
- eine Monade für unsere Liste geschrieben
- Infix-Konstruktoren verwendet und eine Show-instanz dafür geschrieben
- Über boxing und laziness gesprochen
- Über MirageOS, OCaml und Unikernels gesprochen:
http://queue.acm.org/detail.cfm?id=2566628
-- ANFAHRT --
Wir treffen uns in India King, Landsbergerstr. 491.
Webseite: http://www.indiaking.de
Karte: https://goo.gl/maps/5g9m6
Anfahrtmöglichkeiten:
- S-Bahn nach Pasing nehmen (alle außer S1, S2 und S7) und dann Tram
19 nach Offenbachstraße (2 Haltestellen)
- Tram 19 von Hauptbahnhof richtung Pasing nehmen bis Offenbachstraße
- Bus 130 oder 131 zum Knie nehmen und dort in die Tram 19 nach Pasing
umsteigen, bis Offenbachstraße
- Bus 160 oder 162 nach Offenbachstraße
India King befindet sich genau gegenüber der Tramhaltestelle.
Hi *,
am Donnerstag, 24. Juli 2014 treffen wir uns um 18.00 in India King
für unser Hackathon. Bringt eure Laptops!
Neuer Treffpunkt: wir probieren diesmal India King aus, wo es Strom
und WLAN gibt. Es ist auch ein bisschen ruhiger.
Es gibt jetzt auch ein Twitter-Feed für das Hackathon:
https://twitter.com/Haskell_hackers
Themen:
- Benutzung weiterer Monaden
- Was sind Monadentransformer?
- Benutzung Monadentransformer.
- Wir schreiben ein einfaches Monadentransformer.
- Was sind die Monadschen Gesetze, und wie sichert man dass sie
eingehalten werden? Warum ist das wichtig?
-- BERICHT --
13. Juli:
- wir haben viel mit Attoparsec gearbeitet!
- type families:
http://byorgey.wordpress.com/2010/07/06/typed-type-level-programming-in-has…
+ http://byorgey.wordpress.com/2010/07/19/typed-type-level-programming-in-has…
- data families
- associated types:
http://www.haskell.org/haskellwiki/Simonpj/Talk:FunWithTypeFuns
- unikernels, MirageOS, OCaml, MLton, ML modules, ML functors:
http://queue.acm.org/detail.cfm?id=2566628
-- ANFAHRT --
Wir treffen uns in India King, Landsbergerstr. 491.
Webseite: http://www.indiaking.de
Karte: https://goo.gl/maps/5g9m6
Anfahrtmöglichkeiten:
- S-Bahn nach Pasing nehmen (alle außer S1, S2 und S7) und dann Tram
19 nach Offenbachstraße (2 Haltestellen)
- Tram 19 von Hauptbahnhof richtung Pasing nehmen bis Offenbachstraße
- Bus 130 oder 131 zum Knie nehmen und dort in die Tram 19 nach Pasing
umsteigen, bis Offenbachstraße
- Bus 160 oder 162 nach Offenbachstraße
India King befindet sich genau gegenüber der Tramhaltestelle.
Hi *,
am Donnerstag, 17. Juli 2014 treffen wir uns um 18.00 in India King
für unser Hackathon. Bringt eure Laptops!
Neuer Treffpunkt: wir probieren diesmal India King aus, wo es Strom
und WLAN gibt. Es ist auch ein bisschen ruhiger.
Es gibt jetzt auch ein Twitter-Feed für das Hackathon:
https://twitter.com/Haskell_hackers
Themen:
- Benutzung einfacher Monaden
- Was ist eine Monade?
- Wir schreiben eine Monade
- Was sind Monadentransformer?
-- BERICHT --
Bericht vom 6.07.2014:
- wir haben uns Egison angeschaut (egison.org) - ein in Haskell
implementiertes (cabal install egison) pure functional Lisp mit
"non-linear pattern-matching with back-tracking against unfree data
types". Beispiel code:
(define $twin-primes
(match-all primes (list integer)
[<join _ <cons $p <cons ,(+ p 2) _>>>
[p (+ p 2)]]))
paper: http://arxiv.org/abs/1407.0729
slides: http://www.egison.org/presentation.pdf
- NLP Beispiele in Egison angeschaut
- wir haben uns weiter mit den Thema des Arbeitsspeicherlayouts beschäftigt
- dafür wurde eine neue Version von memgrep geschrieben welche das
Arbeitsspeicher in binären Modus durchsucht
- anscheinend behandelt GHC Zeichenketten folgendermaßen: getLine
speichert die Zeichenkette als unboxed in das Arbeitsspeicher (in das
fake-heap welches sich nach dem linux heap befindet). Bei erster
Verwendung (putStrLn) wird das head in einen anderen
Arbeitsspeicherbereich gespeichert, das Tail bleibt wo es ist, wobei
das Head nicht mehr vorhanden ist. Das heißt, das boxing-modell ist
nur theoretisch; eigentlich werden Boxes nur dann erstellt, wann die
gebraucht werden. Anscheinend braucht putStrLn das Head als separates
Zeichen.
-- ANFAHRT --
Wir treffen uns in India King, Landsbergerstr. 491.
Webseite: http://www.indiaking.de
Anfahrtmöglichkeiten:
- S-Bahn nach Pasing nehmen (alle außer S1, S2 und S7) und dann Tram
19 nach Offenbachstraße (2 Haltestellen)
- Tram 19 von Hauptbahnhof richtung Pasing nehmen bis Offenbachstraße
- Bus 130 oder 131 zum Knie nehmen und dort in die Tram 19 nach Pasing
umsteigen, bis Offenbachstraße
- Bus 160 oder 162 nach Offenbachstraße
India King befindet sich genau gegenüber der Tramhaltestelle.
Hi *,
am Sonntag, 13. Juli 2014 treffen wir uns um 16.00 in der Pizzeria
Vapiano für unser Hackathon. Bringt eure Laptops!
Themen:
- Haskell Security: ist securemem einfach zu benutzen? Kann man damit
ein Password bearbeiten, sodass es im Speicher nicht zurückbleibt?
https://hackage.haskell.org/package/securemem
oder
- Applicative Transformers und Applicative Stacks
oder
- Attoparsec!
-- BERICHT --
Bericht vom 26.06.2014:
- wir haben uns das Speicherlayout vom GHC generierten Binärdateien angeschaut
- mit /proc/[pid]/maps kann man das Layout anschauen
- darauf kann man nicht so einfach mit dd usw zugreifen, man kann aber
sehr gut mit gdb sachen rausspeichern.
- auf gdb basierend haben wir ein Tool gebaut welches das
Arbeitsspeicher in eine Datei abspeichern kann
- wir haben auch ein weiteres Tool gebaut welches für Strings im
Arbeitsspeicher sucht, mit voller grep funktionalität. Es zeigt dann
das Arbeitsspeicherbereich in welchen sich die Zeichenkette befindet.
- es hat sich herausgestellt dass unser ganz einfaches Programm,
welches Tastatureingabe und dann ausgabe macht, und dann GC auslöst,
am ende immer noch die Zeichenkette im Arbeitsspeicher enthält!
- Das bedeutet, dass alle Passwörter, Schlüssel und Tokens im
schlimmsten Fall von einen Angreifer eingeholt werden können!
- das String ist auch nicht auf dem Heap gefunden worden - anscheinend
ist es in einen unbenannten Speicherbereich abgespeichert, welches
kurz nach dem Heap anfängt.
- eine Idee ist gegeben worden, das mit pinned memory zu überbrücken.
So kann man vielleicht den Arbeitsspeicherbereich ausdrücklich
überschreiben.
- die Frage ist aber ob die Tastatureingabe im Puffer ist, und wie
mann das wieder ausschaltet.
- Später hat es sich noch zusätzlich herausgestellt, dass der String,
den wir finden, manchmal inkomplett ist - z.b. haben wir
"asdfffffffffffffffffffffffffffffffff" eingegeben, das "a" hat aber im
Arbeitsspeicher gefehlt. Es war anscheinend irgendwo separat
gespeichert.
-- ANFAHRT --
Wir treffen uns in Vapiano Pasing, am Pasinger Bahnhofsplatz.
Anfahrt:
Entweder S-Bahn nach Pasing nehmen (alle außer S1, S2 und S7) oder die
Straßenbahn 19 zum Pasing Bahnhof. Vapiano ist auf der linken Seite
wenn man von der Straßenbahnhaltestelle zum Burger King hinschaut und
ist leicht zu finden.
Hi *,
am Sonntag, 6. Juli 2014 treffen wir uns um 12.00 in der Pizzeria
Vapiano für unser Hackathon. Bringt eure Laptops!
Themen:
- High-Perf Network IO
oder
- Haskell Security: kann man Variablen (z.B. Passwörter) aus den
Speicher löschen?
oder
- Attoparsec
oder
- Applicative Stacks und Applicative Transformers
-- BERICHT --
Bericht vom 20.06.2014:
wir haben viel über attoparsec gelernt:
- man soll kein "try parser1 <|> parser2" machen:
http://blog.ezyang.com/2014/05/parsec-try-a-or-b-considered-harmful/
- man kann in attoparsec doch zeilen- und spaltennummer bekommen, aber
nur wenn man sowas wie conduits oder ähnliches benutzt:
http://www.yesodweb.com/blog/2012/06/attoparsec-position
- attoparsec benutzt intern CPS um backtracking zu machen
-- ANFAHRT --
Wir treffen uns in Vapiano Pasing, am Pasinger Bahnhofsplatz.
Anfahrt:
Entweder S-Bahn nach Pasing nehmen (alle außer S1, S2 und S7) oder die
Straßenbahn 19 zum Pasing Bahnhof. Vapiano ist auf der linken Seite
wenn man von der Straßenbahnhaltestelle zum Burger King hinschaut und
ist leicht zu finden.