PokerStrategy.com in der aktuellen Ausgabe des SPIEGEL

In der aktuellen Ausgabe des SPIEGEL findet sich ein ausführlicher Artikel über die von uns entwickelte und von technischer Seite betreute Webseite PokerStrategy.com. DER SPIEGEL hatte PokerStrategy.com vor einer Weile kontaktiert und schickte einen Journalisten nach Gibraltar. Dort unterhielt sich Manfred Dworschak mit verschiedenen Mitarbeitern und den Firmengründern, bildete sich einen Eindruck von der Firma und sah auch einer Live Coaching Session zu.

Daraus entstand eine Reportage, die einen Einblick in die Welt des Online Poker liefert und ausführlich das Geschäftsmodell der Pokerschule PokerStrategy.com beschreibt. Von den Ursprüngen des Firmengründers Dominik “Korn” Kofert in der “Starcraft”-Szene, bis zum Ausbau seiner Firma zur größten Pokerschule im Internet. “Eines Tages ging ihm auf, dass das Pokern ebenfalls kritisches Denken verlangt, aber wesentlich lukrativer ist”.

Der Bericht lässt auch die Probleme des Spiels nicht unerwähnt, z.B. den Unterschied zwischen den mathematisch und technisch ausgebildeten Profis und den unerfahrenen Freizeitspielern.

Insgesamt berichtet der Artikel objektiv über einen “Modellversuch in modernem E-Learning”. Der Erfolg zeige sich täglich, viele Schüler legten beträchtlichen Lerneifer an den Tag. “In den Foren des Portals diskutieren sie unentwegt über den Wert aller erdenklichen Kartenkombinationen: Was taugt mein Ass mitsamt König, wenn in der Mitte zwei Fünfen und ein Bube aufgedeckt sind und ich rechts vom Kartengeber sitze? Erhöhen, mitgehen oder raus aus dem Spiel?”

Zum Ende wird auch ein Ausblick geboten, die Expansion der Firma in andere Wissensgebiete. Dominik Kofert glaubt an den Erfolg seines Lehrmodells in anderen Gebieten wie dem Devisen- und Aktienhandel und plant mit Tradimo.com eine neue Schule nach gleichem Modell. “Im Erfolgsfall müssen sich auch andere Branchen auf neue Mitspieler gefasst machen.”
Und wir bei der ICANS – als Entwickler der generischen Kerntechnologie ECF (Education Community Framework) – auf viele weitere spannende Herausforderungen.

Der Artikel “Universität des Zockens” befindet sich in der Zeitschriftenausgabe Nr. 8, 2012 des SPIEGEL auf Seite 110-114. Die Zeitschrift ist in jedem Zeitschriftenladen, sowie online auf DER SPIEGEL digital zu kaufen.

Veröffentlicht unter Insights | Hinterlasse einen Kommentar

STOP! Bis hier hin hast du alles richtig gemacht – Studium & Wissenschaft bei ICANS

  • Du hast dich für ein informationstechnisches Studium entschieden.
  • Du gehörst zu den besten deines Jahrgangs.
  • Softwareentwicklung ist nicht nur dein Job, sondern deine Berufung.

 

Als nächsten Schritt suchst du eine Herausforderung für dein Praktikum, deine Bachelor-/ Master-Thesis, oder für deine Dissertation. Diese soll deinen hohen akademischen Erwartungen, genauso wie deinen Ansprüchen an direkte Praxisrelevanz zu 100% gerecht werden.

 

Unsere Themen für Dich:

Analysis of web systems and observation of their run-time behavior 
I) Traceability of run-time behavior across system boundaries
II) Prediction of workload of system resources => computer-aided resource planning
III) Static and dynamic software analysis with regard to dependencies within data and data manipulation
IV) Benchmarking of new features in our production environment before their actual release
V) Domain-specific health reporting
VI) Pre-emptive page preparation

