<?xml version="1.0"?>
<?xml-stylesheet 
 href="http://www.w3.org/2000/08/w3c-synd/style.css" type="text/css"
?>
<rss version="0.91"><channel><title>Planet phpGroupWare</title><link>http://planet.phpgroupware.org</link><description>Rants and raves from the people who bring you phpGroupWare</description><language>en</language><item><title>Howto get a Public IP on Vodafone's 3G Network in Australia - Dave's blog</title><link>http://davehall.com.au/blog/dave/2008/08/05/howto-get-static-ip-vodafones-3g-network-australia</link><pubDate>Tue, 05 Aug 2008 13:09:52 +0000</pubDate><description><![CDATA[<p><a href="http://vodafone.com.au">Vodafone</a> in Australia offers a pretty good mobile data plan - 5Gb for $39.95 per month.  They have recently upped the price to $49.95 p/m.</p>
<p>Unlike <a href="http://three.com.au">3</a>, vodafone doesn't offer a public IP addresses to their "mobile broadband" customers.  Vodafone pitch this as a business product.  I don't agree with it, but I can see how you could justify only offering a NAT'd IP address when using your handset to access the internet or maybe even as a tethered modem.  Such logic can't be sustained when offering a HSDPA modem as a "mobile broadband" service.  If it is mobile "broadband" then it should be similar to a fixed line broadband service.</p>
<p>After discovering VF only offer a handful of gateways for their data customers, I tried finding out about getting a dynamic public IP address.  </p>
<p>To cut a long story short, after 4 calls to data support, and about the same to corporate support, I was at a dead end.  Consumer data support told me that I needed to talk to Corporate data support, who wouldn't talk to me as I wasn't a corporate customer.</p>
<p>Eventually I gave up and called the <a href="http://www.tio.com.au">TIO</a>, who, as always were great.  I then called the Vodafone complaints team who struggled with all the details of broadband, public IPs, gateway IPs, various service acronyms and the terms which I had agreed to.</p>
<p>After a few more phone calls and waits I was finally awarded my dynamic static IP address.  They add something to your account to give you access to the full access APN which gives you a public IP and no port restrictions.  For the record the <a href="http://en.wikipedia.org/wiki/Access_Point_Name">APN</a> is "internet", instead of the normal "vfinternet.au", but this won't work unless VF enable it for you.  I some how think Vodafone award access as a prize for persistence.</p>
<p>I did a quick check on the vf.au site again tonight and it seems the small print is the same, so if you sign up for the service I think you have good ground for getting a public dynamic IP like I did.  It will just take jumping through a few hoops.</p>
<p><strong>Update:</strong> The title should have read public not static IP.</p>
]]></description></item><item><title>We're Growing and Hiring - Dave's blog</title><link>http://davehall.com.au/blog/dave/2008/06/25/were-growing-and-hiring</link><pubDate>Wed, 25 Jun 2008 06:15:00 +0000</pubDate><description><![CDATA[<p><a href="http://davehall.com.au">Dave Hall Consulting</a> has been growing strongly.  We currently have a couple of contractors working on various projects.  We are about to commence a significant new project and so need more hands on deck.</p>
<p><strong>We are not looking for website developers</strong>.  If you are a web application developer with at least 2 years commercial PHP experience looking for contract work, <a href="mailto:%6a%6f%62%73%40%64%61%76%65%68%61%6c%6c%2e%63%6f%6d%2e%61%75">email your resume to jobs@davehall.com.au</a>.  Make sure you include links to code you have worked on.</p>
<p>You should have FOSS development experience, although some of the work will be proprietary client systems, they will be built on top of FOSS stacks.  We are based in Melbourne, but the current team is distributed, so telecommuting is fine.  Experience with cross platform JS and CSS is essential. Knowledge of Zend Framework, PHPUnit and YUI are preferred.  We value elegant quality solutions, as should you.  A good grasp of written and spoken English is a must.  Pay, hours and term of contract are all negotiable.</p>
<p><strong>Update:</strong> The job has gone.  We have one new contractor starting today and another will be starting work on small projects soon.</p>
]]></description></item><item><title>Evince Blows my Mind! - Dave's blog</title><link>http://davehall.com.au/blog/dave/2008/06/06/evince-blows-my-mind</link><pubDate>Fri, 06 Jun 2008 10:40:09 +0000</pubDate><description><![CDATA[<p>A couple of days ago I was emailed a scanned invoice as a PDF.  I was planning to just print it and file it, as the <a href="http://www.ato.gov.au">tax office</a> here still requires dead tree records for 7 years last time I checked.  Before printing it on <a href="http://www.evolve-papers.com/en/index.php?content_ID=5">100% post consumer waste recycled paper</a>, I opened it in <a href="http://www.gnome.org/projects/evince/">evince</a>. Nothing spectacular in any of that.</p>
<p>Then it happened, I accidentally clicked and dragged on the page.  All of a sudden evince was highlighting the printed text on the page.  This was a bitmap embedded in a PDF.  Evince was using OCR to highlight the contents of the page.</p>
<p>There are moments every so often I am amazed by the features talented hackers add to FOSS.  This was one of those moments.  I will never look at evince the same way again.</p>
<p><img src="http://davehall.com.au/images/evince.png" alt="evince showing the scanned page" /></p>
<p><img src="http://davehall.com.au/images/evince-ocr.png" alt="evince showing the scanned page with highlighted text using OCR" /></p>
<p>I had a similar reaction when properly using the <a href="http://ed.agadak.net/2008/03/beyond-awesome">awesomebar in firebox 3</a> for the first time.</p>
<p><strong>Update</strong> After seeing the comment below from Mr X, I checked evince with a few more PDFs and unfortunately evince wasn't doing OCR in real time.  The text is embedded in the PDF.  Maybe one time this will be possible.  Any evince developers reading, please consider this a feature request.</p>
<p>I am still impressed with evince, just a little less impressed than I was.</p>
]]></description></item><item><title>Internode adds SourceForge.net Mirror - Dave's blog</title><link>http://davehall.com.au/blog/dave/2008/06/04/internode-adds-sourceforge-net-mirror</link><pubDate>Tue, 03 Jun 2008 23:26:18 +0000</pubDate><description><![CDATA[<p>Yesterday <a href="http://www.internode.on.net/news/2008/06/92.php">Internode annouced that they will be hosting the Australian SourceForge.net mirror</a>.  <a href="http://internode.on.net">Internode</a> has been a long term supporter of FOSS.  They are one of the few ISPs who <a href="http://www.internode.on.net/support/faq/broadband_adsl/getting_connected/#So_you_undoubtedly_support_Windo">officially support Linux</a>.  They offer their <a href="http://mirror.internode.on.net">massive mirror</a>, which has terabytes of FOSS, to the world.</p>
<p>The new <a href="http://sf.net">SourceForge</a> mirror will be available to the world.  The Australian mirror was previously hosted by Optus.  Optus hosts other mirrors for FOSS projects including <a href="http://ubuntu.com">ubuntu</a>. Unfortunately their mirrors are not as reliable as many users would like.  The Australian sf.net mirror should be rock solid if Internode's past performance is anything to go by.</p>
<p>Like the other content Internode mirrors, the sf.net mirror will be unmetered for node's ADSL customers.  This is in addition to a large amount of other unmetered content, such as <a href="http://abc.net.au">ABC</a> content, <a href="http://www.internode.on.net/residential/entertainment/broadband_radio/">almost 100 streaming radio stations</a> and <a href="http://www.internode.on.net/residential/tech_space/unmetered_content/">other services</a>..</p>
<p>I use and recommend internode to anyone who is interested in <a href="http://internode.on.net/adsl">high quality ADSL services</a>.  The support for FOSS is a secondary consideration, as it is pointless having access to it all, but the connection being down all the time.</p>
]]></description></item><item><title>Offer of the Day - Dave's blog</title><link>http://davehall.com.au/blog/dave/2008/06/02/offer-day</link><pubDate>Mon, 02 Jun 2008 10:24:44 +0000</pubDate><description><![CDATA[<p>This turned up in my inbox this morning and I thought I would share it with people.</p>
<blockquote><p>
Good day</p>
<p>I have on several occasions received email from some other debian consultants not just you they've all been asking me to introduce debian to every institution in my country; you must understand that though am very interested, we are talking about a number that would almost run into infinity.</p>
<p>It is true that my Government can bear the cost of importing up to 500Million CDs but the fact remains that I personally do not understand the Software or what it's used for, as such I can't propose it to the senate this is one aspect that we have to discuss in detail about, preferably via my private email which am presently using to write you.</p>
<p>Kindly get back to me so we can discuss about this software and it's benefit to the users if it's beneficial then I promise we can impose it on my country just like Microsoft and make money out of it like you proposed but most important is that you get back to me with details. </p>
<p>Best regards</p>
<p>Abubakar Maikafi<br />
Email: <a href="mailto:maikafiabubakar@gmail.com">maikafiabubakar@gmail.com</a><br />
Phone: +234-07025419252.
</p></blockquote>
<p>He is obviously after <a href="http://www.debian.org/CD/http-ftp/#stable">full CD sets of Debian</a> if he wants half a billion CDs.  I am not in a position to supply this quanity of discs, but if you are, please feel free to contact Abubakar Maikafi about his needs.</p>
<p>Usually I only get unrelated spam or resumes from Indian coders looking for .NET on Windows work via <a href="http://www.debian.org/consultants/#Australia">my Debian Consultants listing</a>.  This even slipped past spam assassin and made my morning.</p>
]]></description></item><item><title>Essential Tools for a PHP Developer - Dave's blog</title><link>http://davehall.com.au/blog/dave/2008/06/01/essential-tools-php-developer</link><pubDate>Sun, 01 Jun 2008 12:07:21 +0000</pubDate><description><![CDATA[<p><a href="http://schlitt.info/applications/blog/">Tobias Schlitt</a> has just posted some slides from his talk entitled <a href="http://schlitt.info/applications/blog/index.php?/archives/602-6-essential-PHP-development-tools-slides-from-IPCDLW.html">"6 essential PHP development tools in 60 minutes"</a>.  I flicked the <a href="http://schlitt.info/applications/blog/exit.php?url_id=4561&entry_id=602">90 or so slides in PDF format</a>, they pretty much mirror my development environment.  </p>
<p>Tobias left out 2 must haves from my personal list.  <a href="http://www.vim.org/">Vim</a>, the only editor I can use for any prolonged period of hacking (go easy <a href="http://www.gnu.org/software/emacs/">emacs</a> <a href="http://en.wikipedia.org/wiki/Fanboi">fanbois</a>).  Although not really a PHP tool, <a href="http://www.getfirebug.com/">Firebug</a>, is an essential tool for any serious modern web application developer,</p>
<p>With this environment hacking on PHP based web apps should be a breeze.</p>
<p>As a side note I am starting to play with <a href="http://git.or.cz/">git</a> after watching <a href="http://www.youtube.com/watch?v=4XpnKHJAok8">Linus' Google Tech Talk</a> on it, and I am starting to like a it, so maybe soon it will be s/svn/git for me.</p>
]]></description></item><item><title>Using Gigabyte BIOS Updates on Linux Boxes - Dave's blog</title><link>http://davehall.com.au/blog/dave/2008/05/25/using-gigabyte-bios-updates-linux-boxes</link><pubDate>Sun, 25 May 2008 03:45:39 +0000</pubDate><description><![CDATA[<p>Dealing with Gigabyte support can be a frustrating experience.  They only offer support via their website.  Once they reply to your enquiry which can take several days, you get a response telling you to visit their website to read the response, and you can reply.  This process means it can take several weeks to get a clear and final answer.</p>
<p>In my case I was trying to get a fix for what I thought was a <a href="http://davehall.com.au/blog/dave/2008/02/10/flakey-bios-gigabyte-ga-m68sm-s2l-makes-mac-address-change-reboot">flakey BIOS in my Gigabyte GA-M68SM-S2L</a>.  Although Gigabyte claim that their <a href="http://www.gigabyte.com.tw/FileList/NewTech/old_motherboard_newtech/tech_qflash.htm">QFlash BIOSes</a> can be loaded independently of the OS the box is running, they only supply them as Windows binary self extracting archives.  Gigabyte tech support aren't much help, suggesting that users can just extract it on a Windows box.  There is an alternative.</p>
<p>The Gigabyte QFlash binaries are simply self extracting rar files.  The following steps make it easy to update Gigabyte QFlash BIOSes on a linux box (albeit with non free software).</p>
<ul>
<li>Download the firmware from Gigabyte</li>
<li>cd /path/to/gigabyte-fw.exe</li>
<li>unrar e gigabyte-fw.exe</li>
<li>cp firmware.fw /path/to/usbstick</li>
<li>Reboot computer and select flash BIOS from USB</li>
</ul>
<p>If all goes to plan you should now have a new BIOS and not had to use a Windows machine to do it.</p>
]]></description></item><item><title>Classic Javascript Games - Dave's blog</title><link>http://davehall.com.au/blog/dave/2008/05/23/classic-javascript-games</link><pubDate>Fri, 23 May 2008 13:23:23 +0000</pubDate><description><![CDATA[<p>A post today on the <a href="http://ajaxian.com/archives/javascript-super-mario-kart">Ajaxian blog</a> about a javascript based version of <a href="http://www.nihilogic.dk/labs/mariokart/">Super Mario Kart</a>, reminded me of some of the other great classic games ported to javascript.  Below is a quick list based on my bookmarks and other stuff kicking around on my laptop.</p>
<ul>
<li><a href="http://www.elizium.nu/scripts/lemmings/">Lemmings</a> (my favourite)</li>
<li><a href="http://www.lutanho.net/play/tetris.html">Tetris</a></li>
<li><a href="http://www.brothercake.com/games/frogger/frogger.html?foo=bar">Frogger</a> (forgive them for using <a href="http://bancomicsans.com/home.html">Comic Sans</a>)</li>
<li><a href="http://www.smashcat.org/arcade/dkong/">Donkey Kong</a> (runs a little too fast on my laptop for my liking)</li>
<li><a href="http://www.masswerk.at/JavaPac/JS-PacMan2.html">PacMan</a> (the graphics aren't true to the original, but the game play is)</li>
<li><a href="http://www.nihilogic.dk/labs/mario/mario_large_music.htm">Super Mario Brothers</a> (link lifted from Ajaxian too)</li>
</ul>
<p>I wish you luck getting away with slacking off in the office while playing these in the office.</p>
<p>Feel free to suggest others in the comments</p>
]]></description></item><item><title>phpGW third item from todo list: Or how to try to debug two apps each others ... - Caeies, portions de dev !</title><link>http://blog.caeies.org/2008/05/phpgw-third-item-from-todo-list-or-how.html</link><pubDate>Wed, 21 May 2008 09:42:00 +0000</pubDate><description><![CDATA[Hi all<br /><br />I'm working on Sync since 3 days. First I had to compile the opensync / libsyncml stuff. I found some interesting help on compilation <a href="http://www.opensync.org/wiki/devel-branch-0.30">Opensync (here)</a> and use. You should know that at time of writing, you should stick to the svn version 3307 (<a href="http://article.gmane.org/gmane.comp.misc.opensync.devel/2798">found why here)</a> to be able to play a little bit with it.<br />To use it with phpGW I was obliged to made some patches that I still need to send back to the opensync project. Here's are some of them :<br /><ul><li>in libsyncmlclient :<br /><pre><br />Index: src/syncml_http_client.c<br />===================================================================<br />--- src/syncml_http_client.c    (révision 3307)<br />+++ src/syncml_http_client.c    (copie de travail)<br />@@ -558,6 +558,8 @@<br />       * automatically detect the datastores.<br />       */<br />      SmlDevInf *devinf = smlDevInfAgentGetDevInf(env->agent);<br />+       if(devinf != NULL)<br />+       {<br />      unsigned int stores = smlDevInfNumDataStores(devinf);<br />      unsigned int i;<br />      for (i=0; i < ctx =" osync_context_new(error);"><br />@@ -570,6 +572,11 @@<br />                        smlDevInfDataStoreGetSourceRef(datastore),<br />                        contentType, version);<br />        }<br />+       }<br />+       else<br />+       {<br />+               osync_trace(TRACE_ERROR, "NULL devinf returned !");<br />+       }<br /> <br />        /* disconnect from the syncml server */<br />        OSyncContext *ctx = osync_context_new(error);<br /></pre><br />this patch avoid a segfault when trying to discover the supported materials by phpGW SyncML Server.</li></ul><br /><br />Following the tutorial at <a href="http://blog.dukanovic.com/?p=5">blog.dukanovic.com</a> in the latest part could help you with how to made it working for phpGW. If you have question don't hesitate to post them here, I will try to help you.<br /><br />If you are interested by helping us to made sync working for phpGW, you can read this <a href="http://www.nabble.com/Sync-functionality-fundraiser-td17290963.html">post</a> for infos ...<br /><br />Second part : Drums .... YEAH !!! It kinda works :).<br />So here's the step to reproduce my success (at least I Hope).<br /><ol><li>msynctool --addgroup phpgw2file</li><li>msynctool --addmember phpgw2file syncml-http-client</li><li>msynctool --addmember phpgw2file file-sync</li><li>msynctool --configure phpgw2file 1 : Replace the given file with this content between the &lt;config> tags (on only this, adapted to you needs) <pre><br />&lt;auth>BASIC&lt;/auth><br />&lt;username>phpgroupware&lt;/username><br />&lt;password>********&lt;/password><br />&lt;url>http://localhost:80/~phpgroupware/syncml/syncml.php&lt;/url><br />&lt;recvlimit>40000&lt;/recvlimit><br />&lt;maxobjsize>4000000&lt;/maxobjsize><br />&lt;syncml_version>1.1&lt;/syncml_version><br />&lt;database><br /> &lt;name>my-notes-collection&lt;/name><br /> &lt;objtype>data&lt;/objtype><br /> &lt;objformat>plain&lt;/objformat><br />&lt;/database><br /></pre><br /></li><li>msynctool --configure phpgw2file 2 : replace the content between &lt;config> tags with <br /><pre><br />  &lt;directory><br />    &lt;path>/tmp/tests/notes&lt;/path><br />    &lt;objtype>data&lt;/objtype><br />  &lt;/directory><br /></pre> (note : the '/tmp/tests/notes' directory should exists)<br /></li><br /><li>msynctool --discover phpgw2file 1</li><br /><li>msynctool --discover phpgw2file 2</li><br /><li>msynctool --sync phpgw2file</li></ol><br /><br />And YEAH ! it works ... Well ... mostly. Now you have to fix bugs in the ipc layer to let notes getting all be backs. But you can try to add a new notes, it could work ...<br /><br />Regards.<br /><br />Caeies]]></description></item><item><title>A Virtual Host per Project - Dave's blog</title><link>http://davehall.com.au/blog/dave/2008/05/21/virtual-host-project</link><pubDate>Wed, 21 May 2008 07:57:54 +0000</pubDate><description><![CDATA[<p>Not long before my old laptop got to the end of it usable lifespan I started playing with the <a href="http://framework.zend.com/">Zend Framework</a> in my spare time.  One of the cool things about ZF is that it wants to use friendly URLs, and a dispatcher to handle all the requests.  The downside of this approach, and how ZF is organised, it works best if you use a Virtual Host per project.  At first this seemed like a real pain to have to create a virtual host per project.  One Saturday afternoon I worked through the apache docs and found a solution - then I found it fantastic.  Rather than bore you with more of my views on Zend Framework, I will explain how to have a virtual host model that requires a little work up front and is very low maintenance.</p>
<p>It gets tedious copying and pasting virtual host config files each time you want to start a new project, so instead I let Apache do the work for me.</p>
<p>I added a new virtual host config file called projects to /etc/apache2/sites-available.  The file contains</p>
<pre>
UseCanonicalName Off

LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon

&lt;Directory /home/dave/Projects>
Options FollowSymLinks
AllowOverride All
&lt;/Directory>

NameVirtualHost 127.0.0.2
&lt;VirtualHost 127.0.0.2>
	ServerName projects

	CustomLog /var/log/apache2/access_log.projects vcommon

	VirtualDocumentRoot /home/[username]/Projects/%1/application/www
	AccessFileName     .htaccess
&lt;/VirtualHost>
</pre><p>
The important bit is the <a href="http://httpd.apache.org/docs/2.2/mod/mod_vhost_alias.html">VirtualDocumentRoot</a> directive which tells Apache to map a hostname to a path.  I use an IP address from the 127.0.0.0/8 range for the virtual host, so they aren't accessible to the outside world and I don't have to worry about it changing every time I check locations.</p>
<p>All of my projects live under ~/Projects and each one gets a directory structure that looks something like this.</p>
<pre>
[projectname]
  |
  +- notes - coding notes, like grep output when refactoring etc
  |
  +- resources - any reference material or code snippets
  |
  +- application - the code for the project
     |
     +- www - document root for vhost
</pre><p>
There are usually other paths here too, but they vary from project to project.</p>
<p>To make this work there are few more steps.  First enable the new virtual host</p>
<pre>
$ sudo a2ensite projects
</pre><p>
Don't reload apache yet.</p>
<p>Next you need to add the apache module</p>
<pre>
$ sudo a2enmod vhost_alias
</pre><p>
Time to edit your /etc/hosts file so you can find the virtual hosts.  Add a line similar to this</p>
<pre>
127.0.0.2 projects phpgw-trunk.project [...] phpgw-stable.project
</pre><p>
Now you can restart apache</p>
<pre>
$ sudo /etc/init.d/apache2 reload
</pre><p>
This is handy for developing client sites - especially using <a href="http://drupal.org">drupal</a>.</p>
<p>Now my /var/www/index.html is just an empty file.</p>
<p>I am getting a bit bored with adding entries to /etc/hosts all the time.  If I get around to adding <a href="<br />
http://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2005q3/000361.html">dnsmasq with wildcard hosts</a> to the mix, I will post a follow up.</p>
<p>This setup is based on my current dev environment (Ubuntu Hardy), but it also works on older versions of Ubuntu.  The steps should be similar for Debian and derivatives.  For other distros, it should work, just how to make it work may be a little different.  Feel free to post tips for others in the comments.</p>
]]></description></item></channel></rss>
