Archive for January, 2008

Tearoff databases for Mobile Phones - Java DB

Rick Hillegas

If he covers 2 way replication I will be one happy camper

JavaDB (Sun’s version of Apache Derby - which is IBM’s old DB)  is availale on Apache license. Runs on the CDC stack [so where is the list of CDC phones]

It is 2 meg on disk, sweet spot is embedded databases (could be embedded in your app). It is still being worked on by Sun and IBM.

You should consider tear-off databases like a wide of post-its. Refreshable, disposable, and usually short lived. Use in location based apps or storing incremental publishing of content - tear off a week worth of content for reading later.

Nice demo of the app.

I don’t think he is going to cover 2 way replication - no soup for YOU. So he is defining a tear off as a one way. Could still be interesting but less so.

They build pieces into the toolkit to help with the checkout and synching data. The cycle insures that the data is always complete.

Coming next quarter - table functions - any abitrary stream data and wrap a table around and then use SQL to filter and work with it. Contact him if you have questions.

Afternoon lighnting

Darkstar with Mobile for MMPORG

Darkstar is the server infrastucture with a bunch of clients connecting to a lot of servers with some metaserves gluing it all together.

To use it with mobile you need proxy in the middle - so you end up with a 3 tier arch. This guy is working on making a HTTP proxy to that there is minimal resource use and easy to use for client (phone). He is writing integration with the netbeans mobility pack.

Nice screen shot

Great time limit enforcement by E-Ming (the Sun guy from our DevCon mobility panel).

NEXT

Adaptive instrutmentaiton for MIDP testing. There are some arch. reason that it is hard to test.
Solution
Redesign App  - not so good

They suggest to modify the binary - insert special code on the fly. Arch slide which bores me. You basically add one line of code to constructor and then the test framework can then gain access to the code. All done for me…

NEXT

What can the JCP do for you. It is more about what you can make the JCP do for you.  He believes in the romantic vision of a single developer building a great app getting onto the platforms. So he is talking about the need for individuals rather organizations on the different committees. Here comes the call to action - volunteering with 4 things

1. Vote - 1/3 of jcp members vote

2. Subscribe to the ME related lists

3. Help - review  MIDP 3.0 and send an email  -action not words

4. Show up - Terrence has a room over at the mansion to start discussion the issues.

NEXT

Do we need a mobile developer alliance? Carriers and OEMs are shooting themselves in the foot to leave revenue on the table. Problem is too big and compicated to be handled by any one group. He thinks only the developers can solve it bc they have the most skin in the game. Wants developers to start talking now and figure out where to go from there.

NEXT

Putting Java on devices Sun’s Java engineering Services - a pitch for their consulting services that puts Java on tons-o-devices. Mostly for OEMs and other people who move physical products. [All done for me]

See again I wasn’t the only one thinking about this

So it seems other in the blogosphere are talking about frameworks as well

Ping out to InfoQ and Bill de hÓra. I like Bill’s discussion of leaky abstractions and the comments that follow. Can I please give a shout out to Eelco from Wicket. He has maintained an open mind and a great discussion in all the different places where I have seen him contribute to this discussion.

Of course they say it better than I do and hey, they also mention Django so Sean doesn’t have to.

For me it is not that frameworks are inherently bad, it’s just perhaps not everything is a nail for their hammer.

And I find it very interesting that .NET developers are nowhere to be seen on any of these threads (except for Matt Priour). Theories on this one are welcome…

The Future of JavaME development tools

Wireless toolkit for CLDC
supports more 23 JSRs including OpenGL and SVG
There is a new JSR for J2ME for XML processing which would be good with our openLS service

Worth the price of the conference alone
watching a javaVM working on WinMo6 on the HTC TinyTC - I think it is phoneME but with just a quick browse I don’t see how they got it running.

I am not really paying that close attention since I feel like Netbeans is the platform for Mobile development. Perhaps I should, so I can see some of the cool things I can do, such as SVG support and visual designer.

Visual Designer is a graphical UI for developing application flow on the phone. Looks like they took Matisse and are now using it for CDC screen design. Damn matisse is sweet.

Ok but the TLA in the Java mobile space is killing me - bring me android or the iPhone. Something to simplify this model, more to follow on this thread…


