Archive for: ‘März 2014’

Relationales Datenbank Modell mit Domino und XPages implementieren – Track Entwicklung zur 40. DNUG Konferenz am 20./21. Mai 2014 in Karlsruhe

17. März 2014 Posted by Roswitha Boldt

Neues Konzept für Anwendungsentwicklung:

Es wird gezeigt, dass aus einem dokumentenbasierten Datenbanksystem, wie Domino, ein objektorientiertes Datenbankmodell erstellt werden kann und man dadurch beweist, dass völlig "neue Formen" der Modellierung machbar sind.

Die schwierige Aufgabe bei der Entwicklung neuer Datenbanken ist immer wieder das geeignete Datenmodell zu finden. Das hängt damit zusammen, dass man hierfür die weiteren Erweiterungen und Anpassungen, die durch Applikation Lifecycle Management entstehen, berücksichtigen muss. Um
komplexere Aufgabenstellungen bewältigen zu können, benötigen viele Entwickler ein stabileres und leicht erweiterbares Datenmodell, wie es ein
Relationales Datenbankmodell zu bieten hat.

Nur wie? Welche Vorgehensweise ist die richtige?

In ersten Teil des Vortrags werden die benötigten Theoriekenntnisse erklärt und mit Modelliertechniken erweitert. Anhand eines Beispieles werden diese Möglichkeiten angewendet und vertieft.

In der zweite Teil des Vortrags wird das Beispiel live implementiert und über technische Details diskutiert.

 

Referent ist Alexander Skurka, Sparkassenverband Bayern.

 

Mehr zum Ziel des Beitrags, dem technischen Niveau usw. im Forenbereich dieser Community.

 

Link zur 40. DNUG Konferenz am 20./21. Mai 2014 in Karlsruhe

 

Cloud Computing hat sich in Deutschland längst durchgesetzt

17. März 2014 Posted by IBM Experts

Cloud Computing hat sich in der deutschen Bevölkerung durchgesetzt: 60 Prozent der Erwachsenen nutzen die Datenwolke im Internet bereits oder planen dies in nächster Zeit zu tun. Auf der anderen...

1. Hausaufgabe erledigt – 1st Homework done

16. März 2014 Posted by motzet-online.de

1. Hausaufgabe erledigt - 1st Homework done zusammen mit den zwei Stunden im Kurs und den 7 Stunden Hausaufgabe heute, habe ich schon 9 Stunden verbraucht. Mit dem Ergebnis bin ich ganz zufrieden: I w ...

[EN] IBM Corporate Movie: Too much paperwork! Directed by Muppet founding father Jim Henson | Wired.com

16. März 2014 Posted by StefanP.

This is so cool, in particular in the age of IBM Watson:

Too much paperwork!

That’s the message delivered by Paperwork Explosion, the 1967 corporate movie masterpiece produced by IBM and an unlikely collaborator: Muppet founding father Jim Henson. …

”Machines should work. People should think.”

via Tech Time Warp of the Week: Watch IBM’s Greatest Corporate Film, Directed by … Jim Henson? | Wired Enterprise | Wired.com.


Filed under: English Tagged: featured, IBM, Workplace-of-the-Future

EntwicklerCamp 2014: Morgen geht’s los

16. März 2014 Posted by Thomas Bahn

EntwicklerCamp
Ich sitze gerade im Zug von Kiel nach Hamburg, auf meinem Weg nach Gelsenkirchen, wo morgen im Maritim Hotel das EntwicklerCamp 2014 beginnt. Seit 2007 bin ich mit bis zu drei Vorträgen bei jedem EntwicklerCamp dabei gewesen.

Was erwarte ich von den nächsten drei Tagen?

Zunächst einmal ein großes, herzliches und buntes Wiedersehen mit Bekannten und Freunden. Eine der schönsten Aspekte der Camps ist für mich die großartige Gemeinschaft von tollen Leuten mit einem gemeinsamen Interesse. Und beim EntwicklerCamp ist das natürlich die Entwicklung von nützlichen Anwendungen auf Basis von IBM Notes und Domino.

Dann sind da die positiven, informativen und fast freundschaftlichen Gespräche in den Pausen und an den gemeinsamen Abenden. Natürlich werden viele fachliche Fragen gestellt und beantwortet, aber auch darüber hinaus findet sich so manches gemeinsames Interesse und viele tolle Themen, über die wir uns genüsslich austauschen.

Last, but not least sind da die Vorträge. Von Einführungen in neue Themen, über die praxisorientierten Hands-Ons bis zu Expeditionen in die tiefsten Tiefen der Entwicklung mit Notes und Domino, alle lehrreich, jedes Mal inspirierend und immer voller nützlicher Tipps und Tricks.

