Invalid application-identifier Entitlement

July 9th, 2010

I got a Invalid application-identifier Entitlement error from iTunes Store after upgrading iOS4.

In my case, I just erased ‘Entitlement.plist’ from my project. I created ‘Entitlement.plist’ when I tested this application in AdHoc environment. I do not use AdHoc right now, so I just erased it.

Programming, iPhone/iPod Touch

Vuvuzela application on MIDP platform

June 21st, 2010

Vuvuzela application is getting hot on iPhone recently.

Now, we got a Vuvuzela on MIDP platform. Please visit following web page to get it.

http://blog.makino-style.org/item/262

Let enjoy World Cup with Vuvuzela application!

Mobile Device

How to convert your MIDP application for the BlackBerry

April 25th, 2010

If you have MIDP application’s jar file and jad file, they can be converted to BlackBerry installable file (.cod).

  • Install appropriate JDE from http://java.sun.com/.
  • Install BlackBerry JDE Component Package from BlackBerry Java Development Environment page.
  • Setup PATH environment to ‘bin’ sub-directory of JDE installation folder.

Run following command on Windows command prompt to create ‘cod’ file.

rapc import=%JDE%\lib\net_rim_api.jar codename=midp_appli -midlet jad=midp_appli.jad midp_appli.jar

Please replace %JDE% with JDE installation folder or move net_rim_api.jar to current folder.

You also need to create ‘alx’ file. Sample alx file contents as follow.

<loader version="1.0">
<application id="midp_appli">
<name>midp_appli</name>
<description>midp_appli</description>
<version>1.0</version>
<vendor>Pigtail Software</vendor>
<copyright>Copyright (C) 2010 by Pigtail Software</copyright>
<fileset Java="1.0">
<files>KKJConv.cod</files>
</fileset>
</application>
</loader>

BlackBerry, Programming

Using Google Latitude as GPS logger

February 23rd, 2010


大きな地図で見る
I am using history function of Google Latitude as GPS logger. You can check your recorded location at history view page of the Latitude and you can export the records as KML file.

KML file can be imported to Google Earth or displayed on the Google Maps.

GPS logger may record the location more precisely, but latitude history is good enough for travel record for me and it is much easier.

Ordinary Life

Google Maps and Latitude on Nokia N900

January 14th, 2010

I recently got a Nokia N900. It is very fun device, but missing some of applications which I ran on my Nokia S60 devices. One of big thing is Mobile Google Maps. I would like to introduce how to utilize Web application version of Nokia Maps and Latitude option on Maemo Browser of Nokia N900.

If you are iPhone and Google Maps Latitude user, this is just same. I just enter the URL of Latitude web application on my iPhone to Maemo Browser. That’s it! And to enable My Location function, we just need to install small program from App Manager.

  • Install ‘maemo-geolocation’ package from App Manager.
  • Launch ‘http://maps.google.com/maps/m’ from Maemo Browser. This is Google Maps w/o Latitude option.
  • Launch ‘http://maps.google.com/maps/m?mode=latitude’ for Latitude.

You may see following dialog when bring up Google Maps web application.

Hit ‘Share’ to enable ‘My Location’ function.

To enlarge maps, we need to enter ‘Manipulation Mode’. The operation to enter this mode is a little bit fuzzy. Please refer Maemo Browser page for the detail. After entered ‘Manipulation Mode’, you can zoom-in the map by double tapping on the map. I can not figure out how to zoom-out by screen operation. But you can modify ‘z=’ part of URL to change any zoom level. If you can not found ‘z=’ in the URL, please open and close ‘Menu’ of Google Maps.

Maemo

Enable scroll function of magic mouse on Window 7

November 18th, 2009

I am using Windows7 with bootcamp on my Mac mini. Currently, scroll function of Apple magic mouse is not supported on Windows environment formally. But following procedure enabled scroll function of the magic mouse on my Windows7.

  • Obtain Bluetooth Update 1.0 for Windows from Apple web site. You can not install this package directly.
  • Unpack this package using some kind of tool. I used Lhaplus. (I am sorry, this is Japanese tool. I hope that some other general unpack tool like a WinRAR may work for this)
  • Find ‘AppleWirelessMouse’ packge in extracted files and install it. Then scroll function will be enabled.