SVG and Advanced Graphics
The TLAs are killing me so I am trying to watch some eye candy
SVG tiny is mostly cell phones and SVG basic is for browsers and perhaps smart phones.Nice demos and I am fading fast…

Afternoon session

Sun Spot Talk

Great demos of what you can do with a SunSpot
SunSpot runs the squawk JVM which can run bare metal without an OS.
There is wireless communication and with the accelerometer he built a cool little remote controlled robot. It was not a hardware project - it was a software project, most importantly it was a java programming project

www.sunspotworld.com

Now Mesh Networking

802.15.4 MAC layer in the devices. Range is approx 100m - lots - o - network topologies are supported.

Gone too deep for those of us who are idjits in the world of networking. My head is hurting. I am not sure even where to start with questions…
Ahhh some code but not much help. What is GCF? Thank you google

On to Security
Need security bc most sunspots are wireless
Goals:
User Friendly
Efficient
Reuse well known, peer-reviewed industry standards
Trust/Key management should “just work” in the most common scenarios
Byte code verified on desktop and sealed until goes to device and then sig verified on sunspot

Each user’s SDK has a public/private key pair. As soon as you connect your key is sent and you become the owner but can change owner with USB connection. Over air it is only the key it has

The use SSL/HTTPS for secure communcation. Preface your communcation protocol with an s and it becomes SSL’ed radiostream -> sradiostream. Multiple spots belonging to the same owner are all set with keys and so SSL just works

Now for Solarium
Dealing with a collection of SPOTs.
Start laptop with Solarium running - eventually it goes around discovers all SPOTs in the network and adds them to a view. Frickin Sweet interface to manage all your devices - gotta see the movie for this one. You can serialize the entire app and send it to another device - holy canoli. Extra points for doing it all live!

Some Emulator work
They have added an emulator to the Solarium application. Very nice spot with intuitive way to change it’s sensors. Shows the virtual interacting with real SPOTs. Again, you need to see the video

Using SPOTs to monitor BlackBox moving across country
Want to track
virbration but only big events
Temp
Humidity
GPS
Data Logging

USGS monitoring on the Bay Ravenswood
Still need to work on extend the time period monitoring and more robustness

Systronix showing TrackBots and swarming with Sun SPOTs.
He loves SQUAWK and think it is huge that all these things run on devices smaller than a cell phone. Some cool robot demos

Sentilla - these are the mote people. He is talking about getting a full JVM and more on a chip the size of a dime. It can store info and network and process. My brain is getting kinda full. They have done some really interesting things to make sensor programming really easy. They have a limited beta send an email.

Morning Session

Morning session for Mobile and Embedded Dev Day

My opinion on the opening of the mobile platforms to developers is at the end of the post. Most of the rest of this post is just following the session.

Most of this is new to me since I haven’t really done a lot in the mobile and embedded space - mostly due to the Carrier lock down of devices.

There is a community that Sun is trying to run that is centered around the openJDK for ME

4 Messages for today
BetaVine and mobile and embedded community are from Sun are playing together. I really am impressed with their devZone and the things they have done with LifeRay

Eric Areneau - project owner to Sqwak, java on the microembedded devices - open sourced out of Sun Labs - the VM running on SunSpots

Phil Bender - Cable TV industry for developers

Mohamed - JXTA JAVAME Midp 2.0 - allows peering between JVMs on different devices that allows streaming and sharing between the devices.


Up now is GoslingThe London underground card is a Java Smart Card and the whole London Underground system is run on Java for their ticketing and scheduling.The key to the whole thing here for him is the JVM as the integration Hub - many ways to write things that run on the JVM from Java to Cobol to XML and it then runs on many devices.

Large community - tons of developer communities from dev.java.net to OpenSolaris.org to jcp.org.

Now some talk about RealTime embedded stuff with Java such as robotic helicopters and robotic arms - 10 to 15 millisecond time range

Addresses the performance myths
On a server VM Java can beat C/C++ even close to FORTAN for performance though matrices are tricky. GC is a lot faster than malloc/free, it is more about making sure GC doesn’t cause the spike.

On to open source
All this means is you can check out and use the code for yourself - NOT that anyone can check stuff in, though there is a process for making that happen.

