<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Lessons Learned</title>
    <link rel="alternate" type="text/html" href="http://bivald.com/lessons-learned/" />
    <link rel="self" type="application/atom+xml" href="http://bivald.com/lessons-learned/atom.xml" />
    <id>tag:bivald.com,2007-07-27:/lessons-learned//1</id>
    <updated>2009-11-09T10:17:23Z</updated>
    <subtitle>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. </subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.21-en</generator>

<entry>
    <title>Building libstomp client on linux</title>
    <link rel="alternate" type="text/html" href="http://bivald.com/lessons-learned/2009/11/building_libstomp_client_on_li.html" />
    <id>tag:bivald.com,2009:/lessons-learned//1.272</id>

    <published>2009-11-09T10:08:08Z</published>
    <updated>2009-11-09T10:17:23Z</updated>

    <summary>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. Here is how you build it for linux, thanks to JBOSS.org. </summary>
    <author>
        <name>Niklas Bivald</name>
        <uri>http://bivald.com</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://bivald.com/lessons-learned/">
        <![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 />]]>
        
    </content>
</entry>

<entry>
    <title>Maintaing Open Source Projects</title>
    <link rel="alternate" type="text/html" href="http://bivald.com/lessons-learned/2009/10/maintaing_open_source_projects.html" />
    <id>tag:bivald.com,2009:/lessons-learned//1.271</id>

    <published>2009-10-23T18:11:55Z</published>
    <updated>2009-10-23T18:13:49Z</updated>

    <summary>Zeh Fernando, one of my RSS favorites, writes about maintaining open source projects. A good read, good slides. Article can be found on zehfernando.com</summary>
    <author>
        <name>Niklas Bivald</name>
        <uri>http://bivald.com</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://bivald.com/lessons-learned/">
        <![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 /> ]]>
        
    </content>
</entry>

<entry>
    <title>Build and release</title>
    <link rel="alternate" type="text/html" href="http://bivald.com/lessons-learned/2009/10/build_and_release.html" />
    <id>tag:bivald.com,2009:/lessons-learned//1.270</id>

    <published>2009-10-07T13:35:21Z</published>
    <updated>2009-10-07T13:36:47Z</updated>

    <summary>Stop thinking you understand your users. You think users will love this or that and you&apos;ll probably be wrong. So don&apos;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.</summary>
    <author>
        <name>Niklas Bivald</name>
        <uri>http://bivald.com</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://bivald.com/lessons-learned/">
        <![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 /> ]]>
        
    </content>
</entry>

<entry>
    <title>Preparing a lecture on AD - Developer communication</title>
    <link rel="alternate" type="text/html" href="http://bivald.com/lessons-learned/2009/10/preparing_a_lecture_on_ad_-_de.html" />
    <id>tag:bivald.com,2009:/lessons-learned//1.269</id>

    <published>2009-10-04T13:02:12Z</published>
    <updated>2009-10-04T13:03:19Z</updated>

    <summary>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. In total they will span over six days.</summary>
    <author>
        <name>Niklas Bivald</name>
        <uri>http://bivald.com</uri>
    </author>
    
        <category term="Articles and seminars" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://bivald.com/lessons-learned/">
        <![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 /> ]]>
        
    </content>
</entry>

<entry>
    <title>Convert the pre-filled USB stick (sandisk) to a normal, blank one. </title>
    <link rel="alternate" type="text/html" href="http://bivald.com/lessons-learned/2009/07/convert_the_pre-filled_usb_sti.html" />
    <id>tag:bivald.com,2009:/lessons-learned//1.249</id>

    <published>2009-07-31T08:27:57Z</published>
    <updated>2009-07-31T08:31:22Z</updated>

    <summary>Sandisk usb sticks are filled with extra software and even extra partitions. Fortunately, they are easy to remove. Here&apos;s how.</summary>
    <author>
        <name>Niklas Bivald</name>
        <uri>http://bivald.com</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://bivald.com/lessons-learned/">
        <![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 /> ]]>
        
    </content>
