1. OT: Framtidens mobil

    Det här är kanske lite off-topic, men det kanske finns en JVM även i denna framtidsmobil? Nokia har tagit fram en läcker konceptmobil som onekligen väcker ha-begär. Kanske lite långt in i framtiden dock. Kolla in filmen från Nokia eller läs mer här.

    Det hade varit kul att se denna typ av visioner även inom javavärlden.

  2. Java och inbäddade system

    De flesta jag känner i Sverige som jobbar med Java sitter på server-sidan, eller Java Enterprise som vi säger på engelska. Nu när första dagen på Java Mobile & Embedded Developer Days börjar närma sig sitt slut (om man inte räknar kvällens social event och BarCampME) så kan jag bara säga att alla de riktigt spännande sakerna sker inom inbäddade och mobila system. (Läs mer…)

  3. Java Mobile & Embedded Developers Days – Dag 1

    Sitter just nu i Grand Autditorium hos Sun Microsystems i San Clara. Sun har ett rejält campus här och alla byggnader ser mer eller mindre helt nybyggda ut. Allt är väldigt stiligt och gräsmattan ser ut att vara klippt med nagelsax. Det finns uppenbarligen ganska mycket pengar här.

    I vilket fall så är det här som 2-dagars konferensen kommer hållas och dagens keynote kommer hållas av Javas skapare James Gosling själv. Förmiddagens schema domineras av föredrag om Sun SPOT och vad den plattformen har att erbjuda. Eftermiddagen är lite mer blandad med allt från P2P inom mobilitet och hur mobil kommunikation och mobila tjänster kan användasför att underlätta katastrofhantering och hjälpa till inom socialt och miljömässigt eftersatta områden.

    Det var lite kort om vad dagen har att erbjuda. För den som vill följa dethela online så kan man gratis registrera sig på tjänsten ustream.tv och se den webcast som sänds härifrån. Även om man inte är intresserad av mobilitet så kan det nog ändå vara skoj att få höra vad James Gosling har att säga.

    Mer nyheter kommer under dagen och jag kommer försöka hålla er uppdaterade så gott det går.

  4. Javaforum 2007Q4

    Nu är agendan för Javaforum 2007Q4 i Göteborg spikad. Anmälan görs som vanligt på javaforum.se, antalet platser är begränsat till 170 personer så det är först till kvarn so gäller…

    • 16:30 Macka & mingel – Redpill sponsrar
    • 17:00 JavaUpdate med bla NetBeans 6.0
      Rikard Thulin, IBS JavaSolutions AB
    • 17:15 JavaPuzzler of the Day
    • 17:20 JBoss Seam – Kraftfullt ramverk som integrerar JSF, EJB 3, AJAX, Portlets och BPM
      Jens Augustsson, Redpill
    • 18:00 Hudson - mer än bara ännu en Continous Integration motor
      Marcus Wallin, IBS JavaSolutions AB
    • 18:15 Thread.sleep(); // Kaffe
    • 18:35 Ext JS 2.0 – Med Ext JS 2.0 har du fantastiska möjligheter att bygga desktopliknande applikationer för webben
      Martin Jönsson, IBS JavaSolutions AB
    • 18:50 Mobil 2.0 och den uppochnervända pyramiden
      Troed Sångberg, Sony Ericsson Research Center
    • 19:30 Connecting producers and consumers – Hur man angriper problemet att vira ihop ett komponentbaserat (24/7) system som t.ex. OSGi där saker uppdateras i runtime
      Niclas Nilsson, factor10
    • 20:10 Redpill bjuder på Öl och snacks

    Karta till: IT-Universitetet, Forskningsgången 6

  5. Godis i nya SonyEricsson nallarna

    Flera av er har säkert redan läst om de nya mobiltelefonerna som SonyEricsson släpper i höst/vinter. För er som kodar Java ME så har dessa telefoner en hel del godis som gör dem ytterst attraktiva för att göra riktigt fräcka mobil-applikationer. Vad sägs om ett OpenGL-ES (Embedded Subsystem, en ”bantad” version av vanliga OpenGL) stöd (JSR-239)? Eller möjlighet att läsa av den inbyggda acceleromtern (samma teknik som Nintendo Wii har i sina handkontroller) (JSR-256)? Både dessa finesser hittar man i den kommande w910 som planeras att släppas i färjde kvartalet i år. På SonyEricssons site Developer World så kan man se bilder på ett spel (Marble Madness) som verkar följa med den nya w910.

    Marble Madness (SonyEricsson Developer World)
    Bild på Marble Madness från Sony Ericsson Developer World

    Du styr bollen genom att helt enkelt vrida på telefonen. Jag ser fram emot kommande racing och flygspel till Java ME. :)

    Den stora nyheten med SonyEricssons kommande telefoner är nog ändå den nya Java plattformen, JP-8. Det mest intressanta med den är att den implementerar stöd för den nya paraply-JSRen; MSA (Mobile Service Architecture, JSR-248). Denna JSR specificerar ett minimum av andra JSRer som måste ingå och ger även mindre utrymme för tolkningar av dessa JSRer. Problemet tidigare har nämligen varit att varje mobiltelefontillverkare har valt att implementera enbart vissa delar av en JSR för sina telefoner, vilket gjort att en applikation som fungerar för en telefon inte kommer fungera på en annan, trots att båda specificerar samma JSR som behövs. Förhoppningsvis så kommer detta underlätta framtida utveckling av mobiltelefon-applikationer i Java ME.

    Det som vi, bland annat, kommer ha tillgängligt i och med nya telefoner med stöd för MSA och som vi inte hade tidigare är Web Service, Scalable Vector Graphics samt ett API för positionering. Jag är övertygad om att vi kommer få se en hel del riktigt fräcka Java ME applikationer framöver…

    Ni kan läsa mer om Sony Ericssons nya Java-plattform, JP-8 på developer.sonyericsson.com.

  6. Java ME GUI APIs

    Jag har faktiskt börjat gilla Java ME utveckling. Visserligen finns det häftigare, nyare och flashigare teknologier att leka med på Java SE/EE-sidan, men med Java ME så kommer du ändå så nära användarna som bara är möjligt. Nu ska jag inte påstå att det är bekymmersfritt att jobba med Java ME, tvärtom (vilket ni säkert konstaterat efter att ha läst mina tidigare inlägg). Jag tänkte nu skriva lite om hur det ser ut på GUI-sidan för Java ME.

    Trots att det finns en del trevliga JSRer för Java ME så måste man tyvär, om man vill nå ut till den stora massa, begränsa sig till MIDP 2.0/CLDC 1.1 (d.v.s., den absolut minsta gemensamma nämnaren för Java på dagens mobiltelefoner) när det gäller GUI. Det är minst 2 år kvar tills dess att den stora massan har mobiltelefoner med inbyggt stöd för SVG (Scalable Vector Graphics, det kommer en post om det lite längre fram), vilket i stort sett kommer lösa problemet. Lösningen är att använda någon av de tillgängliga tredje-parts APIerna för GUI som finns idag. Tyvär är ingen av de användabara alternativen gratis. I vilket fall, de tre alternativ som finns idag är följande:

    • TWUIK (http://www.tricastmedia.com/twuik/) – Ett API för att skapa s.k. ”Flash-like user interface”. Ingen prisuppgift finns att få, vilket antyder att det är DYRT.
    • J2ME Polish (http://www.j2mepolish.org/) – Trots namnet så har det inget med Polen att göra. Detta är inget rent GUI API utan snarare en fullständig platform som kompletterar WTKn. Det finns bygg-script som bygger för olika enheter och en massa annat godis. Om du har behov av en fullständig miljö för Java ME och inte byggt upp något tidigare så är nog detta ett bra alternativ. Kostar 990€ för en licens, har du ett GPL-projekt så använder du deras GPL-licens och slipper betala.
    • TinyLine 2D (http://www.tinyline.com/) – I mina ögon det mest intressanta alternativet. Ett litet och enkelt API för att göra avancerade 2D GUIn. Detta API är enbart inriktat på 2D grafik och klarar allt från affina transformationer, transparens och anti-aliasing. Kostar ungefär 3500 kr att köpa. En intressant detalj är att detta är det API som Google valde för Google Maps Mobile.

    Så för att sammanfatta det hela; det finns alltså tre realistiska alternativ om du vill göra snygga GUIn i Java ME och ingen av dem är gratis. Kanske dags att dra igång ett open-source projekt? Någon som är på? :)

  7. Mobilapplikationer i verkligheten

    Jag har de senaste veckorna arbetat med en ny tjänst för mobiltelefoner (ett uppdrag jag tagit över efter min kollega Mikael). Som ni förstår så är det alltså Java Microedition som det hela byggs i. Nu var det ett tag sen jag kodade något i Java ME på riktigt så jag hade glömt en hel del detaljer. Uppenbarligen är det lika illa ställt med Java på mobiltelefoner idag som det var för ett par år sedan. Om du ska skriva en applikation som du hoppas på att många ska använda så behöver den fungera på flera olika tillverkares telefoner, och det är här problemen börjar. För att din applikation ska kunna få göra något mer avancerat än att visa bilder och text så behöver den signeras (ok, den måste inte signeras, men användaren kommer bli nipprig på alla frågor om att låta applikationen göra ditt och datt). Nu tycker man kanske att det bara vore att använda samma signeringsverktyg som finns i Java SE, och i princip ska det vara likadant. Dock har olika mobiltelefontillverkare bestämt sig för att hitta på egna lösningar och metoder för det hela. Att signera en applikation som ska köras på en Motorola-telefon kräver ett speciellt certifikat från Motorola, Samsung vill signera allting själv (alltså, skicka in ditt program till ddem och få tillbaka det ett par veckor senare) och sådär fortsätter karusellen. Den enda telefontillverkare som försökt hålla sig till standarden är SonyEricsson (som för övrigt lyckats följa de olika Java ME standarderna bäst).

    När du väl kommit runt problemen med signering så har vi APIerna som telefonerna hävdar att de stödjer. Ta JSR-234 (Advanced Multimedia Supplements) som kort och gott syftar till att tillhandahålla lite mer avancerade funktioner för media i telefonen. Det finns klasser för 3D ljud, video, kameran och FM radio. Låter spännande, eller hur? Problemet är bara att det enda som mobiltelefontillverkarna valt att stödja i det APIet är kamera-funktionerna, på sin höjd. Om nu telefonen har en FM radio, stöd för 3D ljud och möjlighet att spela upp video, vaför kan jag inte få accessa dessa funktioner i Java ME då?! Såhär är det med många av de mer intressanta JSRer som finns för Java ME. Vanligtvis är det återigen SonyEricsson som har bäst stöd, men det är en ganska klen tröst när de är långt ifrån de vanligaste telefonerna på marknaden (åtimstone utanför Sverige).

    Det känns lite som att mobiltelefontillverkarna (och i viss mån även operatörerna som låser och begränsar enheterna) medvetet sätter krokben för tredjeparts-tillverkare. Idag är det oerhört svårt för en utomstående att få in sin applikation på mobiltelefon-marknaden. Det tråkiga är att Java ME är det enda reellla alternativet, Symbian C++ är ännu värre att koda i och fungerar sällan likadant på olika telefoner och .NET har ett ytterst begränsat stöd på dagens mobiltelefoner. Flash-applikationer hade varit ett alternativ, men det är tyvär fortfarande en alltför begränsad platform.

    Jag hoppas att nästa version av MIDP (3.0) som är på väg kommer lösa många av dessa problem som vi utvecklare stöter på. Dock tror jag att vi även i framtiden kommer behöva slåss både mot mobiltelefontillverkarnas ovilja att följa standarder.

    …och då har jag inte ens nämt hela dramatiken kring DRM-skyddat material och Java ME..