Umpf Rücken…

Kaum ist die Schnupfen und Grippewelle vorüber schon konnte ich mit dem Training beginnen. So weit so gut.

Am Dienstag ging es wieder 1,5 Stunden zum Fussball. Dieses mal motiviert und mit viel Einsatz bei der Sache brannte nach der Zeit die Oberschänkel und ich konnte zufrieden in mein Bett sacken.

Der Mittwoch war super. Kein Muskelkater aber immer noch fertig vom Fussball. Gegen Abend war alles in Ordnung ab 19:30Uhr packte mich der Elan und ich ging in meinen Keller. 30 Minuten intensive Crossfit Einheit mit Kettlebell Swings, Deadlifts und Co. Leider  ist mein Rücken noch nicht fit genug gewesen für die Übungen. Seit gestern Abend schmerzen die unteren Lendenwirbel wieder und somit wird es mich dann doch mal zum Arzt ziehen um zu sehen was genau nicht passt. Parallel dazu habe ich mir noch einen Gewichthebergürtel bestellt – natürlich per Amazon Prime – um schnellstmöglich wieder trainieren zu können.

Hoffen wir mal das alles gut geht und ich zum Samstag am Wolfsman Training teilhaben kann. Ich freu mich schon – auf die Kälte?! 😛

Nischenprodukt Phablet, Trendprodukt Tablet

Phablets

Der Trend zum Mix aus Tablet und Smarphone ist angelaufen. Ich gehe davon aus das es ein Nischenprodukt wird wenn es nicht bald die passenden Gadget dazu gibt. Zum einen ist ein Phablet nicht nur störend im Transport so ist es auch wirklich umständlich damit zu telefonieren. Oder sollte ich sagen, noch zu telefonieren?

Bei Apple wird auf eine Smartwatch getippt die ein Kommunikationsgadget zwischen Smartphone und Uhr sein soll. Ein Informationstool um nicht alle 10Minuten in seiner Hosentasche zu wühlen oder die Handtasche nach dem Smartphone zu durchforsten.

Auch andere Startups die auf Kickstarter finanziert wurden sind mittlerweile in Serienproduktion gegangen. z.b. Projekt Pebble. Eine Smartwatch die als Allround Gadget angeboten wird. Sie ist wasser- und kratzfest und wird per Bluetooth ans Smartphone gekoppelt.

Mit einer Smartwatch am Handgelenk und der Kombination zum Phablet wäre es ganz interessant ein leistungsstarkes Smartphone mit großem und hochauflösendem Display in  der Tasche zu tragen. Somit hätte ich nur ein Gerät am Mann zum lesen und kommunizieren und ein, nicht störendes Gadget am Handgelenk das die meisten ohnehin in analoger Form tragen.

Fazit meinerseits. Phablet, kann ein tolles Produkt werden und seine Nische finden wenn man die passenden Gadget dazu entwickelt und das Produkt nicht alleine sterben lässt. Ich würde dem ganzen noch 1-2 Generationen Zeit lassen bis passende Komponenten dafür entwickelt wurden und auch die Technik der 5-7 Zoll Geräte ausgereifter ist. Was bei mir zum größten Teil vor allem mit Akkulaufzeit und Gesamtgewicht zu tun hat.

 

Tablets

werden mehr und mehr zum Massenprodukt. Immer mehr löst das schlanke, meistens langlaufende Gerät den heimischen Desktop oder sogar schon das Notebook ab. Spielekonsolen werden immer nebensächlicher zugunsten der Gelegenheitsspiele die man auch auf dem Tablet tätigen kann und auch als Secondscreengerät wird das Tablet immer interessanter.

Social Communities scheren derzeit Unmengen Nutzer um sich. Egal ob es um Bewertungen von TV Shows geht oder um ChekIns zu Fernsehprogrammen. Kleine Apps wie waydoo oder getglue die ein Secondscreen Erlebnis Realtime publizieren. Egal zu welchem Ereignis oder welcher Sendung kann ich meine Meinung auf Waydoo kundtun und mit den Mitgliedern der Community kommunizieren. Das ganze zumeist Realtime auf der Couch während die Sendung läuft.

Der klassische Reader für Ebooks mit EInk Oberfläche wird sich zwar halten aber immer mehr Nutzer laden sich parallel auch auf ihr Tablet die Amazon App um ihre Bücher unterwegs zu genießen. Oder im Dunklen 😉

Nachrichten, Kochen, Suchen, Shoppen und vieles mehr ist doch einfach schöner auf dem Tablet zu erledigen als am heimischen Notebook. Ich bin schneller, benötige weniger Platz fürs Gerät und kann das Tablet in der Kochnische noch zwischen den Zutaten platzieren ohne das ich lästigen Papiermüll produziere. Ist das nicht toll? … Ich denke schon und ich denke auch das es immer mehr geben wird die über die neuen Generationen der Tablets mit ankoppelbarer Tastatur und Co. nutzen werden als Multimediaplattform und das alte Notebook im Schrank verstauen werden.

