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 | Kommentare deaktiviert

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 | Kommentare deaktiviert

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 | Kommentare deaktiviert

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 | Kommentare deaktiviert

Zitat des Tages zum Thema “schlechte GUIs”

“Jetzt reicht’s. Ich nehm’ jetzt die Konsole. So wie Gott es gewollt hat.”

(Jochen – Linux Systemadministrator)

Veröffentlicht unter Uncategorized | Kommentare deaktiviert

Windows And Linux – Just Married

Introduction

I’ve been using Linux for years now and I really like it. I wouldn’t want to work without it. If I had to work in a Windows-only environment I’d just go mad.

But some Linux-related things have been bothering me lately. Among other things these are:

  1. I’ve just got a shiny new notebook with a docking stations having two displays attached to it. I’d like to use the two external displays and the internal display simultaneously. And when I push the undock button on the docking station I want my notebook to switch to mobile mode automatically and back when I re-dock it. Currently docking, undocking and running nvidia optimus in Linux is a pain.
  2. This is stretches the term “lately” a bit: I work with some Windows programswhich don’t run properly under wine. I currently run these in a Windows virtual machine.
  3. I’ve upgraded to ubuntu 11.10 … I don’t like the way gnome – my window manager of choice – is going.

So, I’ve decided to give Windows as host a try, i.e. try having a Windows running on the laptop, running a Linux within a VM inside Windows and try to make them work together as seamlessly as possible.

Now I’m running a Windows 7 as host and a Ubuntu 11.10 in a VM. I can start Linux programs from within Windows with X11 forwarding. [Win]+[C] starts my gnome-terminal, [Win]+[X] starts the application starter gmrun, etc.. I have Linux programs in my Windows start menu. And each running program has its place in the task bar.
Oh, and everything is neatly responsive and fast.

Of course not everything is working seamlessly (yet?), but maybe I can get it running some day. For example Linux system tray icons don’t appear in the windows system tray.

I believe I’m not the first one having a setup like this, but since I had to gather my information from several different sources, I’d like to describe my whole setup.

Feel free to post any comments, questions or improvement ideas (!), but please don’t tell me how bad a person I am for using Windows. I know that already.

Let’s begin …

Base Setup

As I mentioned before I have a Lenovo T420 with Windows 7 running on it. I enabled the Intel virtualization features in the BIOS, installed the Lenovo update tool, joined our company’s windows domain and installed all the needed updates.
Afterwards I installed TrueCrypt and encrypted my entire disk.
Pretty basic.

Now we get to the fun part … hopefully …

The Fun Part … there we go

I assume you know Linux and Windows (at least a bit), ssh, X11 and the concept of virtual machines.

I also assume that you’ve used VirtualBox before. If not, please consult the documentation, since this won’t be a VirtualBox tutorial. Neither will it be a Cygwin tutorial.

If you like to save time, I recommend beginning to download Cygwin (setup.exe), VirtualBox and you favorite Linux ISO first. I use ubuntu 11.10, despite Unity and Gnome3. I won’t be seeing the window manager them much anyway. Afterwards I’d begin the installation of Cygwin since it will take quite a while to compile all the packages you need. The rest of the steps shouldn’t take too long to complete.

1. Install Linux In A VirtualBox VM

1.1. Install VirtualBox

We’ll run the VM within VirtualBox, so download VirtualBox and the Extension Pack from https://www.virtualbox.org/wiki/Downloads and install both of them.

1.2. Prepare The VM

  1. Create a new machinenamed “internal linux” with Linux / Ubuntu 64bit (if you want to use ubuntu).
    1. Set the “Base Memory Size” to whatever you think is necessary. I’ve set it to 1GB.
    2. Setup a new “Virtual Hard Disk” as “Start-Up Disk”. I’ve created a 8GB, VDI, Fixed size. It’s “only” 8GB, because I will add other dynamic disks and use a shared volume later.
  2. Adjust the following settings
    1. In “System -> Acceleration” enable “VT-x/AMD-V” and “Nested Paging” if your system supports this features. You might have to enable them in your BIOS first.
    2. Set “Network -> Adapter 1″ as “attached to” “Host-only Adapter”
    3. Enable the “Adapter 2″ and attach it to “NAT”.
    4. Open “Shared Folders” and add your Windows home (or whatever you like) as “internal_share”. Don’t forget the “Auto-mount” option.

