Rodney's profileRodster on the WebPhotosBlogGuestbookMore Tools Help

Blog


    October 30

    Have you seen Minority Report?

    image

    When Tom Cruise showed how he can move documents by hand on a virtual reality surface was a big hit for the movie Minority Report and looks like a technology that’s possible for a decade further.  Hollywood did a good job on showing what to expect next. I’m always a fan of sci fi movies. 

    Well, I stumbled on a very cool stuff from Microsoft…  an open source SDK called Touchless that enables developers to build applications that will do more or less the same thing showed in the movie or maybe this is good start for the same technology.

    Touchless uses your webcam as an input device and uses contrasting colors as your pointing device.   As shown in the screenshot above, I played around the demo and rotating a map with a yellow and pink plastic covers as controls.

    I can imagine tons of possibilities with this technology and best of all, no new additional hardware!    You can create photo and image editing app on a virtual space, you can put document side by side with your hands (look ma no mouse!), drag documents away, and much much more.

    I’m excited to see where applications will go with this technology.  Time for me to think of some applications for this also!

    The Touchless SDK can be downloaded from http://www.codeplex.com/touchless

    October 20

    Windows Mobile Programming: EPCGEN2

    DSC_0004  DSC_0006

    I’m working with Intermec, Psion, and Symbol hardware and devices in doing programming for requirements on mobile data collection and automatic identification technologies.  My focus lately has been on EPCGEN2 RFID tag integration (which is still rare and new in the industry) but has high acceptance in the airline and military segments.

    A little backgrounder, most of the RFID tags deployed today are those just being used for the unique id (sometimes called Tag ID or TID) that it contains.  It’s good for identifying items instead of using barcodes as the reader will identify the item by its proximity to the reader instead of manually facing the label to the reader.   RFID tags, by its name, uses Radio Frequency as means to communicate with the reader.   Around the tag is an antenna that receives Radio transmissions from the reader and that signal is enough to power the tag and be able to transmit its contents.  We see this at bookstores (that square thing they remove when you buy books) or at garments shops (where they remove a round thick plastic during checkout) but most uses are just for anti-theft or for identifying the item being bought.

    EPCGEN2 tags are similar but these have read/write memory areas instead of just having a unique ID.   The ECPGEN2 tag have user memory area that can be written to and be read from. An example of an EPCGEN2 tag is the one from UPM (image above).  These tags have different user memory sizes; the UPM sample above has 512bits of user memory and another type of EPCGEN2 tag from Fujitsu has 64KBits of user memory.   It simply looks like any sticker label and if you can see that tiny black thing in the middle of the sticker, that is the RFID chip.

    Imagine the ability to store an item’s brand, serial number, expiry, and information on location transfers being part of a label instead of just the unique ID that still requires to query a database to get the rest of the data.

    A typical EPCGEN2 tag has four memory structure:

    Membank 0: usually used for passwords to protect the tag
    Membank 1:Contains the EPC or UII or a little read/write area
    Membank 2: Contains the unique TID
    and Membank 3:contains the user area and the size of this area is dependent on the type of label

    Note: not all EPCGEN2 tags have a Membank 3.   The User Memory feature is new and this is what this article is all about. 

    But though of the user memory, it’s still not much data you can put in.  But definitely this is a good start.  What I do to save memory space is to write data using 6bit ascii instead of 8bit ascii and allows me to write more characters.  The trade-off is that the other applications reading the tag should also read it as 6bit.

    There are many uses of this technology and I can think of an unlimited requirements that can take advantage of EPCGen2 tags.  With this technology, we now have the ability to query the history of a product and that data is part of the label that can be scanned instead of just knowing its item code and not requiring access to a database anymore to get the rest of the data.

    October 19

    Food Trip

     DSC_0009 DSC_0005 DSC_0008 DSC_0013DSC_0012 DSC_0014

    I had fun at Tong Yang last Saturday with my friends Bloggie and Chatty.  Just sharing the photo’s I took on our shabu-shabu dinner.   Their appetizers were surprisingly good; their kim-chi was just spiced enough the way I like it and their sea weed “guso” was served in a vinegar and spice sauce.  The raw thin slices of beef had a lot of fat linings and was an excellent barbeque that tasted so good.   Also, on our list of barbeque was tiger prawns, scallops, chicken wings, and some pork.    The soup base we chose for the shabu-shabu was called “Taiwan Mala” which is slightly salty but spiced so well.  It tasted so good and we had some fancy fish balls, vermicelli, tofu, some vegetables for our soup.  Our food session ended with salads that comprised potatoes, tomatoes, and crabstick smothered with a lot of mayonnaise.

    Overall, dinner was beyond my expectations and I had fun with my friends.    I hope to do this often (the food blogging I mean :)).

    Update: my friend Bloggie (his name came first before ‘blogs’ :)) has a post on this as well.  his blog won as one of the most influential blogs in the Philippines.  check it out at http://www.davaodeli.com/

    October 18

    Microsoft Financing Promo

    Just would like to share this opportunity.  Microsoft is now offering a financing program; you pay only 30% upfront and the remaining balance is paid in nine months with zero interest.

    More details is at http://www.microsoft.com/philippines/financing/default.aspx

    You can avail of this through any shop selling Microsoft products (including Lane Systems :))

    October 11

    Windows Mobile Development

    DSC_0025 DSC_0021

    Last October 3, I did a technical session on Windows Mobile development. Participants are from the different backgrounds but had the same interest in learning Windows Mobile development.  

    Thanks to Sam Jacoba of Microsoft Philippines and to Princess of Globe Telecoms for sponsoring the activity.

    Message for those who attended the session:

    First, you can download the presentation from wm-dev.pptx

    I did a mistake during my demo that we were not able to derive the message from an SMS message.  The mistake during my demo is that I forgot to typecast the parameter of the MessageReceived event.  The e.Message type is PocketOutlook.Message, a generic pocket outlook message type, and has to be typecasted to PocketOutlook.SMSMessage to retrieve the .body property:

    dim smsMessage as smsMessage = ctype(e.Message, smsMessage)

    From here smsMessaage.body contains the sms Message.  My apologies for forgetting during the presentation.

    Creating an SMS application

    SMS based applications has been the key driver for value added services (VAS) from any cellular phone company.  However, SMS VAS in the Philippines is priced at P2.50 per message and twice the rate of the regular SMS.   With Windows Mobile devices, you can create your own SMS applications and take advantage of regular SMS rates.

    To create an SMS application, you start with creating an interceptor object:

    Dim WithEvents sms As New MessageInterception.MessageInterceptor

    Don’t for get to include the reference to PocketOutlook on the first line of the code:

    Imports Microsoft.WindowsMobile.PocketOutlook

    To receive the SMS message, handle the MessageReceived event of the sms object, for example:

    Private Sub sms_MessageReceived(ByVal sender As Object, ByVal e As        Microsoft.WindowsMobile.PocketOutlook.MessageInterception.MessageInterceptorEventArgs) Handles sms.MessageReceived
            'you need to typecast the message
            Dim msg As SmsMessage = CType(e.Message, SmsMessage)
            'msgb.body now contains the message
            MsgBox(msg.Body)
        End Sub

    In the example above, msg.body contains the message received.  You can parse that message and decide what to do with it.  So for example, if the expected message is in the format:

    JOIN RAFFLE <name>/<address>/<email>

    You can first parse if the message contains the right key:

    if msg.body.substring(0,11)=”JOIN RAFFLE”

    then you can get the parameters via

    dim paramString as string=msg.body.remove(0,12)
    dim paramArray() as string=paramString.split("/")

    now the values can be extracted as:

    paramArray(0) becomes the name
    paramArray(1) becomes the address and
    paramArray(2) becomes the email entry

    You can then decide to store the entry into a database.  This is how easy and simple it is to start building your own SMS VAS!

    October 07

    Programming: Windows Mobile Camera

    Unlike in the olden days where the camera on the Windows Mobile were just about VGA quality, we have Windows Mobile phones today that carries excellent resolution for both view and print.   These cameras are not just for fancy and have their purpose also for the corporate applications; for example you might want to associate a photo of a newly arrived item with its database record.   Without a good API, you will need to capture that image and do a manual attach but to most people like me that is not acceptable.

    The good news is that one of the name spaces under Microsoft.WindowsMobile.Forms namespace is a class called CameraCaptureDialog.  By instantiating this class, you now have access to the camera feature of the phone.   You can capture pictures or video and depending on your needs and programmatically associate the captured picture or video to your application.

    Here’s a simple example, using Visual Studio, drag a picture box to a Windows Mobile form.  We’ll use that picture box to view the result of a picture capture.  Then drag a button to the form and on the button’s click event, write the code below:

    ‘  don’t forget to have a reference to Imports Microsoft.WindowsMobile.Forms

    Dim ccd As New CameraCaptureDialog
    ccd.Resolution = New Size(100, 200)
    ccd.Mode = CameraCaptureMode.Still
    ccd.ShowDialog()
    If ccd.FileName <> String.Empty Then PictureBox1.Image = New Bitmap(ccd.FileName)

    Run the app and see how you can take advantage of the Windows Mobile camera in your custom Windows Mobile applications!

    Another notable fact is that even though you don’t have a Windows Mobile phone, you can use the Windows Mobile device emulator.  But since the emulator does not have a physical camera, all you see is black :)   but it works!

    Windows Mobile 6 tools: Cellular Emulator

    The advantage of developing applications for Windows Mobile is the availability of excellent tools for developing Windows Mobile applications even without having the actual device yet.  This includes the cellular emulator.   The cellular emulator  fakes the connection to the cellphone company for calls, sms, and data so that you can work on applications requiring connections without the actual device and without the actual connection to the telco.

    Note: this is only available for phone based Windows Mobile ROMs.   This has no use to Windows Mobile classic (Pocket PC) device ROM.

    Once you start the cellular emulator you will see the following screen:

    image

    To connect the device emulator to the cellular emulator,  check the DE parameter for which COM port it is listening on.   The Cellular Emulator creates virtual COM ports that waits for a connection from the device emulator.

    If you may have noticed my COM port is COM10.  If you try to configure the COM port of the emulator as COM10, you may get an error.  COM settings under Windows has a convention such that if the port number is 10 and above, you should write it as \\.\COMXX and not just COMX.  Writing it as COMX is ok for COM1 to COM9.  So for example:

    image

    Once you have successfully established the connection(after doing a soft-reset), you may now try to:

      • Make call and receive calls
      • Connect to GPRS or 3G data networks, and
      • Send and receive SMS

    ..and without the need of having a physical device nor an actual connection to the cellular company.

    Have Fun!

    image