</entry>

<entry>
    <title>Flashing SuperMicro bios (X7DVL-3) with USB stick/drive/pen/flash</title>
    <link rel="alternate" type="text/html" href="http://bivald.com/lessons-learned/2009/07/flashing_supermicro_bios_x7dvl.html" />
    <id>tag:bivald.com,2009:/lessons-learned//1.250</id>

    <published>2009-07-31T08:25:39Z</published>
    <updated>2009-07-31T08:38:18Z</updated>

    <summary>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. </summary>
    <author>
        <name>Niklas Bivald</name>
        <uri>http://bivald.com</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://bivald.com/lessons-learned/">
        <![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 /> ]]>
        
    </content>
</entry>

<entry>
    <title>Using Launch2Net to manually set DNS and APN (and later, using same DNS manually in OS X)</title>
    <link rel="alternate" type="text/html" href="http://bivald.com/lessons-learned/2009/07/using_launch2net_to_manually_s.html" />
    <id>tag:bivald.com,2009:/lessons-learned//1.242</id>

    <published>2009-07-05T13:18:19Z</published>
    <updated>2009-07-05T13:26:49Z</updated>

    <summary>As I&apos;ve previous written about I&apos;ve had problems connecting to my tele2 internet. I&apos;ve tried changing modem but while it appeared to be working a while, it stopped later on the same week. Here is how I solved it. </summary>
    <author>
        <name>Niklas Bivald</name>
        <uri>http://bivald.com</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://bivald.com/lessons-learned/">
        <![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 /> ]]>
        
    </content>
</entry>

<entry>
    <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>
    <link rel="alternate" type="text/html" href="http://bivald.com/lessons-learned/2009/07/xen_problems_ssh_to_new_domain.html" />
    <id>tag:bivald.com,2009:/lessons-learned//1.241</id>

    <published>2009-07-04T06:23:09Z</published>
    <updated>2009-07-04T06:33:49Z</updated>

    <summary>If you&apos;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:

&quot;PTY allocation request failed on channel 0&quot; and &quot;stdin is not a tty&quot;

You need to install udev. Here&apos;s how. </summary>
    <author>
        <name>Niklas Bivald</name>
        <uri>http://bivald.com</uri>
    </author>
    
        <category term="Articles and seminars" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Code snippets" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://bivald.com/lessons-learned/">
        <![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 /> ]]>
        
    </content>
</entry>

<entry>
    <title>Supermicro IPMI problems: Web interface works, but nothing else</title>
    <link rel="alternate" type="text/html" href="http://bivald.com/lessons-learned/2009/06/supermicro_ipmi_problems_web_i.html" />
    <id>tag:bivald.com,2009:/lessons-learned//1.240</id>

    <published>2009-06-30T06:10:11Z</published>
    <updated>2009-06-30T09:03:23Z</updated>

    <summary>Recently I&apos;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. Here is how you fix it. </summary>
    <author>
        <name>Niklas Bivald</name>
        <uri>http://bivald.com</uri>
    </author>
    
        <category term="Articles and seminars" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://bivald.com/lessons-learned/">
        <![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 /> ]]>
        
    </content>
</entry>

<entry>
    <title>Problems with 3G Internet &amp; Unlocking Huawei E220</title>
    <link rel="alternate" type="text/html" href="http://bivald.com/lessons-learned/2009/06/problems_with_3g_internet_unlo.html" />
    <id>tag:bivald.com,2009:/lessons-learned//1.239</id>

    <published>2009-06-29T17:45:33Z</published>
    <updated>2009-06-30T08:56:40Z</updated>

    <summary>Recently my 3G mobile internet has begun to fail at an increasing rate. Basically, it doesn&apos;t fetch a IP and hangs at &quot;Authenticating&quot;. Here is how I debugged the problem, and unlocked another Huawei to check the hardware. </summary>
    <author>
        <name>Niklas Bivald</name>
        <uri>http://bivald.com</uri>
    </author>
    
        <category term="Articles and seminars" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://bivald.com/lessons-learned/">
        <![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; ]]>
        
    </content>
