Über Johannes Brosi

Johannes arbeitet seit 2009 als Softwareentwickler für die Mayflower GmbH. Er interessiert sich besonders für mobile (Web-)Anwendungen, Grafik-/Spieleprogrammierung (OpenGL) und Performanceoptimierung. Weitere Blogbeiträge von ihm gibt's unter: blog.jbrosi.de.

Eine Einführung in ThreeJS (WebGL)

Auf PCs und Macs haben anspruchsvolle 3D-Grafiken schon vor einer ganzen Weile Einzug gehalten. In Form von Fotogalerien, Produktkonfiguratoren und -ansichten und natürlich in Form von Spielen. Auch der mobile Bereich ist technisch mittlerweile auf dem Stand, aufwendige 3D-Grafiken berechnen zu können.

Nun stellt sich bei der Planung einer entsprechenden Anwendung oder eines Spieles aber die Frage, auf welche Programmiersprachen und Frameworks gesetzt werden sollte. Insbesondere, wenn das Produkt dann auf mehreren Plattformen erscheinen soll.

Mit diesem Artikel möchte ich eine Einführung in das JavaScript-Framework ThreeJS geben und zeigen, wie einfach es sein kann, mit vertrauten Web-Werkzeugen und dem richtigen Framework durchaus auch anspruchsvollere 3D-Anwendungen zu schreiben. Am Beispiel von CocoonJS werde ich kurz erklären, wie diese dann nicht nur auf Desktop-Browsern, sondern auch auf mobilen Endgeräten genutzt und in die Stores gestellt werden können.

Weiterlesen

Responsive Design auf der IPC / WebTech Con 2013

Mein diesjähriger IPC-Besuch stand ganz im Zeichen von Responsive (Web-)Design. Nicht nur, dass mich das Thema sehr interessiert und ich mich schon viel damit beschäftigt habe, es wurden dem Thema diesmal auch gleich zwei Special Days gewidmet. Die beginnen die Notwendigkeit für Responsive Design allmählich zu erkennen, und Experten sind sich einig: 2013 ist das „Jahr des Responsive Designs“.
Responsive Design

Auch wenn in den verschiedenen Konferenzvorträgen und auch in meiner Session auf ganz unterschiedliche Schwerpunkte des Responsive Designs eingegangen wurde, und teils die Meinungen auseinandergehen, so ist bei einer für mich entscheidenden Frage doch eindeutig ein Konsenz herauszuhören:

Weiterlesen

Responsive Design (technisches HowTo)

Was ist eigentlich Responsive Design und warum kommt man derzeit kaum noch darum herum? Welche Probleme kann man damit lösen und wie funktioniert das Alles technisch?

Auch wenn die heute eingesetzten Webtechnologien alle noch nicht besonders alt sind, ändern sich die Anforderungen und Möglichkeiten doch beinahe täglich. Transparente Bilder, Hovereffekte, Schatten und Farbverläufe sind Standard. Mittlerweile unterstützt (fast) jeder Browser JavaScript, CSS ist bei Versionspunkt 3, HTML gar bei Version 5 angelangt. Sogar der Internet-Explorer verursacht immer weniger Schmerzen und ist spätestens seit Version 9 wieder mit von der Partie.

Einige Probleme bleiben aber trotz aller Änderungen bestehen… Ich erinnere mich noch sehr gut an die Diskussionen, ob eine Website nur für 640×480 optimiert sein muss, oder ob man gar 800×600 voraussetzen kann. Darüber oder darunter gab es im Prinzip nicht viel. Mittlerweile ist es – was die Auflösungen angeht – deutlich vielfältiger und damit schwieriger geworden. Von Retina-Displays mit einer Auflösung von 2880×1800 Pixeln und mehr bis zum Smartphone mit teilweise nur 240×340 Pixeln soll die Homepage-/Webapp nicht nur „gerade so lesbar“ sein, sondern auch etwas hermachen. Eine Obergrenze ist noch nicht erreicht. Das Stichwort heißt Responsive Design. In diesem Artikel möchte ich mich mit diesem aktuellen Problem der Webentwicklung beschäftigen und aufzeigen, wie man mit diesem umgehen kann.

