You Are Here:

Community: Blogs

Harri Salminen's Forum Nokia Blog

Debug information from platform applications using emulator

widianuser | 01 June, 2008 22:55

Sad but true - for multiple reasons it is nowadays quite a rare situation that I launch an emulator to do S60 development or debugging. Last week I had to do some debugging to solve a weird email problem on S60 devices; because the problem was with the native email application, I configured the email account to emulator, enabled logging, studied the logfiles and understood what was wrong. After had done that I understood that maybe this logging trick isn’t a well-known tool for developers, at least a quick search to developer resources didn’t find anything.

If you trace the epoc.exe application with Filemon or other similar tools, you will notice that emulator tries to access many directories under $(EPOCROOT)epoc32\winscw\c\logs but fails to write data there because those directories don’t exist by default. If you create directories by hand, you will see logging data appear there for many platform applications. Sometimes that log data makes sense for a developer without the platform source code, sometimes not. If you want to try yourself, create directories like AOEmail, AOMan, Browser, certmanui, connectiondialogs, EMail, java, MCe, mediator, scard, swlstoken, tlsprovider, UiLib... Sure, that list is not complete - trace the emulator process and try to find which directory to create for more data. 

//Harri

-- 

Go to Mobilitics for Mobile Innovations and Custom Search

 

Where do you get terminal capability information?

widianuser | 15 April, 2008 21:33

As mobile networks, terminals and browsers improve, creating browser based solutions becomes more interesting. When you start developing services for mobile browsers it won't take long before you need detailed information about the terminal's capabilities to create the most usable pages. 
 
As far as I know, there is at least three major sources for that information:
 
Some questions: what is your datasource when you need information about device properties? Are there true quality differences between datasources (sources seem to be referencing each other: WURFL uses UAProf and DeviceAtlas uses WURFL etc.)?  What about provided API's, are there notable differences? Something else developers should know about this issue - your experiences are very welcome.
 
//Harri
 
----
 
Go to Mobilitics for Mobile Innovations and Custom Search 
 

More questions for mobile developers

widianuser | 08 April, 2008 20:53

Some time ago I wrote a list of questions to ask before a mobile project. I just posted another list of questions for developers who decided to create an installable application. This time list looks like this

  • Does installation package include configuration?
  • Can you manage the application after the installation?
  • Is your application brand-aware?

If you want to learn more, check the article.

Some other recent topics go from push mail via mobile Linux to speaking phones.

//Harri 

Questions to ask before mobile project

widianuser | 13 February, 2008 14:48

I made a small list of questions that I feel are important to ask from a project team before diving deeper to any mobile project. List goes like this: 

 

  • Is solution needed regularly or does it contain information that changes frequently?
  • Do technical requirements match with target group?
  • Can you make it any simpler, please?
  • How to publish the solution?
  • Is it visual?
  • Well, how much does this cost?

 

Complete list is available from my personal site.

I also set up a custom search engine for mobile developers, you can access it from search.mobilitics.net. Idea is that search engine only uses sites that have been most important for myself when trying to solve mobile development related problems. There is also information available what to do is you want to contribute to make engine even better. 

//Harri 

My not-so-technical side

widianuser | 22 January, 2008 21:05

For myself mobile solutions are interesting on the technical side but very interesting they become when put to the broader context:

  • what kind of impact new solutions will have to everyday life
  • what kinds of solutions new enablers will allow us to create
  • which solutions I feel are still missing 
Recently I've started to write down my impressions at mobilitics.blogspot.com, you are warmly welcome to visit and drop a comment there. After you've done that, navigate back here to Forum Nokia to find all the details about the enabling technologies.
 
//Harri 

 

New Symbian Signed, new capabilities

widianuser | 14 December, 2007 17:42

As everyone must have noticed, Symbian Signed process and site have beed upgraded. Lots of discussion have been about new signing methods like Open Signed and Express Signed, but what does this new process mean to you during development time:

It means that if you have Publisher ID, you will get more capabilities than before.

Previously with Publisher ID you could get everything execpt CommDD, MultimediaDD, NetworkControl, DiskAdmin, DRM, AllFiles, TCB.

Now with publisher ID you will get everything except DRM, AllFiles, TCB. So CommDD, MultimediaDD, NetworkControl, DiskAdmin are there available for all developers with Publisher ID.

