GithubHelp home page GithubHelp logo

agora's Introduction

Agora

Build Status

This is the project to build the new groupware platform for the German Software Craft and Testing communities. It can be seen in action on https://www.softwerkskammer.org

Want to help out? Check out our Contribution Guidelines.

Installation

Please refer to our Installation Guidelines to find out how to get Agora running on you local development machine.

Tests

Run the tests with npm test.

For running specific tests only, use either of these:

  • ./node_modules/.bin/grunt karma:once
  • ./node_modules/.bin/grunt mochacli:test
  • ./node_modules/.bin/grunt mochacli:testApp
  • ./node_modules/.bin/grunt mochacli:testWithDB

We are using JetBrains' WebStorm as IDE

WebStorm Logo

Feel free to ask us for a community licence if you are contributing.

agora's People

Contributors

agnyp avatar andreassimon avatar benjmin-r avatar c089 avatar coderbyheart avatar djschilling avatar dpolivaev avatar fdeberle avatar fhopf avatar heisee avatar holgergp avatar ikusalic avatar janbaer avatar leider avatar marcphilipp avatar mklose avatar nicolerauch avatar offbyoni avatar olorin71 avatar patbaumgartner avatar rradczewski avatar shishkin avatar signed avatar sparsick avatar tekashi avatar tillrauch avatar triplem avatar ursmetz avatar weltraumpirat avatar wosc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

agora's Issues

Feature Request: Löschen eines Users

Hi!

Ich hatte mich anfänglich mit einem Google Account eingerichtet, den ich nur für Tests verwende, da es ein regulärer GMail Account ist und kein Google Apps account.
Ich dachte, die Installation wäre eine reine Testinstallation ;-)

Jetzt habe ich mich auch mit dem richtigen Account angemeldet, aber wie kriege ich den alten Account aus dem System?

Um dem Datenschutz genüge zu tun, muss ohnehin eine Löschen Funktion her, damit sich ein User selbst aus dem System entfernen kann.

Das habt ihr sicher auf der Agenda, aber zur Sicherheit stelle ich mal den FR ;-)

Mehrere Kleinigkeiten bei Nachrichten

Bei den Nachrichten sind mir zwei Kleinigkeiten aufgefallen:

  1. wird beim Bearbeiten einer Nachricht das Erstellungsdatum angepasst. Das halte ich für nicht gut, es führt z. B. zu Effekten wie dass die (bearbeitete) Meldung "Migrationsprobleme" NACH der Meldung "Migration erfolgreich" erscheint. Hier würde ich das Beibehalten des ursprünglichen Erstellungsdatums bevorzugen.
  2. wird beim Anzeigen der Nachrichten das thruDate nicht beachtet. Meinem Verständnis nach sollte es den letzten Tag bezeichnen, an dem eine Nachricht noch in der Liste erscheint.
  3. wäre es schön, wenn der Autor automatisch gesetzt würde (das bin ja immer ich, und ich bin ja bekannt ;-)

Look & Feel: OpenID Eingabefeld

Der Text sollte lauten "OpenID URL" o.Ä. (man gibt ja eben nicht den Provider an, sondern die ID).

Das Eingabefeld sollte weniger stark in Erscheinung treten, damit die Buttons zuerst die Aufmerksamkeit auf sich ziehen.

500 Soap Errror nach Anmeldung

Nach der Anmeldung bekam ich direkt einen Soap Error (500), dass ich nicht zur Gruppe "Alle Mitglieder" hinzugefügt werden kann. Manuell hinzufügen ging dann aber propblemlos

Feldnamen beim Gruppe Anlegen nicht eindeutig

Beim Anlegen einer Gruppe gibt es folgende Felder, deren Bedeutung sich nicht ohne weiteres erschließt:

  • Name
  • Titel
  • Präfix für Emails

Fragen dazu:

  1. Was ist der Unterschied zwischen Name und Titel? Was ist die "Adresse" der Gruppe, die dann vor dem @softwerkskammer.de in der Email-Adresse steht? Name oder Titel?
  2. Zusätzlich frage ich mich: Gibt es evtl gewünschte Konventionen für Gruppennamen?
  3. Wird der Präfix direkt vor den Subject gestellt? Oder noch in die üblichen "eckigen Klammern" gesetzt? Muss ich das selbst tun?

OAuth mit Github funktioniert nicht

Hi,

habe gerade das Anmelden über OAuth versucht. Hat leider nicht geklappt.

Browser : Firefox 20.0
OS Linux Mint 14 Nadia
24.04.2013 23:01

