Archive for: ‘September 2012’
IBM Beratungssparte wird erneut Special Expertise Partner von SAP
Deutschland kann seine Präsenz auf der Top500-Supercomputing-Liste mehr als verdoppeln
IBM ist SAP Partner Center of Expertise
Supercomputing: Jülich wieder an der Weltspitze
Bilanztest bestanden: 30 Jahre IBM Kreditbank
Institut für Betriebswirtschaft der Universität Stuttgart mit renommiertem IBM Forschungspreis ausgezeichnet
Re: 8. DNUG Regionaltreffen Berlin am 25.09.2012 Inhouse bei ilink
Als Antwort auf: 8. DNUG Regionaltreffen Berlin am 25.09.2012 Inhouse bei ilink
Das war eine gelungene Veranstaltung gestern, sehr interessante Vorträge, gute Diskussion und von den drei Organisatoren bestens vorbereitet - nach der Kaffeepause war ich auch dabei. Herzlichen Dank allen Aktiven!Video: Kurt De Ruwe about Social Business at Bayer
You can watch all presentations of last week's social business event at the Porsche Museum in Stuttgart on the IBM Webcast Channel (most of them are in German). I will post another article about the event later this week.
Die Geschichte einer Fußball-Ente – Fanartikel Fieber Teil I
Für den Händler ist die Ente ein kleiner Posten im Fanartikel-Sortiment. Mit ihrer Marge von wenigen Cent entscheidet sie sicher nicht allein über Sieg oder Niederlage im Wettbewerb am Markt. Und doch zeigt die Ente exemplarisch, welche Räder ineinandergreifen müssen, damit ein Produkt am Ende in der Hand des Kunden landet -- und wie IBM Smarter Commerce hilft, diese Wertschöpfungskette intelligent und optimiert zu gestalten.
Einige Wochen vor dem Anpfiff zur Fußball-Europameisterschaft 2012 trifft Einzelhändlerin Angela V. eine unter vielen Entscheidungen: Eine Badeente im Fußballtrikot kommt ins Fanartikel-Sortiment. Im Ladengeschäft wird der Abverkauf des Produkts ganz klassisch über einen großen Wühltisch gefördert. Der weckt die Aufmerksamkeit und ist genau das Richtige für ein niedrigpreisiges Produkt mit Charme Potential.
Fabian M. jedoch hat die Ente nicht im Webshop oder einem E-Mail-Newsletter entdeckt, sondern ist über ein Foto aufmerksam geworden, das einer seiner Kumpels auf Facebook geteilt hat.
Empfehlungen über soziale Netzwerke, das zeigt eine Reihe aktueller Studien, haben mehr Einfluss auf Kaufentscheidungen als die klassischen Marketing-Maßnahmen eines Unternehmens. Und ob die Ente ein Top oder ein Flop, berühmt oder bloßer Ladenhüter wird, entscheiden Social Networks ganz wesentlich mit.
Die Einzelhändlerin Angela V. beobachtet deshalb genau, was im Social Web passiert. Mit einer Webanalytics-Lösung kann sie auswerten, über welche Quellen die Besucher auf ihre Seiten kommen -- ob von Facebook, einer Fußball-Website oder einem selbst geschalteten Werbebanner. Damit lässt sich auch nachvollziehen, ob und welche Umsätze aus den eigenen Marketingaktivitäten im Social Web resultieren und welchen Benutzern gezielt Produktempfehlungen gemacht werden können. So kann auch die Badeente ihre ganz eigene Fangemeinde im Social Web bekommen.
Das Foto hat Fabian M. bereits vor der Europameisterschaft gesehen, doch nun erlebt er die Ente sogar live. Denn sein Kumpel bringt sie mit zum ersten Public Viewing am Badesee. Fabian ist begeistert: Real sieht die Quietscheente fast noch besser aus als auf dem Foto. Die muss er auch haben, am besten sofort.
Ein klassischer Fall für Mobile Commerce: Fabian M. zückt sein Smartphone, sucht kurz und findet die Ente innerhalb weniger Sekunden im Webshop von Angela V. Da der Webshop an das mobile Display angepasst ist, kann er das Produktbild, Preis und eine angepasste Kurzbeschreibung komfortabel und ohne längeres Scrollen erkennen. Die Bezahlfunktion ist ebenfalls einfach gestaltet und erfordert nur die Eingabe der nötigsten Daten. Noch bevor das Spiel losgeht, hat Fabian M. die Badeente bestellt.
Teil II des Fanartikel Fiebers folgt.
XPages: Capture Signatures with the jQuery-Plugin ‘jSignature’
In one of my current projects it is one of the goals that the members of the field staff have the possibility to sign a report directly on their iPad. After some research I found the very cool jQuery plugin jSignature, which easily allows to add a signature capture field to a XPage.
The plugin is very easy to use: Just add a <div> to your XPage and initialize the plugin with the .jSignature() constructor and that’s it! The API is very simple, but provides everything needed: The captured signatures can be stored in different formats like PNG or SVG or as native Vector. Additionally they can be encoded as BASE64 or BASE30. The data can restored as easy as they can be saved: Just one API call and it’s done.
To save the signatures to a Notes document, the resulting data can be copied to a hidden input field. In the provied example above I additionally added the format of the signature. For a better handling of the generated data I decided to store the data in the SVG format, because this allows to save it directly in standard notes text field (without having problems because of the 32 K limit). This works well and the data can be displayed in standard browsers without any problems. Only in XPiNC this will not work, because the SVG format is not supported. PDFs doesn’t support SVG too, that’s why I created a converted agent using the Apache Batik framework.
I will add a demo database asap. A description of parameters to customize the plugin can be found here.
P.S. The compressed Version is not running on teamstudio Unplugged. You have to use the uncompressed Version. The example uses the x$ function of Mark Roden.
XPage example
<?xml version="1.0" encoding="UTF-8"?> <xp:view xmlns:xp="http://www.ibm.com/xsp/core"> <xp:this.resources> <xp:script src="/x$.js" clientSide="true"></xp:script> <xp:script src="/jSignatureHandler.js" clientSide="true" /> <xp:styleSheet href="/jSignature.css"></xp:styleSheet> </xp:this.resources> <xp:this.data> <xp:dominoDocument var="documentSig" formName="frmSignature" /> </xp:this.data> <script src="js/jquery-1.8.1.min.js" /> <script src="js/jSignature/jSignature.min.js" /> <xp:div id="jSignature" style="width:400.0px"></xp:div> <xp:scriptBlock id="scriptBlockSignature"> <xp:this.value><![CDATA[ $(document).ready(function() { sigHandler.init( "#{id:jSignature}", "#{id:inputHiddenSignatureData}", "#{id:inputHiddenSignatureFormat}" ); } )]]></xp:this.value> </xp:scriptBlock> <xp:button id="button1" value="Reset"> <xp:eventHandler event="onclick" submit="false"> <xp:this.script><![CDATA[ sigHandler.reset(); ]]></xp:this.script> </xp:eventHandler> </xp:button> <xp:button id="button2" value="Save"> <xp:eventHandler event="onclick" submit="true" refreshMode="complete"> <xp:this.script><![CDATA[ return sigHandler.save(); ]]></xp:this.script> <xp:this.action> <xp:saveDocument var="documentSig" /> </xp:this.action> </xp:eventHandler> </xp:button> <xp:inputHidden id="inputHiddenSignatureData" value="#{documentSignature.SignatureData}" /> <xp:inputHidden id="inputHiddenSignatureFormat" value="#{documentSignature.SignatureFormat}" /> </xp:view>
CSJS library “jSignatureHandler.js”
/** * signatureHandler * JS Object for handling the signature data * Requires jSignature jQuery plugin & special * function "x$" from Mark Roden * * @author Sven Hasselbach * @category JavaScript * @category jQuery * @category UI * @version 1.0 */ var signatureHandler = function() { _module = "signatureHandler"; _idJSignature: null; // DOM id of JSignatue DIV _idItemData: null; // DOM id of INPUT for signature data _idItemFormat: null; // DOM id of INPUT for signature format _objDOMJSignature: null; // handle to DOM object _objDOMItemData: null; // handle to DOM object _objDOMItemFormat: null; // handle to DOM object _maxSize = 32000; // max characters to store (32K limit!) _format = "svg"; // format used /** * set DOM id of JSignature DIV * @param String id */ this.setJSignatureId = function( id ){ this._idJSignature = id; } /** * get DOM id of JSignature DIV * @return String id */ this.getJSignatureId = function(){ return this._idJSignature; } /** * set DOM id of data item * @param String id */ this.setItemDataId = function( id ){ this._idItemData = id; } /** * get DOM id of data item * @return String id */ this.getItemDataId = function(){ return this._idItemData; } /** * set DOM id of format item * @param String id */ this.setItemFormatId = function( id ){ this._idItemFormat = id; } /** * get DOM id of format item * @return String id */ this.getItemFormatId = function(){ return this._idItemFormat; } /** * get handle to DOM object of JSignature DIV * @return Object */ this.getJSignatureDOMObj = function(){ return this._objDOMJSignature; } /** * set handle to DOM object of JSignature DIV * @param Object */ this.setJSignatureDOMObj = function( obj ){ this._objDOMSignature = obj; } /** * get handle to DOM object of data item * @return Object */ this.getItemDataDOMObj = function(){ return this._objDOMItemData; } /** * set handle to DOM object of data item * @param Object */ this.setItemDataDOMObj = function( obj ){ this._objDOMItemData = obj; } /** * get handle to DOM object of format item * @return Object */ this.getItemFormatDOMObj = function(){ return this._objDOMItemFormat; } /** * set handle to DOM object of format item * @param Object */ this.setItemFormatDOMObj = function( obj ){ this._objDOMItemFormat = obj; } /** * initialize object * * @param String id of jSignature DIV * @param String id of data item INPUT * @param String id of format item INPUT * */ this.init = function( idJSig, idItemData, idItemFormat ){ try{ // init jSignature this._idJSignature = idJSig; this._objDOMSignature = x$( this._idJSignature ) ; this._objDOMSignature.jSignature(); // init data item this._idItemData = idItemData; this._objDOMItemData = x$( this._idItemData ); // init format item this._idItemFormat = idItemFormat; this._objDOMItemFormat = x$( this._idItemFormat ); return true; }catch(e){ var errMsg = _module + "::" + arguments.callee.name + "\n"; for( p in e ){ errMsg += p + ": '" + e[p] + "'\n"; } console.error( "Error!\n\n" + errMsg ); return false; } } /** * reset jSignature */ this.reset = function(){ try{ this._objDOMSignature.jSignature("reset"); return true; }catch(e){ var errMsg = _module + "::" + arguments.callee.name + "\n"; for( p in e ){ errMsg += p + ": '" + e[p] + "'\n"; } console.error( "Error!\n\n" + errMsg ); return false; } } /** * saves the data from jSignature * */ this.save = function(){ try{ var datapair = this._objDOMSignature.jSignature( "getData", _format ); var format = "data:" + datapair[0]; var data = datapair[1]; // check max size! if( data.length > _maxSize){ alert( "The size of the signature is too large. Please retry!" ); return false; } this._objDOMItemData.val( data ); this._objDOMItemFormat.val( format ) return true; }catch(e){ var errMsg = _module + "::" + arguments.callee.name + "\n"; for( p in e ){ errMsg += p + ": '" + e[p] + "'\n"; } console.error( "Error!\n\n" + errMsg ); return false; } } } // init JS instance sigHandler = new signatureHandler();
[EN] Meet the C-Suite: The Chief Marketing Officer Must Focus on the Customer
According to the following IBM CMO study infographic, the biggest problem CMOs have is adapting to the customer-centric social landscape. It’s not about market trends — it’s about the customer. Additionally, it’s not about the data, it’s about how data can help build relationships.
I like this infographic verymuch. What I like even more is the message to (finally) focus on the customer. In the social age it is about dialogue and communication, not about spamming people with Marketing Messages and for sure not about endless slideware and spreadsheets. Go out there and communicate with your customers. And take them serious.
Magic Worker
In meinen langen Jahren bei der IBM, fühlte ich mich von Zeit zu Zeit wie einer, der Wunder vollbringen soll - zuweilen gelingt mir dies sogar.
Im Frühjahr diesen Jahres durfte ich den PureApplication System-Launch in Deutschland begleiten. Dabei wurde ich mit technischen Details konfrontiert,
welche manch einem die Ohren schlackern lassen. Mir ging es da etwas besser - mein Informatik Background hält mich seit meinem Studium zuverlässig,
in jeder technisch kniffligen Frage, über Wasser. Auch meine Tätigkeit als Field Marketing Leader für den Produktbereich WebSphere,
der sich rund um die Themen Application Infrastructure, Integration und Middleware dreht, verschaffte mir Einsichten, durch die ich das eine oder
andere aus dem Hut zaubern konnte.
Und genau das Produkt, dessen Geburt ich miterlebte, hilft nun auch anderen dabei, Wunder zu vollbringen.
Denn Wunder gibt es nicht nur in weit entfernten Galaxien
Ich möchte an dieser Stelle eine beliebte Szene aus Star Trek erinnern: Das Schiff ist kaputt und Captain Kirk fragt seinen Chefingenieur Scotty,
wie lange es dauern wird, bis die Systeme wiederhergestellt sind. Seine Antwort lautete: "Acht Wochen, Sir. Aber Sie haben keine acht Wochen,
also werde ich es für Sie in zwei Wochen erledigen." Daraufhin fragte Kirk, ob Scotty alle seine Schätzungen mit
vier multiplizieren würde. Dieser antwortet: "Natürlich. Wie sonst wäre ich in der Lage, meinem Ruf als Wundertäter gerecht zu werden?"
- Hier fühlte ich mich mit Scotty sehr verbunden, weshalb mir diese Szene im Gedächtnis blieb.-
Was würdet Ihr als Dienstleister tun, wenn Euer Kunde einige sehr anspruchsvolle Anforderungen hat und Ihr nicht das Glück besitzt, einen Scotty im
Maschinenraum zu haben? Die Lösung könnte ein weiterer "magic worker" genannt PureApplication System sein!
MAGIC WORKER -- PureApplication System
Für euer Hintergrundwissen hab ich ein paar Informationen gesammelt:
PureApplication System wurde entwickelt, um eine hohe Verfügbarkeit zu gewährleisten. Auf der Hardware-Ebene können geplante und unerwartete Ausfälle
durch Design minimiert werden. Wir können sehen, dass alle Komponenten redundant aufgebaut sind. Jeweils zwei Einheiten von Rechenknoten, Speichern,
Netzwerken, Stromversorgungen und Management-Knoten verhindern einen Single Point of Failure im System. Wenn eine dieser Komponenten ausfällt, kann sie
ohne Ausfallzeit ersetzt werden. Das System erkennt neue Einheiten und bereitet deren Nutzung automatisch vor.
Geplante Ausfallzeiten, aufgrund von Wartungsarbeiten am System und Code-Updates, sind mit PureApplication System kürzer und weniger riskant. Der Grund
dafür ist, dass es nicht mehrere Korrekturen für einzelne Teile sind. Sie erhalten immer ein Update für das gesamte System. Stellt Euch vor, wie viel Zeit
und Geld für regelmäßige Wartung eingespart werden könnten, wenn es nur einen Patch für die gesamte Infrastruktur gäbe.
Durch Virtualisierung ist das System in der Lage, Scale-out-Anwendungen dynamisch und on-demand zu bearbeiten. Wenn der Anwendungsserver maximal ausgelastet
ist, werden zusätzliche Instanzen automatisch gestartet, um einen Engpass auf der Hardware-oder Middleware-Ebene zu vermeiden. Die Bereitstellung einer hohen
Elastizität ist nicht neu, aber im PureApplication System bereits integriert und extrem einfach anzuwenden.
Scotty hätte sich sicher über das uns zur Verfügung stehende System gefreut und damit seine eigenen Wunder noch beeindruckender wirken lassen.