</entry>

<entry>
    <title>Mobile sync: Sending settings over the air (OTA) - Sony Ericsson username problems.</title>
    <link rel="alternate" type="text/html" href="http://bivald.com/lessons-learned/2009/06/mobile_sync_sending_settings_o.html" />
    <id>tag:bivald.com,2009:/lessons-learned//1.238</id>

    <published>2009-06-28T14:59:46Z</published>
    <updated>2009-06-28T15:00:25Z</updated>

    <summary>For a client of mine we&apos;ve been using mobile sync. To send the settings we use OTA OMA. Basically we make a XML file with settings, convert to WBXML. Here is a good start and some pointers when username+password isn&apos;t saved on Sony Ericsson. </summary>
    <author>
        <name>Niklas Bivald</name>
        <uri>http://bivald.com</uri>
    </author>
    
        <category term="Code snippets" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://bivald.com/lessons-learned/">
        <![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 /> ]]>
        
    </content>
</entry>

<entry>
    <title>The plausible promise</title>
    <link rel="alternate" type="text/html" href="http://bivald.com/lessons-learned/2009/06/the_plausible_promise.html" />
    <id>tag:bivald.com,2009:/lessons-learned//1.236</id>

    <published>2009-06-25T16:23:41Z</published>
    <updated>2009-06-25T14:55:07Z</updated>

    <summary>Google is writing about the Plausible Promise, It&apos;s a good read for any open source developer (or community builder for that matter)</summary>
    <author>
        <name>Niklas Bivald</name>
        <uri>http://bivald.com</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://bivald.com/lessons-learned/">
        <![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 /> ]]>
        
    </content>
</entry>

<entry>
    <title>Wrapping PHP in itself</title>
    <link rel="alternate" type="text/html" href="http://bivald.com/lessons-learned/2009/06/wrapping_php_in_itself.html" />
    <id>tag:bivald.com,2009:/lessons-learned//1.237</id>

    <published>2009-06-10T16:40:20Z</published>
    <updated>2009-06-25T14:54:37Z</updated>

    <summary>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&apos;t generate errors, it simply doesn&apos;t work. Here&apos;s how you go around it.</summary>
    <author>
        <name>Niklas Bivald</name>
        <uri>http://bivald.com</uri>
    </author>
    
        <category term="Code snippets" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://bivald.com/lessons-learned/">
        <![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 /> ]]>
        
    </content>
</entry>

<entry>
    <title>Adding CSS width support in sIFR</title>
    <link rel="alternate" type="text/html" href="http://bivald.com/lessons-learned/2009/05/adding_css_width_support_in_si.html" />
    <id>tag:bivald.com,2009:/lessons-learned//1.229</id>

    <published>2009-05-07T17:19:38Z</published>
    <updated>2009-05-08T09:14:06Z</updated>

    <summary>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. Here is how you fix it. </summary>
    <author>
        <name>Niklas Bivald</name>
        <uri>http://bivald.com</uri>
    </author>
    
        <category term="Code snippets" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://bivald.com/lessons-learned/">
        <![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; ]]>
        
    </content>
</entry>

<entry>
    <title>Duplicate a mysql database</title>
    <link rel="alternate" type="text/html" href="http://bivald.com/lessons-learned/2009/05/duplicate_a_mysql_database.html" />
    <id>tag:bivald.com,2009:/lessons-learned//1.228</id>

    <published>2009-05-06T17:03:31Z</published>
    <updated>2009-05-07T09:04:44Z</updated>

    <summary>From time to time you have the need to duplicate an mysql database, this post shows you how.</summary>
    <author>
        <name>Niklas Bivald</name>
        <uri>http://bivald.com</uri>
    </author>
    
        <category term="Code snippets" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://bivald.com/lessons-learned/">
        <![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 /> ]]>
        
    </content>
</entry>

</feed>