Stacktrace
500 failed to fetch user profile (status: 403 data: {"message":"Missing or invalid User Agent string. See http://developer.github.com/v3/#user-agent-required"})
Stacktrace:

failed to fetch user profile (status: 403 data: {"message":"Missing or invalid User Agent string. See http://developer.github.com/v3/#user-agent-required"}) at Strategy.userProfile (/home/swk/plattform/node_modules/passport-github/lib/passport-github/strategy.js:80:28) at passBackControl (/home/swk/plattform/node_modules/passport-github/node_modules/passport-oauth/node_modules/oauth/lib/oauth2.js:105:9) at IncomingMessage.exports.OAuth2._executeRequest.request.on.callbackCalled (/home/swk/plattform/node_modules/passport-github/node_modules/passport-oauth/node_modules/oauth/lib/oauth2.js:124:7) at IncomingMessage.EventEmitter.emit (events.js:126:20) at IncomingMessage._emitEnd (http.js:366:10) at HTTPParser.parserOnMessageComplete as onMessageComplete at CleartextStream.socketOnData as ondata at CleartextStream.CryptoStream._push (tls.js:544:27) at SecurePair.cycle (tls.js:898:20) at EncryptedStream.CryptoStream.write (tls.js:285:13)

Über die Plattform verschickte Mails werden (teilweise) als Phishing-Versuche eingestuft

Ich habe eine Einladungsmail von Sergey zum Treffen der SWK DUS, die er über die neue Plattform verschickt hat, mit einer Phishing-Warnung erhalten (siehe angehängtes Bild).

Ohne mir die Details näher angesehen zu haben, vermute ich einmal, dass entweder der in der Mail verwendete Absender angepasst werden muss oder dass noch SPF-Einträge im DNS fehlen ... ist aber wie geschrieben nur 'ne Vermutung, kann auch etwas anderes sein.

Der Vollständigkeit halber hier noch der komplette Mail-Header zum besseren Nachvollziehen:

Delivered-To: [email protected]
Received: by 10.182.243.136 with SMTP id wy8csp113145obc;
Sat, 29 Jun 2013 15:06:59 -0700 (PDT)
X-Received: by 10.194.240.169 with SMTP id wb9mr15260112wjc.90.1372543619178;
Sat, 29 Jun 2013 15:06:59 -0700 (PDT)
Return-Path: [email protected]
Received: from monoceres.uberspace.de (monoceres.uberspace.de. [95.143.172.184])
by mx.google.com with SMTP id p2si7227079eef.214.2013.06.29.15.06.58
for [email protected];
Sat, 29 Jun 2013 15:06:59 -0700 (PDT)
Received-SPF: neutral (google.com: 95.143.172.184 is neither permitted nor denied by domain of [email protected]) client-ip=95.143.172.184;
Authentication-Results: mx.google.com;
spf=neutral (google.com: 95.143.172.184 is neither permitted nor denied by domain of [email protected]) smtp.mail=[email protected]
Received: (qmail 22631 invoked by uid 810); 29 Jun 2013 22:06:58 -0000
MIME-Version: 1.0
X-Mailer: Nodemailer (0.4.1; +http://www.nodemailer.com/)
Date: Sat, 29 Jun 2013 22:06:58 GMT
Message-Id: 1372543618310.e4ed83d1@Nodemailer
From: "Sergey Shishkin" [email protected]
To: "Sergey Shishkin" [email protected]
Subject: Einladung: 12. Treffen der Softwerkskammer
=?UTF-8?Q?D=C3=BCsseldorf?=
Content-Type: multipart/alternative;
boundary="----Nodemailer-0.4.1-?=_1-1372543618454"

warnhinweis_mail_swk

Fehler bei der Anmeldung eines neuen Users

Ich wollte mich gerade mit meiner richtigen EMailadresse in agora anmelden und habe mich dabei in der Gruppe Düsseldorf und Dortmund eingetraten, sowie in die allgemeinen Gruppen:
Alle Mitglieder
Commercial Events
Craftsman Swaps

Dann kam der folgende Error und als Resultat bin ich nur in Dortmund+Düsseldorf und Alle Mitglieder gelandet.

500 Error: soap:Server: Unable to add user: Unable to add user [email protected] in list [email protected]
Stacktrace:

Error: soap:Server: Unable to add user: Unable to add user [email protected] in list [email protected] at WSDL.xmlToObject (/home/swk/plattform/node_modules/soap-sympa/lib/wsdl.js:815:15) at Client._invoke (/home/swk/plattform/node_modules/soap-sympa/lib/client.js:147:37) at Request._callback (/home/swk/plattform/node_modules/soap-sympa/lib/http.js:48:13) at Request.init.self.callback (/home/swk/plattform/node_modules/request/index.js:142:22) at Request.EventEmitter.emit (events.js:99:17) at Request.onResponse (/home/swk/plattform/node_modules/request/index.js:856:14) at Request.EventEmitter.emit (events.js:126:20) at IncomingMessage.Request.onResponse.buffer (/home/swk/plattform/node_modules/request/index.js:808:12) at IncomingMessage.EventEmitter.emit (events.js:126:20) at IncomingMessage._emitEnd (http.js:366:10)

Error for New Announcements

Login as Admin, then click on "Nachrichten", then on "neu". The following error is shown.

TypeError: /home/gregor/projects/swk-plattform/NeuePlattform-Implementierung/lib/announcements/views/get.jade:4 2| 3| block title > 4| | #{announcement.title} 5| block content 6| .span12 7| .page-header Cannot read property 'title' of null

Bildschirmfoto vom 2013-04-19 23:58:14

Logoff in IE (8/9) not reliable

On logging out IE does not log out the user. Returning to the main screen still shows, that the user is still logged in. Repeating the logout once or even twice then finally helps.

Datum der von Agora versendeten Mails ist "Unix-Timestamp-0-Stunde"

Als ich mich bei Agora angemeldet habe, habe ich bzgl. meiner Gruppenzugehörigkeit Mails mit dem Datum "01.01.1970 01:00" bekommen. Das sieht für mich so aus, also ob die Zeit auf den "Anbeginn der Unix-Zeit" (+/- Zeitverschiebung zur UTC) gesetzt ist, s. Screenshot. Der Fehler ist nicht unbedingt gravierend, für Menschen mit recht vollem Postfach, kann es aber bedeuten, dass sie die von Agora versendeten Mails nicht mitbekommen, da sie recht weit unten (bei umgekehrt chronologischer Sortierung) im Postfach auftauchen.
agora-mails-datum

Umlauts garbled in Welcome message of group "neueplattform"

I subscribed to the newsgroup "neueplattform" and the welcome message shows Umlauts wrongly in Gmail:

Ein Forum für alle, die sich für die Entwicklung der neuen Softwerkskammer-
Plattform interessieren.

The part from original RFC-822 message looks like this:

Ein Forum f=C3=83=C2=BCr alle, die sich f=C3=83=C2=BCr die Entwicklung der =
neuen Softwerkskammer-Plattform interessieren.

The text seems to be converted from original UTF-8 to Latin-1 and back to UTF-8, see

[mirko@borg NeuePlattform-Implementierung]$ python -c 'print "ü".decode("latin1").encode("utf-8")'
ü
[mirko@borg NeuePlattform-Implementierung]$ python -c 'print repr("ü".decode("latin1").encode("utf-8"))'
'\xc3\x83\xc2\xbc'

Verwaltung-Nachrichten zwei Tabellen geht nicht

  1. Die obere Tabelle zeigt nichts an
  2. Wir brauchen keine 2 Tabellen

Vorschlag:
a) auf 1 Tabelle umstellen, oder
b) wenn filter auf Nachrichten, dann über DB (wie bei der normalen GUI), dann
c) sinnvoll filtern (aber wonach? nach thrudate?)

500 Soap Error nach Anmeldung - Liste commericial betroffen

Dieselbe Fehlermeldung wie im Issue #138, nur ist jetzt die Liste commercial betroffen.

Stracktrace:

Error: soap:Server: Unable to add user: Unable to add user [email address] in list [email protected] at WSDL.xmlToObject (/home/swk/plattform/node_modules/soap-sympa/lib/wsdl.js:815:15) at Client._invoke (/home/swk/plattform/node_modules/soap-sympa/lib/client.js:147:37) at Request._callback (/home/swk/plattform/node_modules/soap-sympa/lib/http.js:48:13) at Request.init.self.callback (/home/swk/plattform/node_modules/request/index.js:142:22) at Request.EventEmitter.emit (events.js:99:17) at Request.onResponse (/home/swk/plattform/node_modules/request/index.js:856:14) at Request.EventEmitter.emit (events.js:126:20) at IncomingMessage.Request.onResponse.buffer (/home/swk/plattform/node_modules/request/index.js:808:12) at IncomingMessage.EventEmitter.emit (events.js:126:20) at IncomingMessage._emitEnd (http.js:366:10)

