Thursday, January 22, 2009

BOLT - the Java-based Browser

What intrigued me about BOLT (which is in a beta version at the moment of this writing) is the fact that it is written in Java (Java ME). It is designed for entry-level phones (with MIDP 2.0 and CLDC 1.0 or higher), but certainly it runs just fine on smartphones too. It is considered to offer fast and secure web browsing. How secure? 128-bit SSL Connections, filtering done on the server to protect you from malicious code, certification error notifications, and pop-up blocker. How fast is it? Reports have mentioned that on a Nokia 6120 (which runs on the S60 platforms), BOLT loaded the website in 14 seconds, while the built-in browser loaded it in 40 seconds.

BOLT provides ECMA Script 262 JavaScript support (asynchronous java script will work) , but does not currently offer support for Java Applets. Data reductions and lower power consumptions are also achieved.

If you are looking for screenshots (and further test results), head to phonearena.

Top 5 Cellular Phone Producers for 2008

Based on reports from PhoneArena, here is a list of the top 5 cellular phone producers in the global market for 2008:

  1. Nokia - 470 million units sold.
  2. Samsung - 200 million units sold.
  3. LG - 100 million units sold.
  4. Motorola - 99.9 million units sold.
  5. Sony Ericsson - 96.6 million units sold.
I am still hoping Motorola will come through (eventually) and will revive its mobile devices unit. Until then, another 4000 jobs are expected to be lost (beside those 3000 from November of last year).

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!