Archiv | Ruby on Rails RSS feed for this section

GETup – Getting to know your fellow PhDs

19 Mai

The Joint European Summer School on Technology Enhanced Learning is an annual get-together of PhD students and experts in the field of social, educational and computer science. This years Summer School takes place in Limassol, Cyprus in it’s 9th edition. More information on the topics and the programme can be found on the official website.

Due to the different backgrounds of the participants, the densely packed programme and the variety of disciplines problems arise, that counteract the establishing of new contacts and collaborations. Anecdotal evidence shows that at the end of the Summer School, PhDs only know about 3 to 5 new PhDs and their research topics. Often, they also forget about the new connections pretty soon, as they are not made in realistic collaboration settings but during dinner or the like. Moreover, after the Summer School participants often loose the connection to their freshly made contacts. The GETup system tries to reduce these problems by helping the participants to find relevant people and to get in touch with them in a more meaningful way.

The overall goal is to connect the participating Summer School PhDs in order to make them aware of each other, their respective PhD projects and potential overlaps in their work. The aim is to provide a technological framework in which the participants can track with whom they interacted, in which they can give feedback on others‘ ideas and ask for input on their initial paper, slides or PhD project. Moreover, it aims to recommend ’similar‘ PhDs to each other. This is achieved by implementing different aspects known from Social Networks and the emerging research field of Gamification.

SOCIAL NETWORKING On the one hand, the system provides the user with the key features of a social network that supports the work and participation in typical  Summer School activities. Based on the self-provided user profiles, and detailed information on their research projects, registered users can browse the information of other participants and, through a Twitter-like principle, add them to their contacts. Using the website and the mobile client, participants can log meetings with other users and access this information again during or after the Summer School. Building up on these user-provided and other data, the underlying software reflects the social graph of the Summer School participants and calculates user-to-user recommendations. Furthermore the software enables users to organize their own events and make them available to all other participants. This feature is particularly interesting for workshop organizers, as it supports automatic grouping that takes into account the results of the recommender system.

GAMIFICATION On the other hand the incorporation of typical game elements addresses the motivation of the participants to continuously use the system. This includes among others the integration of Mozilla Open Badges, an XP based point system and, as the main element, the so-called Investment Game. This element is based on the idea behind well-known crowd funding websites and allows the participants of the Summer School to invest in the research projects of other PhD students. Every day registered users receive a certain amount of money which they can donate to their preferred projects. With each investment, a personal feedback, in form of a comment and a rating, can be issued.

These briefly described measures should help to create a closely knit network of PhDs that know about the strengths, research domains and PhD projects of each other and try to make the connections last over the end of the Summer School.

Advertisements

Konzeption und agile Entwicklung einer REST-Schnittstelle für eine Rails-basierte Scientific Event Management Plattform

23 Apr

Mit der Präsentation ist meine Masterarbeit nun erfolgreich beendet. Ein Konzept, anhand dessen die ginkgo-API komplett entwickelt werden kann, ist im projekteigenen Wiki vorhanden. Der zugehörige Prototyp läuft seit einigen Wochen stabil und setzt Ressourcen in den Bereichen Nutzer, wissenschaftliche Veranstaltungen, private Nachrichten, Kurznachrichten und Activity Stream um.

Die rund 120 Features (dabei handelt es sich um vorhandene und gewünschte Funktionalitäten aus Nutzersicht) waren ein guter Startpunkt, um die für die REST-Schnittstelle benötigten Ressourcen und Repräsentationen herzuleiten.

Kombiniert man das RAILS-Framework mit einer Softwarekomponente, welche die Erstellung der Repräsentationen vereinfacht (z.B. ROAR), ist die Umsetzung einer REST-Schnittstelle sehr elegant möglich.

Mir persönlich hat es sehr viel Spaß gemacht, mit den für mich ganz neuen Technologien Rails und Ruby zu arbeiten und bedanke mich für die Unterstützung aus dem ginkgo-dev-Team!

Hier nun die Folien der Abschlusspräsentation:

 