Analysis of user behavior in heavily populated systems
VII) Process modelling for online user behavior
VIII) Measuring online user behaviour: metrics and methods
IX) Simulation of the dynamics of a sequence of poker games
X) Large-Scale graph mining to calculate metrics in online poker

Organization development 
XI) Continuous decentralized appraisal system

Other
XII) … deine eigene inspirierende Idee die du mit uns gemeinsam umsetzen willst

Klingt ziemlich interessant? Details zu den Themen!


Dein Betreuer-Team:

Benefits:

  • Arbeiten an praxisrelevanten Herausforderungen für Hochlast- und Hochverfügbarkeitsumgebungen
  • 70 kluge und aufgeschlossene Köpfe
  • Regelmäßig stattfindende Fachvorträge
  • Top finanzielle Unterstützung
  • Freie Verpflegung

 

Lust? Ruf einfach bei uns an +49 40 22638290, oder schreib eine E-Mail an bewerbung@icans-gmbh.com.

Veröffentlicht unter Uncategorized | Hinterlasse einen Kommentar

PHPUnit-Workshop with Sebastian Bergmann

We at the ICANS had a prominent visitor for two days, Sebastian Bergmann, Creator of PHPUnit and Co-Founder of thePHP.cc.

On the first day Sebastian was invited to have 3-hour working sessions with each of our ECF Teams to

  1. have a look at the unit-tests we have been writing so far
  2. help us find answers to open questions

On the second day Sebastian compiled the questions of all three teams and addressed the whole ECF Team with his findings in a presentation.

Working Session

Q&A session

We started the working session in our Fortress bureau on thursday morning with some rather easy questions to get the meeting going nice and relaxed.

Can skeleton templates be adjusted?
Yes, templates reside in $PHPUnitHome/Util/Skeleton/Template.
The default template-files are named “TestClass.tpl.dist”, “TestMethod.tpl.dist”…
To overwrite these predefined templates copy the “*.tpl.dist” to “*.tpl”.
PHP Unit will always first search for a *.tpl file and use the “*.tpl.dist” as fallback.
Open points:
How do we distribute these package-based files as a company-wide template?

Should “getMock()” or the built-in MockBuilder be used?
MockBuilder! It is a highly efficient Wrapper that internally uses “getMock” but makes setting the various parameters for much easier. “getMock” is kind of deprecated for direct usage.

Failing tests on external dependencies
In case a test depending on an external PHP module is failing it is legitimate
to mark this test as skipped.
In some cases it might be usefull to have a single unit-test running before all others
that is checking all external dependencies and marks the whole test as failed.

How do we mock file based operations to keep a file-based test a unittest?
vfsStream is a stream wrapper for a virtual file system that is very helpful in unit tests to mock the real file system. It can be used with any unit test framework, like PHPUnit.
-> Example.php
-> ExampleTest.php

Practical session

In the following pratical session Sebastion helped us with an actual test with a rather complex situation of nested Mock Objects. In this case we wanted to test the StructureCreator that delivers Symfony2 form-entities to be used for user-interaction.

This StructureCreator holds two difficulties for UnitTests:

  1. It has strong external dependencies:
    • the StructureFactory
    • the StructureService
    • the LanguageService
  2. It makes use of two private functions that encapsulate the main functionalities and can therefore not be tested directly.

The outcome of this session comprised of the following:

  1. Setup frequently used mock-objects in the setUp()-method, further configure these mocks in the test-methods to cater the special requirements of the test.
  2. If you have to create the same type of mock-object but with slightly different behavior extract the creation of this object to a new function that takes the needed configuration as parameter to keep the code readable and avoid code-duplication.
  3. Initially we hoped we could somehow simplify this “mock-extravaganza” but in the end we didn’t come up with another solution than to not really test the private method by mocking the StructureCreator and it’s private methods which we decided not to do but rather to implement the fully mocked test.

The bottom line

