You Are Here:

Community: Blogs

Maximiliano Firtman's Forum Nokia Blog

PHP and MySQL on Symbian

firt | 25 January, 2008 04:27

Yes guys, I’ve just installed PAMP (Personal Apache, MySQL and PHP) on my N95 and it worked!

Do we need another language for Symbian? I’ve also been a beta tester of a .NET Compact Framework for Symbian and it worked well too (but this is for another post).

So, my first thought was: “great, I can see a PHP running on my phone… and now what?” I’ve seen PHP running on an iPhone last weeks. But then, I realized that this are real good news. Not only because of PHP or Apache, because of MySQL too. We have MySQL on Symbian! A great database (recently acquired by Sun) with a lot of features that all web developers love.

Is PHP useful? Now you can port in 1 minute a development you already have in a website or intranet. There are thousands (millons?) of PHP developers in the world and now, they can run their applications in many Series 60 devices with no change. Many CMS (Content Management System) as Joomla or Drupal worked well too.

Ok, I had to install five applications and libraries (7.5Mb), I’ve received almost 15 warnings and disclaimers, but it worked. A simple user will be a bit frustrated. But this is the first beta of the product (hosted by Nokia Open Source) and I think there is a great opportunity in the future for this solution.

After installing it, I opened PAMP application and start both Apache and MySQL (you can start only one if you need). After 5-8 seconds I’ve both services running. Then, I opened my S60 browser and type 127.0.0.1 and I could see a phpinfo page with all the information about PHP version (5.2) and packages installed (like GD for image manipulation).

The PAMP application shows the obtained IP in your LAN, so you can type that URL in your desktop browser and you are receiving PHP files from your phone.

After that, I opened a MySQL client I frequently use for web development and tried to connect it to my phone’s IP, it worked too; so I created a database and one table. I inserted some records, all from my desktop computer (we still need a MySQL native client on Symbian, anyone?).

I could also write some CREATE SQL statements from the phone, but I don’t have a bluetooth keyboard ;-)

Then I opened PyEd on my N95 (the Python on device Editor) and wrote a simple PHP file that connects to the the MySQL and show me the results on an HTML page. I saved it on e:dataapachehtdocs (the root folder on my MicroSD card) and… everything worked!. And, I was surprised about the speed, even browsing the webpage from my desktop. It wasn’t a hard benchmark, but I’m satisfied about the response time.

I saw in the PHP’s package list some S60 packages, like contacts, messaging, but I couldn’t find any documentation about them. But I think you can use some Symbian API from PHP.

What's missing?

  • An API to access and query MySQL from Symbian, Python, Java ME and Flash Lite. It isn’t so hard to do. I’ve just review the MySQL protocol and with some free time, anyone can write a framework using sockets. Anyone with free time? Tongue out
  • Java ME and Flash applications connecting to Apache and calling PHP code
  • A native MySQL client for administration
  • Memory and battery optimizations
  • Cleaner and easier installer
  • MySQL alone?
  • A super duration battery and a fixed IP over 3G and we have portable web hosting Cool

What kind of application can we see developed in PHP?

  • Rapid CRUD applications for managing records.
  • AJAX applications with a rich UI over the browser.
  • Existing Open source CMS for many situations: blogs, eLearning, eCommerce. Only some of then will be useful to run on the phone.
  • Mini intranets. Just open your wifi connection and all the computers in the LAN (and other mobile devices, iPhones, iPods, Internet Tablets, etc) can access your application to view, upload and edit information from the browser. Close the Wifi connection or go ouside ;-) and the application is offline. Simple, clean, secure and quick.

Congratulations to the porting team that is working on PAMP and I would like to see more about this project.

By the way, only the N95 8B was tested succesfully by the team, but in my N95 classic with firmware v20 it worked ok in my little test. 

Follow the installation instructions and try it. What do you think?

The nicest and slowest UI: Yahoo! Go 3.0, Android competitor?

firt | 17 January, 2008 00:35

Recently, Yahoo! announced his new Yahoo! Go 3.0 platform (beta). “The best Internet experience on your phone. Period.” Let’s see after the period.