OAuth2-Request in RSpec testen

23 Mrz

Da mich die „Fehlersuche“ insgesamt 2 Tage beschäftigt hat und ich langsam glaube, dass ich für das Testen der ginkgo API insgesamt mehr Zeit gebraucht habe, als für die Implementierung, möchte ich zumindest eine Erkenntnis in die Welt streuen ;-) .

Während es in Cucumber-Tests sehr einfach ist einen authentifizierten OAuth2 HTTP-Request hinzubekommen (einfach nur den Authentication-Header setzen), gestaltet sich das in RSpec-Test schwerer. Das ist auch klar, weil viele helfende Komponenten von Rails richtigerweise nicht zum Einsatz kommen, um wirklich nur die aktuell betrachtete Komponente zu testen.

Um es kurz zu machen, für einen authentifizierten OAuth2 Request in RSpec-Tests benötigt das request-Objekt die beiden Parameter oauth.strategies und token. Also z.B. :

  def prepare_authenticated_access_token_request
# Create a valid, authorized access token
token = Oauth2Token.create :user => @resource_owner, :client_application => @client_application
# Configure the request object so that it is recognized as a OAuth request
request.env[„oauth.strategies“] = [:oauth20_token, :token]
request.env[„oauth.token“] = token
end

Für alle, die OAuth1-Requests erstellen wollen, sei auf configure_oauth eines TestRequests hingewiesen:

    ActionController::TestRequest.use_oauth=true
request.configure_oauth(@resource_owner,token)

Ginkgo-API: Testgetrieben läuft’s am besten

15 Mrz

Ginkgo wurde von Beginn an testgetrieben entwickelt. Dieses Verhalten wird auch bei der API-Entwicklung beibehalten.

Bei der testgetriebenen Softwareentwicklung stellt ein Test mehr dar, als nur die Verifikation der Korrektheit von Programm-Quellcode. Ein Test gilt als Startpunkt, von dem ausgehend ein System in kleinen Schritten mit zusätzlichen Funktionalitäten angereichert wird.

Allerdings kann selbst die beste, nach diesen Maßstäben entwickelte Softwarekomponente auch einfach das Falsche umsetzen. Dies kann durch sich teilweise überlagernde Komponenten-und Akzeptanztest verhindert werden. Während Komponententests für einen isoliert betrachteten Programmteil seine technische Lauffähigkeit und fachliche Korrektheit bescheinigen, gewährleisten Akzeptanztests, dass sich das Gesamtsystem (meistens dem Anwender gegenüber) richtig verhält.
Weiterlesen

SHK-Stelle in ginkgo Projekt zu vergeben

13 Mrz

Wir suchen eine studentische Hilfskraft (zunächst 9,5 Stunden, später auch 19 Stunden machbar), die in einem Team von 3 SHKs an unserem Konferenzmanagementsystem ginkgo weiterentwickelt. Das System basiert im Backend auf Ruby on Rails (3.1) und im Frontend auf aktuellsten Javascript Technologien und Frameworks. Mehr zu ginkgo gibt es auch hier im Blog unter dem Tag ginkgo.

Bewerber sollen bereits gute bis sehr gute Kenntnisse in der Javascript Entwicklung haben. Mit der Entwicklung von Webapplikationen solltet ihr vertraut sein. Erfahrungen mit HTML5 sind hilfreich bzw. solltet ihr Lust haben Euch darin einzuarbeiten. Die Entwicklung erfolgt Test- und Featuregetrieben und setzt auf agilen Entwicklungsmethoden auf.

Im Speziellen sollen die folgenden Techniken und Frameworks eingesetzt werden. Kenntnisse darin sind von großem Vorteil

Kenntnisse in Ruby sind nicht zwingend erforderlich aber von Vorteil.

Die Kommunikationssprache im Team ist Deutsch. Bewerber werden ihre Qualifikation in der Bearbeitung einer Programmieraufgabe nachweisen müssen.

Bitte sendet Anfragen und Bewerbungen direkt an Wolfgang Reinhardt.