Sebastian answered all our question with a professional attitude and patience, no question was left unanswered. He was always helpful and seemed rather happy that we came up with lots of different questions. During one of the session we even were even able to find a minor bug in the creation of Test-Skeletons which Sebastian fixed and pushed into the repository as a new version right away.

Version 3.6.8 will fix the not working “@covers” annotation when creating
Test-Skeletons for an existing class.

The knowledge Sebastian was able to share with us face to face will stick quiet a bit longer than if we would just have read about possible solutions to our questions in a book or on the internet. Sebastian ended his presentation by sharing some insights about the upcoming PHP version 5.4 and rather funny anecdotes from his intensive PHP experience.

Paamayim Nekudotayim anyone? :)

Especially for me that I haven’t had a lot of Unit-Test experience before joining the ICANS it was a very challenging but nonetheless awesome session. Getting to personally know the guy behind PHPUnit and discussing difficult real-life test-situations was a rather unique experience.

Cheers, ICANS, for making it happen!

Veröffentlicht unter Guests, Workshops | Hinterlasse einen Kommentar

Chef koch(t) – Reloaded

Nicht nur unser technischer Geschäftsführer Tom macht eine gute Figur als Kochunterstützung  in der Küche – nein auch David – unser kaufmännischer Geschäftsführer – steht ihm bei den Kochkünsten in nichts nach.

Letzten Donnerstag kamen wir in den Genuss, dass David gemeinsam mit unserer Küchenfee Marie allen Mitarbeiter ein leckeres Essen gezaubert hat.

Zum Hauptgang verwöhnten sie uns mit Penne Arrabiata.
Typisch für den Finance-Bereich, für den David u.a. auch verantwortlich ist, sind Zahlen. Also hier noch ein paar Fakten im Überblick.

Verarbeitet wurden:

  • 7 Kilo Nudeln
  • 15 Dosen geschälte Tomaten
  • 5 Basilikumsträuche
  • eine Knolle Knoblauch
  • jede Menge Chilieschoten und
  • 1 Kilo geriebener Parmesan

Als süße Abrundung gab es dann ein leckeres Tiramisu.

Das Kochen mit David war auch der Startschuss für den in Zukunft monatlichen stattfindeten Pasta-Tag bei der ICANS. „Nunca basta con la pasta!“
Anbei ein paar Bilder von unserem ersten Pasta-Tag:

 

Veröffentlicht unter Insights, Office Life | Hinterlasse einen Kommentar

Karriere & Weiterbildung bei der ICANS

Softwareentwicklung auf kontinuierlich höchstem Niveau ist unser klarer Anspruch und dies zeigen wir Tag für Tag erfolgreich.

Ein zentraler Baustein dieses Erfolgs ist die fortwährende und gezielte Weiterbildung aller Mitarbeiter.
Neben dem selbstverständlichen täglichen Training on the Job in kleinen leistungsstarken Teams, haben wir bei der ICANS ein ausgewogenes Programm zusammengestellt:

  • Großes und immer aktuelles Angebot an Büchern und Fachzeitschriften
  • Wöchentliche Code-Reviews
  • Regelmäßige Vorträge für alle Mitarbeiter durch interne und externe Referenten
  • Inhouse-Workshops wann immer es gilt gezielt Wissen aufzubauen
  • Regelmäßige Besuche von Konferenzen
  • Zertifizierungen

Was haben wir 2011 konkret gemacht?

First Fridays – 2011:

  • Monitoring Zabbix
  • Website Persuasion
  • MySQL Performance
  • ECF – Education Community Framework
  • Datenanalyse und Prognose R
  • Javascript GUI Framework Ext JS 4.0
  • Mobile App „SHC Trainer“
  • IDE Battle
  • Social Network Analysis
  • Realtime WebApps mit Node.js
  • Hochlastseiten am Beispiel von stern.de
  • RabbitMQ bzw. Messaging Systemen