Mount your favorite Linux ISO in “Storage -> IDE Controller -> the little CD-ROM symbol -> Choose a virtual CD/DVD disk file …” and start your VM.

1.3. Install Linux

Install Linux on the VM, apply the updates.

Login and install “OpenSSH Server”, “gmrun” and the “VirtualBox Guest Utils”.

internal> sudo aptitude install openssh-server gmrun virtualbox-guest-utils

For your user to be able to use the shared storage, add him/her to the group vboxsf, for example via adduser:

internal> adduser <your user> vboxsf

The newly added overlay scroll bars won’t work properly using X11 forwarding, so remove them if you like:

internal> sudo apt-get remove --purge overlay-scrollbar liboverlay-scrollbar-*

Reboot.

Maybe you want to link or adjust the mount point of the shared storage to a directory within your home.

We’ll now configure the ssh server.

1.4. Configure The OpenSSH Server

Add the following line to /etc/ssh/sshd_config and restart the ssh server:

UseDNS no

That way it won’t try to reverse-resolve your IP, thus saving connection time. (Thanks to my colleague Christoph for that hint).

Generate ssh-keypair (using ssh-keygen) without passphrase (use this only for your internal VM). Alternatively you can setup the key pair with a passphrase and use an ssh-agent in Cygwin or use a different authentication method. But since I only allow ssh access from my host-only adapter and only use this key for the internal VM, I think it’s okay.

Copy the private key to the internal_share. You’ll need it on the host system.

Copy the public key to ~/.ssh/authorized_keys.

We’ll test the connection later. We don’t have a windows ssh client, yet.

2. Prepare Windows

2.1. Install Cygwin/X

Download the setup.exe from cygwin.com and start the setup.
Select “Install from Internet“, set the root directory to %HOME%\cygwin and set the download directory to %HOME%\Downloads\cygwin.
Select the “X11” section to be installed. Also search “openssh“, select it and continue to the actual installation. This will take some time.

After the installation is finished we’ll try to connect via ssh to our VM.

You might also want to move the Cygwin setup.exe to your \Path\To\cygwin\ and put a link to that file into your Cygwin start menu folder.

Let’s test ssh.

2.2. Test The SSH Connection

Start a Cygwin Bash, which should be linked into your start menu or desktop.

cygwin> mkdir ~/.ssh

Move the ssh private key you’ve created earlier to ~/.ssh/ and adjust the rights, so only your user can use the file:

cygwin> chmod go-rwx id_rsa

Get the IP of the host-only adapter of your VM:

internal> ifconfig eth0 | grep -o -e "inet addr:\S*"

Mine is 192.168.56.101

Try to connect to your system:

cygwin> ssh internal@192.168.56.101

You should be connected to your internal VM now.

We’ll now run the XWin Server for the first time and try to run an X11 application.

2.3. Start An XWin Server

Start “Cygwin/X -> XWin Server” from your start menu. Once it’s started go back to your bash and type:

cygwin> DISPLAY=127.0.0.1:0.0 ssh -X internal@192.168.56.101

Again you should be connected to your VM. Type

cygwin> xclock

and get the xclock in your windows.

We’re finished with the basic setup. Now we’ll add some convenience add-ons to it.

3. Convenience Add-ons

3.1. run_internal.bat

Create a batch file called “run_internal.bat” somewhere, like %HOME%\bin\run_internal.bat for instance.
Add the following line and adjust the path, the user and the address according to your settings:

set DISPLAY=127.0.0.1:0.0
start /b C:\Users\MyUser\cygwin\bin\run.exe ssh -X internal@192.168.56.101 %*

We’ll use this batch file to start Linux programs with arguments – represented by the %* – tunneled through ssh using X11 forwarding.

