Tel +49 (30) 814504070

Werkzeuge und Technologien bei Individuallösungen

Effiziente Entwicklung von individuellen Applikationen besteht zu großen Teilen darin, bestehende Softwarekomponenten auszuwählen und anzupassen. Dank der OpenSource-Bewegung sind viele dieser Komponenten kostenlos erhältlich.

Kenntnis der Komponenten sowie das Beherrschen der zugrunde liegenden Technologien sind die Schlüsselqualifikationen, die CosmoCode in die Projekte mit einbringt, um Ihr Projekt methodisch und ökonomisch zu realisieren.

Programmiersprachen

Java

Als Enterprisesprache ungeschlagen, steht Java mit einer Vielzahl von kostenlosen Modulen bereit. Wir kennen uns bestens aus mit SE und EE, sowie einer Vielzahl von Modulen und Technologien der herausragenden Apache Software Foundation. Wir entwickeln mit Vorliebe unter Eclipse. Langjährige Erfahrungen haben wir zudem mit den Java Servern Tomcat und Jetty. An Build-Werkzeuge arbeiten wir mit Ant und Maven, an Architekturkonzepten nehmen wir PureMVC und OSGi und als UI Toolkits SWT, JFace und Velocity. Zur Verbindung von Java und PHP nutzen wir Palava.

PHP

Als Frontendsprache in Kombination mit HTML und Javascript ist PHP eine Sprache, die sowohl den schnellen Aufbau von Applikation ermöglicht als auch die Anpassung erleichtert - als interpretierte Sprache sind Änderungen ohne komplexes Deployment möglich. Die von uns verwendeten Werkzeuge und Tools hier aufzuzählen sprengt jeden Rahmen. beschränken wir uns auf die wichtigsten: CodeIgniter, Agavi und Symfony als MVC Werkzeuge, Propel fürs Object-relationale Mapping. Zur Erzeugung dynamischer PDF's nutzen wir das (kommerzielle) PDFlib. Debugging wird mit Xdebug, PHP Quick Profiler und FirePHP erledigt.

(X)HTML, XML, CSS und JavaScript

Barrierefreies, suchmaschinenoptimiertes (X)HTML ist selbstverständlich, auch Spezialthemen wie HTML Newsletter und iPhone Webapps. JavaScript und Ajax ist bei uns eine Primärdisziplin – jQuery erleichtert uns dabei die Arbeit. In unserem CMS formelCMS wird JavaScript auch serverseitig über Rhino verwendet. Langjährige Kooperation mit führenden Designagenturen Deutschlands haben unseren Blick auch auf die pixelgenaue, browserübergreifende Umsetzung geschult. Als CSS Frameworks nutzen wir Blueprint, YAML und CiSSi; zur Qualitätssicherung die Validatoren des W3C. XML als Basis (und „Schwiegermutter“ von HTML) ist uns natürlich vertraut - ebenso wie die Werkzeuge und Formate XPath, XSLT, Atom, RSS und die auf XML aufsetzenden Kommunikationsprotokolle wie z.B. REST.

Flash / ActionScript

Auch für die Authoring-Plattform Flash können wir uns erwärmen; Schwerpunkt ist hier die Programmierung von ActionScript (2 und 3).

iPhone Apps / Objective-C

C, C++, C# ist uns seit langem vertraut. Neu dazugekommen ist Apple's Objective-C - die Programmiersprache (nicht nur) für das iPhone.

.NET/C#

Der Wettstreit zwischen .NET und Java ist für uns keiner: Java gehört auf den Server, .NET auf den (Windows-)Client. Dabei setzen wir auf Borland Delphi als Entwicklungsumgebung. Entwickelt werden neben den erwähnten Desktop-Clients auch PDA-Applikationen.

C / C++

C und C++ sind ungeschlagen, wenn es um hohe Geschwindigkeit und geringen Speicherbedarf geht. Ein umfangreiches Entwicklungsprojekt im Bereich Embedded Linux/C haben wir 2009 abgeschlossen.

Perl / Shell

Perl als Administratorensprache mit der wunderbar handlichen Integration der Systemcalls ist uns seit Jahr(zehnt)en geläufig; selbstverständlich auch die Programmierung in Bash/Shell.

Datenbanken und Suchmaschinen

Wir arbeiten vorwiegend mit MySQL; es kommen aber auch Oracle, SQLite und Postgres zum Einsatz. Als hocheffiziente Konstantendatenbank präferieren wir cdb; die in Erlang entwickelte Replikations-DB CouchDB werden wir künftig auch einsetzen.

Lucene (das Developer-KIT für Suchmaschinen) ist uns seit Jahren vertraut, ebenso SOLR, die replizierbare „out-of-the-box“-Lösung auf dessen Basis.

Betriebssysteme

Das Betriebssystem für den Produktivserver lautet bei uns Linux, vorwiegend Debian. Cluster- und Hochverfügbarkeitslösungen sind uns vertraut in Konzeption und Betrieb.

Werkzeuge, mit denen wir täglich arbeiten:

  • Virtualisierung: VMware ESXi, VMware ESX, VMware Server, Xen Server, VirtualBox
  • Backuptools: rsync, Bacula
  • Systemlastauswertungstools: cricket, Munin
  • Firewall Tools: IPtables, Shorewall
  • VoIP Tk-Anlagen : Trixbox, PBX-Manager, Asterisk, AsteriskNow, FreePBX, Switchbox

CMS, Wikis, Forensysteme, Blogs

Content Management Systeme und Wikis gehören zu unseren Hauptgeschäftsbereichen; hier also nur eine kleine Auflistung: Wir kennen uns aus mit den Systemen formelCMS, Typo3, Redaxo, Drupal und OpenCMS. Kleine (und größere) Pflegeroutinen für Webinhalte entwickeln wir bedarfsweise auch selbst. Wir beherrschen DokuWiki, aber auch Trac und MediaWiki steht auf dem Speiseplan. An Forensystemen beherrschen wir punBB und haben Kenntnisse in phpBB, Vanilla, vBulletin, JForum, UNB, BurningBoard und YetAnotherForum.NET (siehe auch die von uns erstellte Marktübersicht in der Ausgabe 2008/05 der iX). Für Wikis, Foren und Blogs betreiben zudem die Softwareauswahlplattformen WikiMatrix, ForumMatrix und WeblogMatrix.

SCM / Source Code Verwaltung

In kommerziellen Kundenprojekten setzen wir in der Regel Subversion ein (gerne auch mit Trac als Ticketsystem), bei verteilten Entwicklungsaufgaben und unseren eigenen OpenSource Projekten kommen immer häufiger auch darcs und git zum Einsatz.

Mozilla/XUL

Obwohl unser Hauptaugenmerk auf der Entwicklung von Webanwendungen liegt, haben wir auch Erfahrungen in der Programmierung am anderen Ende der Leitung – dem Browser. Die Erstellung von Extensions für Mozillas Browser Firefox und das Mailprogramm Thunderbird haben wir ebenfalls im Portfolio.

Ihr Ansprechpartner

detlef.jpg Detlef Hüttemann
+49 30 814504072 Email

Kühler Kopf…

Einen kühlen Kopf bewahren, auch wenn es hoch her geht: Gerade bei Individualapplikationen mit Änderungen im Projektverlauf ist eine verbindliche Vorgehensweise notwendig.

Was nicht passt…

…wird passend gemacht. CosmoCode beherrscht alle relevanten Technologien und bringt profundes KnowHow über Werkzeuge und Systembausteine mit.

Freie Stelle: Forschungsassistent Freie Stelle: Forschungsassistent