<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dreaming of an Ideal World!!! &#187; Technical</title>
	<atom:link href="http://jjaimon.net/blogs/category/technical/feed" rel="self" type="application/rss+xml" />
	<link>http://jjaimon.net/blogs</link>
	<description>My dreams, random thoughts...</description>
	<lastBuildDate>Mon, 03 May 2010 07:24:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Team Velocity &#8211; Right word at the wrong place</title>
		<link>http://jjaimon.net/blogs/2009/09/15/team-velocity-right-word-at-the-wrong-place</link>
		<comments>http://jjaimon.net/blogs/2009/09/15/team-velocity-right-word-at-the-wrong-place#comments</comments>
		<pubDate>Tue, 15 Sep 2009 03:07:18 +0000</pubDate>
		<dc:creator>jjaimon</dc:creator>
				<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://jjaimon.net/blogs/2009/09/15/team-velocity-right-word-at-the-wrong-place</guid>
		<description><![CDATA[Agile development methods are overly hyped; probably after cloud!!!.&#160; I happened to read SKORKS today.&#160; I agree with his observation, ie. measuring velocity does not replace planning and scheduling on an agile project.&#160; Velocity is just a metric to measure team productivity.&#160; I would compare this to kloc or design complexity metrics of the traditional [...]]]></description>
			<content:encoded><![CDATA[<p>Agile development methods are overly hyped; probably after cloud!!!.&nbsp; I happened to read <a target="_blank" href="http://www.skorks.com/2009/09/types-of-agile-projects-and-the-value-of-velocity/">SKORKS</a> today.&nbsp; I agree with his observation, ie. measuring velocity does not replace planning and scheduling on an agile project.&nbsp; <a target="_blank" href="http://www.scrumalliance.org/articles/39-glossary-of-scrum-terms#1110">Velocity</a> is just a metric to measure team productivity.&nbsp; I would compare this to kloc or design complexity metrics of the traditional development.&nbsp; One difference is that velocity should always be measured in the team l<img style="max-width: 800px;" src="http://3.bp.blogspot.com/_QCmUgDEhTiw/RsfwpC759nI/AAAAAAAAAZY/s40oPOgvypI/s200/agile_guy.jpg" align="right" />evel and so, a constant team is more important.&nbsp; I heard people talking about shuffling people in a team.&nbsp; The team velocity is invalid or useless if&nbsp; team members change constantly in a team.&nbsp; Once indication of team getting a good grasp of the project is the constantly increasing velocity in the initial phase of the project.&nbsp; As <a target="_blank" href="http://www.skorks.com/">Alan Skorkin</a> says, a proper estimation process is a must to achieve good and consistent velocity for a team.&nbsp; More about this later&#8230;</p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=40ea7690-71d8-89e2-94d2-eac86c24d1c3" /></div>
]]></content:encoded>
			<wfw:commentRss>http://jjaimon.net/blogs/2009/09/15/team-velocity-right-word-at-the-wrong-place/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Voice: Another Innovation from Google</title>
		<link>http://jjaimon.net/blogs/2009/08/02/google-voice-another-innovation-from-google</link>
		<comments>http://jjaimon.net/blogs/2009/08/02/google-voice-another-innovation-from-google#comments</comments>
		<pubDate>Sat, 01 Aug 2009 19:02:35 +0000</pubDate>
		<dc:creator>jjaimon</dc:creator>
				<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://jjaimon.net/blogs/2009/08/02/google-voice-another-innovation-from-google</guid>
		<description><![CDATA[Google&#8217;s acquisition of Grand Central a while ago was seen as a smart move by industry.&#160; They took almost two years to invite fresh accounts to try out their new beta program, . The good thing about Google Voice (for that matter Grand Central) is that it lets users integrate all of their existing phone [...]]]></description>
			<content:encoded><![CDATA[<p><a target="_blank" href="http://googleblog.blogspot.com/2007/07/all-aboard.html">Google&#8217;s acquisition of Grand Central</a> a while ago was seen as a smart move by industry.&nbsp; They took almost two years to invite fresh accounts to try out their new beta program, <a target="_blank" href="https://www.google.com/voice/"><img style="max-width: 800px;" src="https://www.google.com/voice/resources/4232368305-voice_logo_sm.gif" /></a>. The good thing about Google Voice (for that matter Grand Central) is that it lets users integrate all of their existing phone numbers and voice mailboxes into one account.&nbsp; I have been using VoIP from<img style="max-width: 800px;" src="http://gizmo5.com/media/gizmo5-logo.png" align="right" /> <a target="_blank" href="http://gizmo5.com/pc/">Gizmo</a> for more than 18&nbsp; months.&nbsp; I use a SIP device (<a target="_blank" href="http://www.linksysbycisco.com/US/en/support/PAP2T/">Linksys ATA PAP2T</a>) to connect my analog phone and make and receive calls as if using a regular line.&nbsp;<img style="max-width: 800px;" src="http://downloads.linksysbycisco.com/images/dynamic/PAP2T.png" align="left" /> Gizmo <a target="_blank" href="http://support.gizmoproject.com/index.php?_m=knowledgebase&amp;_a=viewarticle&amp;kbarticleid=409&amp;nav=0,31">provides the basic instructions</a> to configure a SIP device.&nbsp; <a target="_blank" href="http://bsnl.co.in">BSNL</a> blocks (I believe most of the ISPs do this) the SIP Port (5060) and fortunately, sipphone supports port 5061 also for SIP connectivity.&nbsp; I also have a call in number through Gizmo so that, colleagues at US can reach me anytime. As far as mobile is concerned,&nbsp; <a target="_blank" href="http://www.planetn96.com/blog/voip-on-the-n96/58">Nokia removed the native VoIP stack from N96</a>.&nbsp; However, <a target="_blank" href="http://www.fring.com/">fring</a> is a reasonable alternative (except support for call mute, DTMF etc.)</p>
<p>Another pretty good collaboration by Google and Gizmo a week back <a target="_blank" href="http://blog.tmcnet.com/blog/tom-keating/voip/google-voice-gizmo5-free-inbound-outbound-calls.asp">added SIP support for Google Voice through Gizmo</a>.&nbsp; I just got my Google Voice and Gizmo integrated for both incoming and outgoing calls.&nbsp; Google Voice call quality is amazing.&nbsp; Its very easy to use and integrates well with your google address book.&nbsp; Now, my next project is to get my phone, google and <a target="_blank" href="http://ovi.com">ovi</a> to sync contacts and appointments so that I have a single list of contacts across all my collaboration services.</p>
]]></content:encoded>
			<wfw:commentRss>http://jjaimon.net/blogs/2009/08/02/google-voice-another-innovation-from-google/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Publishing Your Blog Posts on Your Facebook Wall</title>
		<link>http://jjaimon.net/blogs/2009/07/11/publishing-your-blog-posts-on-your-facebook-wall</link>
		<comments>http://jjaimon.net/blogs/2009/07/11/publishing-your-blog-posts-on-your-facebook-wall#comments</comments>
		<pubDate>Sat, 11 Jul 2009 17:52:11 +0000</pubDate>
		<dc:creator>jjaimon</dc:creator>
				<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://jjaimon.net/blogs/2009/07/11/publishing-your-blog-posts-on-your-facebook-wall</guid>
		<description><![CDATA[Collaboration is all about getting information easily and through the tools that you want to use.&#160; So, in this respect, I need complete connectivity.&#160; Since I started using facebook actively, I wanted my blog posts to appear on my wall automatically.&#160; So, I configured wordbook which takes care of this syndication.&#160; It appears to work [...]]]></description>
			<content:encoded><![CDATA[<p>Collaboration is all about getting information easily and through the tools that you want to use.&nbsp; So, in this respect, I need complete connectivity.&nbsp; Since I started using <a target="_blank" href="http://www.facebook.com/">facebook</a> actively, I wanted my blog posts to appear on my wall automatically.&nbsp; So, I configured <a target="_blank" href="http://www.facebook.com/apps/application.php?id=3353257731&amp;ref=nf">wordbook</a> which takes care of this syndication.&nbsp; It appears to work fine now.</p>
]]></content:encoded>
			<wfw:commentRss>http://jjaimon.net/blogs/2009/07/11/publishing-your-blog-posts-on-your-facebook-wall/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Reliance NetConnect with OpenSUSE 11.1</title>
		<link>http://jjaimon.net/blogs/2009/07/11/using-reliance-netconnect-with-opensuse-11-1</link>
		<comments>http://jjaimon.net/blogs/2009/07/11/using-reliance-netconnect-with-opensuse-11-1#comments</comments>
		<pubDate>Sat, 11 Jul 2009 16:52:52 +0000</pubDate>
		<dc:creator>jjaimon</dc:creator>
				<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://jjaimon.net/blogs/2009/07/11/using-reliance-netconnect-with-opensuse-11-1</guid>
		<description><![CDATA[I wanted to explore the possibility of using Reliance Netconnect with my openSUSE 11.1. Finally, I managed to try this out today at two different outlets in Jayanagar.  I must say that I&#8217;m partially successful as I could get it working once and got a speed of 0.5Mbps.  Here is the summary. Several new USB [...]]]></description>
			<content:encoded><![CDATA[<p>I wanted to explore the possibility of using <a href="http://www.rcom.co.in/Communications/rcom/RNetconnect/netconnect_broadband.html">Reliance Netconnect</a> with my <a href="http://opensuse.org" target="_blank">openSUSE 11.1</a>. Finally, I managed to try this out today at two different outlets in Jayanagar.  I must say that I&#8217;m partially successful as I could get it working once and got a speed of 0.5Mbps.  Here is the  summary.</p>
<p>Several new USB devices have their MS Windows drivers onboard; when plugged in for the first time they act like a flash storage and start installing the driver from there. After that (and on every consecutive plugging) this driver switches the mode internally, the storage device vanishes (in most cases), and a new device (like an USB modem) shows up. The WWAN gear maker Option calls that feature &#8220;ZeroCD (TM)&#8221;.  Reliance Netconnect modems are of type ZeroCD.</p>
<p>The first thing that you notice when you plug-in the modem is that, it mounts as a storage device.</p>
<pre>Jul 11 17:07:34 jjaimon-ibm kernel: usb 1-2: new full speed USB device using uhci_hcd and address 7
Jul 11 17:07:34 jjaimon-ibm kernel: usb 1-2: configuration #1 chosen from 1 choice
Jul 11 17:07:34 jjaimon-ibm kernel: usbserial_generic 1-2:1.0: generic converter detected
Jul 11 17:07:34 jjaimon-ibm kernel: usb 1-2: New USB device found, idVendor=19d2, idProduct=fff6
Jul 11 17:07:34 jjaimon-ibm kernel: usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Jul 11 17:07:34 jjaimon-ibm kernel: usb 1-2: Product: USB Storage
Jul 11 17:07:34 jjaimon-ibm kernel: usb 1-2: Manufacturer: ZTE, Incorporated
Jul 11 17:07:34 jjaimon-ibm kernel: usb 1-2: SerialNumber: 000000000002
Jul 11 17:07:34 jjaimon-ibm kernel: Initializing USB Mass Storage driver...
Jul 11 17:07:34 jjaimon-ibm kernel: usbcore: registered new interface driver usb-storage
Jul 11 17:07:34 jjaimon-ibm kernel: USB Mass Storage support registered.</pre>
<p>As you notice, the modem is not connected as a serial device and its registered to usb-storage.  One way of getting the serial device created is by unloading the usb-storage module and reloading the usbserial.  For eg.<br />
<code lang="bash">modprobe -r usb-storage usbserial; modeprobe usbserial vendor=0x19d2 product=0xfff6 </code></p>
<p>However, this alone will not be sufficient as the product id is still pointing to storage device.  This is where <a href="http://www.draisberghof.de/usb_modeswitch/" target="_blank">usb-modeswitch</a> comes handy.</p>
<p>The device was listed as ZTE 8710 and there is an entry for this device already in my <span style="font-style: italic;">/etc/usb_modeswitch.conf</span>.  All that I had to do was uncomment the following lines<br />
<code lang="bash"><br />
# No. 2</p>
<p>DefaultVendor=  0x19d2<br />
DefaultProduct= 0xfff6</p>
<p>TargetVendor=   0x19d2<br />
TargetProduct=  0xfff1<br />
</code><br />
You must run usb_modeswitch once the modem is connected.  You will see the following output if everything goes well.</code></p>
<pre>jjaimon-ibm:/etc # usb_modeswitch -W

 * usb_modeswitch: tool for controlling "flip flop" mode USB devices
 * Version 1.0.2 (C) Josua Dietze 2009
 * Works with libusb 0.1.12 and probably other versions

Reading config file: /etc/usb_modeswitch.conf
DefaultVendor=  0x19d2
DefaultProduct= 0xfff6
TargetVendor=   0x19d2
TargetProduct=  0xfff1
TargetClass=    not set

DetachStorageOnly=0
HuaweiMode=0
SierraMode=0
SonyMode=0
MessageEndpoint= not set
MessageContent="5553424312345678c00000008000069f030000000000000000000000000000"
NeedResponse=0
ResponseEndpoint= not set
Interface=0x00

InquireDevice enabled (default)
Success check enabled, settle time 2 seconds

usb_set_debug: Setting debugging level to 15 (on)
usb_os_find_busses: Found 005
usb_os_find_busses: Found 002
usb_os_find_busses: Found 004
usb_os_find_busses: Found 001
usb_os_find_busses: Found 003
usb_os_find_devices: Found 001 on 005
usb_os_find_devices: Found 001 on 002
usb_os_find_devices: Found 003 on 004
usb_os_find_devices: Found 002 on 004
skipped 1 class/vendor specific interface descriptors
usb_os_find_devices: Found 001 on 004
error obtaining child information: Inappropriate ioctl for device
error obtaining child information: Inappropriate ioctl for device
usb_os_find_devices: Found 014 on 001
usb_os_find_devices: Found 001 on 001
error obtaining child information: Inappropriate ioctl for device
usb_os_find_devices: Found 001 on 003

Looking for target devices ...
 No devices in target mode or class found
Looking for default devices ...
 Found default devices (1)
Accessing device 014 on bus 001 ...
Using endpoints 0x0a (out) and 0x89 (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
 OK, driver found ("usb-storage")
 OK, driver "usb-storage" detached

Received inquiry data (detailed identification)
-------------------------
 Vendor String: ZTE
 Product String: USB Storage FFF1
Revision String: 2.31
-------------------------

Device description data (identification)
-------------------------
Manufacturer: ZTE, Incorporated
 Product: USB Storage
 Serial No.: 000000000002
-------------------------
Setting up communication with interface 0 ...
Trying to send the message to endpoint 0x0a ...
 OK, message successfully sent
USB error: could not clear/halt ep 10: Protocol error
Device is gone, skipping further steps ...
Checking for mode switch after 2 seconds settling time ...
USB error: failed to open /dev/bus/usb/001/014: No such file or directory
USB error: could not claim interface 0: Bad file descriptor
 Original device can't be accessed anymore. Good.
usb_os_find_devices: Found 001 on 005
usb_os_find_devices: Found 001 on 002
usb_os_find_devices: Found 003 on 004
usb_os_find_devices: Found 002 on 004
skipped 1 class/vendor specific interface descriptors
usb_os_find_devices: Found 001 on 004
error obtaining child information: Inappropriate ioctl for device
error obtaining child information: Inappropriate ioctl for device
usb_os_find_devices: Found 015 on 001
usb_os_find_devices: Found 001 on 001
error obtaining child information: Inappropriate ioctl for device
usb_os_find_devices: Found 001 on 003
 Found a new device in target mode or class

Mode switch succeeded. Bye.</pre>
<p>After this, you must have a /dev/ttyUSB0 device created.  You can verify this with <span style="font-style: italic;">lsusb</span> command.  You should see the new product id now.  <span style="font-style: italic;">wvdialconf</span> should also report the presence of new modem device.</p>
<p>And with the following entries in your <span style="font-style: italic;">/etc/wvdial.conf</span>, you should be able to connect...<br />
<code lang="bash"><br />
[Dialer zte]<br />
Init2 = AT+CRM=1<br />
Stupid Mode = 1<br />
Modem Type = Analog Modem<br />
ISDN = 0<br />
SetVolume = 0<br />
FlowControl = Hardware (CRTSCTS)<br />
Phone = #777<br />
Modem = /dev/ttyUSB0<br />
Username = 93xxxxxxx<br />
Password = 93xxxxxxx<br />
Dial Command = ATDT<br />
Baud = 460800<br />
</code></p>
<pre>jjaimon-ibm:/etc # wvdial zte
--&gt; WvDial: Internet dialer version 1.60
--&gt; Cannot get information for serial port.
--&gt; Initializing modem.
--&gt; Sending: ATZ
ATZ
OK
--&gt; Sending: AT+CRM=1
AT+CRM=1
OK
--&gt; Sending: ATM0
ATM0
OK
--&gt; Modem initialized.
--&gt; Sending: ATDT#777
--&gt; Waiting for carrier.
ATDT#777
CONNECT
--&gt; Carrier detected.  Starting PPP immediately.
--&gt; Starting pppd at Sat Jul 11 18:04:31 2009
--&gt; Pid of pppd: 14798
--&gt; Using interface ppp0
--&gt; local  IP address 115.240.5.100
--&gt; remote IP address 220.224.141.129
--&gt; primary   DNS address 202.138.97.193
--&gt; secondary DNS address 202.138.96.2
--&gt; Script /etc/ppp/ip-up run successful
--&gt; Default route Ok.
--&gt; Nameserver (DNS) Ok.
--&gt; Connected... Press Ctrl-C to disconnect</pre>
<p>This can be automated by using a udev rule.  More information is provided <a href="http://www.draisberghof.de/usb_modeswitch/" target="_blank">here.</a> There are also some references in <a href="http://forums.opensuse.org/how-faq-read-only/unreviewed-how-faq/417808-setting-up-modem-zte-mf636-opensuse-11-1-a.html" target="_blank">reliance usergroups</a>.   Here is <a href="http://forums.opensuse.org/how-faq-read-only/unreviewed-how-faq/417808-setting-up-modem-zte-mf636-opensuse-11-1-a.html" target="_blank">one post that</a> helped me to look at usb_modeswitch</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 2515px; width: 1px; height: 1px;">jjaimon-ibm:/etc # usb_modeswitch -W</p>
<p>* usb_modeswitch: tool for controlling "flip flop" mode USB devices<br />
* Version 1.0.2 (C) Josua Dietze 2009<br />
* Works with libusb 0.1.12 and probably other versions</p>
<p>Reading config file: /etc/usb_modeswitch.conf<br />
DefaultVendor=  0x19d2<br />
DefaultProduct= 0xfff6<br />
TargetVendor=   0x19d2<br />
TargetProduct=  0xfff1<br />
TargetClass=    not set</p>
<p>DetachStorageOnly=0<br />
HuaweiMode=0<br />
SierraMode=0<br />
SonyMode=0<br />
MessageEndpoint= not set<br />
MessageContent="5553424312345678c00000008000069f030000000000000000000000000000"<br />
NeedResponse=0<br />
ResponseEndpoint= not set<br />
Interface=0x00</p>
<p>InquireDevice enabled (default)<br />
Success check enabled, settle time 2 seconds</p>
<p>usb_set_debug: Setting debugging level to 15 (on)<br />
usb_os_find_busses: Found 005<br />
usb_os_find_busses: Found 002<br />
usb_os_find_busses: Found 004<br />
usb_os_find_busses: Found 001<br />
usb_os_find_busses: Found 003<br />
usb_os_find_devices: Found 001 on 005<br />
usb_os_find_devices: Found 001 on 002<br />
usb_os_find_devices: Found 003 on 004<br />
usb_os_find_devices: Found 002 on 004<br />
skipped 1 class/vendor specific interface descriptors<br />
usb_os_find_devices: Found 001 on 004<br />
error obtaining child information: Inappropriate ioctl for device<br />
error obtaining child information: Inappropriate ioctl for device<br />
usb_os_find_devices: Found 014 on 001<br />
usb_os_find_devices: Found 001 on 001<br />
error obtaining child information: Inappropriate ioctl for device<br />
usb_os_find_devices: Found 001 on 003</p>
<p>Looking for target devices ...<br />
No devices in target mode or class found<br />
Looking for default devices ...<br />
Found default devices (1)<br />
Accessing device 014 on bus 001 ...<br />
Using endpoints 0x0a (out) and 0x89 (in)<br />
Inquiring device details; driver will be detached ...<br />
Looking for active driver ...<br />
OK, driver found ("usb-storage")<br />
OK, driver "usb-storage" detached</p>
<p>Received inquiry data (detailed identification)<br />
-------------------------<br />
Vendor String: ZTE<br />
Product String: USB Storage FFF1<br />
Revision String: 2.31<br />
-------------------------</p>
<p>Device description data (identification)<br />
-------------------------<br />
Manufacturer: ZTE, Incorporated<br />
Product: USB Storage<br />
Serial No.: 000000000002<br />
-------------------------<br />
Setting up communication with interface 0 ...<br />
Trying to send the message to endpoint 0x0a ...<br />
OK, message successfully sent<br />
USB error: could not clear/halt ep 10: Protocol error<br />
Device is gone, skipping further steps ...<br />
Checking for mode switch after 2 seconds settling time ...<br />
USB error: failed to open /dev/bus/usb/001/014: No such file or directory<br />
USB error: could not claim interface 0: Bad file descriptor<br />
Original device can't be accessed anymore. Good.<br />
usb_os_find_devices: Found 001 on 005<br />
usb_os_find_devices: Found 001 on 002<br />
usb_os_find_devices: Found 003 on 004<br />
usb_os_find_devices: Found 002 on 004<br />
skipped 1 class/vendor specific interface descriptors<br />
usb_os_find_devices: Found 001 on 004<br />
error obtaining child information: Inappropriate ioctl for device<br />
error obtaining child information: Inappropriate ioctl for device<br />
usb_os_find_devices: Found 015 on 001<br />
usb_os_find_devices: Found 001 on 001<br />
error obtaining child information: Inappropriate ioctl for device<br />
usb_os_find_devices: Found 001 on 003<br />
Found a new device in target mode or class</p>
<p>Mode switch succeeded. Bye.</p></div>
]]></content:encoded>
			<wfw:commentRss>http://jjaimon.net/blogs/2009/07/11/using-reliance-netconnect-with-opensuse-11-1/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>lifeblog &#8211; WordPress Posting From Your Nokia Device</title>
		<link>http://jjaimon.net/blogs/2009/04/18/lifeblog-wordpress-posting-from-your-nokia-device</link>
		<comments>http://jjaimon.net/blogs/2009/04/18/lifeblog-wordpress-posting-from-your-nokia-device#comments</comments>
		<pubDate>Sat, 18 Apr 2009 15:08:11 +0000</pubDate>
		<dc:creator>jjaimon</dc:creator>
				<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://jjaimon.net/blogs/2009/04/18/lifeblog-wordpress-posting-from-your-nokia-device</guid>
		<description><![CDATA[I used to post from my N70 using lifeblog earlier.  I have been looking for a similar feature after I upgraded to N96.   While N70 used to have a simple lifeblog interface, N96 changed that to more feature rich Share Online.  Nokia device is preloaded with Share Online 3.0.  Being an adventurous one, and prefer [...]]]></description>
			<content:encoded><![CDATA[<p>I used to post from my N70 using lifeblog earlier.  I have been looking for a similar feature after I upgraded to <a href="http://www.forum.nokia.com/devices/N96" target="_blank">N96</a>.   While N70 used to have a simple lifeblog interface, N96 changed that to more feature rich Share Online.  Nokia device is preloaded with Share Online 3.0.  Being an adventurous one, and prefer to be on the cutting edge always, I upgraded my device to new <a href="http://betalabs.nokia.com/betas/view/share-online-40" target="_blank">Share Online 4.x</a>.</p>
<p>Phoneboy posted the instructions to post to <a href="http://phoneboy.com/1169/post-to-wordpress-blogs-from-nokia-lifeblog" target="_blank">wordpress from lifeblog last</a> year.  I have been using this in my N70 and it used to work great.  I knew he is smart enough to find a way to post from share online.   I was not surprised when I saw <a href="http://phoneboy.com/2938/posting-to-wordpress-blogs-from-share-online-30" target="_blank">this post a few weeks</a> back.</p>
<p>However, it was not that easy since I use N96 and Share Online 4.x.  I could add my blog as one of the service in the Share Online configured services in the phone.  I couldn’t post as it always failed.   I was not ready to gave up.  Setup requires two php scripts as described in the <a href="http://phoneboy.com/2938/posting-to-wordpress-blogs-from-share-online-30" target="_blank">phoneboy post</a>.  All instructions remain same.  I tried to debug this with the help of phoneboy.</p>
<p>Share Online sends two or more xml files depending on your post.   This can be tracked by enabling (by default) complete dump of phone upload. The first xml file looked something like this…</p>
<p><code lang="xml"> </code><br />
2009-04-08T01:17:02Z: method: POST<br />
2009-04-08T01:17:02Z: rawpostdata: <?xml version="1.0" encoding="utf-8"?><br />
<entry xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"><br />
<title type="text">06042009004</title><br />
<issued>2009-04-08T19:15:53Z</issued><br />
<standalone xmlns="http://sixapart.com/atom/typepad#">1</standalone><br />
<content type="image/jpeg" mode="base64">/9j/4AAQSkZJRgABAQAAAQABAZsoO6heBU7x81CykCsnFrckaxFMBwwIpcZ5NN2mkJm1avujHParKHmsvT5D930rTXpVJ3OWasyXGaa8YIoVscU5m4qiTMlG1yKrTcCr90uTkVQmBKmo<br />
aNosqGXBxTfOqKUYY1HmoSNrk5mpPNqIAmlKEdaLIdx5kNKHPao1U5qxHFmk7IaQICRUypxUkceBUqrxSKsQeXRjFTEcVE3BxQFgBxShvWmAc08CmIkU04NUPSl3UCZ/<br />
/2Q==</content></p>
<summary>
</summary>
<p><generator>Nokia N96 (12.043) Series60/3.2 ISF/4.0.08.45</generator></p>
<p></entry></p>
<p>2009-04-14T01:09:15Z: action: post<br />
2009-04-14T01:09:15Z: postaction<br />
2009-04-14T01:09:15Z: filetype: .jpg<br />
2009-04-14T01:09:15Z: filename: /lifeblog-10042009010.jpg<br />
2009-04-14T01:09:15Z: id: url:/lifeblog-10042009010.jpg,type:Image,format:Image,summary:<br />
</code></p>
<p>The data is in the base64 encoded content tag.  lifeblog.php used to parse the code something like this…</p>
<p><code lang="php"><br />
} elseif(preg_match('/<title.*>(?P<title>.*?)<\/title>.*?<content\s*type="(?P<contenttype>.*?)\/(?P<contentsubtype>.*?)"\s*m<br />
ode="(?P<contentmode>.*?)">(?P<content>.*?)<\/content>.*?<br />
<summary>(?P<br />
<summary>.*?)<\/summary>/si', $HTTP_RAW_POST_DATA, $data))<br />
{<br />
</code><br />
But, Share Online sends title with an attribute, type.</p>
<p><code lang="xml"> </p>
<p><title type="text">06042009004</title><br />
</code><br />
So the regular expression for preg_match need to be changed to &lt;title.*&gt; in all places.</p>
<p>I have been trying with sample icons in the phone since they are very small and easy to upload.  Problem started when I started uploading actual photographs.  I noticed that preg_match fails when the base64 encoded data is large.  (50-70KB approx).  I googled and found that this is a <a href="http://bugs.php.net/bug.php?id=33468" target="_blank">known problem</a> with <a href="http://aspn.activestate.com/ASPN/Mail/Message/php-dev/3185873" target="_blank">PCRE library</a> that php uses for preg_match.   Some <a href="http://www.justskins.com/forums/39951-opn-pcre-failed-for-long-matches-less-than-match_limit-90156.html" target="_blank">references suggested</a> to increase the pcre backtrack_limit as a work around in the php.ini.</p>
<p><code lang="php"></p>
<p>[Pcre]<br />
;PCRE library backtracking limit.<br />
pcre.backtrack_limit=5000000<br />
</code><br />
I can post  to my wordpress blog now.  Here are the modified <a href="http://jjaimon.net/blogs/wp-content/uploads/shareonline.php.txt" target="_blank">shareonline.php</a> and <a href="http://jjaimon.net/blogs/wp-content/uploads/lifeblog.php.txt" target="_blank">lifeblog.php</a>.  You will have to change all references to jjaimon.net/blogs in shareonline.php.  Follow the instructions given in the <a href="http://phoneboy.com/2938/posting-to-wordpress-blogs-from-share-online-30" target="_blank">phoneboy blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://jjaimon.net/blogs/2009/04/18/lifeblog-wordpress-posting-from-your-nokia-device/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Updating your Nokia Playlist</title>
		<link>http://jjaimon.net/blogs/2009/04/15/updating-your-nokia-playlist</link>
		<comments>http://jjaimon.net/blogs/2009/04/15/updating-your-nokia-playlist#comments</comments>
		<pubDate>Tue, 14 Apr 2009 18:58:22 +0000</pubDate>
		<dc:creator>jjaimon</dc:creator>
				<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://jjaimon.net/blogs/2009/04/15/updating-your-nokia-playlist</guid>
		<description><![CDATA[I talked about creating a playlist without the Nokia Music Player or Windows Media player.&#160; I was not very clear about how to get the new playlist updated in the Nokia Music Player.&#160; All that I need to do is a &#8220;refresh media&#8221; operation in the Nokia Music player.&#160; One problem is that, this doesn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>I <a href="http://jjaimon.net/blogs/2009/03/22/creating-nokia-playlist">talked about</a> creating a playlist without the Nokia Music Player or Windows Media player.&nbsp; I was not very clear about how to get the new playlist updated in the Nokia Music Player.&nbsp; All that I need to do is a &#8220;refresh media&#8221; operation in the Nokia Music player.&nbsp; One problem is that, this doesn&#8217;t idenitify moved or deleted playlists.&nbsp; It appears to be just an add/append operation and not a refresh (add or delete) operation. Hmmm&#8230;.</p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=e4f70a2c-c75d-8f2b-bc2a-5d64e83bb47d" /></div>
]]></content:encoded>
			<wfw:commentRss>http://jjaimon.net/blogs/2009/04/15/updating-your-nokia-playlist/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Video encoding for Nokia or iPhone</title>
		<link>http://jjaimon.net/blogs/2009/03/22/video-encoding-for-nokia-or-iphone</link>
		<comments>http://jjaimon.net/blogs/2009/03/22/video-encoding-for-nokia-or-iphone#comments</comments>
		<pubDate>Sun, 22 Mar 2009 17:44:43 +0000</pubDate>
		<dc:creator>jjaimon</dc:creator>
				<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://jjaimon.net/blogs/?p=143</guid>
		<description><![CDATA[Nokia and other current smartphones use a video format called 3GP. 3GPP, 3GPP2 are the new worldwide standard for the creation, delivery and playback of multimedia over 3rd generation, high-speed wireless networks. Defined by the 3rd Generation Partnership Project and 3rd Generation Partnership Project 2 respectively, these standards seek to provide uniform delivery of rich [...]]]></description>
			<content:encoded><![CDATA[<p>Nokia and other current smartphones use a video format called <a href="http://en.wikipedia.org/wiki/3GP" target="_blank">3GP. </a>3GPP, 3GPP2 are the new worldwide standard for the creation, delivery and playback of multimedia over 3rd generation, high-speed wireless networks. Defined by the 3rd Generation Partnership Project and 3rd Generation Partnership Project 2 respectively, these standards seek to provide uniform delivery of rich multimedia over newly evolved, broadband mobile networks (3rd generation networks) to the latest multimedia-enabled wireless devices. Tailored to the unique requirements of mobile devices, 3GPP and 3GPP2 take advantage of MPEG-4, the standard for delivery of video and audio over the Internet.</p>
<p>Nokia provides a video converter software.  Its slow and works only on Windows.  Since I can mount Nokia mass-storage directly on my <a href="http://en.opensuse.org">openSUSE11.1</a> laptop, I decided to use ffmpeg to convert videos.  You can copy the converted files to your Nokia device over cable or bluetooth.  Video Center recognizes the new video file and list them in the list of available videos.  I use <a href="http://en.wikipedia.org/wiki/H.264">h264</a> + AAC codecs which provides the best quality/compression rate for Nokia phones currently.  Surprisingly, I found this works better compared to Nokia&#8217;s software on my phone</p>
<p>Here is the script.  Usage is very simple.<br />
<code>videoencode.sh source_file dest.mp4 </code><br />
<code lang="bash"><br />
#!/bin/bash</p>
<p>ffmpeg -y -i "$1" -acodec libfaac -ab 72k -s 320x240 -aspect 16:9 -vcodec libx264 -b 300k -qcomp 0.6 -qmin 16 -qmax 51 -qdiff 4 -flags +loop -cmp +chroma -subq 7 -refs 6 -g 250 -keyint_min 25 -rc_eq 'blurCplx^(1-qComp)' -sc_threshold 40 -me_range 12 -i_qfactor 0.71 -directpred 3 "$2" > /dev/null<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://jjaimon.net/blogs/2009/03/22/video-encoding-for-nokia-or-iphone/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How many computers does the world need?</title>
		<link>http://jjaimon.net/blogs/2009/03/09/how-many-computers-does-the-world-need</link>
		<comments>http://jjaimon.net/blogs/2009/03/09/how-many-computers-does-the-world-need#comments</comments>
		<pubDate>Mon, 09 Mar 2009 15:34:32 +0000</pubDate>
		<dc:creator>jjaimon</dc:creator>
				<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://jjaimon.net/blogs/2009/03/09/how-many-computers-does-the-world-need</guid>
		<description><![CDATA[This was an interesting story. According to Microsoft research chief Rick Rashid, around 20 per cent of all the servers sold around the world each year are now being bought by a small handful of internet companies &#8211; he named Microsoft, Google, Yahoo and Amazon. That is an amazing statistic, and certainly not one I’d [...]]]></description>
			<content:encoded><![CDATA[<p><a href="How%20many%20computers%20does%20the%20world%20need?">This was an interesting story</a>. According to Microsoft research chief Rick Rashid, around 20 per cent of all the servers sold around the world each year are now being bought by a small handful of internet companies &#8211; he named Microsoft, Google, Yahoo and Amazon. That is an amazing statistic, and certainly not one I’d heard before. And this is before cloud computing has really caught on in a big way.&nbsp; And all this before cloud computing as really taken off. in-Aptly said by<a linkindex="2" href="http://en.wikipedia.org/wiki/Thomas_J._Watson"> IBM CEO</a> in 1943 and &nbsp;then aptly re-phrased by Sun Microsystems CTO in the present context &#8211; <a linkindex="3" href="http://blogs.sun.com/Gregp/entry/the_world_needs_only_five">The world only needs 5 computers</a></p>
<p>Anyway, cloud computing is a different paradigm.&nbsp; Cloud computing is not fluff, its future of IT. For end users, cloud computing means there are no hardware acquisition costs, no software licenses or upgrades to manage, no new employees or consultants to hire, no facilities to lease, no capital costs of any kind — and no hidden costs. Just a metered, per-use rate or subscription fee. Cloud computing is changing the economics of Computing from being a Capital investment to Utilities.&nbsp; The only question is how secure is your data in the cloud?&nbsp; How do you trust your cloud provider?&nbsp; Do you place mission critical data in the cloud? </p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=a635d922-f927-41ea-b0a8-3f59bf9c15e8" /></div>
]]></content:encoded>
			<wfw:commentRss>http://jjaimon.net/blogs/2009/03/09/how-many-computers-does-the-world-need/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Suspending your VM</title>
		<link>http://jjaimon.net/blogs/2009/02/11/suspending-your-vm</link>
		<comments>http://jjaimon.net/blogs/2009/02/11/suspending-your-vm#comments</comments>
		<pubDate>Tue, 10 Feb 2009 18:59:19 +0000</pubDate>
		<dc:creator>jjaimon</dc:creator>
				<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://jjaimon.net/blogs/2009/02/11/suspending-your-vm</guid>
		<description><![CDATA[I noticed that I must always suspend or shutdown my VMs before I suspend the laptop. If not, vmware causes heavy swapping when I resume from suspend.&#160; I can normally take care of this when I intentionally suspend my laptop.&#160; The problem is with my ACPI configurations.&#160;&#160; My preferences on battery power is to suspend [...]]]></description>
			<content:encoded><![CDATA[<p>I noticed that I must always suspend or shutdown my VMs before I suspend the laptop. If not, <a href="http://www.vmware.com/products/ws/" target="_blank">vmware</a> causes heavy swapping when I resume from suspend.&#160; I can normally take care of this when I intentionally suspend my laptop.&#160; The problem is with my <a href="http://www.acpi.info/" target="_blank">ACPI</a> configurations.&#160;&#160; My preferences on battery power is to suspend after 30minutes of inactivity or when the lid is closed.&#160; Sometimes, when an accidental closing or power failure or pulling out the cable while the lid is closed causes the laptop to suspend automatically. </p>
<p>I was looking for an option to avoid this.&#160; Then, I came across the sleep.d scripts.&#160; You can place a script in </p>
<pre>/usr/lib/pm-utils/sleep.d </pre>
<p>directory.&#160; This has the format of <a href="http://en.wikipedia.org/wiki/Pluggable_Authentication_Modules" target="_blank">pam</a> scripts and will be executed based on the prefixed number on the filename.&#160; I have the following file in my sleep.d to suspend my running VM before the laptop is suspended.</p>
<p><code lang="bash">/usr/lib/pm-utils/sleep.d/11pm-suspend-vm<br />
#!/bin/bash</p>
<p>. /usr/lib/pm-utils/functions</p>
<p>suspend_vm()<br />
{<br />
	vm=`vmrun list | grep winxp`<br />
	if [ -n "$vm"  ]; then<br />
		logger "pm-suspend-vm: suspending the running $vm"<br />
		vmrun suspend "$vm"<br />
		stopservice vmware<br />
	else<br />
		logger "pm-suspend-vm: no running vms found"<br />
	fi<br />
	return 0<br />
}</p>
<p>resume_vm()<br />
{<br />
	return 0<br />
}</p>
<p>case "$1" in<br />
	hibernate|suspend)<br />
		suspend_vm<br />
		;;</p>
<p>	thaw|resume)<br />
		resume_vm<br />
		;;<br />
	*)<br />
		;;<br />
esac</p>
<p>exit $?<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://jjaimon.net/blogs/2009/02/11/suspending-your-vm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Struggle with VMWare and openSUSE11.1</title>
		<link>http://jjaimon.net/blogs/2009/02/08/struggle-with-vmware-and-opensuse111</link>
		<comments>http://jjaimon.net/blogs/2009/02/08/struggle-with-vmware-and-opensuse111#comments</comments>
		<pubDate>Sun, 08 Feb 2009 07:06:00 +0000</pubDate>
		<dc:creator>jjaimon</dc:creator>
				<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://jjaimon.net/blogs/2009/02/struggle-with-vmware-and-opensuse111</guid>
		<description><![CDATA[I must start with openSUSE 11.1.&#160; openSUSE 11.0 started with some hickups on my laptop, but finally, I got it configured completely. I was enjoying this distro and was eagerly waiting for 11.1.&#160; However, I must say that I’m kind of disappointed with 11.1 My first disappointment started with desktop itself.&#160; I have been upgrading [...]]]></description>
			<content:encoded><![CDATA[<p>I must start with <a href="http://en.opensuse.org/OpenSUSE_11.1" target="_blank">openSUSE 11.1</a>.&#160; openSUSE 11.0 started with some hickups on my laptop, but finally, I got it configured completely. I was enjoying this distro and was eagerly waiting for 11.1.&#160; However, I must say that I’m kind of disappointed with 11.1</p>
<p>My first disappointment started with desktop itself.&#160; I have been upgrading my desktop from openSUSE 10.2 days.&#160; So, I decided to go for a re-install instead of upgrade.&#160; The first blow was in terms of inability to restore my MBR using grub.&#160; I have a dual boot system and I knew that I will not be able to boot into Windows&#160; XP if I format my ‘/’ volume without restoring MBR.</p>
<p>I tried all possible windows CDs and they all _consistently_ failed to restore MBR.&#160; Further googling helped me to locate <a href="http://www.sysint.no/nedlasting/mbrfix.htm" target="_blank">mbrfix</a>.&#160; mbrfix is a nice little windows executable that helps you repair some of the low level issues (if you know what you are doing)</p>
<p>I decided to create a small partition for /boot because of this bad experience.&#160; Obvious choice was to split / partition and create a 100MB volume for /boot.&#160; My partition table looked something like this now.</p>
</p>
<pre>fdisk -l

Disk /dev/sda: 100.0 GB, 100030242816 bytes
240 heads, 63 sectors/track, 12921 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Disk identifier: 0x00000021

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        2174    16435408+   7  HPFS/NTFS
/dev/sda2           12193       12921     5511240   12  Compaq diagnostics
/dev/sda3            2175        2452     2101680   82  Linux swap / Solaris
/dev/sda4   *        2453       12192    73634400    f  W95 Ext'd (LBA)
/dev/sda5            3808        5433    12292528+   7  HPFS/NTFS
/dev/sda6            5434        8142    20480008+   b  W95 FAT32
/dev/sda7            8143       10174    15361888+  83  Linux
/dev/sda8           10175       12192    15256048+  83  Linux
/dev/sda9            2453        3795    10146937   83  Linux
/dev/sda10           3795        3807       96358+  83  Linux

Partition table entries are not in disk order</pre>
<p>You might notice an out of order start point for sda10 and that was exactly what <code>fdisk</code> was trying to tell me. After successfully installing VMWare Workstation 6.5.1, I tried to bring up my existing VM. VMWare continues to complain about its inability to retrieve disk information.</p>
<p><code>Unable to retrieve disk information: The partition table on the physical disk has changed since the disk was created. Remove the physical disk from the virtual machine, then add it again</code></p>
<p>I <a href="http://communities.vmware.com/thread/185204" target="_blank">tried to contact VMWare</a> and no one could help me here.&#160; I figured out after a lot of research that an out of order partition table can cause problems with many applications and VMWare is one of them.&#160; The suggestion was to reorder partition table.&#160; Fun started here.</p>
<p><font color="#ff0000"><em>Note: Do not try the following instructions unless you know what you are doing.&#160; These changes require some knowledge about your disk layout and linux boot process.&#160; I will not take any responsibility if you can’t boot into your machine after following the instructions.</em></font></p>
<p>I used <code>fdisk’s</code> expert mode and re-ordered my partition table.&#160; I noted down my old partition table layout and mapped the start, end and Id with the new layout.&#160; This is required to adjust some of the configuration files. It looks like this now.</p>
<pre>Disk /dev/sda: 100.0 GB, 100030242816 bytes
240 heads, 63 sectors/track, 12921 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Disk identifier: 0x00000021

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        2174    16435408+   7  HPFS/NTFS
/dev/sda2            2175        2452     2101680   82  Linux swap / Solaris
/dev/sda3   *        2453       12192    73634400    f  W95 Ext'd (LBA)
/dev/sda4           12193       12921     5511240   12  Compaq diagnostics
/dev/sda5            2453        3795    10146937   83  Linux
/dev/sda6            3795        3807       96358+  83  Linux
/dev/sda7            3808        5433    12292528+   7  HPFS/NTFS
/dev/sda8            5434        8142    20480008+   b  W95 FAT32
/dev/sda9            8143       10174    15361888+  83  Linux
/dev/sda10          10175       12192    15256048+  83  Linux</pre>
<p>This is not enough.&#160; You need to readjust your boot order.&#160; I did the following as well.</p>
<ol>
<li>Updated /etc/fstab entries based on the new partition layout </li>
<li>Updated /etc/grub.conf and /boot/grub/menu.lst based. Note that, partition table starts from 1 and grub count starts from 0 (number Zero) </li>
</ol>
<p>I rebooted my machine and it doesn&#8217;t find a valid boot record. I tried to use the recovery option from the install DVD. Though YaST says, grub is reconfigured, I still can&#8217;t boot. After further googling and some research, I decided to use grub command line option and re-intialize grub.</p>
<pre>In grub command line mode,
grub&gt; root (hd0, 5)
grub&gt; setup (hd0)</pre>
<p>Everything looks okay now and I&#8217;m writing this blog using <a href="http://windowslivewriter.spaces.live.com/" target="_blank">Windows Live Writer</a> from one of my Windows VMs hosted on my openSUSE 11.1.</p>
]]></content:encoded>
			<wfw:commentRss>http://jjaimon.net/blogs/2009/02/08/struggle-with-vmware-and-opensuse111/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