Look & Feel: Menüeinträge

Der Menüpunkt "Anmelden" ist unterstrichen, wenn man mit der Maus drüberfährt.
Die anderen Menüpunkte sind nicht unterstrichen.

Readme should tell what this project is about

Hi,

I stepped over this project by chance and would like to know what it is about. At least the title sounds interesting :-) Would you please be so kind putting a small section into the README?

Thanks.

Bei "tbd" als Ort einer Aktivität keine Karte anzeigen

In der Rhein-Main Gruppe ist es nicht ungewöhnlich, dass für ein Treffen schon alles feststeht, aber der Ort noch nicht.
Einerseits ist der Ort aber ein Pflichtfeld und wenn ich deshalb "tbd" dort eingebe, zeigt die Karte irgendeinen Ort im Ausland an.

Vorschlag wäre, entweder einen leeren Ort zu erlauben oder bei einem bestimmten Ortsnamen, keine Karte anzuzeigen.

Bearbeitung des Aktivitäts-Titels

Beim Bearbeiten einer Aktivität kann man den Titel bearbeiten. Dies hat aber keine Auswirkungen. Hier sollte man entweder den Titel nicht bearbeitbar machen oder die Änderungen des Titels übernehmen.

Remove "publicUrlPrefix"

As we've seen it doesn't work. Production has to be configured without prefix, so we should get rid of it.

Trade-Off: Only works as top level app.

Opinions?

Fehler bei Anmeldung nach Umstellung auf softwerkskammer.org

Hallo zusammen,

ich hab versucht mich auf Softwerkskammer.org erneut zu registrieren, aber bekomme beim redirect zurück von Github (http://www.softwerkskammer.org/auth/github/callback?code=xxxx) folgenden 500er

failed to fetch user profile (status: 
401 data: {"message":"Bad credentials"}) 
at Strategy.userProfile (/home/swk/plattform/node_modules/passport-github/lib/passport-github/strategy.js:80:28) 
at passBackControl (/home/swk/plattform/node_modules/passport-github/node_modules/passport-oauth/node_modules/oauth/lib/oauth2.js:105:9) 
at IncomingMessage.exports.OAuth2._executeRequest.request.on.callbackCalled (/home/swk/plattform/node_modules/passport-github/node_modules/passport-oauth/node_modules/oauth/lib/oauth2.js:124:7) 
at IncomingMessage.EventEmitter.emit (events.js:126:20) 
at IncomingMessage._emitEnd (http.js:366:10) 
at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23) 
at CleartextStream.socketOnData [as ondata] (http.js:1447:20) 
at CleartextStream.CryptoStream._push (tls.js:544:27) 
at SecurePair.cycle (tls.js:898:20) at EncryptedStream.CryptoStream.write (tls.js:285:13)

Ich hab es gerade (Mi. 19.7.) zweimal um 00:17/00:18 versucht.

HTH & Cheers, Benjamin

Zwei Profile

Ich habe zwei Profile angelegt: ein mal als mangelova und ein mal als Mariya. Das eine muss weg. Über "Profil bearbeiten" kann ich das Profil nicht löschen.

Profil kann nicht bearbeitet werde

Ich wollte gerade nach dem ich mich angemeldet habe mein Profil bearbeiten. Wenn ich unter in dem Menü, dass aufklappt, wenn ich mit der Maus auf meinen Namen klicke, auf "Profile bearbeiten" klicke, dann bekomme ich die Fehlermeldung
"Um auf diese Seite zuzugreifen, musst Du Administrator sein!" (in der linken Spalte) bzw.
"Information

Die geschützte Seite war:
http://agora.softwerkskammer.de/members/edit/Urs%20Metz

Bitte teile uns dies in der Fehlermeldung mit." (mittlere Spalte).

Da ich auf Agora kein Admin bin, stimmt zwar der Teil der Meldung, dass ich keiner bin, trotzdem würde ich gerne mein Profil bearbeiten können dürfen :-).

Edit: Zusätzliche Infos:

Der Fehler tritt weiterhin auf wenn ich mich abmelde und wieder anmelde. Was passiert wenn ich auch noch den Browser neustarte müsste ich noch ausprobieren.
Als Open-ID-Provider verwende ich Github. Als Browser Firefox 21.0 (wie die Versionen vergehen! ;-) ).

Stacktrace when following invitation link from email when user was not logged in before.