Yahoo! Go is a Java ME application available to many MIDP 2.0 devices and is the On-Device Portal that Yahoo! published for access mobile content provided by the company as Mail, Maps & Local, News, Financial, Sports and Web navigation.

 Yahoo! Go 3.0 is also one response to Google’s Android. It isn't a new operating system as Android, but it has the ability to host new Widgets and Snippets developed by any using the Blueprint language, an XML based language on XForms. The first thing to note is that the platform doesn't use the standard way to develop widgets: XHTML, CSS and JavaScript/AJAX, as Series 60 Widgets. All applications inside the download are Widgets developed with this language. You can download more using Internet.

A widget is some kind of application that is installed inside Yahoo Go! and can use RSS and internet information using some visual controls (similar to iPhone UI). All widgets are shown on a carrousel (like Android Home application) and when you browse them, you can see resume information about them (for example, your last e-mails or current weather information). You can access a submenu of each widget using up and down when you are over a widget on the carrousel.

A snippet is a "mini widget" that appears on Yahoo WAP Home Page and Yahoo Go Home Page and shares the layout with other snippets. They can link to widgets or external websites. All of this happens inside the Yahoo Go application that has its own browser implementation. I like more Opera Mini's renderization than this one's.

According to the roadmap, in the future the Widgets will run directly on the device. I don't know how, will it generate dynamically a JAD and JAR only for your widget? Today it hasn't some client script programming language, all the logic must be implemented server-side.

  The User Interface is really cool, smooth animations and transitions. But there is one big problem: IT'S TOO SLOW! I'm talking about the UI, not the response time from the server.

I've tried in my Nokia N95 (with a good CPU) and it's really slow. In the Home Page carrousel when I press the right or left key I've to wait one second until the UI shows next widget on the carrousel. To open a Widget sometimes you need to wait 3/4 seconds and to move from one news or item to another leaves you another seconds. Everything feels slow. Reading news and looking for some restaurants, I pressed down key to scroll the information and it reacted 7 seconds later!  To go back from a widget to the carrousel (the * key) you have to wait 3 seconds. Opening the soft key menu "Options" take 1 second or more.

You don't know if the application is alive or not. There isn't any waiting signal in the UI or clock pointer: a big UI mistake. If some operation will take more than 1 second you need to warn the user to wait.

Try it yourself in your mobile phone and tell me if it's only me ;-) Go to get.go.yahoo.com from your mobile phone or go.yahoo.com from your desktop. If you want to learn about how to develop Widgets and Snippets you can see the developer site or download the Blueprint Developer Guide in PDF.

I think it has a great UI, but if the Y! team don't speed up the UI in final version, I won't use it, and I won’t develop widgets for it. For now, Nokia's Widsets has more content developed and the UI is much faster.

What do you think?

Here is a video showing the application (on a desktop) in CES 2008 Las Vegas

 
 

Rate This

 
 