(OK, you could have got special access to those before with special process, but that's a different story.) 

//Harri 

 

S60 browser goes iPhone

widianuser | 13 December, 2007 17:06

Sometimes I envy iPhone owners. It doesn't help that my phone - unlike iPhone - has an open platform, tons of 3rd party applications, embedded GPS, good camera, 3,5G connections etc. What my phone doesn't have is the marketing buzz that pushes major web sites to make special optimized pages for iPhone users. I'm a big fan of Google's solutions and when they launched a special service for iPhone, I made a quick software hack and changed the N95 browser to introduce itself as iPhone's browser. Result was somewhat surprising. Both phones have a browser with a common core (I've been told) and AJAX support, so my guess was that pages made for iPhone would work just fine with N95. However, that was not quite the case: iPhonesque Google-pages in S60 don't every time draw completely and some items seem to be missing.
 (More)

Future changes in Symbian Signed -process

widianuser | 10 September, 2007 22:37

Take a look at this post at Symbian's developer forum and especially the chapter describing new "Express signing" process. This looks like an improvement that at least I have been waiting for - it is a cheaper way to get applications signed and what's often more important, you will get the application signed immediately. Waiting for a week to get an application signed after a minor change has been something that I have felt quite difficult to explain to our customers.

This new signing process is expected to be available in Q4 and if you have any comments, now it is time to be active and provide constructive  feedback to Symbian people.

Simple solutions, huge benefits

widianuser | 30 August, 2007 22:20

All too often developers try to solve problems with the latest and coolest technologies. You probably can recognise the “next feature pack will include THE missed feature” disease and its close relative “this feature is now available in only one terminal model, but wait until it is embedded into base platform”. Stop for a second and think if the current problem could be solved with existing enablers instead of waiting for some new killer-enabler to appear.

The trigger for these thoughts was a small piece of news I saw in a newspaper. The story told how a Finnish hospital had used SMS-based alert system to inform patients about available consulting hours in case previous patient had cancelled the time. Another example was the solution that sends an SMS message to patient asking if any of the available times would be OK before the actual reservation is made.

The estimate of the savings these applications generate is really something to think about: for a smallish hospital these solutions are estimated to save nine person’s work every year. Those nine people can now do their work taking care of patients, not sitting at the office answering to phone calls. Simple applications like this might not be technically the most exciting, but what’s most important - they improve the processes using widespread mobile technologies. And when hospital use is concerned, solutions like this save lives when nurses can concentrate on their jobs.

An Open C test drive

widianuser | 20 August, 2007 22:38

Some time ago I decided to test drive Open C to see how the first release performs. Instead of writing my own code from scratch, I took an existing open source project and tried to port that to Symbian. Because once upon a time I considered writing my own XMPP Symbian implementation, I downloaded sources for Loudmouth, an open source XMPP implementation. Without previous knowledge about Open C or Loudmouth I took the challenge. Below are some notes about my Open C tests. List is not very "scientific" and all comments are more than welcome!

Starting the work was simple: I created a new DLL-type project using Carbide and imported Loudmouth source and header files to correct directories. I was happy to see that MMP-file was updated automatically! After done that, Carbide tried to compile the project and produced a respectable amount of errors and warnings. The reason is that when compiling Loudmouth (or any other source package) to other platforms you'd use provided configuration scripts to create makefiles. For Open C that didn't work and configuration must be done manually. Basically there are two issues to solve:
  • which macros to define for compilation?
  • which libraries are required for linking?

Writing configuration manually is not as bad as it sounds: I created new header file named "configure.h" and copied the initial contents from skeleton file configuration.h.in. Luckily enough, the skeleton file was well commented and after a couple of trials and errors I got a working configuration file.

Because I was compiling a shared library, I had to add EXPORT_C and IMPORT_C directives by hand.

There is a nice set of string conversion utilities in directory s60opencexOpenCStringUtilitiesExLibrary. I didn't find any references to those from documentation.

When compiling the sources I had to make a couple of changes to support Symbian. There were only few places that needed fixing and/or "#ifdeffing" with __SYMBIAN32__ macro:
  • glib/gi18n.h includes libintl.h that wasn't included in Open C package (bug?). I simply commented that line out.
  • For target build there was error "stdapis/machine/endian.h error: impossible constraint in `asm'".  I added new preprocessor directive #ifdef __SYMBIAN32__ #define    _BYTEORDER_FUNC_DEFINED #endif to solve that

