<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>Lessons Learned</title>
        <link>http://bivald.com/lessons-learned/</link>
        <description>Lessons learned is where I publish everything from articles, texts and links to project previews, creative ideas and code snippets. Simply my lessons learned. While the portfolio always will be a way for me to publish my finished work, lessons learned is the place where I simply hope to share my experience. </description>
        <language>en</language>
        <copyright>Copyright 2009</copyright>
        <lastBuildDate>Mon, 09 Nov 2009 11:08:08 +0100</lastBuildDate>
        <generator>http://www.sixapart.com/movabletype/</generator>
        <docs>http://www.rssboard.org/rss-specification</docs>
        
        <item>
            <title>Building libstomp client on linux</title>
            <description><![CDATA[STOMP (Streaming text oriented messaging protocol) is a wonderful protocol to use as simple messaging for real time applications and is integrated in (for example) Apache MQ and Orbited. However, all their clients are for online languages (php, perl, ruby) and the client was built using Mac. <br /><br />Don't get me wrong, I love my mac, but my servers run linux. Here is how you do it (from http://www.jboss.org/community/wiki/buildingblacktie?decorator=print)<br /><br />The entire next section is based from above mentioned source, albeit altered to fit Debian:<br /><br /><p><strong>INSTALL LIBSTOMP</strong></p><ol start="1"><li type="ol"><span style="font-family: courier new,courier;"><span>svn co -r 85 </span><a class="jive-link-external-small" href="http://svn.codehaus.org/stomp/trunk/c">http://svn.codehaus.org/stomp/trunk/c</a><span> libstomp</span></span></li></ol><p><strong>ON LINUX</strong></p><p>In order to create the library for use with our Stomp transport on Linux you need to make a couple of alterations:</p><ol start="1"><li type="ol">apt-get install libapr1</li><li type="ol">apt-get install libapr1-dev<br /></li><li type="ol">Download the attached stomp.c.patch to your home directory (<a href="http://www.jboss.org/community/servlet/JiveServlet/download/13232-76-6627/stomp.c.patch">their src</a>, <a href="http://bivald.com/lessons-learned/2009/11/09/stomp.c.patch">my mirror</a>)<br /></li><li type="ol">cd libstomp</li><li type="ol">Create the following file as build.sh</li><p><span style="font-family: courier new,courier; font-size: 8pt;">#!/bin/bash<br />OUT_DIR=target/debug/shared<br />mkdir -p $OUT_DIR<br />gcc -fPIC src/stomp.c -shared -o$OUT_DIR/libstomp.so -I. -I/usr/include/apr-1.0 -lapr-1</span></p><li type="ol">patch -p0 -i ~/stomp.c.patch</li><li type="ol"><span style="font-family: courier new,courier;">./build.sh</span></li></ol><br />I've taken the liberty to mirror the patches as well. <br /><br /><span class="mt-enclosure mt-enclosure-file" style="display: inline;"><a href="http://bivald.com/lessons-learned/2009/11/09/stomp.c.patch">stomp.c.patch</a></span>
<br />
  <span class="mt-enclosure mt-enclosure-file" style="display: inline;"><a href="http://bivald.com/lessons-learned/2009/11/09/stompconnect.patch">stompconnect.patch</a></span><br />]]></description>
            <link>http://bivald.com/lessons-learned/2009/11/building_libstomp_client_on_li.html</link>
            <guid>http://bivald.com/lessons-learned/2009/11/building_libstomp_client_on_li.html</guid>
            
            
            <pubDate>Mon, 09 Nov 2009 11:08:08 +0100</pubDate>
        </item>
        
        <item>
            <title>Maintaing Open Source Projects</title>
            <description><![CDATA[Zeh Fernando, one of my RSS favorites, writes about maintaining open source projects. A good read, good slides. <br /><br />Article can be found on <a href="http://zehfernando.com/2009/presentation-lessons-learned-maintaining-open-source-actionscript-projects/">zehfernando.com</a><br /> ]]></description>
            <link>http://bivald.com/lessons-learned/2009/10/maintaing_open_source_projects.html</link>
            <guid>http://bivald.com/lessons-learned/2009/10/maintaing_open_source_projects.html</guid>
            
            
            <pubDate>Fri, 23 Oct 2009 20:11:55 +0100</pubDate>
        </item>
        
        <item>
            <title>Build and release</title>
            <description><![CDATA["3. Build and Release. Stop thinking you understand your users. You think users will love this or that and you'll probably be wrong. So don't spend 6 months building features users may not love or will only use 20% of. Learn from what users actually do on your site. Avoid analysis paralysis, especially as you get larger. Decide, build, release, get feedback, iterate." <br /><br /><a href="http://highscalability.com/blog/2009/10/6/10-ways-to-take-your-site-from-one-to-one-million-users-by-k.html">Source</a><br /> ]]></description>
            <link>http://bivald.com/lessons-learned/2009/10/build_and_release.html</link>
            <guid>http://bivald.com/lessons-learned/2009/10/build_and_release.html</guid>
            
            
            <pubDate>Wed, 07 Oct 2009 15:35:21 +0100</pubDate>
        </item>
        
        <item>
            <title>Preparing a lecture on AD - Developer communication</title>
            <description><![CDATA[This month I will host a series of lectures and workshops for Hyper Island (www.hyperisland.se) The first one is about the need of communication between ADs and developers.<br /><br />In total they will span over six days. <br /> ]]></description>
            <link>http://bivald.com/lessons-learned/2009/10/preparing_a_lecture_on_ad_-_de.html</link>
            <guid>http://bivald.com/lessons-learned/2009/10/preparing_a_lecture_on_ad_-_de.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Articles and seminars</category>
            
            
            <pubDate>Sun, 04 Oct 2009 15:02:12 +0100</pubDate>
        </item>
        
        <item>
            <title>Convert the pre-filled USB stick (sandisk) to a normal, blank one. </title>
            <description><![CDATA[Sandisk usb sticks are filled with extra software and even extra partitions. Fortunately, they are easy to remove. To remove it and wipe everything clean (and I do mean<b> everything on the drive</b>)<br /><br /><ol><li>Download the U3 Uninstaller (http://u3uninstall.s3.amazonaws.com/U3Uninstall.exe)</li><li>Install it</li><li>Run the software, choose remove and wipe clean.</li></ol>Done! Simple as that<br /> ]]></description>
            <link>http://bivald.com/lessons-learned/2009/07/convert_the_pre-filled_usb_sti.html</link>
            <guid>http://bivald.com/lessons-learned/2009/07/convert_the_pre-filled_usb_sti.html</guid>
            
            
            <pubDate>Fri, 31 Jul 2009 10:27:57 +0100</pubDate>
        </item>
        
        <item>
            <title>Flashing SuperMicro bios (X7DVL-3) with USB stick/drive/pen/flash</title>
            <description><![CDATA[Flashing BIOS should be an easy thing, assuming you have floppy drives in both server and desktop - not to mention still owns disketts. Here is how you flash it with a USB drive instead. <br /><br /><ol><li>Format your USB drive (if you own a sandisk and want to remove the extra partition with the annoying software on it (depending on how good your bios is to boot from USB - this can be a must) view <a href="http://bivald.com/lessons-learned/2009/07/convert_the_pre-filled_usb_sti.html">this post</a><br /></li><li>Download HP Create Boot Utility (Google for sources)</li><li>Download win98boot.zip (Google for sources)</li><li>Unpack win98boot.zip to folder win98boot (make sure to retain folder structure)</li><li>Install HP Create Boot Utility</li><li>Run HP Create Boot Utility</li><li>Choose your USB drive</li><li>Choose "Create Boot disk" from source: &lt;Choose your win98boot folder&gt;<br /></li><li>Download your bios firmware (or unpack the .exe from supermicro, I used a virtual a: drive with paralells to do this: Create the floppy in parallels (win xp), run the supermicro flash .exe, copy the files from a:)</li><li>Copy all the files into your USB drive</li><li>Unmount USB<br /></li><li>Put your USB drive in your server</li><li>Go into BIOS menu, boot options</li><li>Make sure your USB drive is high on the boot priority, I usually use: 1: USB, 2: CD, 3: HDD</li><li>Exit bios, let the USB drive boot</li><li>Run "flash &lt;your bios version&gt;.rom". (If you don't have a &lt;your bios version&gt;.rom, you probably have a &lt;your bios version&gt;.zip, use: "unzip &lt;your bios version&gt;.zip"</li><li>It will flash and restart the server. When it does, remove your USB stick</li></ol>That's it! It looks like a lot of steps, but most is pretty straight forward. <br /> ]]></description>
            <link>http://bivald.com/lessons-learned/2009/07/flashing_supermicro_bios_x7dvl.html</link>
            <guid>http://bivald.com/lessons-learned/2009/07/flashing_supermicro_bios_x7dvl.html</guid>
            
            
            <pubDate>Fri, 31 Jul 2009 10:25:39 +0100</pubDate>
        </item>
        
        <item>
            <title>Using Launch2Net to manually set DNS and APN (and later, using same DNS manually in OS X)</title>
            <description><![CDATA[As I've previous written about I've had problems connecting to my tele2 internet. I've tried changing modem but while it appeared to be working a while, it stopped later on the same week. My second approach was to set DNS and APN manually. Some background:<br /><br />When I tried to connect I got to "Authenticating" and then it simply timed out. My logs said: <br /><br />Sun Jul&nbsp; 5 15:12:01 2009 : sent [IPCP ConfReq id=0x2 &lt;addr 0.0.0.0&gt; &lt;ms-dns1 10.11.12.13&gt; &lt;ms-dns3 10.11.12.14&gt;]<br />Sun Jul&nbsp; 5 15:12:04 2009 : sent [IPCP ConfReq id=0x2 &lt;addr 0.0.0.0&gt; &lt;ms-dns1 10.11.12.13&gt; &lt;ms-dns3 10.11.12.14&gt;]<br />Sun Jul&nbsp; 5 15:12:07 2009 : sent [IPCP ConfReq id=0x2 &lt;addr 0.0.0.0&gt; &lt;ms-dns1 10.11.12.13&gt; &lt;ms-dns3 10.11.12.14&gt;]<br />Sun Jul&nbsp; 5 15:12:10 2009 : sent [IPCP ConfReq id=0x2 &lt;addr 0.0.0.0&gt; &lt;ms-dns1 10.11.12.13&gt; &lt;ms-dns3 10.11.12.14&gt;]<br />Sun Jul&nbsp; 5 15:12:13 2009 : sent [IPCP ConfReq id=0x2 &lt;addr 0.0.0.0&gt; &lt;ms-dns1 10.11.12.13&gt; &lt;ms-dns3 10.11.12.14&gt;]<br />Sun Jul&nbsp; 5 15:12:16 2009 : sent [IPCP ConfReq id=0x2 &lt;addr 0.0.0.0&gt; &lt;ms-dns1 10.11.12.13&gt; &lt;ms-dns3 10.11.12.14&gt;]<br /><br />And Launch2Net said that it tried to get TCP/IP settings but timed out. Thus I had a hunch that it was failing to get IP adress and/or DNS. I scrolled through the logs, and found this (from a successfull attempt):<br /><br />Sat Jul&nbsp; 4 16:10:05 2009 : Could not determine remote IP address: defaulting to 10.64.64.64<br />Sat Jul&nbsp; 4 16:10:05 2009 : local&nbsp; IP address 90.130.200.117<br />Sat Jul&nbsp; 4 16:10:05 2009 : remote IP address 10.64.64.64<br />Sat Jul&nbsp; 4 16:10:05 2009 : primary&nbsp;&nbsp; DNS address 130.244.127.161<br />Sat Jul&nbsp; 4 16:10:05 2009 : secondary DNS address 130.244.127.169<br /><br />And knowing that tele2s APN was mobileinternet.tele2.se I tried to use a custom configuration with:<br /><br />APN: mobileinternet.tele2.se<br />User: &lt;blank&gt;<br />Pass: &lt;blank&gt;<br />DNS #1 and #2 as above. <br /><br />So far so good, I could connect, I got a new IP. My log says:<br /><br />un Jul&nbsp; 5 15:17:49 2009 : ipcp: returning Configure-NAK<br />Sun Jul&nbsp; 5 15:17:49 2009 : sent [IPCP ConfNak id=0x0 &lt;addr 0.0.0.0&gt;]<br />Sun Jul&nbsp; 5 15:17:49 2009 : rcvd [IPCP ConfNak id=0x3 &lt;addr 90.130.237.92&gt; &lt;ms-dns1 130.244.127.161&gt; &lt;ms-dns3 130.244.127.169&gt;]<br />Sun Jul&nbsp; 5 15:17:49 2009 : sent [IPCP ConfReq id=0x4 &lt;addr 90.130.237.92&gt; &lt;ms-dns1 130.244.127.161&gt; &lt;ms-dns3 130.244.127.169&gt;]<br />Sun Jul&nbsp; 5 15:17:49 2009 : rcvd [IPCP ConfReq id=0x1]<br />Sun Jul&nbsp; 5 15:17:49 2009 : ipcp: returning Configure-ACK<br />Sun Jul&nbsp; 5 15:17:49 2009 : sent [IPCP ConfAck id=0x1]<br />Sun Jul&nbsp; 5 15:17:49 2009 : rcvd [IPCP ConfAck id=0x4 &lt;addr 90.130.237.92&gt; &lt;ms-dns1 130.244.127.161&gt; &lt;ms-dns3 130.244.127.169&gt;]<br />Sun Jul&nbsp; 5 15:17:49 2009 : ipcp: up<br />Sun Jul&nbsp; 5 15:17:49 2009 : Could not determine remote IP address: defaulting to 10.64.64.64<br />Sun Jul&nbsp; 5 15:17:49 2009 : local&nbsp; IP address 90.130.237.92<br />Sun Jul&nbsp; 5 15:17:49 2009 : remote IP address 10.64.64.64<br />Sun Jul&nbsp; 5 15:17:49 2009 : primary&nbsp;&nbsp; DNS address 130.244.127.161<br />Sun Jul&nbsp; 5 15:17:49 2009 : secondary DNS address 130.244.127.169<br /><br />You can see the above call for IP:<br /><br />Sun Jul&nbsp; 5 15:17:49 2009 : rcvd [IPCP ConfNak id=0x3 &lt;addr
90.130.237.92&gt; &lt;ms-dns1 130.244.127.161&gt; &lt;ms-dns3
130.244.127.169&gt;]<br />
Sun Jul&nbsp; 5 15:17:49 2009 : sent [IPCP ConfReq id=0x4 &lt;addr
90.130.237.92&gt; &lt;ms-dns1 130.244.127.161&gt; &lt;ms-dns3
130.244.127.169&gt;<br /><br />Which seems to work much better now, using a fixed DNS. But since I prefer to use OS X native (no third party applications - specially those who cost 80EUR) I opened my Huwaei network settings and added the DNS manually as well. So far so good. <br /> ]]></description>
            <link>http://bivald.com/lessons-learned/2009/07/using_launch2net_to_manually_s.html</link>
            <guid>http://bivald.com/lessons-learned/2009/07/using_launch2net_to_manually_s.html</guid>
            
            
            <pubDate>Sun, 05 Jul 2009 15:18:19 +0100</pubDate>
        </item>
        
        <item>
            <title>Xen problems: SSH to new domain gives &quot;PTY allocation request failed on channel 0&quot; and &quot;stdin is not a tty&quot;</title>
            <description><![CDATA[If you've created a new domain using xen-tools you might run into the situation that the console works, but if you SSH in you get:<br /><br />"PTY allocation request failed on channel 0" and "stdin is not a tty"<br /><br />You need to install udev. Connect via console (xm console &lt;domain id&gt;) (you can get &lt;domain id&gt; with xm list) and simply run:<br /><br />apt-get install udev<br /><br />And restart / stop+start. Problem solved!<br /><br />PS: Don't forget to apt-get install build-essentials<br /> ]]></description>
            <link>http://bivald.com/lessons-learned/2009/07/xen_problems_ssh_to_new_domain.html</link>
            <guid>http://bivald.com/lessons-learned/2009/07/xen_problems_ssh_to_new_domain.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Articles and seminars</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Code snippets</category>
            
            
            <pubDate>Sat, 04 Jul 2009 08:23:09 +0100</pubDate>
        </item>
        
        <item>
            <title>Supermicro IPMI problems: Web interface works, but nothing else</title>
            <description><![CDATA[Recently I've bought and installed a Super Micro server (The usual raid-1 and IPMI configuration) but was puzzled by a rather odd problem: The IPMI card worked and I could control it via web interface. But neither ipmitools nor Supermicros own configuration system works. <br /><br />After a quick talk with the support the problem was quite obvious: Turns out that the older IPMI firmware has a known bug that makes it impossible to use anything but the web interface. Unfortunately for me, the CD I got with the package had the old firmware. <br /><br />As always, open the following ports:<br />&nbsp;<br />UDP Port 623 for IPMI protocol <br />TCP Port 80 for Web User Interface <br />TCP Port 443 for KVM Over Lan <br />On the Client side you need to open UDP Port 6666 for Text Console Redirection<br /><br />However, I must say I'm impressed by Supermicros internationall support. Quick replies, polity and accurate. <br /> ]]></description>
            <link>http://bivald.com/lessons-learned/2009/06/supermicro_ipmi_problems_web_i.html</link>
            <guid>http://bivald.com/lessons-learned/2009/06/supermicro_ipmi_problems_web_i.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Articles and seminars</category>
            
            
            <pubDate>Tue, 30 Jun 2009 08:10:11 +0100</pubDate>
        </item>
        
        <item>
            <title>Problems with 3G Internet &amp; Unlocking Huawei E220</title>
            <description><![CDATA[Recently my 3G mobile internet has begun to fail at an increasing rate. Basically, it doesn't fetch a IP and hangs at "Authenticating". I enabled verbose logging (OS X - System Preferences - Network - Huawei - Advanced - PPP - Settings: Configuration - Verbose logging) <br /><br />And checked the logs (Application - Utilities - Console - /var/log/ppp.log) and found:<br /><br />Mon Jun 29 19:06:22 2009 : sent [IPCP ConfReq id=0x2 &lt;addr 0.0.0.0&gt; &lt;ms-dns1 10.11.12.13&gt; &lt;ms-dns3 10.11.12.14&gt;]<br />Mon Jun 29 19:06:25 2009 : sent [IPCP ConfReq id=0x2 &lt;addr 0.0.0.0&gt; &lt;ms-dns1 10.11.12.13&gt; &lt;ms-dns3 10.11.12.14&gt;]<br />Mon Jun 29 19:06:28 2009 : sent [IPCP ConfReq id=0x2 &lt;addr 0.0.0.0&gt; &lt;ms-dns1 10.11.12.13&gt; &lt;ms-dns3 10.11.12.14&gt;]<br />Mon Jun 29 19:06:31 2009 : sent [IPCP ConfReq id=0x2 &lt;addr 0.0.0.0&gt; &lt;ms-dns1 10.11.12.13&gt; &lt;ms-dns3 10.11.12.14&gt;]<br />Mon Jun 29 19:06:34 2009 : sent [IPCP ConfReq id=0x2 &lt;addr 0.0.0.0&gt; &lt;ms-dns1 10.11.12.13&gt; &lt;ms-dns3 10.11.12.14&gt;]<br />Mon Jun 29 19:06:37 2009 : sent [IPCP ConfReq id=0x2 &lt;addr 0.0.0.0&gt; &lt;ms-dns1 10.11.12.13&gt; &lt;ms-dns3 10.11.12.14&gt;]<br />Mon Jun 29 19:06:40 2009 : sent [IPCP ConfReq id=0x2 &lt;addr 0.0.0.0&gt; &lt;ms-dns1 10.11.12.13&gt; &lt;ms-dns3 10.11.12.14&gt;]<br />Mon Jun 29 19:06:43 2009 : sent [IPCP ConfReq id=0x2 &lt;addr 0.0.0.0&gt; &lt;ms-dns1 10.11.12.13&gt; &lt;ms-dns3 10.11.12.14&gt;]<br />Mon Jun 29 19:06:46 2009 : sent [IPCP ConfReq id=0x2 &lt;addr 0.0.0.0&gt; &lt;ms-dns1 10.11.12.13&gt; &lt;ms-dns3 10.11.12.14&gt;]<br />Mon Jun 29 19:06:49 2009 : sent [IPCP ConfReq id=0x2 &lt;addr 0.0.0.0&gt; &lt;ms-dns1 10.11.12.13&gt; &lt;ms-dns3 10.11.12.14&gt;]<br />Mon Jun 29 19:06:52 2009 : IPCP: timeout sending Config-Requests<br />Mon Jun 29 19:06:52 2009 : sent [LCP TermReq id=0x2 "No network protocols running"]<br />Mon Jun 29 19:06:55 2009 : sent [LCP TermReq id=0x3 "No network protocols running"]<br /><br />Basically, timed out. Talking to support they didn't see any problems. They thought it was a drivers related problem. But since I couldn't connect on Windows either (via parallels) I thought it might be a hardware problem. <br /><br />Here's the tricky part: I have a spare Huawei E220, but locked on another provider. Thus I needed to unlock it to even try my hardware problem thesis. Turns out unlocking Huawei E220 was quite easy, a lot easier that up to date cellphones from Nokia or Sony Ericsson. <br /><br />I won't go into the deails of unlocking here (not sure about the legality about describing the process) but it's pretty clear-cut and can be found on Google. <br /><br />Turns out I was right, hardware indeed. And now I can connect again. &nbsp; ]]></description>
            <link>http://bivald.com/lessons-learned/2009/06/problems_with_3g_internet_unlo.html</link>
            <guid>http://bivald.com/lessons-learned/2009/06/problems_with_3g_internet_unlo.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Articles and seminars</category>
            
            
            <pubDate>Mon, 29 Jun 2009 19:45:33 +0100</pubDate>
        </item>
        
        <item>
            <title>Mobile sync: Sending settings over the air (OTA) - Sony Ericsson username problems.</title>
            <description><![CDATA[For a client of mine we've been using mobile sync. To send the settings we use OTA OMA. Basically we make a XML file with settings, convert to WBXML. A good start guide can be found on http://mobiforge.com/developing/story/email-configuration-sms<br /><br />I've found that sony ericsson phones (unlike Nokia) is more touchy on how to send username+password for sync (w5 type) application. This is a OK XML for SE+Nokia:<br /><br />"&lt;?xml version=\"1.0\"?&gt;"<br />"&lt;!DOCTYPE wap-provisioningdoc PUBLIC \"-//WAPFORUM//DTD PROV 1.0//EN\" \"http://www.wapforum.org/DTD/prov.dtd\"&gt;"<br />"&lt;wap-provisioningdoc version=\"1.0\"&gt;"<br />"&lt;characteristic type=\"APPLICATION\"&gt; "<br />"&nbsp;&nbsp;&nbsp; &lt;parm name=\"APPID\" value=\"w5\"/&gt; "<br />"&nbsp;&nbsp;&nbsp; &lt;parm name=\"NAME\" value=\"Radarspot LAB\"/&gt; "<br />"&nbsp;&nbsp;&nbsp; &lt;characteristic type=\"APPADDR\"&gt; "<br />"&nbsp;&nbsp;&nbsp;&nbsp; &lt;parm name=\"ADDR\" value=\"www.radarspotlab.com:8080/funambol/ds\"/&gt; "<br />"&nbsp;&nbsp;&nbsp; &lt;/characteristic&gt; "<br />"&nbsp;&nbsp;&nbsp; &lt;characteristic type=\"APPAUTH\"&gt; "<br />"&nbsp;&nbsp;&nbsp;&nbsp; &lt;parm name=\"AAUTHNAME\" value=\"%s\"/&gt; "<br />"&nbsp;&nbsp;&nbsp;&nbsp; &lt;parm name=\"AAUTHSECRET\" value=\"%s\"/&gt; "<br />"&nbsp;&nbsp;&nbsp; &lt;/characteristic&gt; "<br />"&nbsp;&nbsp;&nbsp; &lt;characteristic type=\"RESOURCE\"&gt; "<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&lt;parm name=\"URI\" value=\"card\"/&gt;"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&lt;parm name=\"NAME\" value=\"Contacts DB\"/&gt;"<br />"&nbsp;&nbsp;&nbsp;&nbsp; &lt;parm name=\"AACCEPT\" value=\"text/x-vcard;2.1,text/vcard;3.0\"/&gt; "<br />"&nbsp;&nbsp;&nbsp; &lt;/characteristic&gt; "<br />"&nbsp; &lt;/characteristic&gt; "<br />"&lt;/wap-provisioningdoc&gt;";<br /><br />(Forgive me for the quotes, it's copy/past)<br /><br /> ]]></description>
            <link>http://bivald.com/lessons-learned/2009/06/mobile_sync_sending_settings_o.html</link>
            <guid>http://bivald.com/lessons-learned/2009/06/mobile_sync_sending_settings_o.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Code snippets</category>
            
            
            <pubDate>Sun, 28 Jun 2009 16:59:46 +0100</pubDate>
        </item>
        
        <item>
            <title>The plausible promise</title>
            <description><![CDATA[Google is writing about the Plausible Promise:<br /><br />"When you start community-building, what you need to be able to present
is a plausible promise. Your program doesn't have to work particularly
well. It can be crude, buggy, incomplete, and poorly documented. What
it must not fail to do is (a) run, and (b) convince potential
co-developers that it can be evolved into something really neat in the
foreseeable future."<br /><br />It's a good read for any open source developer (or community builder for that matter) and is found <a href="http://blog.chromium.org/2009/06/plausible-promise.html">here</a><br /> ]]></description>
            <link>http://bivald.com/lessons-learned/2009/06/the_plausible_promise.html</link>
            <guid>http://bivald.com/lessons-learned/2009/06/the_plausible_promise.html</guid>
            
            
            <pubDate>Thu, 25 Jun 2009 18:23:41 +0100</pubDate>
        </item>
        
        <item>
            <title>Wrapping PHP in itself</title>
            <description><![CDATA[This is a mental note to myself. Somethings using pre-installed VPS the PHP executed by Apache is lacking the necessary permissions to run binary files (shellscript and built-in commands works fine though). It doesn't generate errors, it simply doesn't work. <br /><br />Those VPS often has the PHP-CGI version installed and thus you can:<br /><br /><ol><li>Make your PHP script execute a shell script</li><li>Init the shell script with PHP-CGI</li><li>Execute</li></ol>This is how the shell script in step 2 looks like:<br />#!/usr/bin/php<br />&lt;?<br />exec('/home/user/www/mybinaryfiletoexecute');<br />?&gt;<br /><br />Note that the binary file must be in your www-dir. <br /><br /><br /> ]]></description>
            <link>http://bivald.com/lessons-learned/2009/06/wrapping_php_in_itself.html</link>
            <guid>http://bivald.com/lessons-learned/2009/06/wrapping_php_in_itself.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Code snippets</category>
            
            
            <pubDate>Wed, 10 Jun 2009 18:40:20 +0100</pubDate>
        </item>
        
        <item>
            <title>Adding CSS width support in sIFR</title>
            <description><![CDATA[Every now and then you have the (miss fortunate) to need sIFR. I usually go for the jquery plugin. However, jquery sIFR measures the width of the html text (not the block itself) and then creates a matching flash. Since flash text is often wider, a line break appears. <br /><br />Thus - jquery sIFR needs support for css width. <br /><br />In jquery.sifr.js, efter line 297 (sendOptions[height]), add:<br /><br />if( $each.css(width) !== "auto" ) {<br />&nbsp;&nbsp;&nbsp; sendOptions[width] = $each.css(width).replace('px','');<br />}else{<br />&nbsp;&nbsp; sendOptions[width] = sendOptions[width] || $alt[0][offsetWidth] || $alt[0][parentNode][offsetWidth] || $each.css(width);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; &nbsp;<br /><br />Works for me..&nbsp; ]]></description>
            <link>http://bivald.com/lessons-learned/2009/05/adding_css_width_support_in_si.html</link>
            <guid>http://bivald.com/lessons-learned/2009/05/adding_css_width_support_in_si.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Code snippets</category>
            
            
            <pubDate>Thu, 07 May 2009 19:19:38 +0100</pubDate>
        </item>
        
        <item>
            <title>Duplicate a mysql database</title>
            <description><![CDATA[From time to time you have the need to duplicate an mysql database, here's how you do it:<br /><br /><pre class="code">mysqldump -u DB_user --password=DB_pass DB_name | mysql -u DB_user --password=DB_pass -h DB_host DB_name<br /><br /><a href="http://www.rubyrobot.org/article/duplicate-a-mysql-database">Source</a><br /></pre><br /> ]]></description>
            <link>http://bivald.com/lessons-learned/2009/05/duplicate_a_mysql_database.html</link>
            <guid>http://bivald.com/lessons-learned/2009/05/duplicate_a_mysql_database.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Code snippets</category>
            
            
            <pubDate>Wed, 06 May 2009 19:03:31 +0100</pubDate>
        </item>
        
    </channel>
</rss>