Given I am not logged in
When I go to http://agora.softwerkskammer.de/activities/subscribe/ka-treffen-22
Then I receive the following stacktrace:

500 TypeError: Cannot read property 'member' of undefined
Stacktrace:

TypeError: Cannot read property 'member' of undefined at module.exports (/home/swk/plattform/lib/activities/index.js:158:30) at callbacks (/home/swk/plattform/node_modules/express/lib/router/index.js:161:37) at param (/home/swk/plattform/node_modules/express/lib/router/index.js:135:11) at param (/home/swk/plattform/node_modules/express/lib/router/index.js:132:11) at pass (/home/swk/plattform/node_modules/express/lib/router/index.js:142:5) at Router._dispatch (/home/swk/plattform/node_modules/express/lib/router/index.js:170:5) at Object.router (/home/swk/plattform/node_modules/express/lib/router/index.js:33:10) at next (/home/swk/plattform/node_modules/express/node_modules/connect/lib/proto.js:190:15) at Object.expressInit [as handle] (/home/swk/plattform/node_modules/express/lib/middleware.js:31:5) at next (/home/swk/plattform/node_modules/express/node_modules/connect/lib/proto.js:190:15)

How to reproduce:
curl http://agora.softwerkskammer.de/activities/subscribe/ka-treffen-22

I received the same stacktrace when I clicked the "Anmelden" button on this page for the first time, after going to the homepage I was able to login and confirm the invitation. When I retried this by logging out and logging in with Chrome 28.0.1500.11 dev again, the login popup showed up. I removed the cookie for http://agora.softwerkskammer.de/ in Chrome, however was not able to reproduce this afterwards.

Fehlerhafte Darstellung von HTML mails

Die letzte Einladung, für die SWK Rhein-Main kam (zumindestens auf Gmail und auf dem Androide Gmail-Client) verstümmelt an.

hier ist die originale Nachricht (Email adressen verschleiert mit ****):

Delivered-To: ****@gmail.com
Received: by 10.194.86.195 with SMTP id r3csp42807wjz;
        Tue, 2 Jul 2013 14:14:44 -0700 (PDT)
X-Received: by 10.15.100.195 with SMTP id bn43mr27188148eeb.153.1372799683947;
        Tue, 02 Jul 2013 14:14:43 -0700 (PDT)
Return-Path: <****@****.de>
Received: from mx07.ispgateway.de (mx07.ispgateway.de. [80.67.29.38])
        by mx.google.com with ESMTP id o41si15305311eep.259.2013.07.02.14.14.43
        for <****@gmail.com>;
        Tue, 02 Jul 2013 14:14:43 -0700 (PDT)
Received-SPF: softfail (google.com: domain of transitioning ****@****.de does not designate 80.67.29.38 as permitted sender) client-ip=80.67.29.38;
Authentication-Results: mx.google.com;
       spf=softfail (google.com: domain of transitioning ****@****.de does not designate 80.67.29.38 as permitted sender) smtp.mail=****@****.de
X-Envelope-To: ****@****.de
Received: from [95.143.172.184] (helo=monoceres.uberspace.de)
    by mx07.ispgateway.de with smtp (Exim 4.68)
    (envelope-from <****@****.de>)
    id 1Uu7uN-0007a6-4z
    for ****@****.de; Tue, 02 Jul 2013 23:14:43 +0200