Ordinary Life

Apple Magic Mouse

November 3rd, 2009

Magic Mouse

I got a Apple Magic Mouse. This is cute.

It seems to me, there is only one mechanical switch on it. But the mouse recognizes left click and right click by which side of mouse surface is touched. This is very smart method. Horizontal and vertical scroll also can be done just like a track pad of MacBook. Swipe operation (move two finger horizontally) is acting as paging operation.

I hope that more operations will be available using touching surface.

One sad thing is bootcamp. We can not use scroll operation on Bootcamp Windows environment. The magic mouse becomes just two buttons mouse on the Windows environment.

Mac

Gmail now supports push mail to mobile devices

September 24th, 2009

According to Official Google Mobile Blog, Mail sync function was already added to Google Sync service.

I have used Google Sync on my Nokia E63 to sync Google Calendar for a few month. I just added Email setting to Mail for Exchange and got push mail from Gmail.

Official Google Sync document does not mention about Email service yet (2009/Sep/24). Current online document just mentions about Google Calendar and contact list synchronization. I suppose you can easily add Email setting to this.

For Nokia S60 devices, you just need to have Mail for Exchange application. It is free application and you can obtain it from Ovi.

Ordinary Life

How to calculate relative cordinates of mouse pointer within web element

June 26th, 2009

There are some difficulties to get mouse pointer coordinates within  web object by Javascript. We have to solve web browser differences and figure out complicated DOM hierarchy.

If you use jQuery (this is most popular Javascript library in recent days), things get easier.

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $(document).ready(function(){
    $('img#test').click(function(e){
    var x = e.pageX - $('img#test').position().left;
    var y = e.pageY - $('img#test').position().top;
    alert("X=" + x + " Y=" + y);
  });
});
</script>

Then you just need start image tag like <img id="test".

Programming

Modified Step Carousel to work with jQeury.noConflict()

June 12th, 2009

Step Carousel is a jQeury plug in to show many images efficiently on web page. I liked it. But it does not work with jQuery.noConflict();.

I reviewed inside of the Step Carousel v1.6.1. Only one function of the Step Carousel was not worked with jQuery.noConflict(). I just need to add 2 lines of code to function addnuvbuttons.

Wrap up addnavbuttons:function(config, currentpanel) with ‘(function ($){ … })(jQuery);’ as follows.

addnavbuttons:function(config, currentpanel){
	(function ($){ // Added for noConflict()
		config.$leftnavbutton=$('<img src="'+config.defaultbuttons.leftnav[0]+'">').css({zIndex:50, position:'absolute', left:config.offsets.left+config.defaultbuttons.leftnav[1]+'px', top:config.offsets.top+config.defaultbuttons.leftnav[2]+'px', cursor:'hand', cursor:'pointer'}).attr({title:'Back '+config.defaultbuttons.moveby+' panels'}).appendTo('body')
		config.$rightnavbutton=$('<img src="'+config.defaultbuttons.rightnav[0]+'">').css({zIndex:50, position:'absolute', left:config.offsets.left+config.$gallery.get(0).offsetWidth+config.defaultbuttons.rightnav[1]+'px', top:config.offsets.top+config.defaultbuttons.rightnav[2]+'px', cursor:'hand', cursor:'pointer'}).attr({title:'Forward '+config.defaultbuttons.moveby+' panels'}).appendTo('body')
		config.$leftnavbutton.bind('click', function(){ //assign nav button event handlers
			stepcarousel.stepBy(config.galleryid, -config.defaultbuttons.moveby)
		})
		config.$rightnavbutton.bind('click', function(){ //assign nav button event handlers
			stepcarousel.stepBy(config.galleryid, config.defaultbuttons.moveby)
		})
		if (config.panelbehavior.wraparound==false){ //if carousel viewer should stop at first or last panel (instead of wrap back or forth)
			this.fadebuttons(config, currentpanel)
		}
		return config.$leftnavbutton.add(config.$rightnavbutton)
	})(jQuery); // Added for noConflict()
},

Programming