3.2. Set Up AutoHotkey

Download, install and run AutoHotkey_L from autohotkey.com.

You should see a green H in your system tray. Right-click and click “Edit This Script“. To the script add the following lines, after adjusting your paths of course.

#x::Run, "C:\Users\MyUser\bin\run_internal.bat" "gmrun"
#c::Run, "C:\Users\MyUser\bin\run_internal.bat" "gnome-terminal"

These lines will let your system run gmrun when pressing [Win][X] and gnome-terminal when pressing [Win][C].

Right-click AutoHotkey again and click “Reload This Script“.

Try it by pressing [Win]+[X] and entering “xclock [Enter]“, which should bring up xclock again.

3.3. Add The Shutdown Script

We don’t want to click our way to saving the VM before, so we’ll add a shutdown hotkey to AutoHotkey:

#s::
{
  MsgBox, 1, Shutdown, Press [OK] to shutdown
  IfMsgBox, OK
  {
    SplashTextOn, 300, 50, Saving VM, Waiting for VM to be saved
    Run, "C:\Program Files\Oracle\VirtualBox\VBoxManage" "controlvm" "internal linux" savestate

    SetTitleMatchMode, 1
    DetectHiddenWindows, On
    WinWaitClose, internal linux, , 300	; Wait for VM to close

    SplashTextOff
    Shutdown, 8	; Shut down and power down
  }
}
return

It would be even nicer to hook into the shutdown process of windows. But I don’t know how, yet. Anybody?

4. Windows – Start-Up

To have all of this setup after your windows has started:

  1. Go to the VirtualBox Manager, right-click the VM and click “Create Shortcut on Desktop”
  2. Open the start menu -> all programs and right-click startup to “explore”.
  3. Move the links to the VM, AutoHotkey and XWin Server to the start-up folder.

5. One More Add-on – ssh-agent

Since I will use my Linux as environment to connect to the world via ssh, I only setup an ssh-agent there. I wouldn’t know how to do this on windows anyway.
This is a bit tricky, since I won’t enter a gnome-session, but just connect via ssh to the box.

5.1. PermitUserEnvironment

We’ll use ssh’s feature to be able to set environment variables for ssh sessions.

Add the following line to your /etc/ssh/sshd_config

PermitUserEnvironment yes

and restart sshd:

internal> service ssh restart

This will allow us to put environment variables into ~/.ssh/environment, thus populating SSH_AUTH_SOCK and SSH_AGENT_PID once we start ssh-agent.

5.2. Some Preparation: ~/bin

Create a home bin folder, if you like:

internal> mkdir $HOME/bin

Add the following line to your ~/.bashrc (adjust paths):

export PATH=$HOME/bin:$PATH

5.3. Create ~/bin/auto-start-ssh-agent

The following script will

  • check if there $SSH_AUTH_SOCK is set and a socket and otherwise try to recover it from ~/.ssh/environment
  • afterwards check if there the ssh-agent is running
  • if it can’t find an ssh-agent it will start one and export the needed environment variables to ~/.ssh/environment and the context the script is run in

This script should start a new ssh-agent and export the needed information, but only when needed.

Note to self: I should check if an actual ssh-agent is bound to that socket. It’s very probable though. :)

Here’s the code (~/bin/auto-start-ssh-agent):

#!/bin/bash

SSHAGENT=/usr/bin/ssh-agent
ENVFILE=$HOME/.ssh/environment

# assumptions
agent_running=0
do_export_envs=0

# check if ssh environment variables are set
if [ ! -S "$SSH_AUTH_SOCK" ]; then
        SSH_AUTH_SOCK=`grep -o -e '^SSH_AUTH_SOCK=\(.*\)$' $ENVFILE | sed 's/SSH_AUTH_SOCK=//'`
        SSH_AGENT_PID=`grep -o -e '^SSH_AGENT_PID=\(.*\)$' $ENVFILE | sed 's/SSH_AGENT_PID=//'`
	do_export_envs=1
fi