Fazit. Nicht mal mehr eine Generation und die Tablets erfüllen endlich einen Zweck. Mit vernünftigen Apps können sie sowohl Multimediaspielzeug als auch Arbeitsmittel sein. Nicht nur für den alltäglichen nebensächlichen Mist den man fabriziert sondern auch für den Studenten der Informationen in der Cloud teilt oder dem externen Mitarbeiter der auf Kundenbesuche ist und ein Gerät benötigt mit mehr als nur 2h Akkulaufzeit um sich Präsentationen oder Arbeitsmaterial zu durchschauen und sich somit auf diverse Termine vorbereiten kann.

Liferay Soap Service 6.1.0 – JournalArticle

Es ist doch ein Graus. Seit nunmehr zweit Tagen habe ich Ursachenforschung betrieben. Warum zum Teufel funktioniert das Sichern von JournalArticles nicht. Langsam bin ich der Versuchung nahe zuerst die Liferay Issues zu durchforsten bevor ich Fehler im eigenen Quellcode suche. Dabei war es doch so einfach. Wenn man einen vernünftigen Fehler zurück bekommen würde.

Jeder der schon mal LiferayServices angezapft hat wird auch die ein oder andere weiße an seine oder liferay’s Grenzen stoßen. Ich stieß bei den JournalArticle an eine liferay Grenze. Stetige Erweiterungen und neue Funktionen in liferay führen leider auch dazu das ab und zu ein paar Sachen vergessen werden. So auch die SOAP Services und deren Funktionalität. Zugegeben ist es schon ein spezieller Fall den ich da anspreche. Es solle aber dennoch ein Artikel wert sein diesen Fehler zu dokumentieren.

Es handelt sich hierbei um folgenden Fehler der entgegenzunehmenden Schnittstelle und betrifft folgendes Versionen

  • 6.1.0 CE GA1
  • 6.1.10 EE GA1
  • 6.2.0 CE M2
15:04:40,009 ERROR [JournalArticleServiceSoap:110] java.lang.NullPointerException
java.lang.NullPointerException
	at com.liferay.portlet.journal.util.JournalUtil.getUrlTitle(JournalUtil.java:807)
	at com.liferay.portlet.journal.service.impl.JournalArticleLocalServiceImpl.getUniqueUrlTitle(JournalArticleLocalServiceImpl.java:2993)
	at com.liferay.portlet.journal.service.impl.JournalArticleLocalServiceImpl.addArticle(JournalArticleLocalServiceImpl.java:231)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:112)
	at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:71)
	at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:108)
	at com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(ServiceBeanAopProxy.java:211)
	at $Proxy206.addArticle(Unknown Source)
	at com.liferay.portlet.journal.service.impl.JournalArticleServiceImpl.addArticle(JournalArticleServiceImpl.java:92)
	at sun.reflect.GeneratedMethodAccessor277.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:112)
	at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:71)
	at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:108)
	at com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(ServiceBeanAopProxy.java:211)
	at $Proxy207.addArticle(Unknown Source)
	at com.liferay.portlet.journal.service.JournalArticleServiceUtil.addArticle(JournalArticleServiceUtil.java:90)
	at com.liferay.portlet.journal.service.http.JournalArticleServiceSoap.addArticle(JournalArticleServiceSoap.java:96)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
	at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
	at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
	at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
	at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
	at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
	at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
	at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
	at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
	at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
	at com.liferay.util.axis.AxisServlet.service(AxisServlet.java:122)
	at com.liferay.portal.servlet.AxisServlet.service(AxisServlet.java:97)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:158)
	at com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:289)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:55)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:158)
	at com.liferay.portal.servlet.filters.sso.ntlm.NtlmPostFilter.processFilter(NtlmPostFilter.java:83)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:55)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:158)
	at com.liferay.portal.sharepoint.SharepointFilter.processFilter(SharepointFilter.java:80)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:55)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:158)
	at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:216)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:55)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:187)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:95)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:187)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:95)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
	at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:167)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:95)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:167)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:95)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:187)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:95)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:71)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:619)

Für alle die es noch nicht wissen. Der Bugfix ist durchgeführt worden. Und der Fehler sollte sich erledigt haben. Hierzu benötigt ihr aber mindestens eine der folgenden Versionen:

  • 6.1.20 EE GA2, –Sprint 11/12,
  • 6.2.0 CE M2

HTC One – Meine Meinung

HTC One – Technische Daten

HTC bietet eine neue Generation Handy auf. Vor allen anderen Herstellern will es einen Fullmetal Body auf den Markt schmeißen. Schon mal nicht verkehrt. Auch das Display soll dank kräftigen Unterstützern in der Filmproduktion ein besseres Bild liefern und vor allem Fotos mit der neuen Mega… ach nein HTC UltraPixel Kamera.