Received: (qmail 13869 invoked by uid 810); 2 Jul 2013 21:14:42 -0000
MIME-Version: 1.0
X-Mailer: Nodemailer (0.4.1; +http://www.nodemailer.com/)
Date: Tue, 02 Jul 2013 21:14:42 GMT
Message-Id: <1372799682766.a7d8ba64@Nodemailer>
From: "Benjamin Reitzammer" <****@****.de>
To: "Benjamin Reitzammer" <****@****.de>
Subject: Einladung: Treffen #20 der Softwerkskammer Rhein-Main
Content-Type: multipart/alternative;

 boundary="----Nodemailer-0.4.1-?=_1-1372799682774"
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
    spamfilter12.ispgateway.de
X-Spam-Level: 
X-Spam-Status: No, hits=0.0 required=9999.0 tests=BAYES_50 autolearn=disabled
    version=3.3.1
X-Spam-CMAETAG: v=1.1 cv=YsRarUyOAuaBuVHCeG/abX2dWmafGX9GgRvDWtW6EUk=
    c=1 sm=0 a=raa9Egjrpr8A:10 a=cw9RhHr0mxkA:10
    a=/BqhnC09V5g2MHxE5vO9qQ==:17 a=XMIKJOhnAAAA:8 a=TXwo6bqzQZ0s-wUPV6oA:9
    a=Rxl8YIfX37oA:10 a=VxXI5iE3oC7vOl5tvhcA:9
    a=HpAAvcLHHh0Zw7uRqdWCyQ==:117 xcat=Undefined/Undefined
X-Spam-CMAECATEGORY: 0
X-Spam-CMAESUBCATEGORY: 0
X-Spam-CMAESCORE: 0



------Nodemailer-0.4.1-?=_1-1372799682774

Content-Type: text/plain; charset=utf-8

Content-Transfer-Encoding: quoted-printable



Hallo zusammen,



ich m=C3=B6chte euch herzlich zum n=C3=A4chsten Treffen der Softwerkskammer=

 Rhein-Main am 30.07.13 einladen. Bitte gebt unter http://www.=

softwerkskammer.org/activities/treffen-20-softwerkskammer-rhein-main =

Bescheid, wenn ihr dabei seid.



Wir treffen uns nun schon zum 20. Mal und wollen dieses Mal einen =

Mini-Coderetreat mit der FizzBuzz Kata machen.  D.h. wir wollen FizzBuzz =

mindesten 3mal, in wechselnden Paaren l=C3=B6sen. Ob wir bei den Sessions =

Constraints anwenden, kl=C3=A4ren wir am Abend selbst.



Bei der Gelegenheit m=C3=B6chte ich noch auf unseren neuen Treffen-Turnus =

hinweisen: Wir treffen uns nun immer alternierend Montags, Dienstags und =

Mittwochs immer in der jeweils letzten Woche des Monats. Treffen #20 also =

am 30.7., Treffen #21 am 28.8. und Treffen #22 wieder Montags am 30.9. usw.=





Freue mich euch am 30.7. wieder zu sehen!



Cheers, Benjamin



[ Ich bin dabei! ](http://www.softwerkskammer.org/activities/subscribe/tref=

fen-20-softwerkskammer-rhein-main)

------Nodemailer-0.4.1-?=_1-1372799682774

Content-Type: text/html; charset=utf-8

Content-Transfer-Encoding: quoted-printable



<p>Hallo zusammen,</p>



<p>ich m=C3=B6chte euch herzlich zum n=C3=A4chsten Treffen der =

Softwerkskammer Rhein-Main am 30.07.13 einladen. Bitte gebt unter =

http://www.softwerkskammer.org/activities/treffen-20-softwerkskammer-rhein-=

main Bescheid, wenn ihr dabei seid.</p>



<p>Wir treffen uns nun schon zum 20. Mal und wollen dieses Mal einen =

Mini-Coderetreat mit der FizzBuzz Kata machen.=20

D.h. wir wollen FizzBuzz mindesten 3mal, in wechselnden Paaren l=C3=B6sen. =

Ob wir bei den Sessions Constraints anwenden, kl=C3=A4ren wir am Abend =

selbst.</p>



<p>Bei der Gelegenheit m=C3=B6chte ich noch auf unseren neuen =

Treffen-Turnus hinweisen:<br/>Wir treffen uns nun immer alternierend =

Montags, Dienstags und Mittwochs immer in der jeweils letzten Woche des =

Monats. Treffen #20 also am 30.7., Treffen #21 am 28.8. und Treffen #22 =

wieder Montags am 30.9. usw.</p>



<p>Freue mich euch am 30.7. wieder zu sehen!</p>



<p>Cheers, Benjamin</p>







<table cellspacing=3D=220=22 cellpadding=3D=220=22 style=3D=22margin: 20px =

0;=22><tr style=3D=22font-weight: bold;=22><td style=3D=22padding-right: =

5px;=22><table style=3D=22border-collapse: collapse;=22><tr><td =

style=3D=22border-style: solid; border-color: #E0E4EF #C8D2F0 #C8D2F0 =

#E0E4EF; border-width: 1px; padding: 5px 10px; background-color: =

#ECF0FA;=22><a target=3D=22=5Fblank=22 style=3D=22display: block; =

text-decoration: none; color: #0000CC!important; font-weight: bold; =

font-size: 1.1em;=22 href=3D=22http://www.softwerkskammer.=

org/activities/subscribe/treffen-20-softwerkskammer-rhein-main=22><font =

color=3D=22#0000CC=22>Ich bin dabei!</font></a></td></tr></table></td></tr>=

</table>

------Nodemailer-0.4.1-?=_1-1372799682774--

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.