Diesmal werde über ich zwei, aus meiner Sicht besonders wichtige und relevante Themen vortragen dürfen:

Am Montag geht es gleich los mit Session 2 im Track 1:
"Fehler sind nützlich, aber nur, wenn man sie schnell findet."  - Fehlerbehandlung in Notes

John Maynard Keynes stellte einst fest: "Fehler sind nützlich, aber nur, wenn man sie schnell findet."

Fehler sind unvermeidlich. Punkt!

Selbst wenn man genügend Zeit bekäme, wirklich jeden Sonderfall durch zu denken, und die gesamte Anwendungen ausgiebig immer wieder zu testen, auch wenn man die fortschrittlichsten und teuersten Werkzeug benutzen könnte, die besten Experten nutzen dürfte, auch dann sind Fehler unvermeidlich, schon allein, weil viele kritische Komponenten außerhalb der Anwendung liegen: Hardware, Netzwerk, Betriebssystem, andere Anwendungen, Benutzer und sogar der Notes-Client soll ja gerüchteweise ein paar Fehler haben...

Und wer bekommt schon alle diese Ressourcen? Die Realität ist wohl eher: "Ich brauche diese Funktion gestern." und "Du brauchst zwei Tage? Du hast zwei Stunden."

In dieser Session lernst du, wie du
  • professionell mit Fehlern umgehen kannst und warum Fehlerbehandlung mehr ist als Fehlerprotokollierung,
  • alle Informationen zum Fehler und der Situation automatisch einsammelst, so dass du den Fehler in Zukunft richtig behandeln kannst,
  • Fehler beheben kannst, bevor sie überhaupt gemeldet werden und
  • eine Anwendung so robust machen kannst, dass sie nach einem Fehler sinnvoll reagiert und weiter laufen kann.

Wir schlendern durch die verschiedenen Programmiersprachen, die wir in Notes verwenden können: von der Formelsprache, über LotusScript und Java bis JavaScript. Dabei erfährst du in der Praxis bewährte Vorgehensweisen für die Protokollierung und - wo sinnvoll möglich - Fehlerbehandlung.

Du bekommst fertigen, erprobten Code für deine Anwendungen, den du sofort einsetzen kannst, und viele pragmatische Tipps und Best Practices, die dir deine Arbeit vereinfachen werden.

Um maximal von dieser Session zu profitieren, solltest du schon Anwendungen in Notes entwickelt haben und zumindest einige der genannten Programmiersprachen beherrschen.


Am Mittwoch geht es dann in die Tiefen von JavaScript mit Session 8 im Track 3: JavaScript für Fortgeschrittene

Mit den XPages hat JavaScript auch Einzug gehalten auf dem Server (Server-Side JavaScript = SSJS), in allen interaktiven Web-Anwendungen wird es auch im Browser genutzt - egal ob diese auf der "klassischen" Web-Entwicklung oder auf XPages-Technologie basieren (Client-Side JavaScript = CSJS).

Die JavaScript-Programmierung geht dann aber über das bisherige Maß (Feld-Validierung, vielleicht noch ein bisschen DOM-Manipulationen) deutlich heraus und muss Aufgaben abdecken, die bisher mit (objekt-orientierten) LotusScript und Java realisiert wurden. Die Komplexität der JavaScript-Programmierung steigt damit zwangsläufig und deutlich an.

Daher ist ein tiefgehendes Verständnis von JavaScript als Programmiersprache jetzt wichtiger denn je. Die Sprache ist sehr flexibel und hat einige eher ungewöhnliche, neue Konzepte (zumindest für LotusScript- und Java-Programmierer), die richtig verstanden werden müssen, um das Beste aus ihr heraus zu holen.

In dieser Session lernt ihr diese Konzepte (u.a. Kontexte, objekt-orientierte Programmierung mit JavaScript), ich erkläre ich die besonderen Stärken dieser Sprache (z. B. Guard- und Default-Operatoren, "Verbesserungen" existierender Objekte wie Object und Function), zeige typische Stolperfallen in JavaScript (wie With und Semikolon-Einfügung) und wie man sie vermeidet.

Der Vortrag ist konzipiert für Entwickler, die bereits Grundkenntnisse in JavaScript erworben haben.

New Whitepaper: DDS and SQL – The Winning Combination for DB2 for i

16. März 2014 Posted by Ralf Petter

If you are still using DDS and record level access in your "IBM i" applications you are missing most of the enhancements IBM has provided for "IBM i" since V5R1. While DDS and record level access are still supported and there are statements of directions that they will be supported in the future every "IBM i" Developer should really plan to migrate their applications from DDS to SQL.

