Tuesday, January 13, 2009

Related concepts from Android and Java ME

I was thinking about the main components that provide the building blocks for your Android application, and on how they relate to similar concepts from the Java Micro Edition (Java ME) platform:

Activity. Activities in Android are the presentation layer for the application you are building. For each screen you have, their will be a matching Activity. Similar to this concept, in Java ME you have Forms (and more general maybe Screens). An Activity uses Views to build the user interface; similarly, a Form uses different items such as text fields, data fields, choice groups, etc. Generally speaking, in Java ME, on a Screen (or on a displayable), you can place a Canvas, an Alert, a List, a TextBox, and finally a Form. All these elements are used to build the graphical user interface for displaying information to the user and interacting with him by responding to the user actions.

Services. Services are those components that run in the background, and which do not interact with the user. They can update your data sources and Activities, and trigger specific notifications. I tried to think of a similar component in Java ME, but could not come with one. The only concepts I could think of was Threads and Timers (a way for threads to schedule tasks for execution in a background thread). The concept of Threads exists separately in Android also, hence such a comparison is not quite precise. Until background MIDlets are available with the upcoming of MIDP 3, I guess we do not have any other options.

Content Providers. They encapsulate data and provide it to your application, therefor acting as interfaces to the application databases. Sharing data across applications is achieved also by means of Content Providers. Such a concept is related to the RecordStores in Java ME, and more general, to the Record Management System (RMS - the persistent storage mechanism in Java ME).

Intents. Intents are a way of specifying what intentions you have in terms of a specific action being performed. Intents are mostly used for launching Activities. A similar concept in Java ME is described in the Broadcast Receivers section.

Broadcast Receivers. These components listen for broadcast Intents that match some defined filter criteria, and can automatically start your application as a response to an intent. Looking closely at the Intents and Broadcast Receivers components, for me, PushRegistry comes into mind. A PushRegistry is used to request a wakeup call from the implementation. What is important to understand about PushRegistry is the fact that they have a lifetime beyond that of a MIDlet. It is part of the MIDlet management software that runs on the device. When your MIDlet registers (at runtime or at install time) for push notifications, the device is obligated to listen incoming network connections and start your MIDlet if the appropriate connection has been made.

Notifications. Notifications let you signal the user by alerting him of an incoming event, and without using a separate Activity to achieve that. For example, you are monitoring the weather, and you want to be notified when a hurricane warning is in effect for your area (common in South Florida where I leave). This can be accomplished by adding Notifications to your weather monitoring system. In Java ME, one similarity would be the use of Alerts that inform the user about different events.

In later posts, I will describe more similarities between the two platforms at different levels. Stay tuned!

Tuesday, January 6, 2009

What will change everything?

The Edge annual question for 2009, "what will change everything?", is being posed by John Brockman to a community of thinkers. More precisely, "what game-changing scientific ideas and developments do you expect to live to see?". Below are part of some answers that I particularly found interesting (although you should read all of them!):

Kevin Kelly, Editor-At-Large, Wired: "It is hard to imagine anything that would "change everything" as much as a cheap, powerful, ubiquitous artificial intelligence—the kind of synthetic mind that learns and improves itself."

Ed Regis, Science Writer: "The idea was that scientists and engineers would construct vast fleets of "assemblers," molecular-scale, programmable devices that would build objects of practically any arbitrary size and complexity, from the molecules up. Program the assemblers to put together an SUV, a sailboat, or a spacecraft, and they'd do it—automatically, and without human aid or intervention. Further, they'd do it using cheap, readily-available feedstock molecules as raw materials."

Marc D. Hauser, Psychologist and Biologist, Harvard University: "Science fiction writers traffic in a world that tries on possible worlds. What if, as in the Hollywood blockbuster Minority Report, we could read people's intentions before they act and thus preempt violence? An intentionality detector would be a terrific device to have, but talk about ethical nightmares. " This is something that I also thought about when thinking about the question posed.

Marcelo Gleiser, Appleton Professor of Natural Philosophy, Dartmouth College, talks about mastering death through. "I can think of two ways in which mortality can be tamed. One at the cellular level and the other through an integration of body with genetic, cognitive sciences, and cyber technology."

Freeman Dyson, Physicist, Institute of Advanced Studies: "I expect that genetics and molecular biology will be dominant for the next fifty years, and after that neurology will have its turn. Neurology will change the game of human life drastically, as soon as we develop the tools to observe and direct the activities of a human brain in detail from the outside". In a nutshell: direct communication between brain and brain.

Lawrence Krauss, Physicist, Director, Origins Initiative, Arizona State University: "The Use Of Nuclear Weapons Against A Civilian Population." To be honest, I doubt this will happen. Its implications are far too deep and serious.

Gregory Benford, Novelist, Co-founder & Chairman: "Live To 150." I second that!

Richard Foreman, Founder Director, Ontological-Hysteric Theater; Playwright: "Nothing Will Change Everything." Pretty straight forward, isn't it?

... and many many more. Definitely worth reading!

Thursday, December 25, 2008

Top 10 Semantic Web Products of 2008

ReadWriteWeb has posted an article on the 10 best Semantic Web products of 2008. The top two spots are taken by Yahoo and Microsoft. Yahoo! SearchMonkey is a search platform aiming at making the search better by leveraging web annotations. Microsoft acquired Powerset, a natural language processing search engine. Who has not made the list and maybe they should have: Twine by Radar Networks, which provides a new way of tracking, finding, and sharing content, all in one place.

Mobile Web Best Practices

W3C has posted earlier this year some guidelines regarding mobile web best practices.

Monday, December 15, 2008

Most Popular Android Applications for November 2008

FastCompany has published a post regarding the most popular Android Applications for November 2008:

SOURCE: fastcompany.com

Saturday, December 6, 2008

OpenID into Browsers, Browsers repllace OSs

A great post on O'Reilly Radar about getting OpenID into the browser. I find the idea fascinating: when you open your browser, it will ask you to unlock it by usign your OpenID information:

SOURCE: David Recordon on radar.oreilly.com

As you start surfing the web, the browser will take care of automatically logging you into any website. Furthermore, it will help you with the registration process. Why is this not yet implemented?

Another (future) innovation is described in an article from DesktopLinux entitled "Browser swallows OS": when you boot your computer, instead of an OS-based environment, you would get a browser-based environment, like shown below:

SOURCE: DesktopLinux.com

Fascinating, isn't it? The company that provides the browser operating system (called Cloud) is gOS. As Enrique Ortiz has also mentioned in his post, similar ideas have been tried in the past, but they all failed. Maybe this time it will be different.

Mapping open source to mobile

VisionMobile published a report on the different open source technologies used in the mobile space, describing who is using open source, where they are using it, and how they are using it, a must read.