# check if agent is running
if [ -S "$SSH_AUTH_SOCK" -a -n "$SSH_AGENT_PID" ]; then
	proc_found=`ps -fp $SSH_AGENT_PID | grep "$SSHAGENT" -c`
	if [ $proc_found -eq 1 ]; then
		agent_running=1
	fi
fi

# start a new agent if none is found
if [ $agent_running -eq 0 ]; then
	if [ -x "$SSHAGENT" ]; then
		eval `$SSHAGENT`

		# replace the environment variables in ENVFILE
		sed -i "s@^\(SSH_AUTH_SOCK\)=\(.*\)\$@\1=$SSH_AUTH_SOCK@" $ENVFILE
		sed -i "s@^\(SSH_AGENT_PID\)=\(.*\)\$@\1=$SSH_AGENT_PID@" $ENVFILE

		do_export_envs=1
	else
		echo 'no valid ssh-agent found'
	fi
fi

# export ssh environment variables if needed
if [ $do_export_envs -eq 1 ]; then
	export SSH_AUTH_SOCK=$SSH_AUTH_SOCK
	export SSH_AGENT_PID=$SSH_AGENT_PID
fi

Make it executable:

internal> chmod +x auto-start-ssh-agent

5.4. ~/bin/gssh

The following script will execute the auto-start-ssh-agent script to ensure there is a running ssh-agent.
It will then use ssh-add to check if the identity file as already added to the agent and otherwise let you add it.
Finally it will continue to connect via ssh using the given identity file.

So only the first time, you run gssh you should have to put in your passphrase.

Here’s the code (adjust paths) (~/bin/gssh):

#!/bin/bash
IDENTITYFILE=/path/to/private/key

. auto-start-ssh-agent

key_found=`ssh-add -l | grep $IDENTITYFILE -c`

if [ $key_found -eq 0 ]; then
	ssh-add $IDENTITYFILE
fi

ssh -i $IDENTITYFILE "$@"

Make it executable:

internal> chmod +x gssh

5.5. ssh alias (optional)

Add this to ~/.bash_aliases (or to ~/.bashrc), if you like:

alias ssh='gssh'

6. Odds And Ends

  • After updating VirtualBox the host-only adapter was missing. I had to add it in the global network configuration again and set the IP to 192.168.56.1 (host system)
  • After installing the nvidia NVS drivers instead of the Lenovo drivers, I had to reinstall X11 for Cygwin

7. Open Issues

  • The run_internal.bat-way is not very elegant, since a box flashes every time
  • The VM should be minimized to system tray

The End. Thank you for your attention!

Veröffentlicht unter Development | 3 Kommentare

ZendCon 2011 – Santa Clara, CA

Im Oktober zog es mich nach Santa Clara auf die ZendCon,
um meine erste PHP Konferenz zu besuchen. Ich war gespannt auf die Unterschiede zu der Unconference hier in Hamburg . Die PHPucHH hat die Messlatte hoch angesetzt.

Auf dieser internationalen PHP Konferenz waren auch aus Deutschland bekannte Gesichter vertreten. So konnte man unter anderem das Team von thePHP.cc (Arne, Stefan und Sebastian) oder David Zülke von Bitextender antreffen und ihren Vorträgen zuhören. Das gesamte Programm sah vielversprechend aus.

Wichtige Themenbereiche der Konferenz waren Cloud Computing, mobile Web, Datenhaltung und – handhabung, sowie Enterprise/Professional PHP. Dabei ging es nicht immer nur, wie der Name der Konferenz vermuten lässt, um Zend-nahe Vorträge. So hat Stefan Koopmanschap beispielsweise einen Vortrag über Symfony2 gehalten, welcher sehr großes Interesse fand.

Um möglichst gut von diesem breiten Angebot zu profitieren, hatte ich mir bereits im Vorfeld einige Sessions ausgewählt. Das Hauptaugenmerk lag dabei darauf einerseits mein Wissen im Bereich der Webentwicklung weiter auszubauen und andererseits den berühmten Blick über den Tellerrand zu wagen. Im Folgenden ein kleiner Einblick in die meiner Meinung nach interessantesten Vorträge:

Zend hat seine neue Cloud-Lösung vorgestellt, welches ein PaaS (Platform as a Service) bietet. In der Zend Developer Cloud kann man kollaborierend einfach und schnell entwickeln. Es kann dann zu jeder beliebigen (bzw. unterstützen) Cloud hin deployed werden. Die sogenannte Zend Application Frabic dient als Unterbau und stellt die Lauffähigkeit in allen unterstützten Clouds sicher. Dieser Ansatz der Entwicklung und Verteilung ist interessant und hört sich recht einfach an.

Zum Thema Datenhaltung und -handhabung im Allgemeinen gab es gerade aus dem NoSQL-Bereich informative Beiträge. Redis, Couchbase und MongoDB waren entsprechende Vertreter dieser Technologien.
Hierzu sei auf die Vorträge von Steve Francia “MongoDB and PHP”  und Josh Butts “Scarling PHP Applications with Redis” verwiesen.
NoSQL-Datenbanken sind sicherlich nicht mehr aus den Webentwicklung wegzudenken, gerade wenn es um die Handhabung großer Datenmengen geht. Die Ending-Keynote von Dwight Merriman “NoSQL: How Serving 400,000 Ads A Second Inspired the Creation of Mongo” hat die Entwicklung von MongoDB aufgezeigt und verdeutliche den Gedanken hinter dieser Technologie.

Hinsichtlich professioneller PHP-Entwicklung waren die Vorträge von
Elizabeth Marie Smith “Using SPL Tools in Your Code” ,
Paul Jones “Benchmarking Applications and Frameworks”  und
Derick Rethans “Profiling PHP Applications” sehr aufschlussreich.

Im  Vortrag von Ilia Alshanetsky “Under the Hood” ging es ebenfalls um Profiling. Solche Art Vorträge, die sich mit professioneller PHP Entwicklung beschäftigen, sollten sicherlich auf keiner  Konferenzen fehlen.

Als sehr interessant zu bewerten war der Vortrag “Change is Inevitable” von Stefan Priebsch über das temporale Pattern. Zusammenfassend geht es um die Abbildung von Daten, die zu verschiedenen Zeitpunkten unterschiedliche Zustände haben können.

Beide Vorträge von David Zülke “Large-Scale Data Processing with Hadoop and PHP”  und “Designing HTTP Interfaces and RESTful Web Services” fanden eine sehr gute Resonanz.

Neben den normalen Vorträgen gab es auch noch eine UnConference, bei der ähnlich der UnCoferencen in Hamburg, Sessions ad hoc geplant und durchgeführt wurden. Hier fanden überwiegend Follow-ups der Vorträge statt.

Unter devPlant  und PHP Gangsta sind Auflistungen aller Vorträge mit entsprechend verfügbaren Slides zu finden.

Mein Fazit:
Alles in allem war die Konferenz professionell organisiert, Themen-technisch breitgefächert und informativ.Es war ein lohnenswerter Besuch, bei dem ich mein Wissen und Verständnis rund um PHP, Cloud Computing und NoSQL verbessern konnte, was nicht zuletzt die erfolgreich bestandene PHP 5.3 Zertifizierung zeigt :)
Im Vergleich zu der PHPucHH ist zu sagen, dass man der ZendCon ihre professionelle Herangehensweise angemerkt hat. Die beiden Ansätze, Un-Konferenz und Konferenz, sind jedoch beide sehr empfehlenswert.

Nächstes Jahr kann man überlegen, ob man nicht selber für die ZendCon einen Vortrag einreicht -  Inhalt könnten die Themen Symfony 2 und MongoDB im Zusammenspiel mit unserem sich gerade in der Entwicklung befindlichen Framework sein.

 

Veröffentlicht unter Workshops | 1 Kommentar

No Doubt – Hiring Process At ICANS

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.
In context of our continuous growth we therefore always have a great focus on hiring the right people fitting our team.