Workshops – 2011:

  • Aktuelle Herausforderungen in der SoftwareentwicklungArne Blankert, Sebastian Bergmann, Stefan Priebsch von thePHP.cc
  • Analytics & Bigdata (Symfony 2, Thrift, Hadoop, …) – Technologie-Review - David Zülke von Bitextender
  • Architekturdokumentation - Review - Stefan Toth von oose Innovative
  • Architekturvision & Frameworks - Arne Blankert, Sebastian Bergmann, Stefan Priebsch von thePHP.cc
  • Code-Review unserer Symfony 2 Bundles - Johannes Schmitt
  • Continuous Integration - Manuel Pichler von Qafoo
  • Pair-Programming - Holger Bohlmann von it-agile
  • Pentration-Testing unserer Web-Technologie - RedTeam
  • Security-Code-Review unseres aktuellen Frameworks - Arne Blankert thePHP.cc
  • Skalierbare High-Performance-Anwendungen - David Zülke von Bitextender
  • Softwaredesign mit .Net - Ralf Westphal
  •  Softwarearchitektur – Lebendiger Entwurf mit Methode - Stefan Toth von oose
  • ZABBIX Training - Rihards Olups von Zabbix SIA

Besuchte Konferenzen – 2011:

Zertifizierungen – 2011:

 

Was denken unsere Mitarbeiter darüber?

http://www.kununu.com/de/all/de/in/icans/karriere

Wie wird 2012 aussehen?

Unser Weiterbildungsprogramm hat sich als sehr erfolgreich erwiesen, so dass wir es konsequent fortsetzen und erweitern werden.
Dieses Jahr werden wir zusätzlich stärker den Dialog nach außen suchen, um auf diesem Wege neue spannende Impulse zu bekommen und die Fachwelt an unserer Expertise teilhaben zu lassen. So planen wir unter anderem:

  • Eigene Vorträge an Hochschulen und auf Konferenzen
  • Veröffentlichung von Artikeln in Fachzeitschriften
  • Aktivere Contribution zu Open-Source-Projekten
  • Veröffentlichung eigener Open-Source-Software
  • Herausfordernde Themen für Praktika, Bachelor- u. Master-Thesis, sowie ggf. Promotionen
Veröffentlicht unter Insights, Workshops | Hinterlasse einen Kommentar

Passion & The Request Pulse

We at ICANS believe that we can only deliver high performance continuously, by working in a passionate team of very smart, skilled and result-oriented individuals.

You may have already read this quote somewhere else on our home page. And although the above is the truth, the whole truth and nothing but the truth, I always feel kind of uncomfortable in writing such things, as it potentially sounds like ordinary marketing bs. Additionally it is bound to be very subjective, which makes such a statement even more questionable.

Probably giving real world examples is one good way to make such statements more tangible.

So today I’ll try to make this statement more tangible by giving you an example – I just experienced last night – what “being passionate” means to me:

Bjoern (Team Leader R&D) had a neat idea on how to make a request better observable throughout all (sub)-systems of our platform services. So far nothing too spectacular, as we are a team of very smart and skilled individuals, having neat ideas all the time ;)
But even though Bjoern didn’t expect this idea to be implemented in the near future, he went the extra mile after a hard working day, drafting his idea in a way someone else could easily catch up at some appropriate time in the future. That’s passion to me!

 

Still not interested in my marketing bs? Maybe Bjoern’s draft concept is of interest to you:

Brain Dump: The Request Pulse

The Idea

The Request Pulse is a concept, which allows us to observe how a request spreads within our system. The request does not necessarily have to be a HTTP request, it could also be the execution of a cron job or something like that.

The subsystem that receives the initial request generates the Pulse. It then attaches this Pulse to all sub-requests it makes to other systems.
All subsequent subsystems will have to do the same.

Since the Pulse propagates to all subsystems, we can add the Pulse to log events or messages as well.