This migration is really very easy to do because it is more an evolution than a revolution. You can access DDS DB2 tables with SQL and you can access SQL DB2 tables with record level access. So you can write new programs with SQL while older programs are still using record level access. You can even mix SQL and record level access in one program without problems.

There are Wizards in IBM i Navigator to retrieve SQL DDL (Data Definition Language) sources from your DDS tables. When you convert tables and indexes from DDS to SQL you will get improved performance, because the SQL tables and indexes have an optimized page size.

Kent Milligan and Dave Hendrickson have provided a white paper which shows the advantages of SQL over DDS in detail. I really recommend this white paper to every "IBM i" application developer.


Kindle Fire HD erste Eindrücke

15. März 2014 Posted by Ralf Petter

Gestern ist mein Kindle Fire HD um 79 EUR gekommen und ich habe schon ein wenig damit gespielt. Meine ersten Eindrücke sind wirklich sehr zwiespältig. Auf der einen Seite erhält man für einen sehr geringen Preis ein sehr gut verarbeitetes Tablet mit einem hervorragenden Display und sehr einfacher Bedienung mit perfekter Anbindung an das Amazon Ökosystem. Auf der anderen Seite ist der Amazon App Store im Vergleich zum Google Playstore sehr schlecht bestückt. Vor allem fehlen mir die Google Apps wie Maps, Mail und Youtube doch mehr als ich zuerst geglaubt habe.

Auf der Habenseite steht dann aber der meiner Meinung nach perfekte Einrichtungsassistent und die Bedienung. Das Tablet ist soweit schon vor konfiguriert und man muß nur noch seinen Standort, das Passwort für das WLAN eingeben und schon geht es los. Man hat sofort Zugriff auf alle Inhalte die in der Amazon Cloud gespeichert sind. Die ersten Schritte werden einen immer beim Aufruf einer neuen Funktion durch ein kurzes Tutorial vorab erklärt. Die Bedienung ist auf das notwendigste reduziert und nichts lenkt von den eigentlichen Inhalten ab. Auf jeden Fall auch für Computeranfänger bestens geeignet.

Die Software macht einen sehr ausgereiften Eindruck und wenn nicht der wirklich schlechte Appstore wäre, dann könnte ich mir selbst für den Normalpreis von 129 EUR nur schwerlich ein besseres Einsteigertablet vorstellen.  So bin ich froh, dass ich für den Kindle nur 79 EUR gezahlt habe und nutze den Kindle für die Amazoninhalte, als Couchsurftablet und als extrem preiswerten Controller für meine Sonos Anlage.Bezüglich der Akkulaufzeit habe ich noch keine ausreichenden Erfahrungen, aber der erste Eindruck sieht nicht schlecht aus.

Vielleicht wird ja in Zukunft wenn dementsprechend viele Fire Tablets verkauft sind der Amazon Appstore besser unterstützt.



CeBIT Highlights from Day 4: Mobile, Security and Product Innovation.

14. März 2014 Posted by Yathish Kumar

(This is a guest entry posted on behalf of Georg Ember)

image

The fourth day at CeBIT was sprinkled with some amazing sessions from industry experts as well as technology evangelists.

One session which many visitors looked forward to, without a doubt, was the session by Apple Co-Founder Steve Wozniak (“The Woz”). The session was so packed that visitors sat on the floor to listen to the great IT icon! Wozniak spoke about more than a dozen topics varying from big data to new technology and mobile to security.

image

Apple Co-Founder Steve Wozniak and Moderator Brent Goff

image

Jam packed crowd for Wozniak’s session!

IBM PureSystems at CeBIT:

Many clients visited the IBM PureApplication and PureData Systems demo points and showed increased interest in –

  • Industry solutions like insurance applications on PureApplication System (IBM Insurance Operations of the future, IBM IOF or LifeFactory by COR&FJA)
  • Analytics solutions for risk management for banking (IBM Cognos BI and IBM ODM)
  • Product lifecycle management (PLM) solutions

While many applications in IOF and PLM are running successfully on Websphere Application Server and DB2, the benefit of using this application environment on PureApplication System is huge. Since IBM PureApplication System completely deploys the underlying middleware automatically under the covers by using Middleware patterns, clients can easily install their IOF or PLM applications based on the deployed middleware very quickly.

In general, any application environment that requires multiple middleware products, either from IBM or non-IBM (WebSphere, MQ, Apache, Tibco, TDS MSAD, IIS, etc.) or open source (mySQL, Tomcat, JBOSS, LAMP stack, OpenLDAP, Nagios, etc.), will certainly benefit from PureSystems Patterns.