An sich finde ich das Gerät richtig hübsch und auch schöner als Geräte von Samsung und Co. Aber es gibt wieder massive Kritikpunkte die mich stören. Der Akku. Ich finde es schade das es HTC nicht schafft einen vernünftigen Akku im System unterzubringen und sich, wenn ich dazu komme und es testen kann evtl. einen Kunden verspielt. Im Liveticker den ich gerade auf TechStage verfolgt habe wurde das auch sehr häufig erwähnt das die Akkulaufzeiten von HTC Geräten nicht gerade die Besten sind. Das spiegelt auch meine Wahrnehmung dar. Somit ist für mich ein massives Entscheidungskriterium die Akkulaufzeit, denn ich benötige auf keinen Fall ein Gerät das ich alle 8h – 10h – so wie mein One x bisher – wieder ans Netz hängen darf.

Das andere sind die Updatezyklen des Geräteherstellers. Da es von Grund auf schon nicht möglich ist ein Pure Android zu bekommen muss man sich mit der Sense Oberfläche zufrieden geben. Zugegeben, ich finde sie ansprechend und gut gemacht aber leider sind die Zyklen für Android Updates teilweise sehr nach hinten versetzt. So bekommt man, falls man Glück hat das Update für ein Gerät das gerade mal ein Jahr alt ist noch und wenn man Pech hat und sich leider einer günstigeren Modellreihe entschieden hat eben kein Update. Ist mir mittlerweile schon mit dem Desire und Desire HD passiert das leider die Update nicht geliefert wurden obwohl sie im Plan von HTC standen aber laut technischer Schwierigkeiten entfernt wurden. hm… Big Fail, sorry das sind Kriterien die man sich nicht mehr leisten sollte. Nicht umsonst hat man Absatzprobleme.

Alles in allem soll das neue Spitzenmodell etwas über 600€ kosten. Was ein ganz schöner Batzen ist. Wenn Google im März seine neue Wunderwaffe ankündigt bin ich sehr gespannt wie entweder der Preis des Gerätes in den Keller geht oder die Stückzahlen die erwartet werden einfach nicht verkauft werden.

Mein Fazit, Sorry HTC aber wirklich innovativ ist es nicht. Ich habe bisher wirklich viele Smartphones genutzt und dafür Software entwickelt. Bin am Ende auch bei HTC geblieben weil beim Samsung Kies benötigt wurde und das für Mac nicht verfügbar war, Motorola keine Innovation mehr hatte und Huawai bis dato noch nicht auf meinem Radar stand. Jetzt dreht sich das Rad ein ganzes Stück weiter und viel Neues wird von Google erwartet. Ich werde mich auf jeden Fall weiter am Markt umsehen und bis Juni warten. Denn Gründe ein HTC One zu kaufen liefert mir HTC einfach nicht außreichend.

Bildet euch eure eigene Meinung. Hier noch das Bewertungsvideo von TechStage:

Meine Challenge

Die Fitnessbranche bringt mittlerweile fast täglich neue Methoden auf den Markt um sich schlank, fit und vital zu fühlen. Zwei neue Workouttypen sind mir die letzen Wochen massiv aufgefallen. Nicht nur im Bereich von Kettlebell und stanard Trainingsmethoden springen immer mehr Trainer auf eine Methode auf die sich Hiit nennt. Es ist eine Möglichkeit sich auszupowern in relativ kurzer Zeit. Bodyrock.tv z.B. heißt mittlerweile sogar DailyHiit

Auch im Bereich Kettlebell ist der Trend auf dieses Hochintensivtraining übergesprungen. Ich finde es super und habe es auch einige Zeit ausprobiert. Leider war ich die letzen zwei Wochen nicht wirklich dazu in der Lage mir einen passenden Trainingsplan auszuarbeiten. Ich will nämlich auch eine andere Methode bzw. eine ähnliche Methode probieren. Das ganze schmipft sich Crossfit. Geprägt wurde der Begriff von Rebook und ist wahrscheinlich sogar Markenrechtlich geschützt 😉 … Rebook hat weltweit Crossfit Zentren aufgebaut in denen man in Kursen oder mit einem Personal Trainer sich selbst herausfordern kann.

rogue-fitness

Eine ähnliche Trainingseinheit absolvieren die Jungs von Rogue Fitness. Ein Fitnessgerätehersteller die eigene Athleten haben und ihr Team zu sportlichen Höchstleistungen anspornen. Meiner Meinung nach getreu dem Motto: „Gemeinsam trainiert es sich besser als Einsam“ … Eiserner Wille und anscheinend wirklich effektive Trainingsmethoden. 

Meine Challenge

Für mich werden die nächsten Wochen eine sportliche Herausforderung werden. Wenn alles klappt will ich mit meinen Arbeitskollegen auf jeden Fall den Wolfsman bestreiten. Und nicht nur das. Ich würde auch gerne wieder unter die 90 Kilo kommen und ein optimales BMI machen. Dabei werden die kommenden Wochen wirklich hart werden. Drückt mir die Daumen.