For IP-address resolving I found a strange issue: I wasn't able to get getaddrinfo() to work, but gethostbyname() seems to be OK. Can anyone else confirm this?

To run the application in target device, it is a must to install also the Open C runtime libraries, probably the best way to do this is to embed the required SIS files to one big installation file. Open C documentation seems to lack the list of required runtime libraries, but the information can be found from readme-file.

Readme file contains an error: UID for openc_ssl.sis is wrong in readme-file, correct uid is 0x10281F34.

After these steps I was able to run a small test application that linked with Loudmouth XMPP library and sent some XMPP messages to test server. I'm sure there are lots of things to polish if I continue work with this project, after all I haven't really tested the results of my small project. But anyway: getting an XMPP library compiled for Symbian takes much less time than reading and understanding the actual protocol specifiction.

Disabling network access when abroad

widianuser | 22 July, 2007 22:44

This summer I was able to take a wonderful two-week trip abroad with my family. One day during the trip I realized that I had a dangerous (=expensive) setup in my terminal:
  • lots of applications doing automatic network operations
  • every application has roaming check turned off (reason is here, in my older post)
  • all applications are set up to download as much as possible, because I have a flat-rate data plan when at home

My first reaction was that I started to launch applications and manually changing their network settings. After doing that for a while I got frustrated when I understood that same project was waiting for me when I get back home, in order to allow network traffic again. Then I got an idea how to make sure my applications are not doing unwanted network operations (which would cost in a worst case something around 10€/MB).

This trick worked fine at least in my E61: I opened the terminal's access point settings (Tools->Settings->Connection->Access points) and created a brand new access point by copying the settings from my previous access point (Options->New access point->Use existing settings). I renamed the new AP to "travelling" so that I could find that easily. Then I opened the settings of the AP that I had configured to all applications and made that AP invalid by making a minor change to setting field "Access point name". Now I was sure that there weren't applications opening network connection unless I explicitly allowed it to do so by selecting the new AP - if an application tried to use old AP it didn't work because of changed AP name. When an application tried to make a network connection, it either failed with broken AP ("Packet data connection not available") or application prompted for new AP.

Returning to "home network" was now easy; I deleted the AP named "travelling" and returned the original AP to its correct settings. Applications found network again and those applications I had allowed to use network abroad prompted for new AP to replace the missing one.

MWS and mobile applications for families

widianuser | 20 June, 2007 23:15

Like bloggers here, there and everywhere have already reported, Nokia has released a new version of the mobile web server solution. Unlike Raccoon, the previous version of the solution, this version is targeted more to end-users and I must admit that installation, setup and usage was now really easy. When I installed this application and tried sharing my calendar with my family, I suddenly remembered Hanna Parkkola's dissertation "Designing ICT for Mothers".

In her paper Parkkola studies technologies used in intra-family communications and notices that for the families, mothers are the real decision makers regarding the ICT technologies used and that
"mothers are willing to use technologies and even implement new ones if they can obtain benefits with them."
So, my big question is: Where are the mobile services for the families?

Some examples of mobile services I'd love to see are:
  • sharing family calendar. I have my own calendar in my mobile phone and so has my wife. Soon my kids will have their calendars, too. Synchronizing these calendars is a difficult task - haven't seen a mobile solution for this
  • mobile grocery list. Saving grocery list to a shared web server allowing all family members to access it using their mobile devices is something I think every time I go shopping and try to remember what to buy
  • "family message mediator". This solution would allow me to send messages to all family members at once and also verify who really has read it.

For the design of mobile applications for families, remember two reasons from Parkkola's study why an application would not be successful:
  • application is slow to use
  • application is not available all times

Could new MWS solution be a platform for mobile family applications?

Operator view on NFC environment

widianuser | 23 May, 2007 08:44