Bookmark this page: DeliciousDiggFacebookGoogleYahooStumbleUponRedditDiigoTechnocratiTwitter  Share this page Share this page Print this Page Print this page Invite a friend Invite a friend
京ICP备05048969号    Email Newsletters Press Terms & Conditions Privacy Policy Sitemap Contact Us © 2009 Nokia 
RDF Facets: qdcZdescriptionQSxItE20allE20startedE20innocentlyE20enoughE2eE20TheE20notebookE20didnE27tE20fitE20inE20myE20pocketE2cE20andE20myE20N93E20wasE20alreadyE20thereE2eE20ItE92sE20beenE20aE20greatE20coupleE20ofE20weeksE2cE20butE20IE92mE20gladE20toE20beE20backE2eE20NareshE20E2cE20ToteE20andE20E52onE20haveE20alreadyE20commentedE20onE20theE20ChampionE20E44ayE2eE20IE20echoE20theirE20thoughtsE20thatE20itE20isE20wonderfulE20toE20meetE20inE203E44E2dlandE20thoseE20peopleE20whoE20IE20workE20withE20andE20workE20forE2cE20butE20rarelyE20actuallyE20seeE2eE20Ea0E20AfterE2eE2eE2eE20E45ventE2cE20GeneralE20IE92veE20beenE20workingE20onE20myE20ToE44oE20listE20thisE20weekE2eE20WellE2cE20workingE20mightE20beE20aE20stretchE2eE20ItE92sE20beeE2eE2eE2eX qdcZidentifierQSxhttpE3aE2fE2fblogsE2eforumE2enokiaE2ecomE2fblogE2ftastyE2dmultimediaE2djournalsE2dforumE2dnokiaE2dblogE2fgeneralX qdcZpublisherQUxhttpE3aE2fE2fswE2enokiaE2ecomE2fidE2fc764fd1cE2d8b06E2d499aE2d9a6aE2d17c3903d5a65E2fforumE5fnokiaE5fcrawlerE5fagentX qdcZtitleQSxTastyE20MultimediaE20JournalE27sE20ForumE20NokiaE20BlogE20E7cE20GeneralX qdcZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qdcZtypeQUqfntypeZBlogContentQ qdcZtypeQUqfntypeZCommunityContentQ qdcZtypeQUqfntypeZE52esourceQ qdcZtypeQUqfntypeZWebpageQ qdcZtypeQUqmarsZManagedE52esourceQ qdcZtypeQUqwebZInformationE52esourceQ qdcZtypeQUqwebZPageQ qdcZtypeQUqwebZE52esourceQ qdcZtypeQUqrdfsZE52esourceQ qrssZdescriptionQSxItE20allE20startedE20innocentlyE20enoughE2eE20TheE20notebookE20didnE27tE20fitE20inE20myE20pocketE2cE20andE20myE20N93E20wasE20alreadyE20thereE2eE20ItE92sE20beenE20aE20greatE20coupleE20ofE20weeksE2cE20butE20IE92mE20gladE20toE20beE20backE2eE20NareshE20E2cE20ToteE20andE20E52onE20haveE20alreadyE20commentedE20onE20theE20ChampionE20E44ayE2eE20IE20echoE20theirE20thoughtsE20thatE20itE20isE20wonderfulE20toE20meetE20inE203E44E2dlandE20thoseE20peopleE20whoE20IE20workE20withE20andE20workE20forE2cE20butE20rarelyE20actuallyE20seeE2eE20Ea0E20AfterE2eE2eE2eE20E45ventE2cE20GeneralE20IE92veE20beenE20workingE20onE20myE20ToE44oE20listE20thisE20weekE2eE20WellE2cE20workingE20mightE20beE20aE20stretchE2eE20ItE92sE20beeE2eE2eE2eX qfnZdistributionQUxhttpE3aE2fE2fblogsE2eforumE2enokiaE2ecomE2fX qfnZtypeQUqfntypeZBlogContentQ qfnZtypeQUqfntypeZCommunityContentQ qfnZtypeQUqfntypeZE52esourceQ qfnZtypeQUqfntypeZWebpageQ qfnZupdatedQDx2008E2d10E2d03X qmarsZdescriptionQSxItE20allE20startedE20innocentlyE20enoughE2eE20TheE20notebookE20didnE27tE20fitE20inE20myE20pocketE2cE20andE20myE20N93E20wasE20alreadyE20thereE2eE20ItE92sE20beenE20aE20greatE20coupleE20ofE20weeksE2cE20butE20IE92mE20gladE20toE20beE20backE2eE20NareshE20E2cE20ToteE20andE20E52onE20haveE20alreadyE20commentedE20onE20theE20ChampionE20E44ayE2eE20IE20echoE20theirE20thoughtsE20thatE20itE20isE20wonderfulE20toE20meetE20inE203E44E2dlandE20thoseE20peopleE20whoE20IE20workE20withE20andE20workE20forE2cE20butE20rarelyE20actuallyE20seeE2eE20Ea0E20AfterE2eE2eE2eE20E45ventE2cE20GeneralE20IE92veE20beenE20workingE20onE20myE20ToE44oE20listE20thisE20weekE2eE20WellE2cE20workingE20mightE20beE20aE20stretchE2eE20ItE92sE20beeE2eE2eE2eX qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX qrdfZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qrdfZtypeQUqfntypeZBlogContentQ qrdfZtypeQUqfntypeZCommunityContentQ qrdfZtypeQUqfntypeZE52esourceQ qrdfZtypeQUqfntypeZWebpageQ qrdfZtypeQUqmarsZManagedE52esourceQ qrdfZtypeQUqwebZInformationE52esourceQ qrdfZtypeQUqwebZPageQ qrdfZtypeQUqwebZE52esourceQ qrdfZtypeQUqrdfsZE52esourceQ