Cell Phone world
JSR 248 - MSA - Mobile Services Architecture
JavaFX - Richer user Experiences - all converging on JavaSE specifications

I forgot that Sun/Java wins if Blu-Ray wins since it is part of the spec. Such as the PS3

JavaFX
FX mobile
JavaSE6
JavaFX Script -
[I get bored and tune out though I did catch a slide saying that people can use photoshop and flash to produce interfaces. How is that going to happen]

James is done


On to Hartti Suomela - Forum Nokia
Java ME Security Domain Policies
He is going to talk about all the stuff you have to agree to before you install a j2me app and why devs need to get their apps signed. I will try my best to follow along on this one.MIDP 2.0 and 2.1 use different terminology
Domains:
Manufacturer Domain, Operator Domain, Trusted Third part domain, unstrusted domain (in order of trust) Man and Op domain have always allowed access to APIs. Depending on which domain you verify to you get access to different things on the device. Access is granted at the group of functions level - not available at the individual function call.

ATT - unsigned apps basically get to do nothing
Identified still don’t get much - you really need ATT to sign it by being a partner.

Sprint - some more access but no location without help from Sprint

T-Mobile US - had problems finding and doesn’t sound easy to get going

Methods for changing permissions are different between devices and it seems kinda tricky.

[Got a phone call that I had to take]

Came back in to developers talking about storming the carrier gates. Seems like this is more head banging against the wall. Unless you have an app that will migrate users to a carriers network from a competitor what is the value for them. There is also risk for them. Poorly behaved apps can cause real network problems for them and people are generally less tolerant of their cell phones not working then an internet slowdown. And if your app doesn’t work on their phone or network consumers will also associate this problem with the carrier.

So while I want the carrier platforms to open up I don’t think Java’s domain model makes that any easier - if anything it makes it easier for carriers to not let that happen. Change here is going to come through Government, Google, or some other large player. The internet was not opened by developers, it was opened by the gov’t. Sure we can raise our voices but I am not placing my money on that horse…

At the Sun mobile and embedded developer day

Today and tomorrow I will be at the conference. I will be live blogging some of it and I am still not sure what people will find useful so take them for what they are.

There is a live TV stream at uStream.tv if you want to follow along.

Learning and trying to get some hands on time in during the next couple of days.

Tagging photos, blog posts, and tweets with medd08

Yahoo! FireEagle [or is it Fire Eagle]

Last night I went to the WCA LBS SIG to hear about Yahoo! Fire Eagle - here is my transcript from the session. Overall the take home is that Yahoo is building a public store of your location that gives you the ability to grant permission to applications to update and query your location. In other words creating a REST API to push your location to their service - they they standardize the location as best they can - then provide a REST api to query for GeoJSON or GeoRSS for your location.

Very exciting possibilities -Yahoo has taken on the task of trying to store location information in a public way. OpenSocial is trying to build the Social Graph but not on a single server - Fire Eagle is trying to do this on a central server for people’s location. So instead of being distributed data sits on their servers.

How are they going to make money with this? Either Mor was being coy or Yahoo is being coy or they really haven’t figured it out. I can see 3 ways

  1. Since you need a YahooID to use it you may then start using other Yahoo services
  2. They eventually start charging people to store their location (unlikely)
  3. They start accessing people’s location data in an anonymous way to aggregate location information to provide unique services - such as feedback to advertisers about how many Fire Eagle users actually ended up at the event.

Should be interesting all the way around

and now the transcript…


FireEagle
Excellent presenter with great presentation zen
Lots o cool things you can do when you know where people are

Problems
1. Hard to capture where people are - lots o methods and even same method are different on different platforms
35 ways to find your location talk is recommended

2. Locations are hard to interpret. How to get from cell tower to lat,long and then from that to human place names is also hard [not for us]

3. It’s hard to abstract - which hierarchical level do you aggregate to, city state…

4. Location is hard to handle - have to securely store it, have to query it,

5. Hard to manage - mostly legal issues especially when you deal with different countries and states

6. Hard to share - disses symbian C++ and cross Nokia development

