java.lang.NullPointerException at org.eclipse.ui.internal.themes.ColorAndFontProviderImpl.getCurrentTheme(ColorAndFontProviderImpl.java:51) at org.eclipse.ui.internal.themes.ColorAndFontProviderImpl.getColor(ColorAndFontProviderImpl.java:47) at org.eclipse.e4.ui.css.swt.helpers.CSSSWTColorHelper.findColorByDefinition(CSSSWTColorHelper.java:319) at org.eclipse.e4.ui.css.swt.helpers.CSSSWTColorHelper.getRGB(CSSSWTColorHelper.java:70) at org.eclipse.e4.ui.css.swt.helpers.CSSSWTColorHelper.getSWTColor(CSSSWTColorHelper.java:58) at org.eclipse.e4.ui.css.swt.properties.converters.CSSValueSWTColorConverterImpl.convert(CSSValueSWTColorConverterImpl.java:46) at org.eclipse.e4.ui.css.swt.properties.converters.CSSValueSWTColorConverterImpl.convert(CSSValueSWTColorConverterImpl.java:1) at org.eclipse.e4.ui.css.core.impl.engine.AbstractCSSEngine.convert(AbstractCSSEngine.java:1077) at org.eclipse.e4.ui.css.swt.properties.custom.CSSPropertye4TabOutline.applyCSSProperty(CSSPropertye4TabOutline.java:31) at org.eclipse.e4.ui.css.swt.properties.AbstractCSSPropertySWTHandler.applyCSSProperty(AbstractCSSPropertySWTHandler.java:40) at org.eclipse.e4.ui.css.core.impl.engine.AbstractCSSEngine.applyCSSProperty(AbstractCSSEngine.java:722) at org.eclipse.e4.ui.css.core.impl.engine.AbstractCSSEngine.applyStyleDeclaration(AbstractCSSEngine.java:520) at org.eclipse.e4.ui.css.core.impl.engine.AbstractCSSEngine.applyStyles(AbstractCSSEngine.java:413) at org.eclipse.e4.ui.css.core.impl.engine.AbstractCSSEngine.applyStyles(AbstractCSSEngine.java:354) at org.eclipse.e4.ui.css.swt.internal.theme.ThemeEngine.applyStyles(ThemeEngine.java:512) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$11.setClassnameAndId(PartRenderingEngine.java:1321) at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.setCSSInfo(SWTPartRenderer.java:111) at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.bindWidget(SWTPartRenderer.java:128) at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.createWidget(StackRenderer.java:620) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:983) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:662) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715) at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69) at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:185) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715) at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69) at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:185) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715) at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69) at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:185) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715) at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69) at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:185) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715) at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69) at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveRenderer.processContents(PerspectiveRenderer.java:49) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715) at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.showTab(PerspectiveStackRenderer.java:103) at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer$1.handleEvent(LazyStackRenderer.java:69) at org.eclipse.e4.ui.services.internal.events.UIEventHandler$1.run(UIEventHandler.java:40) at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:187) at org.eclipse.swt.widgets.Display.syncExec(Display.java:4590) at org.eclipse.e4.ui.internal.workbench.swt.E4Application$1.syncExec(E4Application.java:218) at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:36) at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:197) at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:197) at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:135) at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:78) at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:39) at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:81) at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:59) at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:374) at org.eclipse.e4.ui.model.application.ui.advanced.impl.PerspectiveStackImpl.setSelectedElement(PerspectiveStackImpl.java:135) at org.eclipse.e4.ui.model.application.ui.advanced.impl.PerspectiveStackImpl.setSelectedElement(PerspectiveStackImpl.java:1) at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.postProcess(LazyStackRenderer.java:108) at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.postProcess(PerspectiveStackRenderer.java:77) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:678) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715) at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69) at org.eclipse.e4.ui.workbench.renderers.swt.WBWRenderer.processContents(WBWRenderer.java:663) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1074) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:331) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:164) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) at org.eclipse.equinox.launcher.Main.run(Main.java:1465) at org.eclipse.equinox.launcher.Main.main(Main.java:1438)
Everything about IT
A blog about information technology. I am especially interested in Java, Eclipse RCP, IBM Notes Domino, Db2 and IBM i
Saturday, January 14, 2017
Weird Eclipse E4 RCP NullPointerException
Today i have tried to create a little eclipse e4 demo application to debug some issues with theme switching, but every time i switch the theme i got a strange NPE that the workbench instance is null. After some struggling with this problem i have found out that the root cause is, that i had still some eclipse RCP 3.x (org.eclipse.ui.workbench...) plugins in my launch configuration. So if you get such an error be sure to remove all RCP 3.x plugins from your launch configuration.
Friday, November 4, 2016
Ein Powershellscript signieren
Bisher habe ich unter Windows immer VBScript für Scripting Aufgaben verwendet. VBScript läuft zwar noch immer einwandfrei, aber da Microsoft jetzt schon seit Jahren VBScript abgekündigt hat, möchte ich mich jetzt mal auf die PowerShell von Microsoft umstellen. Geht auch wirklich gut, nur leider lassen sich erstellte Scripts nicht einfach ausführen.
Standardmäßig ist Windows nämlich so konfiguriert, dass gar keine Scripts ausgeführt werden können und die Shell nur interaktiv genutzt werden kann.
Diese Einstellungen kann mit dem Befehl:
Set-ExecutionPolicy Unrestricted
geändert werden. Der Nachteil ist, dass mit dieser Einstellung alle Scripts auch potentiell bösartige ausgeführt und man ein unsicheres System hat.
Besser ist eine Änderung der Einstellung auf den Wert AllSigned.
Mit dieser Einstellung werden dann ausschließlich signierte Scripts ausgeführt:
Um seine Skripte zu signieren benötigt man natürlich ein Zertifikat. Erstellt habe ich dieses mit der Anleitung unter http://www.hanselman.com/blog/SigningPowerShellScripts.aspx.
Leider haben aber die Befehle zum Signieren in dieser Beschreibung nicht funktioniert.
Die richtigen Befehle zum Signieren in der interaktiven Powershell lauten:
Laden des Zertifikats in die Variable $cert
$cert=Get-ChildItem -Path cert:\CurrentUser\My -CodeSigningCert
Zertifizieren eines Powershell Skripts
Set-AuthenticodeSignature -FilePath c:\scripts\vpn.ps1 -Certificate $cert
Standardmäßig ist Windows nämlich so konfiguriert, dass gar keine Scripts ausgeführt werden können und die Shell nur interaktiv genutzt werden kann.
Diese Einstellungen kann mit dem Befehl:
Set-ExecutionPolicy Unrestricted
geändert werden. Der Nachteil ist, dass mit dieser Einstellung alle Scripts auch potentiell bösartige ausgeführt und man ein unsicheres System hat.
Besser ist eine Änderung der Einstellung auf den Wert AllSigned.
Mit dieser Einstellung werden dann ausschließlich signierte Scripts ausgeführt:
Um seine Skripte zu signieren benötigt man natürlich ein Zertifikat. Erstellt habe ich dieses mit der Anleitung unter http://www.hanselman.com/blog/SigningPowerShellScripts.aspx.
Leider haben aber die Befehle zum Signieren in dieser Beschreibung nicht funktioniert.
Die richtigen Befehle zum Signieren in der interaktiven Powershell lauten:
Laden des Zertifikats in die Variable $cert
$cert=Get-ChildItem -Path cert:\CurrentUser\My -CodeSigningCert
Zertifizieren eines Powershell Skripts
Set-AuthenticodeSignature -FilePath c:\scripts\vpn.ps1 -Certificate $cert
Thursday, November 12, 2015
Top Smartphone zum kleinen Preis
Da mein Smartphone, dass mir die letzten Jahre gute Dienste geleistet hat mittlerweile schon ziemlich in die Jahre gekommen ist, war die Zeit reif für eine Neuanschaffung. Sehr lange habe ich mit einem Motorola Moto G 3 geliebäugelt, da ich die Vorgängermodelle schon für meine Frau und meine Tochter besorgt hatte. Das einzige Problem ist, dass das Moto G der 3. Generation leider etwas teurer geworden ist und schon stark an meiner Preisgrenze von 200 EUR für ein Smartphone kratzt. Deshalb habe ich mich auf die Suche nach einem anderen Smartphone gemacht, dass von der Leistung dem Moto G ebenbürtig, aber preislich günstiger sein sollte.
Dabei bin ich dann auf das Lumia 640 gestoßen, dass derzeit bei Amazon für 129 EUR angeboten wird. Zuerst war ich skeptisch, da ich privat bisher nur Android Geräte einsetzte und noch keine Erfahrung mit Windows am Handy hatte. Trotzdem habe ich mich aufgrund des günstigen Preises zu einem Versuch entschlossen und wurde mehr als angenehm überrascht. Das Handy ist für den Preis sehr gut verarbeitet, hat ein Display das selbst manchem viel teureren Smartphone gut zu Gesicht stehen würde und auch die Arbeitsgeschwindigkeit und Reaktionsfreudigkeit ist vorbildlich. Der interne Speicher ist zwar nur 8GB groß, lässt sich aber mittels einer SD Karte um bis zu 128 GB erweitern. Der Akku hält bei wenig Nutzung mehrere Tage und sogar wenn man das Handy sehr viel nützt, kommt man locker durch den Tag. Auch die Kamera macht bei gutem Licht schöne Fotos wie sie vor gar nicht allzu langer Zeit den Oberklassenhandys vorbehalten waren.
Die größte Überraschung für mich war aber wie gut Windows Phone funktioniert. Während ich den Kacheln auf dem Desktop überhaupt nichts abgewinnen kann, sind sie auf dem Handy absolut genial. Weder auf Android und schon gar nicht auf iOS Geräten konnte ich mir bisher meinen Homescreen so übersichtlich und funktional einrichten. Die Bedienung ist so logisch aufgebaut, dass man schon nach wenigen Minuten spielen mit dem Gerät, alle Aufgaben ohne Probleme umsetzen kann.
E-mail, Kalender und Kontakte Anbindung an meine diversen Konten wie (gmail, Outlook und meinen Firmen IBM Notes Traveler Account funktionieren mit wenigen Klicks) wie ich es bisher noch von keinem Gerät gekannt habe. Wo ich auf Android erst zusätzliche Apps herunterladen musste, geht hier alles schon mit der von Microsoft vorinstallierten Mail App.
Die vorinstallierte Navigationssoftware HERE Drive+ und die Karten App sind ebenfalls den Pendants von Google weit überlegen. Während z.B. Google Maps in meiner Heimat noch immer keine hochauflösenden Satelitenbilder anbietet, ist auf Here Maps sogar unser neu gebautes Haus bereits abgebildet.
Klar der App Store von Microsoft enthält nur einen Bruchteil der Anwendungen des Playstores oder des iOS Appstores, aber die mir wichtigen Apps wie Facebook, Whatsapp oder Amazon Apps sind in annehmbarer Qualität vorhanden. Mit dem bald (voraussichtlich Dezember) anstehenden Update auf Windows 10 wird sich die Anzahl der Apps dann sicher erhöhen, da die Universalapps sowohl auf dem Desktop als auch auf dem Handy funktionieren werden. Ebenfalls hat Microsoft Möglichkeiten angekündigt wie sich Apps von iOS, bzw. Android leichter auf Windows portieren lassen.
Mein Fazit: Wer ein tolles Smartphone zum sehr günstigen Preis sucht und damit leben kann, dass es nicht millionen sondern nur hundertausende Apps im Appstore gibt, kann mit dem Lumia 640 nichts falsch machen.
P.S. Die Telefoniefunktion des Handys arbeitet übrigens ebenfalls einwandfrei und auch die Gesprächsqualität ist herausragend.
Dabei bin ich dann auf das Lumia 640 gestoßen, dass derzeit bei Amazon für 129 EUR angeboten wird. Zuerst war ich skeptisch, da ich privat bisher nur Android Geräte einsetzte und noch keine Erfahrung mit Windows am Handy hatte. Trotzdem habe ich mich aufgrund des günstigen Preises zu einem Versuch entschlossen und wurde mehr als angenehm überrascht. Das Handy ist für den Preis sehr gut verarbeitet, hat ein Display das selbst manchem viel teureren Smartphone gut zu Gesicht stehen würde und auch die Arbeitsgeschwindigkeit und Reaktionsfreudigkeit ist vorbildlich. Der interne Speicher ist zwar nur 8GB groß, lässt sich aber mittels einer SD Karte um bis zu 128 GB erweitern. Der Akku hält bei wenig Nutzung mehrere Tage und sogar wenn man das Handy sehr viel nützt, kommt man locker durch den Tag. Auch die Kamera macht bei gutem Licht schöne Fotos wie sie vor gar nicht allzu langer Zeit den Oberklassenhandys vorbehalten waren.
Die größte Überraschung für mich war aber wie gut Windows Phone funktioniert. Während ich den Kacheln auf dem Desktop überhaupt nichts abgewinnen kann, sind sie auf dem Handy absolut genial. Weder auf Android und schon gar nicht auf iOS Geräten konnte ich mir bisher meinen Homescreen so übersichtlich und funktional einrichten. Die Bedienung ist so logisch aufgebaut, dass man schon nach wenigen Minuten spielen mit dem Gerät, alle Aufgaben ohne Probleme umsetzen kann.
E-mail, Kalender und Kontakte Anbindung an meine diversen Konten wie (gmail, Outlook und meinen Firmen IBM Notes Traveler Account funktionieren mit wenigen Klicks) wie ich es bisher noch von keinem Gerät gekannt habe. Wo ich auf Android erst zusätzliche Apps herunterladen musste, geht hier alles schon mit der von Microsoft vorinstallierten Mail App.
Die vorinstallierte Navigationssoftware HERE Drive+ und die Karten App sind ebenfalls den Pendants von Google weit überlegen. Während z.B. Google Maps in meiner Heimat noch immer keine hochauflösenden Satelitenbilder anbietet, ist auf Here Maps sogar unser neu gebautes Haus bereits abgebildet.
Klar der App Store von Microsoft enthält nur einen Bruchteil der Anwendungen des Playstores oder des iOS Appstores, aber die mir wichtigen Apps wie Facebook, Whatsapp oder Amazon Apps sind in annehmbarer Qualität vorhanden. Mit dem bald (voraussichtlich Dezember) anstehenden Update auf Windows 10 wird sich die Anzahl der Apps dann sicher erhöhen, da die Universalapps sowohl auf dem Desktop als auch auf dem Handy funktionieren werden. Ebenfalls hat Microsoft Möglichkeiten angekündigt wie sich Apps von iOS, bzw. Android leichter auf Windows portieren lassen.
Mein Fazit: Wer ein tolles Smartphone zum sehr günstigen Preis sucht und damit leben kann, dass es nicht millionen sondern nur hundertausende Apps im Appstore gibt, kann mit dem Lumia 640 nichts falsch machen.
P.S. Die Telefoniefunktion des Handys arbeitet übrigens ebenfalls einwandfrei und auch die Gesprächsqualität ist herausragend.
Saturday, October 10, 2015
New Redbook IBM i 7.2 Technical Overview with Technology Refresh Updates
The october brings a new redbook "IBM i 7.2 Technical Overview with Technology Refresh Updates" to the IBM redbook site. This new redbook is the ultimate source to find out what new great goodies IBM i 7.2 brings to your mighty POWER System. And best of all this redbook has a fresh new design which is in my opinion a big step forward. Thank you very much IBM for this great ressources and i really hope that we will see more of this amazing redbooks in the future.
Chapter 1. Introduction to IBM i 7.2
Chapter 2. Systems management
Chapter 3. Cloud and virtualization
Chapter 4. Security
Chapter 5. Networking
Chapter 6. High availability
Chapter 7. Backup and recovery
Chapter 8. IBM DB2 for i
Chapter 9. Application development
Chapter 10. IBM i server functions
Chapter 1. Introduction to IBM i 7.2
Chapter 2. Systems management
Chapter 3. Cloud and virtualization
Chapter 4. Security
Chapter 5. Networking
Chapter 6. High availability
Chapter 7. Backup and recovery
Chapter 8. IBM DB2 for i
Chapter 9. Application development
Chapter 10. IBM i server functions
Thursday, September 24, 2015
Erste Starface Module laufen bereits
Die ersten Starfacemodule die ich im Modulcreator Workshop in Wien gebaut habe laufen schon. Der Modulcreator ist wirklich ein sehr mächtiges Tool und ein absolutes Alleinstellungsmerkmal der Starface Telefonanlage im Vergleich zu anderen Anbietern die in diesem Bereich eigentlich gar nichts bieten. Mit wenigen Clicks kann man sich einfache Anwendungen zusammenklicken. Vom einfachen Telefonmenü bis zu komplizierten Callhandlings ist hier alles möglich. Natürlich sind Programmierkenntnisse vom Vorteil, aber auch ein Admin kann sich einfache Module selber zusammenstellen.
Tuesday, September 22, 2015
Übermorgen gehts los mit dem Starface Modul Creator Workshop in Wien
Übermorgen Donnerstag bin ich mit meinem Kollegen beim Starface Modulcreator Workshop in Wien. Bin wirklich schon sehr gespannt, welche neuen Möglichkeiten sich für uns durch die Erstellung von Modulen in der Starface ergeben. Eventuell lassen sich damit ja einige Einschränkungen die wir derzeit bei den iQueues haben elegant umschiffen.
Meine ersten Experimente mit dem Modulcreator waren auf jeden Fall schon einmal sehr vielversprechend. Ich denke es wird dann sicher auch ein paar Posts zu den Möglichkeiten des Modulcreators geben. Lasst euch überraschen.
Meine ersten Experimente mit dem Modulcreator waren auf jeden Fall schon einmal sehr vielversprechend. Ich denke es wird dann sicher auch ein paar Posts zu den Möglichkeiten des Modulcreators geben. Lasst euch überraschen.
Saturday, September 19, 2015
The Document Spy learns two new tricks
Today i have uploaded Version 1.3 of the Document Spy for the IBM Notes client. The new version brings two great new features:
A simple but powerful filter to only show the rows which are useful for your problem. Just type in the filter value in the text box above the item table and the items in the document will be filtered.
With the second feature you can select some rows in the table and then activate a special filter in the context menu of the table to only show the selected rows.
You can even combine the two new features and show only selected Fields in your documents which contains values that match your filter values . The filter stays activated even when you move on to another document. This is very handy when you have to analyze more than one document. But please do not forget to remove the filter when you are finished with your work ;-)
I hope you like the new features as much as i do and download the new 1.3 version as soon as possible. If you have any problems with the new version please leave a comment or send your bug report to ralf.petter@gmail.com.
A simple but powerful filter to only show the rows which are useful for your problem. Just type in the filter value in the text box above the item table and the items in the document will be filtered.
With the second feature you can select some rows in the table and then activate a special filter in the context menu of the table to only show the selected rows.
You can even combine the two new features and show only selected Fields in your documents which contains values that match your filter values . The filter stays activated even when you move on to another document. This is very handy when you have to analyze more than one document. But please do not forget to remove the filter when you are finished with your work ;-)
I hope you like the new features as much as i do and download the new 1.3 version as soon as possible. If you have any problems with the new version please leave a comment or send your bug report to ralf.petter@gmail.com.
Performanceprobleme bei der An und Abmeldung an einer Starfacegruppe mittels UCI
Bei uns in der Firma verwenden wir im Verkauf das iQueue Feature der Starface, das eine automatische Verteilung von Anrufern an verschiedene Verkaufsmitarbeiter erlaubt. Eine wichtige Funktion bei einer solchen Lösung ist das An und Abmelden der Verkaufsagenten an den diversen iQueues. Um es unseren Benutzern so leicht wie möglich zu machen, haben wir die An und Abmeldung in unseren Notes basierten CTI Client integriert. Der Benutzer kann sich mit einem Mausklick in mehreren iQueues An und Abmelden. Prinzipiell funktioniert die Lösung auch ganz gut nur die Performance war sehr schlecht. Der An und Abmeldevorgang hat mehrere Sekunden gedauert und während der Vorgang lief, war die CPU Last auf der Telefonanlage extrem hoch, was zu Problemen beim Callhandling führen konnte.
Subscribe to:
Posts (Atom)
ad