Weiterlesen

HTML5 Canvas mit KineticJS

KineticJS ist eine JavaScript-Bibliothek, die den Funktionsumfang des HTML5-Canvaselements erweitert und es dem Entwickler erleichert, interaktive Desktop- und Mobileanwendungen zu schreiben. In diesem Artikel wird KineticJS vorstellt und die Möglichkeiten aufgezeigt, die von der Bibliothek geboten werden.

Weiterlesen

News from „D2SBridge“

Today, we would like to present our modifications and updates concerning D2SBridge during the last weeks.

 

Plugin Functionality

We implemented a plugin system for D2SBridge. Now, you may change or enhance the base functionality by writing own plugins for D2SBridge. For example, we wrote a Plugin in a few lines attaching data submitted by the webform as an email instead of a note. Currently, we are thinking about additional hooks for the plugins in order to simplify and to enhance the capabilities of D2SBridge.

 

DimDim Plugin

We are also experimenting with a new plugin (consisting of two parts: D2SBridge and SugarCRM) which can be used to connect the drupal forms with a DimDim-Meeting. The workflow is very simple:
You create a webmeeting in SugarCRM (we wrote a new module for this purpose), enter the meeting details like start-time & date, and hit the save button. The entered data is used to schedule a meeting on DimDim. Every time you change the meeting details in SugarCRM, the changes will automatically be submitted to DimDim.
The meetings you entered in SugarCRM, may now be chosen via an autocomplete textfield in the drupal webform settings. If you relate a meeting to a webform, the lead/contact found or created by D2SBridge, will be related to the meeting in SugarCRM and will be invited to the meeting. You are able to open a new window and start the meeting in DimDim by just one click within SugarCRM.
This way you are able to see all leads/contacts in SugarCRM who have registered for a meeting.

 

There are also plans to integrate DimDim CSV meeting-reports in order to add a small note to each lead – if the person did actually participate in the meeting he registered for – but we will tell you more about that in the near future.

A new project in the „Mayflower Labs“: D2SBridge

Idea

For several months, we are using Drupal for our web page (mayflower.de) and SugarCRM Professional Edition for managing our customer relations.

 

On mayflower.de, we provide various forms for our customers helping them to get in contact with us. Before using the D2SBridge, the forms were sent to an internal email address and added manually to our Leads and Contacts. We were thinking of how we could improve this workflow and consequently started to develop the D2SBridge.

 

“D2SBridge” stands for “Drupal to SugarCRM Bridge” and has the aim to connect these two products.

 

Description

The D2SBridge enhances the webform module of Drupal to provide additional settings:
You can activate the D2SBridge for every form directly in the form’s settings menu. If activated, you are able to choose the corresponding SugarCRM fields for each form element. It is possible to define preselected values for form fields, as well as to create templates for the resulting SugarCRM entries. SugarCRM standard fields can be used but also Custom fields.

 

Every time an entry is made, the D2SBridge takes the submitted values and stores them in the Drupal database. First of all, we were thinking of adding the entries directly from the Drupal module to the SugarCRM via SOAP but we dropped that idea for an important reason:

We do not want the SugarCRM to be reachable via the internet and we do not want our webserver to be able to access our intern network – both for security reasons.

Keeping this in mind, we decided to invert the process:
An additional process on a machine in the internal network gathers the data from the webserver and submits it via SOAP to SugarCRM. With this approach, we reach a high level of security while maintaining the wanted functionality.
The submitted data is attached to an existing lead or contact as a note. If there is no corresponding lead or contact yet, the D2SBridge creates one and attaches the note to it.

 

Key Features already implemented

  • Comfortable admin interface within the Drupal menu
  • No loss of data if the SugarCRM server is offline for a while, the data entered meanwhile gets submitted when the SugarCRM is online again
  • Secure transmission from and to SugarCRM
  • Creation of leads and contacts
  • Attachment of notes to leads/contacts
  • Relating of leads/contacts to target lists and/or campaigns
  • Periodic email notification about incoming entries and their status
  • Autocomplete functionality for some of the preselection fields