Implications
first casuallity is the location based web
Second - location-enhanced social networks. Claims loopt suffers from platform issues but he doesn’t understand loopt - commiunication is neighborhood dependent
FireEagle should increase the number of ppl in the network

The Big Idea  - share your location online
Store and make sense of your location
Share the location with apps and services
While  maintaining control over data and privacy

Available soon but no time table

Fire Eagle sets up a service that acts to create a many to many between location capture and location services. Fire eagle is about managing permissions and also does a cross walk between input location to a standardized hierarchy

??So how does yahoo make money

3 step into the API
Authentication
Update
Query - there are different levels of accuracy that users can allow from exact to country

Uses OAuth for authentication
The application never knows the YahooID of the user
To update you send the REST request with the key and the location and get an ok response
To query you send the key and you get the user location at the proper level authorized for your app by the user

??How do I identify which user I want info for if I don’t know the ID

Using either GeoRSS or GeoJSON as the response to the query

??But an app is either allowed or not allowed but not on a user by user basis

They made a big deal about your own data and privacy

??Does Hide Me throw away the data coming in or just not show it in a query

Has the pendulum begun to swing away from frameworks?

This post is going to talk about using Frameworks (JSF, ASP.NET, Django, Ruby on Rails…) to build web applications and perhaps they have outlived their usefulness in many situations.
I have started to put together a demo server here at deCarta and as part of that I am going to need to write some demos. I know that when I write some MS based demos I will be using ASP.NET since that is was one of the benefits/drawback of MS development - one “blessed” web framework.

It has been a while since I have written some Java web applications and so I thought I would peruse the landscape. I have worked in JSF before but the XML hell that is the configuration files really harshes my mellow. That being said Seam seems to be an interesting framework but there is certainly a steep learning curve and I am still unclear if it runs on Tomcat. I then find Wicket which has no XML config files and everything is done through Java code - which appeals to me. I use an IDE so it can help me avoid doing the mundane and repetitive tasks which are prone to error. Most IDEs have no way to confirm that you don’t have typos in your XML or your XML declares a non-existent class. So Wicket, using nothing but Java code, feels like a step forward… until I look at the amount of code and classes needed just to do a simple form. Feeling undeterred I try to get going and then realize that Wicket documents relies heavily on Maven, and while I have nothing inherently against Maven it is yet another thing I have to learn that I am not in the mood to do now.

Now feeling a bit frustrated I go speak to Geoff and Brent, our web services and JavaScript gurus respectively, to seek words of advice. Turns out they have used Wicket and a bunch of other frameworks and they say, as somewhat devil’s advocates, that frameworks are a waste of time. They now believe that most web apps should be written as Servlets or web services which feed appropriate data to your JavaScript library of choice. I push back a bit and they do concede that for large team projects or repeatable projects a framework makes sense but they also point out that that you spend an inordinate amount of time wrestling with the framework rather than writing code.

And this is the question for the day - has the evolution of web development moved us away from frameworks as the one true way for web developers. All the web languages out there now have their own frameworks, from perl to Ruby to .NET to Java, are they overkill for most projects. Is there where REST and Ajax (and Comet soon enough) have brought us?

When I discovered Struts it was like a ray of light cutting through all the one-off web code I had written. But are we now at a point where the frameworks and the support infrastructure are just too much hassle without enough payoff. I understand sessions are another tricky thing that frameworks help handle but perhaps that is all the frameworks should do. Programming servlets to accept GETs or PUTs and having them spit out XML or JSON is really an order magnitude (WAG ) easier than taking on a framework. It seems some in the Java community are also discussing this issue (look in the middle of the Seam discussion for the grey box which is Matt’s commentary ).

So lazy web what do you think - has the time come to give up on these heavy frameworks and move to something more lightweight - REST services with an AJAX library fronting it? Or is this just a lazy person trying to get out of doing the hard work climbing a learning curve.

For those in the geo community this would like moving from an ESRI ADF or MapGuide to something like OpenLayers + GeoServer’s KML API.

I would really love to get some more data points from the community…

moving back here for a bit

I am going to return to blogging back here for a while. Taunts of Fake James aside, I am not happy with our current blogging solution on the devZone and will be moving back to here until we get it sorted out. Please see my post on the devZone for a bit more explanation.

oh the shame

Next Page »