Some possible applications of this concept would be

  • Trace an error that occurred in a remote subsystem back to its initial HTTP request on the reverse proxy
  • Group subsequent HTTP requests of AJAX calls together with their main request
  • Detect unexpected behavior changes in a running system (“Usually the processing of this kind of request results in these event, but now it doesn’t”)

Some Scenarios

An Error Occurs

The following scenario shows a setup where all components also reside on a dedicated machine.
The client requests article X, which he may not access.
This should lead in displaying the fallback article Y, but actually leads to an error.
Which gets bubbled up to the client as a 404.
Some interesting events (including all errors) are sent to the Logging Service.

 

Since all subsystems “know” the Pulse, they can include it in the events, which are passed to the Logging Service. This allows us to observe:

  • that the error in Content Repository while fetching Article Y was preceded by access denial, while trying to access Article X
  • all events occurred while processing “GET /article/X” in combination with all the information, we have about the client
  • etc.

AJAX calls

In the following scenario

  • the client requests a page X
  • the response includes
    • an element, which gets filled with some additional big data by an AJAX call onLoad
    • an element, which calls some statistics service, which includes some data about the users mouse movement in the first X seconds
    • the Pulse ID
  • the browser then requests the additional data Z including the PulseID
  • and makes the statistics call including the PulseID
    Again, the interesting events get sent to the Logging Service.

 

In addition to the observations above, we can group the requests for X and Z and the statistics call as one logical request by using the PulseID.

Some additional words

While both examples are not necessarily designed as one might design it in real life, they show how this method can be used to trace back errors and observe such flows without the need to pass down all information about the various clients to the subsystem where the point of interest resides.

Some notes (work in progress)

The Pulse consists of

  • id := a (very probably) unique id, e.g. uuid
  • timestamp := now in nanos
  • trace := a list of the subsystems the Pulse has passed

Implementation note to self: It could be registered as a “global”/Singleton/registered object in the scope of the request and has to actually be passed as parameter only when doing subsequent requests (in HTTP header or whatever).

Note to self: It must be possible to disable / enable the Pulse. A missing Pulse must not lead to erroneous behavior.

Veröffentlicht unter Brain Dump, Insights | 1 Kommentar

ICANS Christmas Party 2011

“Is it really Christmas again?”

For most of us, due to the rather mild weather in November and December, it didn’t really feel like Christmas was just around the corner. For the product team that rapidly changed with the arrival of gingerbread heart in Gibraltar – something you don’t see there that often. That, of course, was the invitation to the ICANS Christmas and was meant to become a highlight of the product’s two-week stay in Hamburg.

“Brick meets business”

On December 16th, after weeks and months of hard work, no venue seemed to be more convenient than the sacred halls of a former industrial spot like the Gastwerk Hotel in Hamburg Bahrenfeld. From 7 p.m. onwards the halls filled up with the around 150 invited guests, welcomed by good old German mulled wine, a range of also arch-German sweet snacks and no more less German chief executives, thanking everybody for a successful while also very busy year and, last but not least, looking forward to an eventful 2012. Whether you are working in Hamburg or Gibraltar, we are pretty sure this year indeed will be eventful. Cheers!

“The most delicious time of the year”

But why seek far afield when a promising 4-course menu is close by – and, of course, a lottery with lots of spectacular prizes – “Gewinne, Gewinne, Gewinne”! We weren’t disappointed, neither by the Christmas duck nor by the large number of bathrobes and knickers drawn by the lucky fairy – it all was just about “Gewinne, Gewinne, Gewinne”!
After spending most of the time dining, drinking and making pictures of course one, two, three and four chatting was pushed to a new limit as almost everybody happened to have her or his very personal annual review and outlook. Somewhere after midnight, beers and wines later, as last official act, a Gibraltarian got very surprised by a live sung birthday serenade and a corresponding cake which actually tasted really good and therefore I would like to thank you personally once again!