image

Even if users do not have a ready application pattern, they can start by deploying the middleware patterns and install the application on top of the deployed middleware pattern, semi-automatically. PureApplication System offers multiple patterns for middleware that is required to run modern web applications.

Clients are attracted by PureApplication and PureData Systems because of the benefits from the flexibility of PureApplication and Pattern deployments.

To conclude, PureApplication and PureData Systems are all about quickly on-boarding applications, optimizing time to market, reducing IT operations costs and standardize IT processes for cloud computing.

Do not forget to check back again tomorrow for the recap on the last day of the event. Check out the tips below to stay connected on social media at CeBIT 2014:

Fragerunden vermitteln tiefe Einblicke in Spezialgebiete

14. März 2014 Posted by IBM Experts

Was für eine CeBIT-Woche – vor allem für unsere Experten. In vier Q&A-Sessions zu den Themen Cloud, Analytics&Big Data, Social Business und Mobile Enterprise standen sie Ihnen live von...

[DE] CeBIT Mittelstands TV: Diskussion rund um Social Business im Mittelstand [Video]

14. März 2014 Posted by StefanP.

Das war eine interessante Diskussion rund um Social Business und den deutschen Mittelstand, lebhaft und durchaus kontrovers. Einfach mal reinschauen.


Filed under: Deutsch Tagged: featured, IBM, Mittelstand, SocBiz, SocialMedia

Quick-n-Dirty: Use “isDocEditable” in an old school Java Agent

14. März 2014 Posted by Sven Hasselbach

If you want to check if a document is editable, you can do this in an old school Java agent with the NAPI function isDocEditable provided by the XSPNative class.

First you have to add the required JARs to your agent. Then, you have to call XSPNative.isDocEditable with the document you want to test:

import lotus.domino.AgentBase;
import lotus.domino.Database;
import lotus.domino.Document;
import lotus.domino.Session;

import com.ibm.domino.napi.c.xsp.XSPNative;

public class JavaAgent extends AgentBase {

    public void NotesMain() {

      try {
          Session session = getSession();
          Database db = session.getCurrentDatabase();
          Document doc = db.getAllDocuments().getFirstDocument();
          System.out.println( "Is Editable: " + XSPNative.isDocEditable( doc ) );
      } catch(Exception e) {
          e.printStackTrace();
       }
   }
}

P.S. Keep in mind that this article has been posted in the “Quick-n-Dirty” category.

XPages: Set a Theme for a single XPage

14. März 2014 Posted by Sven Hasselbach

… or how you can use your own FacesContext implementation.

What we need first is our own FacesContext implementation with new methods to set the StlyeKitId (which is the name of the Theme) for initializing the StyleKit instance:

package ch.hasselba.xpages;

import javax.faces.context.FacesContext;
import com.ibm.xsp.application.ApplicationExImpl;
import com.ibm.xsp.context.FacesContextExImpl;
import com.ibm.xsp.stylekit.StyleKit;

/**
 * ThemeSwitcherFacesContext
 * allows to switch the theme during runtime
 * 
 * @author Sven Hasselbach
 * @version 0.1
 */
public class ThemeSwitcherFacesContext extends FacesContextExImpl {

    private StyleKit styleKit;
    private String styleKitId;
    private FacesContext delegated;
    /**
     * constructor
     * 
     * @param fc
     *     delegated javax.faces.context.FacesContext
     */
    public ThemeSwitcherFacesContext(FacesContext fc) {
        super(fc);
        this.delegated = fc;
    }

    /**
     * returns current StyleKit
     * 
     * @return com.ibm.xsp.stylekit.StyleKit
     *      the StyleKit used for rendering the view
     */
    public StyleKit getStyleKit() {
        if (this.styleKit == null) {
            this.styleKit = super.getStyleKit();
        }
        return this.styleKit;
    }

    /**
     * sets the StyleKit
     * 
     * @param stlyeKit
     *     the com.ibm.xsp.stylekit.StyleKit to use 
     */
    public void setStyleKit(final StyleKit styleKit) {
        this.styleKit = styleKit;
    }

    /**
     * returns the current StyleKitId (aka Theme name)
     * 
     * @return String
     *     the id of the StyleKit
     */
    @Override
    public String getStyleKitId() {
        if (this.styleKitId == null) {
            this.styleKitId = super.getStyleKitId();
        }
        return styleKitId;
    }

    /**
     * sets the StyleKitId
     * 
     * @param styleKitId
     *     the id of the StyleKit
     */
    public void setStyleKitId(final String styleKitId) {
        this.styleKitId = styleKitId;
    }