For all those interested in a job at ICANS, or just curious about the details of our hiring process, I just pinched the latest hiring guidelines from HR.

The ICANS Hiring Guideline - Example For A Software Engineer

Veröffentlicht unter Insights | Kommentare deaktiviert

*PHP Sucks!?*

Ein kurzer Hinweis in eigener Sache: am 30.11.2011 werde ich an der FH Wedel einen Vortrag mit dem vielversprechenden Titel “PHP Sucks!?” halten. In dem Vortrag werde ich mich mit dem zweifelhaften Ruf von PHP beschäftigen, woher dieser kommt und was dran ist.

Spoiler: PHP ist nicht so schlecht wie sein Ruf.

Am Beispiel von PokerStrategy.com und anhand eines kurzen Ausblicks auf unsere aktuellen Entwicklungen werde ich im Anschluss Möglichkeiten und Grenzen der Entwicklung mit PHP im Enterprise-Umfeld aufzeigen.

Gäste sind gern gesehen, wenn Ihr also Lust auf das Thema habt, einfach hören wollt, was wir so machen oder im Anschluss einfach mal ein paar Worte mit uns (ich werde wohl nicht allein vor Ort sein) wechseln wollt, seid Ihr herzlich eingeladen, vorbei zu kommen. Der Vortrag startet um 17 Uhr in Hörsaal 5, alle weiteren Infos gibt’s auch direkt bei der FH Wedel.

Veröffentlicht unter Workshops | Kommentare deaktiviert

Node.js – der neue Technologie Hype

Serverseitiges JavaScript (!?!)

Node.js findet sich zurzeit auf zahllosen Tech-Blogs und Geek Seiten. Kein Wunder, denn serverseitiges JavaScript klingt erstmal nach einer großen Sache. Ich muss gestehen, als PHP Programmierer hab ich mich anfangs gefragt, warum man diese Frickelsprache denn nun auch auf dem Server ausführen will. Nachdem ich mich aber ein wenig mit dem Thema beschäftigt habe konnte ich das üble Vorurteil gegen JavaScript ablegen und empfinde nun tatsächlich fast so etwas wie Bewunderung für das elegante Sprachkonzept. (Interessanterweise gibt’s das Vorurteil aber auch genauso in die andere Richtung, wie ich kürzlich auf einem Treffen der Hamburger JS Usergroup feststellen konnte :) )

Der kleine Unterschied!

Was macht node also anders als die anderen? Im Gegensatz zu den meisten Web-Server Technologien liegt der Fokus auf Echtzeit Anwendungen. Während man einem gewöhnlichen Server eine Frage stellen muss um eine Antwort zu erhalten, kann node mit einfachen Mitteln eine dauerhafte Verbindung zum Browser aufbauen und darüber ohne weiteres Daten schicken. Das macht beispielsweise für Chat-Anwendungen oder Börsenkurse total viel Sinn.

Wie entwickelt sich’s denn?

node basiert auf der V8 JavaScript Engine. Das ist jener Bauteil, der den Chrome Browser so schnell macht. Für diese Engine gibt es schon zahlreiche Entwicklungswerkzeuge, die sich beispielsweise gut in die Eclipse IDE integrieren. So ist es unter anderem möglich nahtlos serverseitigen und browserseitigen JavaScript Code zu debuggen. Fancy!

Mit npm gibt es auch einen leistungsfähigen Paketverwaltungsmechanismus mit einem Repository von tausenden von Paketen. Damit hat man für fast jeden Anwendungsfall schon Pakete auf die man aufbauen kann.

Und so geht’s weiter!

Ich habe eine kleine Präsentation vorbereitet, die illustrieren soll was man mit node so machen kann. Sehr zu empfehlen ist auch die offizielle Website unter www.nodejs.org, speziell die Präsentationen sind absolut sehenswert.

Aber die beste Art sich mit node auseinanderzusetzen ist es einfach mal auszuprobieren. Also, viel Spaß beim noden.

Veröffentlicht unter Development, Workshops | 1 Kommentar