GSM Association has recently published a Technical Guideline document about mobile NFC technologies. This paper is an interesting one for two reasons: it gives you an idea how major operators (MNO's involved in this NFC initiative represent 45% of the global GSM market) see the technical future of NFC-platform in mobile domain and the paper also gives an overview to the protocols and problematics that typically are hidden behind different API's.

This is an interesting initiative to follow, as operator's needs and requirements sooner or later will have impact on actual terminal models.

Browser and enterprise applications

widianuser | 11 May, 2007 07:09


For all these years that I have been in mobile industry one question has remained the same. Typically at some stage of enterprise project customer poses the big question: "But why we just can't use the browser of the terminal, instead of making this client application?"

First the answer was that making data calls (this was before GPRS) is so slow, unreliable and expensive. Then we got GPRS, UMTS and even WLAN.

Then the answer was that browser is not capable of doing the right things or the browser is so slow to use. Then came xHTML browsers.

Then the answer was that browser user-experience is poor, page rendering bad and browser misses some vital parts that desktop browsers have. Then came the new OSS web browser for S60 3rd edition.

Although the infrastructure now seems to be there, I still think that native application is the number one solution for mobile enterprise applications. Here are the most important reasons for this.

Most importantly: native application can be used offline. It is a common scenario that application will be used by field workers in places where network coverage cannot be assumed. Do a test: visit some basements, machine rooms or stairways and see what happens to network coverage. Browser based solution that works fine outdoors and in offices would become unusable in places where application would really be used. Native application can cache data and work fine without network.

Important design rule for (enterprise) applications is that user interface must be easy to use, robust and follow the same look and feel with other applications. UI that would in some other context be judged as uninteresting and non-innovative can work fine in enterprise application. Remember that users are not technology savvy early adopters, but people that probably use the application because their manager has told to. Native application with familiar UI components like settings screens, tabbed dialogs,  searchable lists etc. are valuable asset when trying to manage and display large amount of enterprise data.

In many cases applications must be aware of the surroundings of the terminal and integrate with terminal's native applications. Assume an application that needs to take a picture, geotag it with GPS information, attach it to email and send it to office. Or application that switches terminal's profile based on meeting information stored to calendar. These are examples of features that just cannot be made with browser, but are typical enterprise requirements.

Don't get me wrong, I like browser solutions and I also create those for enterprise and consumer use. Just remember to assess carefully the application requirements and usage scenarios before making the big decision about the overall architecture, no matter how fancy the browser would be.

Mind the battery

widianuser | 29 March, 2007 08:12

Last weekend I had a small vacation, took cheap flight and visited a new city. While enjoying the sights of Riga I made a field test
with my N93, trying to use it in as "converged" fashion as I could. So I packed my device with

and of course I used N93's browser, messaging, camera and WLAN connectivity with the applications listed above.

The experiment started fine and one by one I got every application to work. When I let the applications run simultaneously the problems started: sudden terminal reboots, memory low messages, lost pictures. Well, I had been expecting problems with memory consumption, after all there were lots of stuff to keep in RAM. Also I was prepared to see shortened battery life because of Bluetooth and WLAN usage, but the result was much worse than I had expected: the device battery ran empty 4 hours after it had been disconnected from the charger. With my typical use with lots of talking and messaging the terminal keeps going for days without a battery recharge. In this small test "convergence" became "denial of service" when empty battery made device useless for the rest of the day.

Here is my humble request to all of you, fellow developers: please keep in mind battery usage when designing the next killer application. If your application dries the battery within an hours, your application is really a killer, but only a terminal killer.
 
1 2  Next»
 

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: qdcZidentifierQSxhttpE3aE2fE2fblogsE2eforumE2enokiaE2ecomE2fblogE2fpaulE2dcoultonsE2dforumE2dnokiaE2dblogE2farchivesE2f2009E2f04E2fX qdcZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qdcZtypeQUqfntypeZBlogContentQ qdcZtypeQUqfntypeZCommunityContentQ qdcZtypeQUqfntypeZE52esourceQ qdcZtypeQUqfntypeZWebpageQ qdcZtypeQUqmarsZManagedE52esourceQ qdcZtypeQUqwebZInformationE52esourceQ qdcZtypeQUqwebZPageQ qdcZtypeQUqwebZE52esourceQ qdcZtypeQUqrdfsZE52esourceQ qfnZtypeQUqfntypeZBlogContentQ qfnZtypeQUqfntypeZCommunityContentQ qfnZtypeQUqfntypeZE52esourceQ qfnZtypeQUqfntypeZWebpageQ qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX qrdfZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qrdfZtypeQUqfntypeZBlogContentQ qrdfZtypeQUqfntypeZCommunityContentQ qrdfZtypeQUqfntypeZE52esourceQ qrdfZtypeQUqfntypeZWebpageQ qrdfZtypeQUqmarsZManagedE52esourceQ qrdfZtypeQUqwebZInformationE52esourceQ qrdfZtypeQUqwebZPageQ qrdfZtypeQUqwebZE52esourceQ qrdfZtypeQUqrdfsZE52esourceQ