    /**
     * initializes the StyleKit for the current view
     */
    public void loadStyleKit() {
        this.styleKit = ((ApplicationExImpl) getApplication())
                .getStyleKit(this.styleKitId);
    }
}

But you cannot register the FacesContext implementation directly. That’s why we have to build our own FacesContextFactory to inject our FacesContext instance this:

package ch.hasselba.xpages;

import javax.faces.FacesException;
import javax.faces.context.FacesContext;
import javax.faces.context.FacesContextFactory;
import javax.faces.lifecycle.Lifecycle;
import com.ibm.xsp.FacesExceptionEx;
import com.ibm.xsp.context.FacesContextFactoryImpl;

/**
 * ThemeSwitcherFacesContextFactory
 * 
 * @author Sven Hasselbach
 * @version 0.1
 */
public class ThemeSwitcherFacesContextFactory extends FacesContextFactory {

    private FacesContextFactory delegate;

    @SuppressWarnings("unchecked")
    public ThemeSwitcherFacesContextFactory(){
        try{
            Class clazz = Class.forName( "com.sun.faces.context.FacesContextFactoryImpl" );
            this.delegate = (FacesContextFactory) clazz.newInstance();
        }
        catch (Exception e){
          throw new FacesExceptionEx(e);
        }
    }

    public ThemeSwitcherFacesContextFactory(FacesContextFactory fcFactory){
        this.delegate = fcFactory;
        if ((this.delegate instanceof FacesContextFactoryImpl)) {
            this.delegate = ((FacesContextFactoryImpl)this.delegate).getDelegate();
        }
    }

    public FacesContext getFacesContext(Object param1, Object param2, 
        Object param3, Lifecycle paramLC) throws FacesException {
        FacesContext fc = this.delegate.getFacesContext(param1, param2, param3, paramLC);
        return new ThemeSwitcherFacesContext(fc);
    }
}

Now, you have to add the FacesContextFactory to the faces-config.xml to activate it:

<?xml version="1.0" encoding="UTF-8"?>
<faces-config>
  <factory>
    <faces-context-factory>
        ch.hasselba.xpages.ThemeSwitcherFacesContextFactory
    </faces-context-factory>
  </factory>
</faces-config>

If you open the XPage, an error will occur:

This happens because there are some java security restrictions with the class loader of the delegated classes. You have to modify the java security in the java.policy file (you can limit the the grant to specific database if you want).

grant {
    permission java.security.AllPermission;
};

Then you can add a Theme to your XPage, f.e. this one:

<theme
    extends="webstandard" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:noNamespaceSchemaLocation="platform:/plugin/com.ibm.designer.domino.stylekits/schema/stylekit.xsd" >
    <control>
        <name>ViewRoot</name>
        <property>
            <name>style</name>
            <value>background-color:rgb(255,255,0)</value>
        </property>
    </control>
</theme>

To use the ThemeSwitcher, you have to add some code in the beforePageLoad event:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">

    <xp:this.beforePageLoad>
        <![CDATA[#{javascript:
            importPackage( ch.hasselba.xpages );
            var fc:ch.hasselba.xpages.ThemeSwitcherFacesContext = facesContext;
            fc.setStyleKitId( "ThemeA");
            fc.loadStyleKit();}
        ]]>
    </xp:this.beforePageLoad>

    Switched Theme

</xp:view>

When the XPage is opened in the browser, the Theme is changed:

All other pages in the NSF are stil using the default Theme:

[DE] Sika macht ein Fass auf – mit Collaboration aus der Cloud von IBM

14. März 2014 Posted by StefanP.

Und noch ‘n Video. Mein Kollege Peter Schütt erklärt Alexandra und Euch, warum Sika ein Fass mit den Collaboration-Lösungen aus der IBM Cloud aufmacht, der #Social #Business Snapshot of the day: IBM Experts Live@CeBIT


Filed under: Deutsch Tagged: Cloud, featured, IBM, SocBiz

Personalisierung von Online-Shops zahlt sich aus

14. März 2014 Posted by IBM Experts

Möchten Einzelhändler ihren Online-Shop auf Erfolgskurs bringen, sollten sie ihn personalisieren. Das belegt eine Studie von IDC und RichRelevance, in der über 900 Konsumenten in Deutschland,...

The IBM Knowledge Center has been launched

14. März 2014 Posted by Ralf Petter

IBM has a new central place where you can find product documentation for various IBM products. The IBM Knowledge Center. Unfortunately the IBM Collaboration part of the new Knowledge Center is a little bit weak, but i hope this will be fixed in the future. To see how useful this new offering from IBM is try the IBM i part of the knowledge center.