That, of course, was not the end, especially not for most of the ladies as they danced the night away and therefore even moved further on into the glittering nightlife Hamburg has always been famous for.

“A personal note”

For some of us, this Christmas party was the first one in a new company and/or the first one together with the people we normally know from email, Skype or video conferencing. I think I speak for all of us when I say that I am really looking forward to an interesting time lying ahead of us. Sure, 2012 will be a very challenging year, but it will also push us to new limits in terms of performance and cooperation. So, cheers again, Merry Christmas and a very happy new year!

 

Veröffentlicht unter Office Life | Hinterlasse einen Kommentar

Fachvortrag *PHP Sucks!?* an der FH Wedel

Simon und Stefan stellten  sich am 30.11.2011 der Herausforderung den Status Quo von PHP sowie Gründe für den schlechten Ruf der Sprache vor kritischen Wedeler Informatik-Studenten zu beleuchten. Das Ganze hat im Rahmen einer Fachvortragsreihe an der Fachhochschule Wedel  stattgefunden, wobei wir mit rund 40 teilnehmenden Studenten einen vergleichsweise großen Zuschauerkreis genossen haben.

Mit vielen konkreten Beispielen und einer dicken Prise Humor - also eher hochschuluntypisch – haben Stefan und Simon es dabei geschafft, die Zuhörer zu interessieren und von Beginn an in den Vortrag einzubinden.

Und so haben wir sehr positives Feedback zu Inhalt und Vortragsweise von den Studierenden erhalten, die teilweise auch noch nach der Präsentation ihre Diskussionen mit unseren Entwicklern fortsetzten.




(Die Slides, leider ohne Tonspur)

Insgesamt ziehen wir also ein positives Fazit aus unserem Pilot-Vortrag *PHP sucks!?*, sodass wir diese Mission guten Gewissens auch an anderen Hochschulen fortführen können. Immer mit dem Ziel, Möglichkeiten und Grenzen von PHP zu beleuchten, Studenten/Absolventen dazu zu bringen ihre Vorurteile abzulegen und auf unsere Praktiken einer professionellen Software-Entwicklung einzugehen.

 

Veröffentlicht unter Development, Workshops | Hinterlasse einen Kommentar

Do you take pride in uptime and dream of building scalable systems? – DevOps wanted!

As most of you know, we at ICANS create and manage successful international online communities. Our environment is fast-paced, full of technical challenges and thus rich in opportunities and possibilities. Therefore, we are permanently looking for smart and enthusiastic people with great technical and organizational skills that thrive in such an environment.

I just want to make you all aware of a new challenging position as link between development, quality assurance and technical operations at ICANS – DevOps (http://www.icans-gmbh.com/de/karriere/karriere/DevOps)

Veröffentlicht unter Uncategorized | Hinterlasse einen Kommentar

Weihnachtsgrüße aus Hamburg

Wer letzte Woche bei der ICANS war, hat sich sicherlich gefragt, ob der Weihnachtsmann seine Weihnachtspost durch uns hat verpacken lassen.
Die Wichtelhelfer hat er aber nicht mitgeschickt, sodass unsere Kolleginnen aus dem Event und Services Bereich über 3.500 Weihnachtsgrüße mit einer kleinen Überraschung für einen bestimmten Userkreis zusammengestellt haben. Das hieß also die Weihnachtspost zu verpacken, die Adressen auszufiltern, auszudrucken und auf die Briefumschläge zu kleben sowie dann frankierbereit für die Post bereitzustellen.

Auch wenn es einen heiden Aufwand mit sich brachte, hatten die Kolleginnen viel Spaß und das Ergebnis ist auf Fotos dokumentiert.

Also es können sich viele User in den nächsten Tagen auf ein kleinen Weihnachtsgruß von PokerStrategy.com freuen. Eine schöne Vorweihnachtszeit wünscht das ICANS-Team.

 

 

Veröffentlicht unter Office Life | Hinterlasse einen Kommentar