<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2192522729679427452</id><updated>2011-10-16T04:36:45.191-07:00</updated><category term='script/server'/><category term='autoincrement'/><category term='ai'/><category term='graduation'/><category term='greek'/><category term='Web Inspector'/><category term='latex'/><category term='Customization'/><category term='texshop'/><category term='powerbook'/><category term='graduate'/><category term='updates'/><category term='functions'/><category term='WebKit'/><category term='CSS UL OL LI Tables Layout Tips Trick'/><category term='Apple'/><category term='ejbcreate'/><category term='Syntax Highlighting'/><category term='bmp'/><category term='presentation'/><category term='software development'/><category term='Aquamacs'/><category term='Scripting'/><category term='Web Development'/><category term='job'/><category term='passenger'/><category term='css'/><category term='japanese'/><category term='ejb'/><category term='js'/><category term='ghana'/><category term='software engineering'/><category term='rails'/><category term='Safari'/><category term='Debugging'/><category term='xhtml'/><category term='mod_proxy_balancer'/><category term='notebook'/><category term='MySQL'/><category term='cmp'/><category term='fastCGI'/><category term='mod_rack'/><category term='scalability'/><category term='Google Code'/><category term='hci'/><category term='college'/><category term='default parameters'/><category term='mobile device'/><category term='Blogger'/><category term='00011000'/><category term='iPhone'/><category term='human computer interaction'/><category term='startup error'/><category term='west africa'/><category term='Connection Adapters'/><category term='load balancing'/><category term='MySQLAdapter'/><category term='html'/><category term='design'/><category term='Emacs'/><category term='lyx'/><category term='webrick'/><category term='j2ee'/><category term='Debug Menu'/><category term='Tweaks'/><category term='computing'/><category term='LISP'/><category term='ruby'/><category term='google jobs'/><category term='Market Circle'/><category term='javascript'/><category term='tex'/><category term='admin'/><category term='ActiveRecord'/><category term='iOS 4'/><category term='iPhone 3G'/><category term='Programming'/><category term='OS X'/><category term='Rails Data Types'/><category term='Lean Software Development'/><category term='vim-latex'/><category term='apache 2'/><category term='user interface'/><category term='internet'/><category term='bibdesk'/><category term='mod_rails'/><category term='mobile phone'/><category term='itexmac'/><category term='Ruby on Rails'/><category term='recruitment'/><category term='masters'/><category term='LightTPD'/><category term='computer science'/><category term='apr-1-config'/><category term='birthday'/><category term='primary key'/><category term='translation'/><category term='english'/><category term='robotics'/><category term='thin'/><category term='Google engEDU'/><category term='google youtube'/><category term='container managed persistence'/><category term='Google'/><category term='degree'/><category term='scholarships'/><category term='Blogging'/><category term='life'/><category term='sequences'/><category term='Browser'/><category term='jobs'/><category term='servers'/><category term='mobile web'/><category term='university'/><category term='Migrations'/><title type='text'>/*   Binary Thoughts    */</title><subtitle type='html'>The possession of knowledge does not kill
the sense of wonder and mystery.
There is always more mystery...&lt;br&gt;&lt;br&gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default?start-index=101&amp;max-results=100'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>115</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-5575201963052474463</id><published>2010-07-19T01:16:00.000-07:00</published><updated>2010-07-19T01:16:09.482-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='js'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='default parameters'/><category scheme='http://www.blogger.com/atom/ns#' term='functions'/><title type='text'>Default function formal parameters in Javascript</title><content type='html'>Having been programming quite a bit in Ruby and PHP lately, I have gotten used to default formal parameters. This is when you can call a function and omit some of the parameters, the function then assigns pre-defined default values when evaluating those parameters.&lt;br /&gt;&lt;br /&gt;It's quite handy at times and helps keep the code succinct and clean.&lt;br /&gt;&lt;br /&gt;To see what I mean, in ruby for example you would do the following:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: ruby"&gt;  def a_function(a_param = default_value)&lt;br /&gt;    ...&lt;br /&gt;  end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Later on, the function above could be called in any of the following ways:&lt;br /&gt;&lt;pre class="brush: ruby"&gt;  # call function with default param values&lt;br /&gt;  a_function()&lt;br /&gt;&lt;br /&gt;  # or specifying a value for the param&lt;br /&gt;  a_function("foo")&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;In order to achieve the same in Javascript the following is recommended:&lt;br /&gt;&lt;pre class="brush: js"&gt;  def a_js_function(a_param) {&lt;br /&gt;    var a_param = a_param || default_value;&lt;br /&gt;  }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;With the above, you can now call your Javascript function in any of the following ways depending on what you're looking at achieving:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: js"&gt;  // call function with default param values&lt;br /&gt;  a_js_function();&lt;br /&gt;&lt;br /&gt;  // specify a value for that parameter&lt;br /&gt;  a_js_function("foo");&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Note that you can apply the above to all the required parameters of your Javascript function.&lt;br /&gt;&lt;br /&gt;That's it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-5575201963052474463?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/5575201963052474463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2010/07/default-function-formal-parameters-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/5575201963052474463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/5575201963052474463'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2010/07/default-function-formal-parameters-in.html' title='Default function formal parameters in Javascript'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-6154791648463545137</id><published>2010-06-23T02:59:00.000-07:00</published><updated>2010-06-23T02:59:58.147-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone 3G'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='iOS 4'/><category scheme='http://www.blogger.com/atom/ns#' term='updates'/><title type='text'>Solving it: iOS 4.0 installation stalls on iPhone 3G issue</title><content type='html'>I did a successful upgrade to iOS 4.0 last night on my iPhone 3G although I started it a day earlier. If anyone turns out to have an issue where their updates gets stuck at about 60% or 90% no matter how many times they restart it, or how long they wait, the solution is as follows:&lt;br /&gt;&lt;br /&gt;depending on the computer operating system of the user, they should open one of the following folders:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Mac OS: ~/Library/Application Support/MobileSync/Backup&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Windows XP: %AppData%\Apple Computer\MobileSync\Backup&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Windows Vista: %AppData%\Roaming\Apple Computer\MobileSync\Backup&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Windows 7: %AppData%\Roaming\Apple Computer\MobileSync\Backup&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Then move the backup folder inside it to their desktop (move, not copy it).&lt;br /&gt;The next step is to restart the restore process for with the iOS 4.0 ipsw. It will go through seamlessly.&lt;br /&gt;&lt;br /&gt;Once it's done as iTunes and the phone will let them know, they should unplug it from iTunes and unplug the USB cable from their PC / Mac&lt;br /&gt;&lt;br /&gt;Next, they should move the backup folder that was inside the directory above back to its original location. Replug the iPhone and it will restore their data from iPhone OS 3.y.x.&lt;br /&gt;&lt;br /&gt;Hope this helps as it took me 2 days to figure this out and googling did not help at the time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-6154791648463545137?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/6154791648463545137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2010/06/solving-it-ios-40-installation-stalls.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/6154791648463545137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/6154791648463545137'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2010/06/solving-it-ios-40-installation-stalls.html' title='Solving it: iOS 4.0 installation stalls on iPhone 3G issue'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-7609377721149108483</id><published>2010-06-04T03:18:00.000-07:00</published><updated>2010-06-04T10:27:27.127-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS UL OL LI Tables Layout Tips Trick'/><title type='text'>CSS List-Based Tables</title><content type='html'>This morning I needed to put together a layout for a demo. It was previously done with HTML Tables (there is nothing wrong with using tables when you've got to use tables), however, I've felt the need to convert it into a CSS-list-ish table instead. A couple of hours of looking around the Internet and I couldn't really find what I needed. So I came up with the following which satisfies my requirements in running seamlessly in the latest browsers. I haven't checked it out in Internet Explorer however, so not too sure how it'd do there. But for my current requirement, it works perfectly. Here's the CSS code for the stylesheet:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: css;"&gt;/* here is our table */&lt;br /&gt;.table {&lt;br /&gt;  display: table;&lt;br /&gt;  border-collapse: collapse;&lt;br /&gt;  margin-left: auto;&lt;br /&gt;  margin-right: auto;&lt;br /&gt;  width: 95%;&lt;br /&gt;  overflow: auto;&lt;br /&gt;  text-align: left;&lt;br /&gt;  border-top: 1px solid #CCC;&lt;br /&gt;  border-right: 1px solid #CCC;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.table ul {&lt;br /&gt;  display: table-row;&lt;br /&gt;  list-style: none;&lt;br /&gt;  height: 2em;&lt;br /&gt;  width: 100%;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.table ul li {&lt;br /&gt;  display: table-cell;&lt;br /&gt;  height: 2em;&lt;br /&gt;  border-left: 1px solid #CCC;&lt;br /&gt;  border-bottom: 1px solid #CCC;&lt;br /&gt;  padding: 0.5em 0.5em;&lt;br /&gt;  width:10%;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.table ul.header {&lt;br /&gt;  height: 2.5em;&lt;br /&gt;  background: #EEE;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.table ul.header li {&lt;br /&gt;  height: 2.5em;&lt;br /&gt;  text-align: left;&lt;br /&gt;  font-weight: bold;&lt;br /&gt;  font-size: 1em;&lt;br /&gt;  padding-top: 0.7em;&lt;br /&gt;  padding-bottom: 0;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;A typical example of using the stylesheet above would look as follows:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: html;"&gt;&lt;div class='table'&gt;&lt;ul class='header'&gt;&lt;li&gt;Product Name&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Product Code&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Unit Price&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Quantity&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;MacBook Pro&lt;/li&gt;&lt;br /&gt;&lt;li&gt;ML-1025a&lt;/li&gt;&lt;br /&gt;&lt;li&gt;USD 1500&lt;/li&gt;&lt;br /&gt;&lt;li&gt;2&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Google Nexus One&lt;/li&gt;&lt;br /&gt;&lt;li&gt;GNO-v1.0&lt;/li&gt;&lt;br /&gt;&lt;li&gt;USD 499&lt;/li&gt;&lt;br /&gt;&lt;li&gt;10&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/pre&gt;&lt;br /&gt;Well that's it. Hope someone finds it useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-7609377721149108483?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/7609377721149108483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2010/06/css-list-based-tables.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7609377721149108483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7609377721149108483'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2010/06/css-list-based-tables.html' title='CSS List-Based Tables'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-2567209400930317827</id><published>2009-10-17T14:29:00.000-07:00</published><updated>2009-10-22T13:29:59.133-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='Blogging'/><category scheme='http://www.blogger.com/atom/ns#' term='Syntax Highlighting'/><title type='text'>Implementing Syntax Highlighting on your blog / website</title><content type='html'>One of things that has always been missing on my blog as a techie and programmer (and you can judge that from older posts) was a Language / Script Syntax Highlighter. Sometime last week I finally decided to work on a solution for this. Before I continue, credits where they are due (no need to re-invent the wheel if it's already been done, right?):&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Loading external Javascript files: depending on your situation, you might need to load all the Javascript files that you require from an external server. For example, if you are exclusively using the Blogger platform like I am, you may need to load your files externally as you cannot per-say upload them to the blogger server for use in your scripts. In order to do this, I found a very useful script here: &lt;a target="_blank" href="http://snipplr.com/view/18756/loadscript/"&gt;Snipplr LoadScript Function&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;a target="_blank" href="http://alexgorbatchev.com/wiki/SyntaxHighlighter"&gt;SyntaxHighlighter&lt;/a&gt;: This is a fully functional self-contained code syntax highlighter developed in Javascript by &lt;a target="_blank" href="http://alexgorbatchev.com/"&gt;Alex Gorbatchev&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;After a bit of Googling, I found my perfect solution. It's called SyntaxHighlighter and has been around for quite a while (since 2004). However, when you Google for it, the first links that show up are that of older versions. SyntaxHighlighter is a work in progress and is already on version 2.x.x. So let's dive straight into the code. The first step you'd like to take loading the style sheets that you'd like to use for your code listing. There is the essential / core one which is &lt;a target="_blank" href="http://alexgorbatchev.com/pub/sh/2.0.320/styles/shCore.css"&gt;shCore.css&lt;/a&gt;. Once that's loaded, you should have a look at the various available themes to see which one you'd like to use. Head over &lt;a target="_blank" href="http://alexgorbatchev.com/wiki/SyntaxHighlighter:Themes"&gt;here&lt;/a&gt;. I personally prefer the default theme as it fits with the white and plain color scheme of my blog. Once all the decisions above have been made, you should go ahead and add the following lines of code to the "head" tag of your blog:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: css"&gt;&amp;lt;link href='http://alexgorbatchev.com/pub/sh/2.0.320/styles/shCore.css' rel='stylesheet' type='text/css'/&amp;gt;&lt;br /&gt;&amp;lt;link href='http://alexgorbatchev.com/pub/sh/2.0.320/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Note that you can replace the default theme by looking at the available files available &lt;a href="http://alexgorbatchev.com/pub/sh/2.0.320/styles/" target="_blank"&gt;here&lt;/a&gt;. Once you're satisfied with the styling, you can move on to the first interesting section of the implementation. &lt;br /&gt;&lt;br /&gt;First, add in the script that's needed to load external Javascript files. Also, you'd like to define a URI variable that will be used to refer to the main URI where your files will be loaded from. In the script below, the variable &lt;b&gt;loadURI&lt;/b&gt; has been created just for that purpose. As per the reference above, we will use the &lt;b&gt;loadScript&lt;/b&gt; function. Right under the previous CSS links we created, add the following lines of code:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: js"&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;// let's define a variable for the URL, making it easier to change&lt;br /&gt;// should the case arise&lt;br /&gt;var loadURI = 'http://alexgorbatchev.com/pub/sh/2.0.320/scripts/';&lt;br /&gt;&lt;br /&gt;// reference: http://snipplr.com/view/18756/loadscript/&lt;br /&gt;function loadScript(url, callback){&lt;br /&gt;&lt;br /&gt; var script = document.createElement("script")&lt;br /&gt; script.type = "text/javascript";&lt;br /&gt;&lt;br /&gt; if (script.readyState){  //IE&lt;br /&gt;  script.onreadystatechange = function(){&lt;br /&gt;   if (script.readyState == "loaded" || script.readyState == "complete") {&lt;br /&gt;     script.onreadystatechange = null;&lt;br /&gt;     callback();&lt;br /&gt;   }&lt;br /&gt;  };&lt;br /&gt; } else {  //Others&lt;br /&gt;  script.onload = function(){&lt;br /&gt;   callback();&lt;br /&gt;  };&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; script.src = url;&lt;br /&gt; document.getElementsByTagName("head")[0].appendChild(script);&lt;br /&gt;}&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The script above will allow you to load all the subsequent Javascript files you'd like to use from the external server. As specified before, this is very useful if you are not able to host the files on your blogging platform. It's time to use the script above. Assuming that you'd like to load the scripts straight from the servers where they're published (&lt;b&gt;cautionary note: you should not be doing this&lt;/b&gt;), you'd add the following lines to the script above:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: js"&gt;loadScript(loadURI + 'shCore.js', function(){&lt;br /&gt; loadScript(loadURI + 'shBrushCss.js', function(){});&lt;br /&gt; loadScript(loadURI + 'shBrushSql.js', function(){});&lt;br /&gt; loadScript(loadURI + 'shBrushPhp.js', function(){});&lt;br /&gt; loadScript(loadURI + 'shBrushJava.js', function(){});&lt;br /&gt; loadScript(loadURI + 'shBrushJScript.js', function(){});&lt;br /&gt; loadScript(loadURI + 'shBrushBash.js', function(){});&lt;br /&gt; loadScript(loadURI + 'shBrushXml.js', function(){});&lt;br /&gt; initSyntaxHighlighter();&lt;br /&gt;});&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;As you can see, the scripts that I've added are those for the languages I'd like to support on my blog. Basically, with the above, the following languages will be automatically supported: CSS, SQL, PHP, Java, Javascript, Bash. Obviously, we all have different needs. In order to see what fits your needs, you should have a look at the following page: &lt;a href="http://alexgorbatchev.com/wiki/SyntaxHighlighter:Brushes" target="_blank"&gt;Bundled Syntaxes&lt;/a&gt;. Head over &lt;a href="http://alexgorbatchev.com/pub/sh/2.0.320/scripts/" target="_blank"&gt;here&lt;/a&gt; to see what the concrete names of the files are. Once you've decided on the scripts that you need, all you have to do is to make sure they're loaded in the main template of your blog / website or you could write some script that would load them dynamically on demand. One essential point to note is that the &lt;a target="_blank" href="http://alexgorbatchev.com/pub/sh/2.0.320/scripts/shCore.js"&gt;shCore.js&lt;/a&gt; definitely needs to be the first one to be included as per my example above. Once loaded, we use the &lt;b&gt;callback&lt;/b&gt; functionality of the &lt;b&gt;loadScript&lt;/b&gt; function to load the remaining scripts. This ensures that &lt;b&gt;shCore.js&lt;/b&gt; is all loaded into the browser before downloading the other script files. Not doing it this way (as I have learned) would results in &lt;i&gt;Reference Errors&lt;/i&gt; in WebKit (engine behind Safari, Opera, Google Chrome, etc...). After all the loadScript calls, there is an aditional function &lt;b&gt;initSyntaxHighlighter()&lt;/b&gt; call, which will be explained further down the line. All in all the full script should now be looking like this:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: js"&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;// reference: http://snipplr.com/view/18756/loadscript/&lt;br /&gt;function loadScript(url, callback){&lt;br /&gt;&lt;br /&gt; var script = document.createElement("script")&lt;br /&gt; script.type = "text/javascript";&lt;br /&gt;&lt;br /&gt; if (script.readyState){  //IE&lt;br /&gt;  script.onreadystatechange = function(){&lt;br /&gt;   if (script.readyState == "loaded" || script.readyState == "complete") {&lt;br /&gt;     script.onreadystatechange = null;&lt;br /&gt;     callback();&lt;br /&gt;   }&lt;br /&gt;  };&lt;br /&gt; } else {  //Others&lt;br /&gt;  script.onload = function(){&lt;br /&gt;   callback();&lt;br /&gt;  };&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; script.src = url;&lt;br /&gt; document.getElementsByTagName("head")[0].appendChild(script);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// load the scripts for the language we'd like &lt;br /&gt;// to have syntax highlighting for on our blog / website&lt;br /&gt;loadScript(loadURI + 'shCore.js', function(){&lt;br /&gt; loadScript(loadURI + 'shBrushCss.js', function(){});&lt;br /&gt; loadScript(loadURI + 'shBrushSql.js', function(){});&lt;br /&gt; loadScript(loadURI + 'shBrushPhp.js', function(){});&lt;br /&gt; loadScript(loadURI + 'shBrushJava.js', function(){});&lt;br /&gt; loadScript(loadURI + 'shBrushJScript.js', function(){});&lt;br /&gt; loadScript(loadURI + 'shBrushBash.js', function(){});&lt;br /&gt; loadScript(loadURI + 'shBrushXml.js', function(){});&lt;br /&gt; initSyntaxHighlighter();&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt; &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The SyntaxHighlighter is almost setup. The next step will be to have a look at how you'd like to configure it. My own configuration is very basic. For more info on all the options  as far as the configuration of the script is concerned, you should check the &lt;a href="http://alexgorbatchev.com/wiki/SyntaxHighlighter:Configuration" target="_blank"&gt;SyntaxHighliter Configuration&lt;/a&gt; wiki page. For a very simple and basic configuration, append the following lines of code to the previous one:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: js"&gt;function initSyntaxHighlighter()&lt;br /&gt; {&lt;br /&gt;  SyntaxHighlighter.bloggerMode = true; // set to false or remove if not on blogger platform&lt;br /&gt;  SyntaxHighlighter.stripBrs = false;&lt;br /&gt;  SyntaxHighlighter.clipboardSwf = loadURI + 'clipboard.swf';&lt;br /&gt;  SyntaxHighlighter.all();&lt;br /&gt; }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Pay attention to the name of this function. It's the same function we call in the loadScript callback of shCore.js. We call it at that stage for the same reason as earlier: avoiding variable or class name Reference Errors in WebKit.&lt;br /&gt;&lt;br /&gt;What you may notice here is that I have set the &lt;b&gt;bloggerMode&lt;/b&gt; to &lt;i&gt;true&lt;/i&gt;. This is because I am hosting my configuration on the blogger platform. If you're hosting on a non-blogger platform, make sure to set that configuration parameter to &lt;i&gt;false&lt;/i&gt; or remove that line of code altogether. Once you're happy with the configuration above, you should go ahead and test it. To use see results of all the hard work above, you'd use CSS classes related to the syntax highlighting languages you've included. An example of using it for a &lt;b&gt;bash&lt;/b&gt; script for example would be as follows&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: xhtml"&gt;&amp;lt;pre class="brush: bash;"&amp;gt;&lt;br /&gt;  !#/bin/bash&lt;br /&gt;  echo "hello world!"&lt;br /&gt;  export $path:/something/somewhere&lt;br /&gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;You will notice the use of "&lt;b&gt;brush&lt;/b&gt;" in the class. That's just how you'd use it. So, if you were to need a Javascript syntax highlight, all you'd have to do is to use the "pre" tag or any other tag that you'd specify although "pre" is pretty convenient and add the class as follows: &lt;b&gt;class="brush: html;"&lt;/b&gt;. This works almost the same way as when adding the style attribute to your tags.&lt;br /&gt;&lt;br /&gt;Here's a screenshot of what you will get if everything got properly setup:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i33.tinypic.com/nxt36g.png" style="width:400px; height:300px;" /&gt;&lt;br /&gt;&lt;br /&gt;Hope this helps anyone else who is looking for a way to have syntax highlighting on their websites or blogs. I find it extremely useful and it's first usage on my blog has been for this post.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Note:&lt;/b&gt;I have added all of the sample code above in a one example HTML file which can be downloaded here: &lt;a href="http://www.quickshare.co.za/files/vbz2mpka/synhilite.zip.html" target="_blank"&gt;Sample Demo File&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt;You should also download the following PNG files and make sure that they are in the same directory as the CSS files you've linked above. The files are:&lt;br /&gt;&lt;ul&gt; &lt;li&gt;&lt;a href="http://alexgorbatchev.com/pub/sh/2.0.320/styles/help.png"&gt;help.png&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://alexgorbatchev.com/pub/sh/2.0.320/styles/help.png"&gt;magnifier.png&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://alexgorbatchev.com/pub/sh/2.0.320/styles/page_white_code.png"&gt;page_white_code.png&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://alexgorbatchev.com/pub/sh/2.0.320/styles/page_white_copy.png"&gt;page_white_copy.png&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://alexgorbatchev.com/pub/sh/2.0.320/styles/printer.png"&gt;printer.png&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://alexgorbatchev.com/pub/sh/2.0.320/styles/wrapping.png"&gt;wrapping.png&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-2567209400930317827?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/2567209400930317827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2009/10/one-of-things-that-has-always-been.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/2567209400930317827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/2567209400930317827'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2009/10/one-of-things-that-has-always-been.html' title='Implementing Syntax Highlighting on your blog / website'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i33.tinypic.com/nxt36g_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-8856094128699590165</id><published>2009-03-09T23:22:00.000-07:00</published><updated>2009-10-05T01:18:36.075-07:00</updated><title type='text'>Super-Easy Sortable Table</title><content type='html'>This morning, I needed to find a way to sort some Data on the front-end or back-end, depending on the solution I came up with. The day before, I had written this whole super-cool implementation for the sorting which worked nicely with PDOs (PHP Data Objects) and my model objects. Thing is, as far as sorting the data is concerned, there should be a easier and faster way which reduces the load on the server (both database and page serving) and lets the client do all the work.&lt;br /&gt;&lt;br /&gt;I had a explored a few of the lovely jQuery solutions and despite my love for jQuery, I thought they were overkill. I just found a solution that takes about 5 minutes to implement and customize and that works brilliantly.&lt;br /&gt;&lt;br /&gt;Here's the link: &lt;a href="http://yoast.com/articles/sortable-table/"&gt;http://yoast.com/articles/sortable-table/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There is only one catch though: I am lucky with this, the amount of data I am pushing back and forth and very small and will remain small; however, if you will be doing some sort of pagination, this script is not a good idea as it only sorts the data on the current page. Meaning that the data on the further pages are not sorted. So, if you had a "Z" somewhere in your records, because the sorting is not happening on the database end, it will not come up as top or first record. Just something to keep in mind.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cheers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-8856094128699590165?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/8856094128699590165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2009/03/super-easy-sortable-table.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8856094128699590165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8856094128699590165'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2009/03/super-easy-sortable-table.html' title='Super-Easy Sortable Table'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-6047036312110123822</id><published>2008-11-14T23:23:00.000-08:00</published><updated>2009-10-05T01:18:36.088-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mod_rails'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='apr-1-config'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><category scheme='http://www.blogger.com/atom/ns#' term='apache 2'/><category scheme='http://www.blogger.com/atom/ns#' term='passenger'/><category scheme='http://www.blogger.com/atom/ns#' term='mod_rack'/><title type='text'>mod_rails (Passenger) setup issues with Apache2 on OS X</title><content type='html'>&lt;h2&gt;mod_rails not finding Apache2 APR&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;When installing mod_rails with a custom Apache2 setup, you may get the following while running &lt;span style="font-weight:bold;"&gt;sudo passenger-install-apache2-module:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="background:#000; color:#fff;"&gt;&lt;br /&gt;Compiling and installing Apache 2 module...&lt;br /&gt;cd /usr/local/lib/ruby/gems/1.8/gems/passenger-2.0.3&lt;br /&gt;rake clean apache2&lt;br /&gt;(in /usr/local/lib/ruby/gems/1.8/gems/passenger-2.0.3)&lt;br /&gt;rake aborted!&lt;br /&gt;Could not find Apache Portable Runtime (APR).&lt;br /&gt;/usr/local/lib/ruby/gems/1.8/gems/passenger-2.0.3/rakefile:37&lt;br /&gt;(See full trace by running task with --trace)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The main reason for this is that mod_rails cannot find apr-1-config which should have been installed within (as per my system) &lt;span style="font-weight:bold;"&gt;/usr/local/apache2/bin&lt;/span&gt;. In order to solve the problem, you just need to add the Apache2 custom install bin directory to your user path (as per my system):&lt;br /&gt;&lt;br /&gt;&lt;span style="background:#000; color:#fff"&gt;&lt;br /&gt;export PATH=":/usr/local/apache2/bin:$PATH"&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That should do it.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;mod_rails and "MACOSX_DEPLOYMENT_TARGET environment variable"&lt;/h2&gt;&lt;br /&gt;The error you are most likely to get would be close to the following:&lt;br /&gt;&lt;br /&gt;&lt;span style="background:#000; color:#fff;"&gt;&lt;br /&gt;g++ -flat_namespace -bundle -undefined dynamic_lookup Utils.o Bucket.o Logging.o System.o Configuration.o Hooks.o mod_passenger.o -fPIC -o mod_passenger.so   -lstdc++ -lpthread ../boost/src/libboost_thread.a -L/usr/local/apache2/lib -lapr-1&lt;br /&gt;/usr/bin/ld: flag: -undefined dynamic_lookup can't be used with MACOSX_DEPLOYMENT_TARGET environment variable set to: 10.1&lt;br /&gt;collect2: ld returned 1 exit status&lt;br /&gt;rake aborted!&lt;br /&gt;Command failed with status (1): [g++ -flat_namespace -bundle -undefined dyn...]&lt;br /&gt;/usr/local/lib/ruby/gems/1.8/gems/passenger-2.0.3/rakefile:142&lt;br /&gt;(See full trace by running task with --trace)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In this case, you will have to add the following to your environment variables&lt;br /&gt;&lt;br /&gt;&lt;span style="background:#000; color:#fff"&gt;&lt;br /&gt;export MACOSX_DEPLOYMENT_TARGET=10.4&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-6047036312110123822?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/6047036312110123822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2008/11/modrails-passenger-setup-issues-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/6047036312110123822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/6047036312110123822'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2008/11/modrails-passenger-setup-issues-with.html' title='mod_rails (Passenger) setup issues with Apache2 on OS X'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-5396676558516342719</id><published>2008-05-07T23:51:00.000-07:00</published><updated>2009-10-05T01:18:36.098-07:00</updated><title type='text'>Guido Sohne</title><content type='html'>Have you ever thought that death would come through email? I just heard the saddest and most shocking news today: a very good friend of mine, Guido Sohne passed away. I hadn't seen him in years since I left Ghana, but every time he came to SA, he'd give me a call and we'd talk about various issues on the phone. He's always told me that I had to learn how to relax and take life as it comes. He had always been a reference point for me, a very unique individual and with whom one could enjoy any kind of discussion.&lt;br /&gt;&lt;br /&gt;I still cannot believe he's gone. So long Guido.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-5396676558516342719?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/5396676558516342719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2008/05/guido-sohne.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/5396676558516342719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/5396676558516342719'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2008/05/guido-sohne.html' title='Guido Sohne'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-6331563268433310767</id><published>2008-03-11T19:31:00.000-07:00</published><updated>2009-10-05T01:18:36.109-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='admin'/><category scheme='http://www.blogger.com/atom/ns#' term='mod_proxy_balancer'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='apache 2'/><category scheme='http://www.blogger.com/atom/ns#' term='load balancing'/><category scheme='http://www.blogger.com/atom/ns#' term='scalability'/><category scheme='http://www.blogger.com/atom/ns#' term='thin'/><category scheme='http://www.blogger.com/atom/ns#' term='servers'/><title type='text'>Scaling Rails with Apache 2, mod_proxy_balancer and Thin Clusters</title><content type='html'>Recently I have been working on a rails application that is now about to be deployed. One of my concerns about this app was to be able to make it really fast and responsive to the users while still loading a huge amount of database records and serving a relatively large amount of pages.&lt;br /&gt;&lt;br /&gt;As far as making database calls faster is concerned, there are two things that work here:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;Whenever possible, use Model.find(:all/:first, :select =&gt; "model_table.column_1, model_table.column_2)" to only get what you want and not all the stuff ActiveRecord loads for you about the model's instance.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Second, you might want to have a look at &lt;a href="www.danga.com/memcached/"&gt;memcached&lt;/a&gt; and how to use it with rails. In order to facilitate the use of the memcached, you could either look at &lt;a href="http://agilewebdevelopment.com/plugins/acts_as_cached"&gt;the acts_as_cached plugin&lt;/a&gt; or the &lt;a href=""&gt;cached_model&lt;/a&gt; gem. A good tutorial for using cached_model can be found &lt;a href="http://nubyonrails.com/articles/memcached-basics-for-rails"&gt;here&lt;/a&gt;.  &lt;br /&gt; &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;However, the purpose of this post is not to discuss database calls performance issues so I will reserve this for another article and focus on the matter at hand: scaling rails through Apache, Load Balancing and the Thin ruby server.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Thin&lt;/h2&gt;&lt;br /&gt;Thin is a fast Ruby HTTP server that puts together 3 excellent libraries and thus brings the best of all worlds: the Mongrel Parser (which Mongrel is based on), Event Machine and Rack. When I first read about Thin, I thought: Yet another RoR server. But I got curious, downloaded it, set it up on my development machine and ran the application I was working on with it. I was amazed at how much faster everything got. Just a click and your page would load in an instant. I liked the improvement over the original Mongrel. First, I assume we would want to get up and running with Thin.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Installing and running Thin&lt;/h3&gt;&lt;br /&gt;&lt;div style="background-color:#000; color:#FFF; font-size: 11px;"&gt;&lt;br /&gt; $ sudo gem install thin&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;All the dependencies will be downloaded with. The next step is to run it and appreciate the speed differences.&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;CD into your app's directory&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Once in there, type "thin start".&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;By default, you will be able to access your application on &lt;a href="http://localhost:3000"&gt;http://localhost:3000&lt;/a&gt;. So nothing has changed as per normal. Give it a ride.&lt;br /&gt;&lt;br /&gt;In case you want to run a cluster of say 5 servers, you would do so with the following command from within the directory of your rails app:&lt;br /&gt;&lt;div style="background-color:#000; color:#FFF; font-size: 11px;"&gt;&lt;br /&gt; $ thin start -s5&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To look at all available options and the features Thin offers, try:&lt;br /&gt;&lt;div style="background-color:#000; color:#FFF; font-size: 11px;"&gt;&lt;br /&gt; $ thin --help&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;You can stop the cluster started above by running:&lt;br /&gt;&lt;div style="background-color:#000; color:#FFF; font-size: 11px;"&gt;&lt;br /&gt; $ thin stop -s5&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;So, we have managed to get Thin up and running and we love the speed gains as well as the simplicity. Thin can be downloded here: &lt;a href="http://code.macournoyer.com/thin/"&gt;http://code.macournoyer.com/thin/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;We'll now move on to the next step: getting Apache running with mod_proxy / mod_proxy_balancer and mod_proxy_http&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Apache 2.2 and mod_proxy_balancer&lt;/h2&gt;&lt;br /&gt;&lt;h3&gt;If you did not have apache or are willing to recompile&lt;/h3&gt;&lt;br /&gt;If you do not have Apache on your machine or would prefer recompiling apache with mod_proxy, all you have to do is to download it, tar -xvzf (if file extension is tar.gz) or tar -xjf (if file extension is tar.bz2) the tarball and run a command similar to the following:&lt;br /&gt;&lt;br /&gt;(assuming you've untar-red httpd-2.2.4)&lt;br /&gt;&lt;div style="background-color:#000; color:#FFF; font-size: 11px;"&gt;&lt;br /&gt; $ cd httpd-2.2.4&lt;br /&gt;&lt;br /&gt; $ ./configure --enable-modules=most --enable-shared=max --enable-ssl --enable-deflate --enable-headers --enable-proxy --disable-dav --prefix=/usr/local/apache2 --with-included-apr --with-apxs2&lt;br /&gt;&lt;br /&gt; $ make&lt;br /&gt; $ sudo make install&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;I have to say, there are a million ways of configuring Apache, all depending on what your needs are and there are a million tutorials on the web for the same. So I wouldn't waste too much ink on this. Find what works best for your environment.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;If you already have apache and do not want to recompile&lt;/h3&gt;&lt;br /&gt;Now, for those who already have Apache 2 installed and wouldn't want to recompile from scratch, you can dynamically load the required modules in. But you still need the source code. Assuming you've gotten it and untar-red it as per above, the following commands would help you do just that:&lt;br /&gt;&lt;br /&gt;(note that the APXS path that I am using is based on the configuration of my system. You will have to adapt it to your own)&lt;br /&gt;&lt;div style="background-color:#000; color:#FFF; font-size: 11px;"&gt;&lt;br /&gt; $ cd httpd-2.2.4&lt;br /&gt;&lt;br /&gt; $ cd modules/proxy&lt;br /&gt;&lt;br /&gt; $ /usr/local/apache2/bin/apxs -i -a -c mod_proxy.c&lt;br /&gt; $ /usr/local/apache2/bin/apxs -i -a -c mod_proxy_balancer.c&lt;br /&gt; $ /usr/local/apache2/bin/apxs -i -a -c mod_proxy_http.c&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;If everything worked out fine, you should have those modules installed in the modules directory of your Apache 2 configuration. On my system, that means "/usr/local/apache2/modules". Check if yours are there. The next step would be to tell Apache to load those modules on startup. First, make sure Apache isn't running by shutting it down:&lt;br /&gt;&lt;div style="background-color:#000; color:#FFF; font-size: 11px;"&gt;&lt;br /&gt; $ /usr/local/apache2/bin/apachectl stop&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Next, edit "httpd.conf" that you will find at "/usr/local/apache2/conf/httpd.conf" and add the following lines to it:&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#000; color:#FFF; font-size: 11px;"&gt;&lt;br /&gt; LoadModule proxy_module modules/mod_proxy.so&lt;br /&gt; LoadModule proxy_http_module modules/mod_proxy_http.so&lt;br /&gt; LoadModule proxy_balancer_module modules/mod_proxy_balancer.so&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;So, at this point, we've got Apache 2 running and configured with all the nice ingredients for load balancing.&lt;br /&gt;Let's move on to step 3!&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Configuring Apache for Thin clusters&lt;/h2&gt;&lt;br /&gt;I assume we're still in the "httpd.conf" file we were editing earlier. Let's scroll to the bottom of it.&lt;br /&gt;&lt;h3&gt;Let's configure the load balancer&lt;/h3&gt;&lt;br /&gt;&lt;div style="background-color:#000; color:#FFF; font-size: 11px;"&gt;&lt;br /&gt; &amp;lt;Proxy balancer://super_production_balancer&amp;gt;&lt;br /&gt;  BalancerMember http://127.0.0.1:3000&lt;br /&gt;  BalancerMember http://127.0.0.1:3001&lt;br /&gt;  BalancerMember http://127.0.0.1:3002&lt;br /&gt; &amp;lt;/Proxy&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Note that the balancer can be called anything. It's just a reference name that can be used later when we're configuring our virtual host or something similar.&lt;br /&gt;&lt;br /&gt;I have 3 BalancerMember(s). This assumes that I know the ports at which my clusters are going to run on and which IP addresses. Although, this example is very much focused on the "localhost", you could provide IP addresses to others servers within your network. There is even a special option to add more load to a server which you assume has more hardware to support that type of load. In such example we would have something such as:&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color:#000; color:#FFF; font-size: 11px;"&gt;&lt;br /&gt; &amp;lt;Proxy balancer://super_production_balancer&amp;gt;&lt;br /&gt;  BalancerMember http://127.0.0.1:3000&lt;br /&gt;  BalancerMember http://127.0.0.1:3001&lt;br /&gt;  BalancerMember http://127.0.0.1:3002&lt;br /&gt;  BalancerMemeber http://192.168.0.176:9001 loadfactor 4   #supermarchine this is&lt;br /&gt; &amp;lt;/Proxy&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Let's configure the virtual host&lt;/h3&gt;&lt;br /&gt;&lt;div style="background-color:#000; color:#FFF; font-size: 11px;"&gt;&lt;br /&gt; &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;  ServerAdmin info@superapp.com&lt;br /&gt;  ServerName www.production.superapp.com&lt;br /&gt;  ServerAlias production.superapp.com&lt;br /&gt;  ProxyPass / balancer://super_production_balancer/&lt;br /&gt;  ProxyPassReverse / balancer://super_production_balancer/&lt;br /&gt; &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;All we did above is to give our app the possibility to be accessed via a normal HTTP request through any of the following domain names "www.production.superapp.com" or "production.superapp.com". From here, assuming you working on a "localhost" system, you will need to edit "/etc/hosts" to tell your computer where to find production.superapp.com. It goes as follows&lt;br /&gt;&lt;div style="background-color:#000; color:#FFF; font-size: 11px;"&gt;&lt;br /&gt; 127.0.0.1 production.superapp.com&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Finally...&lt;/h3&gt;&lt;br /&gt;We're almost done. So assuming that we wanted to have a cluster of 3 Thin servers running in production mode, we would go back into our rails app directory and type in the following:&lt;br /&gt;&lt;div style="background-color:#000; color:#FFF; font-size: 11px;"&gt;&lt;br /&gt; $ thin start -s3 -e production&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;It's now time to tell your users to go to http://production.superapp.com and have fun using your brand new super-scalable application!&lt;br /&gt;&lt;br /&gt;Have fun!&lt;br /&gt;&lt;br /&gt;Note: This is just an overview of what can be done in a very easy way. There is a lot more that you can do with the tools described above and I would recommend you research more on it.&lt;br /&gt;&lt;br /&gt;Links:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html"&gt;mod_proxy_balancer&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://httpd.apache.org/docs/2.2/mod/mod_proxy_http.html"&gt;mod_proxy_http&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://httpd.apache.org/docs/2.2/mod/mod_proxy.html"&gt;mod_proxy&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://code.macournoyer.com/thin/"&gt;Thin&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.rubyonrails.com"&gt;Ruby on Rails&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-6331563268433310767?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/6331563268433310767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2008/03/scaling-rails-with-apache-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/6331563268433310767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/6331563268433310767'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2008/03/scaling-rails-with-apache-2.html' title='Scaling Rails with Apache 2, mod_proxy_balancer and Thin Clusters'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-3470476195126392149</id><published>2007-11-12T12:36:00.000-08:00</published><updated>2009-10-05T01:18:36.122-07:00</updated><title type='text'>Google's Android: Paradise for mobile developers?</title><content type='html'>Alright, I am too excited not to post about this. So, like me and millions of other mobile developers out there, you've heard or seen Google's mobile operating system named Android and what it can do. I have just started downloading the SDK. I am so excited about this, I do not think I will be sleeping over the next few days. I've already dispatched a few mails out to some of my friends asking them to check it out and their thoughts. I wish we could have a discussion about it right here on this blog to make it public. I will try to set this up in the next few days.&lt;br /&gt;&lt;br /&gt;Here are my initial thoughts so far:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;The architecture is awesome and clean.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Java is on top of everything: I've got nothing new to learn except use the supplied APIs.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;It's built for developers and to allow people to do serious stuff on mobile devices. After one full year of doing exactly this kind of development and having come to the conclusion that there is too much fragmentation in it as well as the fact that device manufacturers do not necessarily build them for developers to take full advantage of the device capabilities, this new initiative from Google is more than welcome.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Interesting stuff: SQL-Lite for persistent storage, Location Manager API, XMPP API built in, the concept of Intents and what the developer can do in the middle of the end-user navigating from one intent to the other, the Application Service Manager, and of course with WebKit, we don't have to worry anymore about javascript support on mobile phones (AJAX and all that...) and many more interesting goodies...&lt;/li&gt;&lt;br /&gt;&lt;li&gt;This seems to be the mobile development paradise I've been looking for all along.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Here are a couple of links to start checking out:&lt;br /&gt;&lt;br /&gt;The Android SDK: &lt;a href="http://code.google.com/android"&gt;http://code.google.com/android&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Some very nice videos: &lt;a href="http://www.youtube.com/androiddevelopers"&gt;http://www.youtube.com/androiddevelopers&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Some discussions I've started about the possibility of Apple releasing a version of their iPhone device with Android installed on it: &lt;a href="http://www.flickr.com/groups/macintosh/discuss/72157602959647930/"&gt;New iPhone Software Next Year?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To conclude this, let's see what I come up with over the next few days of playing around with it.  Seriously, I love the fact that I cannot sleep much anyways. Time to hack the hell out of "ze Android"!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-3470476195126392149?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/3470476195126392149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2007/11/google-android-paradise-for-mobile.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3470476195126392149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3470476195126392149'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2007/11/google-android-paradise-for-mobile.html' title='Google&amp;#39;s Android: Paradise for mobile developers?'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-8251645421275281929</id><published>2007-11-07T20:28:00.000-08:00</published><updated>2009-10-05T01:18:36.133-07:00</updated><title type='text'>Gmail upgrades and now fully supports Safari</title><content type='html'>Yay!!! I cannot believe it took Google 2/3 flipping years to get this right. They've upgraded Gmail. I instantly noticed the changes this morning. They're subtle, but if you're one of those people who pays attention to details and can notice an additional pixel in a picture, you'll notice those changes in an instant.&lt;br /&gt;&lt;br /&gt;So anyways, after I noticed the upgrades, I thought, hey, maybe they finally got Gtalk to work in Safari. Ladies and gentleman, I am happy to announce that in fact they did!!&lt;br /&gt;&lt;br /&gt;Not having GTalk in Safari has prevented me from using it for my daily browsing activities as I needed to keep track of my mail but also chat with collaborators, classmates, etc...&lt;br /&gt;&lt;br /&gt;It's really nice to see all the upgrades happening right at this time of the year, whether from Apple, Google and other software service providers.&lt;br /&gt;&lt;br /&gt;-- Cheers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-8251645421275281929?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/8251645421275281929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2007/11/gmail-upgrades-and-now-fully-supports.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8251645421275281929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8251645421275281929'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2007/11/gmail-upgrades-and-now-fully-supports.html' title='Gmail upgrades and now fully supports Safari'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-790133068045414703</id><published>2007-10-12T13:58:00.000-07:00</published><updated>2009-10-05T01:18:36.142-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google engEDU'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Code'/><title type='text'>Google Code for Educators</title><content type='html'>Really interesting. I don't know how many people know of this but I thought I should point it out here on the blog. I think there are a few invaluable resources there.&lt;br /&gt;&lt;br /&gt;Here: &lt;span style="background-color:#E0ECFF; color:#1A438A;"&gt;&lt;a href="http://code.google.com/edu/"&gt;http://code.google.com/edu/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Personally, I am more interested in the Distributed Computing and Web Security stuff. I think those are very important fields to research in the future. Of course there is already quite some research going on in there but as we're moving towards a more integrated and inter-connected world, all of those above will become more important and will be great skills to develop and to have.&lt;br /&gt;&lt;br /&gt;Cheers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-790133068045414703?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/790133068045414703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2007/10/google-code-for-educators.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/790133068045414703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/790133068045414703'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2007/10/google-code-for-educators.html' title='Google Code for Educators'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-2465314648254577574</id><published>2007-10-04T05:39:00.000-07:00</published><updated>2009-10-05T01:18:36.153-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Customization'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Aquamacs'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><category scheme='http://www.blogger.com/atom/ns#' term='LISP'/><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>Ruby on Rails with Aquamacs</title><content type='html'>A friend of mine recently suggested that I look into &lt;a href="http://www.aquamacs.org"&gt;Aquamacs&lt;/a&gt;. According to the website, &lt;span style="background-color:#E0ECFF; color:#1A438A;"&gt;Aquamacs is an Aqua-native build of the powerful Emacs text editor&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;So, I went ahead and downloaded it. First thing I noticed is that it supported stuff for Ruby development right out of the box as the original Emacs. The only problems is, it's got a hard time working with regular indentations, with tabs and so on. I spent a few hours investigating and picking up hints from many places/sources I've put together a LISP script that makes using Aquamacs really nice for Ruby on Rails development.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color:#E0ECFF; color:#1A438A;"&gt;&lt;br /&gt;; stuff for ruby on rails development&lt;br /&gt;(add-to-list 'load-path &lt;br /&gt; "~/Library/Preferences/Aquamacs Emacs/ruby")&lt;br /&gt;(require 'ruby-mode)&lt;br /&gt;&lt;br /&gt;; loads ruby mode when a .rb file is opened.&lt;br /&gt;(setq auto-mode-alist  &lt;br /&gt; (cons '(".rb$" . ruby-mode) auto-mode-alist))&lt;br /&gt;&lt;br /&gt;(setq auto-mode-alist  &lt;br /&gt; (cons '(".rhtml$" . html-mode) auto-mode-alist))&lt;br /&gt;&lt;br /&gt;; this allows us to have constant indentation as&lt;br /&gt;; we progress in the code from line to line.&lt;br /&gt;(defun create-newline-and-indent()&lt;br /&gt;    (local-set-key [return] 'newline-and-indent))&lt;br /&gt;&lt;br /&gt;(add-hook 'ruby-mode-hook 'create-newline-and-indent)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;; enables ruby electric for easier editing of &lt;br /&gt;; rb and rhtml files&lt;br /&gt;(add-hook 'ruby-mode-hook&lt;br /&gt; (lambda()&lt;br /&gt;  (add-hook 'local-write-file-hooks&lt;br /&gt;   '(lambda()&lt;br /&gt;    (save-excursion&lt;br /&gt;    (untabify (point-min) (point-max))&lt;br /&gt;    (delete-trailing-whitespace)&lt;br /&gt;  )))&lt;br /&gt;&lt;br /&gt;  ; forces ruby-mode to use tabs for indentation with&lt;br /&gt;  ; an indent level of 4&lt;br /&gt;  (setq indent-tabs-mode 1)&lt;br /&gt;  (setq ruby-indent-level 4)&lt;br /&gt;  &lt;br /&gt;  ; allows the [tab] key to work with width 4&lt;br /&gt;  (define-key ruby-mode-map "\t" 'self-insert-command)  &lt;br /&gt;  (set (make-local-variable 'tab-width) 4)&lt;br /&gt;  &lt;br /&gt;  (define-key ruby-mode-map "C-m" 'newline-and-indent)&lt;br /&gt;  &lt;br /&gt;  ; setting up ruby-electric&lt;br /&gt;  (require 'ruby-electric)&lt;br /&gt;  (ruby-electric-mode t)&lt;br /&gt;))&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The script can just be copied and pasted in your "Preferences.el" file which is used instead of the usual ".emacs.el". The Preferences.el file can be found in &lt;span style="background-color:#E0ECFF; color:#1A438A;"&gt;"~/Library/Preferences/Aquamacs Emacs"&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Hope this saves a few hours for some people out there.&lt;br /&gt;&lt;br /&gt;Cheers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-2465314648254577574?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/2465314648254577574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2007/10/ruby-on-rails-with-aquamacs.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/2465314648254577574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/2465314648254577574'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2007/10/ruby-on-rails-with-aquamacs.html' title='Ruby on Rails with Aquamacs'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-224360533629321873</id><published>2007-09-29T02:18:00.000-07:00</published><updated>2009-10-05T01:18:36.164-07:00</updated><title type='text'>GUIControl.USE_GUI_PRIMITIVE vs. VideoControl.USE_DIRECT_VIDEO</title><content type='html'>I am not too sure how many J2ME developers out there read my blog but I thought I'd post the question here anyways. It could startup some interesting discussions.&lt;br /&gt;&lt;br /&gt;My final year project has to do with some specific type of image analysis. The image is acquired by a mobile's phone camera. The project is at this point completed and my team and I are very happy with the results. However, since we've got more time on our hands before the actual due date, we have been trying to tweak certain aspects of the J2ME application / library that we've been developing; namely the Image Capturing process.&lt;br /&gt;&lt;br /&gt;The main reason being that the better the image we've got, the better the outcome of our image analysis algorithm.&lt;br /&gt;&lt;br /&gt;I have recently been told (but have been trying to verify) that when capturing a photograph, the use of GUIControl.USE_GUI_PRIMITIVE produces better images than that of VideoControl.USE_DIRECT_VIDEO.&lt;br /&gt;&lt;br /&gt;I have rewritten some of our testing to see whether this was true. Quite frankly, I have not been able to pick up any differences in both images. So, the question I have for the guys out there who have been using the J2ME MMAPI for a while is whether there really is a difference between GUIControl.USE_GUI_PRIMITIVE and VideoControl.USE_DIRECT_VIDEO as far as still image capture is concerned. And if there is, would you mind adding substantial information (links and references to forum discussions and so on are welcome, although we've already done our share of Googling) about it in your comments?&lt;br /&gt;&lt;br /&gt;Well, that's about it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For readers who have no clue what is being discussed here but would like to know more about writing J2ME code to capture videos or still images, I would refer you to the following article:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.javaworld.com/javaworld/jw-09-2007/jw-09-mobilevideo1.html?page=3"&gt;Mobile Video with JME and MMAPI&lt;/a&gt;. :-) I strongly believe in DRY.&lt;br /&gt;&lt;br /&gt;Cheers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-224360533629321873?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/224360533629321873/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2007/09/guicontroluseguiprimitive-vs.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/224360533629321873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/224360533629321873'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2007/09/guicontroluseguiprimitive-vs.html' title='GUIControl.USE_GUI_PRIMITIVE vs. VideoControl.USE_DIRECT_VIDEO'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-4751963551727329726</id><published>2007-08-12T09:34:00.000-07:00</published><updated>2009-10-05T01:18:36.175-07:00</updated><title type='text'>HCI Related: Don Norman</title><content type='html'>Alright, seriously!! Thanks to www.mobiface.com for having a link to this. I have been looking for this all my life (OK, for part of it, lol)! Don Norman on his website http://www.jnd.org has a bunch of very interesting essays and recommended readings. I will try and get my hands on some of those books. But really, they address topics that I have always been interested in, categorized as:&lt;br /&gt;&lt;br /&gt;- Emotion &amp; Design&lt;br /&gt;- Cyborg&lt;br /&gt;- Robots&lt;br /&gt;- Simplicity and Design&lt;br /&gt;&lt;br /&gt;Oh my word! This is absolutely h0000000T!!&lt;br /&gt;&lt;br /&gt;So, here are the direct links:&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://www.jnd.org/dn.pubs.html"&gt;Don Norman's essays&lt;/a&gt;&lt;br /&gt;- &lt;a href="http://www.jnd.org/recommended_readings.html"&gt;His recommended readings&lt;/a&gt;&lt;br /&gt;- &lt;a href="http://www.jnd.org"&gt;The website itself&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;JPGeek.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-4751963551727329726?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/4751963551727329726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2007/08/hci-related-don-norman.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/4751963551727329726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/4751963551727329726'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2007/08/hci-related-don-norman.html' title='HCI Related: Don Norman'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-3796768018935585375</id><published>2007-08-11T09:13:00.000-07:00</published><updated>2009-10-05T01:18:36.206-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='graduation'/><category scheme='http://www.blogger.com/atom/ns#' term='university'/><category scheme='http://www.blogger.com/atom/ns#' term='college'/><category scheme='http://www.blogger.com/atom/ns#' term='jobs'/><category scheme='http://www.blogger.com/atom/ns#' term='scholarships'/><category scheme='http://www.blogger.com/atom/ns#' term='graduate'/><category scheme='http://www.blogger.com/atom/ns#' term='masters'/><title type='text'>Graduation: the scary prospect</title><content type='html'>So, here we go again. In the next few weeks, I will be done with my degree. And yes, this means that I am about to graduate. Even more, this means that I am about to change lives once again. I've done this so many times in my life, it should have been a fairly unoticeable habit by now but it is not.&lt;br /&gt;In fact, is is a scary prospect. Many questions arise, and most of them have no answers...YET. And, that's the trouble. I am a scientist (academically), and a very analytical person.&lt;br /&gt;When a question appears to my mind, it needs an answer. And if I get no answer, there is trouble.&lt;br /&gt;&lt;br /&gt;As a matter of fact, I am pretty sure that the fear of change is what has been keeping me awake at insane hours lately. Even worse, I believe I am now suffering for insomnia. And to give a weird outlook to the whole thing, these days, I have been waking up (no matter what time I sleep) at either 2.52 Am or 5.25 Am, on the dot. Notice anything weird about those numbers? Yeah, me too. And that is highly disturbing.&lt;br /&gt;&lt;br /&gt;Let's talk about change. As I wrote 2 paragraphs earlier, I am about to graduate in just a few weeks. Although, I thrive in dynamic environments, I like it when major events of my life are well-planned. Most of the time, I make that happen. Sometimes, no matter how hard I try, I just cannot. First, let's examine the obvious alternatives that I believe I've gotten:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt; &lt;li&gt;Keep on doing what I've done best for the past few years and start right away with my Graduate Studies.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Get a job for a while and then get back to my Graduate Studies.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;...&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Case 1&lt;/u&gt;: Graduate Studies&lt;br /&gt;Oh boy! Trust me, there is nothing that I would love to do more than this. For a majority of people, the usual after they're done with their first degree is to leave the academic life behind, and move on to "better things". Those "things" would encompass such ideas as "a job", "a car", "a stable relationship", "a family" and a whole bunch of other societal norms. This is fine, but this is not really the type of life that suits me. It's too "normal", too "predictable" and not fun enough. Let me explain:&lt;br /&gt;there are not many jobs out there that one can get and still have the free will of being as inventive and creative as one can be in the academic world. One thing that I have learned is that in the academic world, more often than not, there is always an ear to listen to your ideas, there is always a few pairs of eyes interested in what you want to demonstrate and there is most often another person correlating your ideas. In the academic world, the most extravagant ideas often have an audience. This does not happen in the typical work environment where the only thing that everyone worries about is the bottom line. This is not to say that businesses aren't right to worry about it. But as a software engineer, and as an engineer in general who have seen lots of amazing things and at the same time lots of mediocrity, I believe that there is a need to sometime stop, think and then bring out the best in everything that I do.&lt;br /&gt;I have often been accused by my peers of being a perfectionist. I don't know how true this is. But I sure do believe that software engineering is an art, a craft and that should be well executed to the best it can be. The cool thing is, I have lots of ideas of how this could be done. And I need a chance to expose those ideas, not just to an audience that is going to keep it to themselves (closed-environment) but rather to an audience that is going to expose those ideas, discuss them further and help me and the community out there to make them better. I believe only the academic world would give me such an opportunity. Yeah, there might be a few other places, in the business environment that would give me such opportunity too. I will discuss those soon.&lt;br /&gt;&lt;br /&gt;But talking about the academic world, that is not all. I mean, it is not just because I want to expose my ideas that I want to stay in. It is also because it's probably the only place you can get to learn a million things that you would have never known (at least systematically) in the business world. Finally, the academic world has changed a lot from what it used to be decades ago to what it is now: solutions, inventions are not made without thinking about the human (social, economical, technological, etc...) aspects.&lt;br /&gt;&lt;br /&gt;So, you've guessed it. I am the academic type. Whatever you, the reader have decided it means. In the end, the fact of the matter is that I cannot afford to stay in the academic world anymore. It costs quite a lot in terms of personal finance. And this saddens me a lot. I have started writing research proposals for my master degree and will soon start the process of applying for a scholarship. Having been a top student in my field for the past few terms, obtaining a scholarship shouldn't be a problem. But then again, it's a matter of luck. Will lady luck be with me? I'll live to see. Which takes me to the next topic...&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Case 2&lt;/u&gt;: Get a Job, Save Save Save, Pay for Graduate Studies&lt;br /&gt;So, case 2 is roughly my solution to the cash flow problem. Besides the academics, I have quite a few years of experience building software and mostly web-based applications. I also have a full grasp of most of the latest technologies out there and I am fully fluent in languages such as Java, PHP, Ruby, Python and as far as platforms are concerned, I've played around with a few from Desktop to the Web to the Mobile environment and most recently back to the desktop with RIA platforms such as Adobe AIR. Weeewwh, that was a mouthful, wasn't it? So I figured, with all the knowledge and experience that I have gathered over the years, why not do something smart such as... well... getting a job? Then I'd save enough to start paying for my graduate&lt;br /&gt;studies. And based on that thought, I started doing what every job seeker does:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;First and foremost, I uploaded my details, profiles, resumes (CVs), and all that is required to a good number of world-recognized and frequently visited by employers job portals. Stats-wise, I have had lots of views, even some employers contacted me and I even got a few phone calls. However, due to the fact that I will not be available till November due to my degree, I had to decline most offers. Well, OK, I did not literarily decline them. But I had to warn them about my availability. So, maybe some of them will call me back around that time, but I am sure I will not hear from the majority of them anymore. So, on this front, all I can say is that I am hopeful. We will see what happens.&lt;br /&gt; &lt;/li&gt;&lt;br /&gt; &lt;br /&gt; &lt;li&gt;Strategy number 2: apply for jobs at specifics companies I would love to get work at. If you haven't guessed by now already, well... I am specifically talking about Google Inc. and Yahoo! Inc. Why would I love to work with them? Simple, they're working on some of the most exciting aspects of the Web right now. Each of them is doing it in a different way, that's for sure but I am sure there's room for a Me in there, right? So, I applied for a few of their graduate jobs. I have not yet heard from them. I don't know if I will. Whatever the case, and however it turns out in the end, it did not cost me a thing to try and so I did.&lt;br /&gt; &lt;/li&gt;&lt;br /&gt; &lt;br /&gt; &lt;li&gt;Strategy number 3: still looking for a job. My definition of a job is very simple. Yet it's got some specifics: a job has to be enjoyable, challenging and no matter what, offer the possibility to be creative, inventive and more important than anything else, allow the developer to explore and play around with some nifty tools and ideas. A job that does not offer those is not worth a look. You may find me to be too idealistic but all I ask is a chance to show the cool things I can do and how well I can do them. If that is not part of the package, there is no point. Ooh and of course, a cool salary!!! I'll see what turns up on this one.&lt;br /&gt; &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Case 3&lt;/u&gt;: ...&lt;br /&gt;And there is everything else that I could do instead. One of those is to actually use the time and complete some very important "stuff" I have started working on with my friend &lt;a href="http://charlvn.za.net"&gt;Charl&lt;/a&gt; since last year.&lt;br /&gt;&lt;br /&gt;There is whole bunch of other things in the "..." category. But just like "stuff", it's all in Ninja Mode and I'd rather not talk about it in this post.&lt;br /&gt;&lt;br /&gt;So there we go. I feel much better. I really needed to talk about my preoccupations of the moment. Once again, blogging is has saved the day. Does that mean I will be able to sleep better now? Certainly not. Not until I have a real answer to my questions about what's the future holds...&lt;br /&gt;&lt;br /&gt;Hold on! I just thought about something, right now in the middle of the post. One of the items in the "..." category is to take the graduate job offer I got from Accenture Australia a few weeks back through a program for top 15% graduates of my university. It didn't seem too exciting but hey, that's why it is in the "..." category! Right?&lt;br /&gt;&lt;br /&gt;I've always had bad sleeping habits anyways, it's not like this is anything new. It's just that it's gotten much worse.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;JPGeek.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-3796768018935585375?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/3796768018935585375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2007/08/graduation-scary-prospect.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3796768018935585375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3796768018935585375'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2007/08/graduation-scary-prospect.html' title='Graduation: the scary prospect'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-7138187270618489994</id><published>2007-08-01T05:14:00.000-07:00</published><updated>2009-10-05T01:18:36.195-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='latex'/><category scheme='http://www.blogger.com/atom/ns#' term='bibdesk'/><category scheme='http://www.blogger.com/atom/ns#' term='tex'/><category scheme='http://www.blogger.com/atom/ns#' term='itexmac'/><category scheme='http://www.blogger.com/atom/ns#' term='texshop'/><category scheme='http://www.blogger.com/atom/ns#' term='vim-latex'/><category scheme='http://www.blogger.com/atom/ns#' term='lyx'/><title type='text'>Tex on Mac OS X</title><content type='html'>In one of my previous posts, I mentioned that I was taking two interesting subjects this semester: distributed systems and human computer interaction. What I did not mention was those two subjects were research intensive. For each of them, over the next two months, I will have to write a research proposal.&lt;br /&gt;&lt;br /&gt;Now, one big problem is that Microsoft Word and most other text editors are not adapted to this type of presentation. To make my life easier, I will have to use a Tex-based document processor.&lt;br /&gt;&lt;br /&gt;In this post, I point out the ones that I will be evaluating, so as to help other OS X users spend less time wondering what to do.&lt;br /&gt;&lt;br /&gt;I have found three interesting document processors for OS X:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;LyX&lt;/b&gt;: available for all major operating systems. Can be downloaded at &lt;a href="http://www.lyx.org"&gt;http://www.lyx.org&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;TexShop&lt;/b&gt;: available at &lt;a href="http://www.uoregon.edu/~koch/texshop"&gt;http://www.uoregon.edu/~koch/texshop&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;iTexMac&lt;/b&gt;: which can be downloaded from &lt;a href="http://itexmac.sourceforge.net"&gt;http://itexmac.sourceforge.net&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;And of course, for all the die-hard *Nixers out there, there exists the nice combination of &lt;b&gt;GVim and VIM-LaTeX&lt;/b&gt;.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;I will be evaluating the 3 software above. If you've completed research-based assignments before, you definitely would agree with me that another major headache lies in the bibliography (also known as references). I have heard great stuff about BibDesk which is a piece of software that can be used just for that purpose.&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;BibDesk&lt;/b&gt;: &lt;a href="http://bibdesk.sourceforge.net"&gt;http://bibdesk.sourceforge.net&lt;/a&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Cheers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-7138187270618489994?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/7138187270618489994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2007/08/tex-on-mac-os-x.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7138187270618489994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7138187270618489994'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2007/08/tex-on-mac-os-x.html' title='Tex on Mac OS X'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-3968127197020686146</id><published>2007-07-18T08:41:00.000-07:00</published><updated>2009-10-05T01:18:36.185-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><category scheme='http://www.blogger.com/atom/ns#' term='powerbook'/><category scheme='http://www.blogger.com/atom/ns#' term='updates'/><title type='text'>Ruby on Rails updates</title><content type='html'>I just finished updating the Ruby on Rails installation on my laptop.&lt;br /&gt;&lt;br /&gt;I am now running the following:&lt;br /&gt;&lt;br /&gt;Ruby 1.8.6&lt;br /&gt;gem 0.9.4&lt;br /&gt;Rails 1.2.3&lt;br /&gt;&lt;br /&gt;It is interesting to see that I am already dealing with a few deprecations here and there.&lt;br /&gt;It obviously is nothing major but I am currently going over my code to make sure that all&lt;br /&gt;deprecations are resolved.&lt;br /&gt;&lt;br /&gt;I think that I should have kept up-to-date a bit more regularly. In fact, I went from Ruby 1.8.4 to Ruby 1.8.6. This shows how long it had been since I updated.&lt;br /&gt;&lt;br /&gt;Alright, just to remind all RoR developers out there to make sure things are up-to-date.&lt;br /&gt;&lt;br /&gt;Cheers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-3968127197020686146?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/3968127197020686146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2007/07/ruby-on-rails-updates.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3968127197020686146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3968127197020686146'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2007/07/ruby-on-rails-updates.html' title='Ruby on Rails updates'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-4456451931916695741</id><published>2007-07-11T01:41:00.000-07:00</published><updated>2009-10-05T01:18:36.217-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lean Software Development'/><category scheme='http://www.blogger.com/atom/ns#' term='software development'/><category scheme='http://www.blogger.com/atom/ns#' term='software engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='Google engEDU'/><category scheme='http://www.blogger.com/atom/ns#' term='presentation'/><title type='text'>Competing on the Basis of Speed (Google Presentation)</title><content type='html'>This is a Google Engineering presentation I would recommend every software engineer to watch. It talks about lean development. In the past, I've read a book or two on Lean Software Development but this presentation puts it the best way so far. The emphasis is mainly on Complexity. The presenter looks at what she called the 3 faces of complexity, which she labeled as follows:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Waste&lt;/b&gt;: anything that does not add customer value but that keeps creeping into the system's requirements. The solution: &lt;b&gt;Keep it simple&lt;/b&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Inconsistency&lt;/b&gt;: irregular, unbalanced, uneven processes or sub-processes.  The solution: &lt;b&gt;Make it flawless&lt;/b&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Overload&lt;/b&gt;: excessive and unreasonable burden, unrealistic expectations. The solution: &lt;b&gt;Let it flow&lt;/b&gt;.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;She then goes on developing each of the above items further and explaining how their respective solutions can be applied to software development.&lt;br /&gt;&lt;br /&gt;During the presentation, she refers a lot to the &lt;a href="http://en.wikipedia.org/wiki/Toyota_Prius"&gt;Toyota Prius&lt;/a&gt; ("Computer on Wheels" as she calls it), bringing forward the development process used by Toyota to design the car and push it to market in just about 15 months.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;All in all, I personally think it is a great presentation.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Links&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://video.google.com/videoplay?docid=-5105910452864283694"&gt;Competing on the Basis of Speed&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://en.wikipedia.org/wiki/Lean_software_development"&gt;Lean software development&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- The presenter: &lt;a href="http://www.poppendieck.com/"&gt;Mary Poppendieck&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Cheers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-4456451931916695741?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/4456451931916695741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2007/07/competing-on-basis-of-speed-google.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/4456451931916695741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/4456451931916695741'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2007/07/competing-on-basis-of-speed-google.html' title='Competing on the Basis of Speed (Google Presentation)'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-5809283875152448620</id><published>2007-07-10T00:56:00.000-07:00</published><updated>2009-10-05T01:18:36.425-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ai'/><category scheme='http://www.blogger.com/atom/ns#' term='university'/><category scheme='http://www.blogger.com/atom/ns#' term='college'/><category scheme='http://www.blogger.com/atom/ns#' term='hci'/><category scheme='http://www.blogger.com/atom/ns#' term='degree'/><category scheme='http://www.blogger.com/atom/ns#' term='robotics'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='human computer interaction'/><category scheme='http://www.blogger.com/atom/ns#' term='computing'/><title type='text'>HCI class this semester: awesome!</title><content type='html'>So, I am currently on the last track for my bachelor's degree. Thinking about it, it's been a pretty fast time. It feels like I just started this degree only 3 months ago. Anyways, I am really excited being on the last leg but also very anxious as well. &lt;br /&gt;&lt;br /&gt;There's a lot I'd like to do after my bachelor's degree. Mostly in the academic world. I believe that universities offer the best environment to do amazing things (inventing, creating, enhancing existing stuff). For that I would strongly like to continue with my masters degree and hopefully a PhD afterwards. Well, it all depends on available finances (scholarships, bursaries, grants, etc...) and we'll see.&lt;br /&gt;&lt;br /&gt;Anyways, being anxious about the end does not stop me from being very excited about some of the last classes I will be taking during my last semester. I will be taking a distributed systems class (really cool stuff there, I must admit) and even cooler, I will be taking an HCI (&lt;a href="http://en.wikipedia.org/wiki/Human-computer_interaction"&gt;Human Computer Interaction&lt;/a&gt;) class. This excites me even more. I've always wanted to do something related to HCI. After all, what's the point of us computer scientists / software engineers creating all this software we think is really cool if users hate it an do not even find it useful despite all the functionality included in it. Even better, HCI has to do with everything else I wish to research on in the future: AI (Artificial Intelligence) coupled with Robotics at some point.&lt;br /&gt;&lt;br /&gt;Anyways, let's see how the semester goes. But I have the feeling it's going to be awesome!&lt;br /&gt;&lt;br /&gt;-- JPGeek.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-5809283875152448620?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/5809283875152448620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2007/07/hci-class-this-semester-awesome.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/5809283875152448620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/5809283875152448620'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2007/07/hci-class-this-semester-awesome.html' title='HCI class this semester: awesome!'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-2359840095423354804</id><published>2007-06-24T10:14:00.000-07:00</published><updated>2009-10-05T01:18:36.437-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile web'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile device'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='Safari'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='Market Circle'/><title type='text'>Web testing for the Apple iPhone</title><content type='html'>There's just a few more days to go before the iPhone is released. There's a lot of good hype going on about it and many companies are getting ready for it as well. If by any chance you desgin mobile websites or just any website and would like to know how your design would fair on the iPhone's browser and screen, you should download iPhoney.&lt;br /&gt;&lt;br /&gt;iPhony is an iPhone Web simulator for designers, created by MarketCircle. It's free to download at the following address:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.marketcircle.com/iphoney/"&gt;http://www.marketcircle.com/iphoney/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Well, enjoy and be ready for what is said to be the next stage of mobile revolution!&lt;br /&gt;&lt;br /&gt;-- JPGeek&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-2359840095423354804?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/2359840095423354804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2007/06/web-testing-for-apple-iphone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/2359840095423354804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/2359840095423354804'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2007/06/web-testing-for-apple-iphone.html' title='Web testing for the Apple iPhone'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-4314774914752597803</id><published>2007-06-22T12:58:00.000-07:00</published><updated>2009-10-05T01:18:36.544-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Connection Adapters'/><category scheme='http://www.blogger.com/atom/ns#' term='MySQLAdapter'/><category scheme='http://www.blogger.com/atom/ns#' term='ActiveRecord'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><category scheme='http://www.blogger.com/atom/ns#' term='Rails Data Types'/><category scheme='http://www.blogger.com/atom/ns#' term='Migrations'/><title type='text'>MySQL Data Types and Rails Migrations</title><content type='html'>If you have ever tried googling for Rails migrations and MySQL data types in order to understand how they map, you may have been disappointed as I had been. There is very little documentation about that on the &lt;a href="http://wiki.rubyonrails.org"&gt;RoR Wiki&lt;/a&gt;. So, it takes a while to understand how they map, what you can do in your create_table functions and what you cannot do. There is a way to get all that information though. And it's right on your computer.&lt;br /&gt;&lt;br /&gt;First, it is important to understand that Rails communicates with databases by using Adapters. What in Java are usually known as JDBC Database Connectors. Adapter classes for databases are usually found in classes of the following format:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;ActiveRecord::ConnectionAdapters::&lt;b&gt;DatabaseServerName&lt;/b&gt;Adapter&lt;/i&gt;. For which DatabaseServerName could be MySQL, PostgreSQL and so on.&lt;br /&gt;&lt;br /&gt;Assuming that you're running OS X or any other type of Unix system, you will be able to find the code for your particular adapter by running:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;less /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.15.1/lib/active_record/connection_adapters/mysql_adapter.rb&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;In my case, my database adapter is MySQL. Once the file opens up, look for the function native_database_types. It shows the mapping between Rails names and your particular database. Again, in the case of MySQL the mapping is as follows:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;      def native_database_types #:nodoc:&lt;br /&gt;        {&lt;br /&gt;          :primary_key =&gt; "int(11) DEFAULT NULL auto_increment PRIMARY KEY",&lt;br /&gt;          :string      =&gt; { :name =&gt; "varchar", :limit =&gt; 255 },&lt;br /&gt;          :text        =&gt; { :name =&gt; "text" },&lt;br /&gt;          :integer     =&gt; { :name =&gt; "int", :limit =&gt; 11 },&lt;br /&gt;          :float       =&gt; { :name =&gt; "float" },&lt;br /&gt;          :decimal     =&gt; { :name =&gt; "decimal" },&lt;br /&gt;          :datetime    =&gt; { :name =&gt; "datetime" },&lt;br /&gt;          :timestamp   =&gt; { :name =&gt; "datetime" },&lt;br /&gt;          :time        =&gt; { :name =&gt; "time" },&lt;br /&gt;          :date        =&gt; { :name =&gt; "date" },&lt;br /&gt;          :binary      =&gt; { :name =&gt; "blob" },&lt;br /&gt;          :boolean     =&gt; { :name =&gt; "tinyint", :limit =&gt; 1 }&lt;br /&gt;        }&lt;br /&gt;      end&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;It is also interesting to read through the full source code of the adapter. There is a bunch of valuable information in there that one can use to optimize the usage of ActiveRecord models as well as  Migrations.&lt;br /&gt;&lt;br /&gt;-- JPGeek.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-4314774914752597803?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/4314774914752597803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2007/06/mysql-data-types-and-rails-migrations.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/4314774914752597803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/4314774914752597803'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2007/06/mysql-data-types-and-rails-migrations.html' title='MySQL Data Types and Rails Migrations'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-8586539586786425417</id><published>2007-06-21T16:04:00.000-07:00</published><updated>2009-10-05T01:18:36.558-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Tweaks'/><category scheme='http://www.blogger.com/atom/ns#' term='Safari'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='Browser'/><category scheme='http://www.blogger.com/atom/ns#' term='Debug Menu'/><title type='text'>Tweaking Safari with Debug Menu</title><content type='html'>Ever wished you could tweak Safari the same way it's possible to tweak Firefox and other browsers currently on the market? Well, my exploration of Safari continued. I discovered that Safari has a debug menu that could be used to do quite a number of things such as disable RSS (yeah, well I never use that feature, so I don't need it to bloat my browser) or enable some other features. In order to activate the debug menu, run the following command on your OS X terminal:&lt;br /&gt;&lt;br /&gt;defaults write com.apple.Safari IncludeDebugMenu YES&lt;br /&gt;&lt;br /&gt;Next, restart Safari. The new menu options set will appear on the menu bar. It's got a few fun things that am sure most of us would like to try out.&lt;br /&gt;&lt;br /&gt;-- JPGeek.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-8586539586786425417?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/8586539586786425417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2007/06/tweaking-safari-with-debug-menu.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8586539586786425417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8586539586786425417'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2007/06/tweaking-safari-with-debug-menu.html' title='Tweaking Safari with Debug Menu'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-1565416625318244385</id><published>2007-06-21T15:42:00.000-07:00</published><updated>2009-10-05T01:18:36.533-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><category scheme='http://www.blogger.com/atom/ns#' term='WebKit'/><category scheme='http://www.blogger.com/atom/ns#' term='Safari'/><category scheme='http://www.blogger.com/atom/ns#' term='Debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Inspector'/><title type='text'>Safari's new Web Inspector</title><content type='html'>Safari just got itself a brand new Web Inspector. I just downloaded the nightly build of the Safari engine (WebKit) to test the new inspector and all I have to say is: it's magnificent! It's beaten any web debugging / development tool I have ever used. Those are my first impressions though. I haven't had a chance to do a lot with it. The other stuff that I have noticed is the User Interface. As usual, designed with the user in mind and the Apple way. Here's a screenshot:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BTqMk6V7Lls/RnsBFGkgB0I/AAAAAAAAAAM/kW8uzPwYaNQ/s1600-h/Picture+1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_BTqMk6V7Lls/RnsBFGkgB0I/AAAAAAAAAAM/kW8uzPwYaNQ/s320/Picture+1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5078654191965046594" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Take note that WebKit is available both for Microsoft Windows and Mac OS X. You can download the nightly build here: &lt;a href="http://www.webkit.org"&gt;http://www.webkit.org&lt;/a&gt;. After installing WebKit, you will need to activate the inspector. To do this, on OS X, type the following in your terminal:&lt;br /&gt;&lt;br /&gt;defaults write com.apple.Safari WebKitDeveloperExtras -bool true.&lt;br /&gt;&lt;br /&gt;Restart Safari, open a website of your interest and right click on the page. In the contextual menu, choose the "Inspect Element" option.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-- JPGeek.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-1565416625318244385?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/1565416625318244385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2007/06/safari-new-web-inspector.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/1565416625318244385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/1565416625318244385'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2007/06/safari-new-web-inspector.html' title='Safari&amp;#39;s new Web Inspector'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BTqMk6V7Lls/RnsBFGkgB0I/AAAAAAAAAAM/kW8uzPwYaNQ/s72-c/Picture+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-2279124637422145333</id><published>2007-06-14T02:13:00.000-07:00</published><updated>2009-10-05T01:18:36.523-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='recruitment'/><category scheme='http://www.blogger.com/atom/ns#' term='software engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='google jobs'/><category scheme='http://www.blogger.com/atom/ns#' term='google youtube'/><title type='text'>The perfect Google job application</title><content type='html'>Recently, or should I say since the beginning of this year, I have been looking into applying for a software engineering job at Google. Since I am quite busy with all the assignments and exams at the university, I only dedicate one or two days to this per month. Note that Google is not the only place I would like to work, any place that's fun and where focus is on solving serious/fun and rewarding problems will do.&lt;br /&gt;&lt;br /&gt;Anyways, The biggest question that anyone wanting to apply for a software engineer job at Google would ask themselves is: what does it take to become a "Google Software Engineer". While searching on the web earlier this morning, I stumbled upon a joke on the following website: &lt;a href="http://blog.outer-court.com/forum/36360.html"&gt;http://blog.outer-court.com/forum/36360.html&lt;/a&gt; by Philipp Lenssen (credit where it's due).&lt;br /&gt;&lt;br /&gt;It says "Your perfect Google job application" and goes as follows:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Hello Google,&lt;br /&gt;&lt;br /&gt;I'm a fan of your company and would like to work with you. I'm 23 years old. I've started building my own computer at the age of 5, which coincidentally was also the year I learned programming BASIC. I quickly moved on to more advanced languages like C++, SmallTalk, and Lisp, but then briefly lost interest in programming to get heavily involved in advanced maths during the age of 8-10. I've then started maintaining my own internet server, before I developed a fast MySQL replacement in assembly language, my second hobby (my first is Sudoku, the variant with 99 squares for each row). During my teenage years, I've led a team of neighborhood geeks to build a man-like robot, but it unfortunately ran away looking for its father. I kept a software copy of the robot's brain though, in fact, it's that copy which writes this email for me. Hope you take me!&lt;br /&gt;&lt;br /&gt;Yours,&lt;br /&gt;John&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It's quite funny I have to admit. But also, I wonder whether it doesn't really take something close to this in order to become a Googler!&lt;br /&gt;&lt;br /&gt;Jokes aside, here are a few videos that somehow show what to expect (YouTube links):&lt;br /&gt;&lt;br /&gt;The Google Recruiting Process: &lt;a href="http://www.youtube.com/watch?v=w887NIa_V9w"&gt;http://www.youtube.com/watch?v=w887NIa_V9w&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Working at Google NYC - Nina, Software Engineer: &lt;a href="http://www.youtube.com/watch?v=xs6zBN_GEJ8"&gt;http://www.youtube.com/watch?v=xs6zBN_GEJ8&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Working at Google Zurich - Lina, Software Engineer: &lt;a href="http://www.youtube.com/watch?v=JLiNjG2cMJw"&gt;http://www.youtube.com/watch?v=JLiNjG2cMJw&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Working at Google London - Ricardo, Software Engineer: &lt;a href="http://www.youtube.com/watch?v=YmzB5QX5KH8"&gt;http://www.youtube.com/watch?v=YmzB5QX5KH8&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What do you think? :-D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-2279124637422145333?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/2279124637422145333/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2007/06/perfect-google-job-application.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/2279124637422145333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/2279124637422145333'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2007/06/perfect-google-job-application.html' title='The perfect Google job application'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-103583520652229553</id><published>2007-06-03T04:12:00.000-07:00</published><updated>2009-10-05T01:18:36.468-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='ejb'/><category scheme='http://www.blogger.com/atom/ns#' term='autoincrement'/><category scheme='http://www.blogger.com/atom/ns#' term='primary key'/><category scheme='http://www.blogger.com/atom/ns#' term='ejbcreate'/><category scheme='http://www.blogger.com/atom/ns#' term='bmp'/><category scheme='http://www.blogger.com/atom/ns#' term='sequences'/><category scheme='http://www.blogger.com/atom/ns#' term='j2ee'/><category scheme='http://www.blogger.com/atom/ns#' term='container managed persistence'/><category scheme='http://www.blogger.com/atom/ns#' term='cmp'/><title type='text'>Obtaning next MySQL auto-increment ID for J2EE CMP ejbCreate method</title><content type='html'>I have recently been working a lot with J2EE. Well working or studying (however you want to call it :-D). Anyways, I ran into a serious problem and for the first time, even &lt;a href="http://www.google.com"&gt;Google&lt;/a&gt; wasn't much help.&lt;br /&gt;&lt;br /&gt;Application Server: Glassfish / Sun App Server 9&lt;br /&gt;Database Server: MySQL&lt;br /&gt;EJB Version: 2.0 / 2.1&lt;br /&gt;&lt;br /&gt;I assume that you all know how EJB CMPs (Container-Managed Persistence) work. The developer basically provides a set of cmp-fields which are the database attributes, provices a create/ejbCreate(parameters_here) method which is used by the container to generate SQL queries that insert data into the database: OK, before you scream at me, it is not this simple but I just want to get to the point.&lt;br /&gt;&lt;br /&gt;This usually works without a problem if you can provide the primary key to the ejbCreate method. Let's assume your ejbCreate method looks like this:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;public Long ejbCreate(Long id, String firstname, String lastname) { ... }&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;To this assumption, let's add the fact that the primary key here (Long id) is auto-generated by your database management system, in this case &lt;a href="http://www.mysql.org"&gt;MySQL&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The problem arises that there is no way you can provide an ID to your create method. So you would tend to do the following:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;customerHome.create(null, "Mickey", "Mouse");&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The problem with the code above is that your EJB container will scream at you and throw some aweful exceptions.&lt;br /&gt;&lt;br /&gt;I also thought about trying something like this:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;customerHome.create(new Long(-1), "Mickey", "Mouse");&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;My assumption was that the since ID was the primary key field with auto-increment in the MySQL table design, the RDBMS would intelligently decide that "-1" was not right and would assign the right value. I unfortunately found out that MySQL was not that smart.&lt;br /&gt;&lt;br /&gt;I searched Google and asked a few developers friends to see whether MySQL had a way to determine the next primary key sequence like Oracle does (sequence.nextValue() ?) and I could not get much help either from Google or other developers.&lt;br /&gt;&lt;br /&gt;After some serious digging in the functionning of MySQL and Schemas, I ran into the fact that one could find about the status of all tables in a database using the following query:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SHOW TABLE STATUS&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Such query will show the current values of the properties of all tables in the currently selected database. Interestingly enough, there is a property called "Auto_increment". Some search in the manuals told me that the "Auto_increment" property contains an integer value showing the next "auto-increment" value a inserted record would have for primary key. That's all that was needed.&lt;br /&gt;&lt;br /&gt;Next, there was a need to narrow the results: instead of showing the status of all the tables in the database, I need to get the status of only one table: the one I was interested into. In this example, that would be the &lt;b&gt;CUSTOMERBEAN&lt;/b&gt; table. The following query sorts it out:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SHOW TABLE STATUS LIKE "TABLE_NAME"&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In our case, we would write is as&lt;br /&gt;&lt;b&gt; SHOW TABLE STATUS LIKE "CUSTOMERBEAN"&lt;/b&gt;. For some reason, I think the MySQL guys need to redesign this. I've been reading a lot about API design and the above sentence does not convey much about what the query does (this was just a side note).&lt;br /&gt;&lt;br /&gt;Once this can be done, the rest is just about obtaining a ResultSet object from the query above, get the value of the Auto_increment field and pass it to your &lt;b&gt;cutomerHome.create(...)&lt;/b&gt; method call. In my particular case, I wrote a utility class to do that for me. I just get the result and up and running I am!&lt;br /&gt;&lt;br /&gt;I hope this helps any of you developers out there dealing with the same problem. It took me about 2 hours to sort it out and that was quite a waste of time.&lt;br /&gt;&lt;br /&gt;Also, if you think there are other ways (I know that there is a different way of handling this with the WebLogic server), please post a comment and let me know.&lt;br /&gt;&lt;br /&gt;-- JPGeek&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-103583520652229553?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/103583520652229553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2007/06/obtaning-next-mysql-auto-increment-id.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/103583520652229553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/103583520652229553'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2007/06/obtaning-next-mysql-auto-increment-id.html' title='Obtaning next MySQL auto-increment ID for J2EE CMP ejbCreate method'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-833277636521805995</id><published>2007-05-25T10:06:00.000-07:00</published><updated>2009-10-05T01:18:36.447-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xhtml'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile web'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile device'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile phone'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Defining the Mobile Web from the Web</title><content type='html'>Lately, I have had the chance to play around with a set of interesting mobile devices. Most of those had access to the Internet through a mobile browser with either a WiFi or GRPS or 3G connection.&lt;br /&gt;&lt;br /&gt;As a mobile phone user, I spend a serious amount of bandwidth navigating the mobile internet. Some of the things I spend my bandwidth on are news, J2ME applications download, emails, and once in a while, I like to do some research through Mobile Google (http://m.google.com).&lt;br /&gt;&lt;br /&gt;Lately however, I had a huge need to find some information on the "regular" Web if I may put it that way. For example, imagine not being on a computer and needing to do some quick research on "Nestle Bottled Water". You will find out that most of the website that will be returned by Google Mobile or Yahoo Mobile or MSN Mobile Search are not real mobile websites or because there are no mobile websites on the subject, the search returns nothing. Now that we live in a world where one can access information whenever one Needs it, it is very irritating to discover that the mobile web has not developed any further than what it was a few years ago.&lt;br /&gt;&lt;br /&gt;Further research shows that mobile websites can be developed by using a set of tools that already exist such as CSS specific to mobile devices, mobile protocol specific-tags and a few others. The biggest problems with these tools seem to be related to the double work involved in developing mobile websites. So, in an organization, the Web team would for example be in charge of developing the "regular" website and then spend another tremendous amount of time developing the mobile website. Even when this is done, there seems to be a huge disparity between both contents. This is a problem: as developers, we need to remember that the main reason behind visitors on a website is the content offered. Therefore, there is a need for website owners and other web content providers to be able to offer such content.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Based on the facts above, and with some input from &lt;a href="http://blog.charlvn.za.net/"&gt;Charl&lt;/a&gt;, I have come up with a proposal to make websites more accessible to mobile devices.&lt;br /&gt;&lt;br /&gt;As highlighted earlier, most search engines provide ways of searching not only the little amount of mobile content available, but also the "regular" Web. The problem with the content found on the "regular" Web is that either most cellphones cannot load it or that when they load it, everything is loaded, including a fair amount of unecessary content a mobile visitor would not be interested into.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Our proposal is therefore to allow any mobile device to access the "regular" Web by only loading "TEXT/OTHER TYPES OF DEFINED CONTENT" that contains "INFORMATION" that is "RELEVANT" to and is "GENERICALLY SPECIFIC" to mobile users.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This can be done by developing a platform to which Web content providers can subscribe. Through their subscription, the platform will be in charge of pinging their website, crawling its content and caching it locally. To faciliate the production of such contents, specific &lt;a href="http://microformats.org/"&gt;Microformat&lt;/a&gt; tags can be developed with the community and agreed upon. Such tags will target a variety of properties on websites such as designating which contents are relevant to the platform, hierarchical views of that content (bread-crumbs?, menus?), etc... (more will come to light as the platform is being developed).&lt;br /&gt;&lt;br /&gt;Also, as more thought is being put into the platform, it should be able to move away from the subcription model and proxy a "regular" website on the go in order to turn it into a "mobile" one. The platform should and hopefully if developed will be able to provide consistent navigation, which is appropriate for viewing/using on mobile device screens.&lt;br /&gt;&lt;br /&gt;Developing such a platform is a monster of a challenging work. But if carefully planned/designed and architectured, such platform would be able to define the mobile Web's future.&lt;br /&gt;&lt;br /&gt;More ideas on this would be available on the blog and maybe in the future a dedicated blog will be created to let you know about further developments.&lt;br /&gt;&lt;br /&gt;-- JPGeek.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-833277636521805995?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/833277636521805995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2007/05/defining-mobile-web-from-web.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/833277636521805995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/833277636521805995'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2007/05/defining-mobile-web-from-web.html' title='Defining the Mobile Web from the Web'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-7393452169665022993</id><published>2007-05-07T11:10:00.000-07:00</published><updated>2009-10-05T01:18:36.568-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ghana'/><category scheme='http://www.blogger.com/atom/ns#' term='software engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='west africa'/><category scheme='http://www.blogger.com/atom/ns#' term='job'/><category scheme='http://www.blogger.com/atom/ns#' term='computing'/><title type='text'>Software Engineering Job in West Africa</title><content type='html'>I was having a chat with a friend of mine today. He works for &lt;a href="http://www.buyslab.com"&gt;BusyLab&lt;/a&gt;, a small but really exciting software company in Ghana(West Africa). He pointed me to their job post that I found quite interesting. They're looking for a software engineer who can help them better their processes and help the current team create capacity that will enable them to develop great software.&lt;br /&gt;&lt;br /&gt;For the right candidate, they are willing to cover air travel, accommodation and spending money through a 'modest salary'.&lt;br /&gt;&lt;br /&gt;The duration of the project seems to be of 6 months. For more information, check out the &lt;a href="http://www.busylab.com/jobs/index.htm"&gt;following page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It seems very interesting. If I wasn't studying at the moment and completing my bachelor degree, I would love to try out such a job. It's a perfect chance to revisit Ghana for a few months while getting some work done. How awesome would that be?&lt;br /&gt;&lt;br /&gt;Cheers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-7393452169665022993?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/7393452169665022993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2007/05/software-engineering-job-in-west-africa.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7393452169665022993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7393452169665022993'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2007/05/software-engineering-job-in-west-africa.html' title='Software Engineering Job in West Africa'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-3571619956148372147</id><published>2007-04-04T00:45:00.000-07:00</published><updated>2009-10-05T01:18:36.479-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notebook'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='user interface'/><title type='text'>Google Notebook (Horrible UI)</title><content type='html'>I have no idea who is in charge of developing Notebook at Google (http://www.google.com/notebook). Since it's release I have used it. And I have liked the functionality. However, one aspect of it that I really never liked is the User Interface. So far, from most of the Google products that I have used, Google-Notebook has been the one with the worse User Interface ever! And that is why I am wondering who the heck is in charge of this project at Google. Creating an appealing UI for note-taking, sharing isn't that hard. Many times, I've imagined how the ideal UI would look like. Google has been able to create great simple UIs for most of their products (Gmail, anyone?). Why can't the same be applied to Google Notebook?&lt;br /&gt;&lt;br /&gt;What is making me post about this is the fact that the UI has been recently updated and all I could say when I saw it was "Wow! This is totally unusable!" or "Oh my God! This is sooo horrible!"&lt;br /&gt;&lt;br /&gt;I will post a bit more about this in the future. But I just thought I'd start somewhere as this has been irritating me for quite a while. It seems Google isn't paying much attention to some of their "smaller projects" as they do with the mainstream ones. But then again, what happens when someone comes up with a better "Notebook"?&lt;br /&gt;&lt;br /&gt;Think about it Google, think about it...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-3571619956148372147?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/3571619956148372147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2007/04/google-notebook-horrible-ui.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3571619956148372147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3571619956148372147'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2007/04/google-notebook-horrible-ui.html' title='Google Notebook (Horrible UI)'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-4729601515606285996</id><published>2007-02-28T12:44:00.000-08:00</published><updated>2009-10-05T01:18:36.577-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='japanese'/><category scheme='http://www.blogger.com/atom/ns#' term='english'/><category scheme='http://www.blogger.com/atom/ns#' term='translation'/><category scheme='http://www.blogger.com/atom/ns#' term='greek'/><title type='text'>Japanese / Greek Translation</title><content type='html'>I just spent most of the night, (well probably about an hour of it) looking for a Japanese or Greek translation of a few words. Google and most other website I tried were of no help. I thought I'd check out from this blog's readers. Maybe they'd be able to help me out.&lt;br /&gt;&lt;br /&gt;I need the following words/expressions translating in both Japanese and/or Greek. You can leave your translations as comments to this post:&lt;br /&gt;&lt;br /&gt;- notebook&lt;br /&gt;- notes&lt;br /&gt;- scrapbook&lt;br /&gt;- note binder&lt;br /&gt;&lt;br /&gt;Any help would be much appreciated. Thank you very much indeed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-4729601515606285996?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/4729601515606285996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2007/02/japanese-greek-translation.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/4729601515606285996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/4729601515606285996'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2007/02/japanese-greek-translation.html' title='Japanese / Greek Translation'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-2900173099579264647</id><published>2007-02-17T13:54:00.000-08:00</published><updated>2009-10-05T01:18:36.587-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='00011000'/><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='birthday'/><title type='text'>OMG, am 00011000!</title><content type='html'>Yep, I just turned 00011000! I can't believe I've already spent 00011000 of my life on this planet! It's totally amazing, really it is!&lt;br /&gt;&lt;br /&gt;Anyways, I was looking through my phonebook to find a few friends that I could invite for a pizza party or something (hey, it's not everyday that one turns 00011000!). It turns out that I couldn't find a single person. I mean, really I think I made a mistake somewhere in my life-course. How does a 00011000 man end up with no friends to invite for his birthday! I think I should stop spending so much time with machines and be a little bit more around people (despite the fact that people are quire an annoying bunch compared to machines, but anyways...).&lt;br /&gt;&lt;br /&gt;Unfortunately, I promise myself this every year and as time goes on, I end up spending more and more time in my room/lab/home-office/university/library rather than at parties/social events/lounges. There's just too much to learn to waste time around!&lt;br /&gt;&lt;br /&gt;Anyways, since no one's gonna be invited for birthday, I wish myself a Super-Duper Happy Birthday! Yay!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-2900173099579264647?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/2900173099579264647/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2007/02/omg-am-00011000.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/2900173099579264647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/2900173099579264647'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2007/02/omg-am-00011000.html' title='OMG, am 00011000!'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-8696680945968262382</id><published>2007-02-05T20:25:00.000-08:00</published><updated>2009-10-05T01:18:36.596-07:00</updated><title type='text'>Microsoft Windows Vista (Stop the Upgrades!)</title><content type='html'>I would start by advising any reader of this article (if [ hopefully] they have not already done it) not to update their Microsoft Windows Operating System to MS Windows Vista. Apart from individual users, I also hope that universities and other institutions in South Africa and other parts of the world in general will refrain from updating their operating system.&lt;br /&gt;&lt;br /&gt;Read this article: &lt;a href="http://english.chosun.com/w21data/html/news/200702/200702060016.html" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;http://english.chosun.com&lt;wbr&gt;/w21data/html/news/200702&lt;wbr&gt;/200702060016.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Although the article seems to be focusing on MP3 Players, a small paragraph further down the page mentions the following:&lt;br /&gt;&lt;p style="font-weight: bold;"&gt;"Meanwhile, some financial institutions and Internet portals are working on their websites to make them compatible with the new OS, as Internet banking and electronic payment services were found to be unavailable on computers that operate Windows Vista."&lt;/p&gt;&lt;p style="font-weight: bold;"&gt;&lt;span style="font-weight: normal;"&gt;Let's focus on this quickly: I remember sometime ago, I was trying to read news on &lt;a href="http://msnbc.com/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt; http://msnbc.com&lt;/a&gt; (which is a Microsoft owned news reporting website) and I remember being rejected from the website which mentioned &lt;span style="font-style: italic;"&gt;with no shame&lt;/span&gt;: "You will not be able to view this website unless you run a Microsoft Windows operating system!". How's that for discrimination on the Internet?&lt;/span&gt;&lt;/p&gt;&lt;p style="font-weight: bold;"&gt;&lt;span style="font-weight: normal;"&gt;I understand that there is and has been an existing browser war and we're all fighting as developers and designers to keep things working (thanks to Microsoft). Now, we basically have to re-develop to be compatible with a whole Operating System? Not just the Browser? What has the world come to? This does not make business sense but I think that WE (designers, developers and the likes) should stop trying to make our works compatible with products from an organization that does not even try to follow any of the recommended standards! &lt;/span&gt;&lt;/p&gt;&lt;p style="font-weight: bold;"&gt;&lt;span style="font-weight: normal;"&gt;Actually, I think I am going to start a new website with a forum and a petition for developers not to follow or help Microsoft by changing or rebuilding or redesigning their websites. We cannot let Microsoft bully the world and do things as they like just because they hold the OS monopoly. The only way to stop them dead on their track is by not considering anything they "shit" out of that Redmond campus of theirs! &lt;/span&gt;&lt;/p&gt;&lt;p style="font-weight: bold;"&gt;&lt;span style="font-weight: normal;"&gt;So, to all of you reading this post: Web developers should unite and fight against Microsoft Bully-ism! If we do not stop them now, we might never get the chance to do that again in a long time (that is till their next upgrade to IE 8 which from what I've been reading around will take web incompatibility to new heights).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: normal;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-weight: bold;"&gt;&lt;span style="font-weight: normal;"&gt;As a matter of fact, every website that wishes to participate in this should have a footer note in addition to the usual ones that says "Windows Vista Upgrade =&gt; Web Suicide". &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="font-weight: bold;"&gt;Just my 2-cent worth of opinion on what Microsoft is doing to the world.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Regards,&lt;/p&gt;Shaolin H4Xor.&lt;span style="font-weight: normal;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-8696680945968262382?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/8696680945968262382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2007/02/microsoft-windows-vista-stop-upgrades.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8696680945968262382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8696680945968262382'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2007/02/microsoft-windows-vista-stop-upgrades.html' title='Microsoft Windows Vista (Stop the Upgrades!)'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-1413773201801834533</id><published>2007-01-30T20:52:00.000-08:00</published><updated>2009-10-05T01:18:36.607-07:00</updated><title type='text'>Geek dinner in George (South Africa)</title><content type='html'>In roughly two weeks' time we will be having a Geek Dinner in George [1].&lt;br /&gt;&lt;br /&gt;Time: 18:30&lt;br /&gt;Date: Friday, 9 February 2007&lt;br /&gt;Place: Ukutya Restaurant [2], Kwelanga Country Retreat [3], George&lt;br /&gt;&lt;br /&gt;It will be a social get-together for geeks to relax and have something&lt;br /&gt;to eat in great company. There will be people from all over the&lt;br /&gt;country attending so I'm sure lots of interesting discussions will&lt;br /&gt;take place. The theme is largely marketing- and technology-orientated&lt;br /&gt;but anything geek goes. :)&lt;br /&gt;&lt;br /&gt;The setting will be the beautiful Kwelanga Country Retreat; for&lt;br /&gt;driving instructions and a map, please see their contact page [4].&lt;br /&gt;There is also a menu [5] online and please check out the cool logos&lt;br /&gt;[6] that have been created so far.&lt;br /&gt;&lt;br /&gt;There's also some stuff happening in the blogosphere:&lt;br /&gt;&lt;br /&gt;&lt;a onclick="return top.js.OpenExtLink(window,event,this)" href="http://tresblue.za.net/?p=11" target="_blank"&gt;http://tresblue.za.net/?p=11&lt;/a&gt;&lt;br /&gt;&lt;a onclick="return top.js.OpenExtLink(window,event,this)" href="http://stii.za.net/archives/82" target="_blank"&gt;http://stii.za.net/archives/82&lt;/a&gt;&lt;br /&gt;&lt;a onclick="return top.js.OpenExtLink(window,event,this)" href="http://standards.za.net/2007/01/gardenroutegeekdinner" target="_blank"&gt;http://standards.za.net/2007&lt;wbr&gt;/01/gardenroutegeekdinner&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We would kindly like to ask that you reserve your place either by&lt;br /&gt;adding yourself to the list on the wiki page [1] or by contacting&lt;br /&gt;either Stiaan or me at:&lt;br /&gt;&lt;br /&gt;Stiaan: stii at stii dot za dot net&lt;br /&gt;Charl: &lt;a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:charlvn@gross.org.za"&gt;charlvn@gross.org.za&lt;/a&gt; or +27 (0)72 405 8378&lt;br /&gt;&lt;br /&gt;You are more than welcome to contact us if you have any questions.&lt;br /&gt;Looking forward to seeing you there!&lt;br /&gt;&lt;br /&gt;Thanks &amp;amp; Regards,&lt;br /&gt;Charl&lt;br /&gt;&lt;br /&gt;[1] &lt;a onclick="return top.js.OpenExtLink(window,event,this)" href="http://geekdinner.pbwiki.com/GardenRouteGeeks" target="_blank"&gt;http://geekdinner.pbwiki.com&lt;wbr&gt;/GardenRouteGeeks&lt;/a&gt;&lt;br /&gt;[2] &lt;a onclick="return top.js.OpenExtLink(window,event,this)" href="http://www.kwelanga.co.za/restaurant.html" target="_blank"&gt;http://www.kwelanga.co.za&lt;wbr&gt;/restaurant.html&lt;/a&gt;&lt;br /&gt;[3] &lt;a onclick="return top.js.OpenExtLink(window,event,this)" href="http://www.kwelanga.co.za/" target="_blank"&gt;http://www.kwelanga.co.za/&lt;/a&gt;&lt;br /&gt;[4] &lt;a onclick="return top.js.OpenExtLink(window,event,this)" href="http://www.kwelanga.co.za/contact.html" target="_blank"&gt;http://www.kwelanga.co.za&lt;wbr&gt;/contact.html&lt;/a&gt;&lt;br /&gt;[5] &lt;a onclick="return top.js.OpenExtLink(window,event,this)" href="http://geekdinner.pbwiki.com/kwelangamenu" target="_blank"&gt;http://geekdinner.pbwiki.com&lt;wbr&gt;/kwelangamenu&lt;/a&gt;&lt;br /&gt;[6] &lt;a onclick="return top.js.OpenExtLink(window,event,this)" href="http://geekdinner.pbwiki.com/LOGO%20OPTIONS" target="_blank"&gt;http://geekdinner.pbwiki.com&lt;wbr&gt;/LOGO%20OPTIONS&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-1413773201801834533?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/1413773201801834533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2007/01/geek-dinner-in-george-south-africa.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/1413773201801834533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/1413773201801834533'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2007/01/geek-dinner-in-george-south-africa.html' title='Geek dinner in George (South Africa)'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-8433243332772468459</id><published>2007-01-19T21:02:00.000-08:00</published><updated>2009-10-05T01:18:36.457-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='script/server'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><category scheme='http://www.blogger.com/atom/ns#' term='startup error'/><category scheme='http://www.blogger.com/atom/ns#' term='LightTPD'/><category scheme='http://www.blogger.com/atom/ns#' term='webrick'/><category scheme='http://www.blogger.com/atom/ns#' term='fastCGI'/><title type='text'>Rails LightTPD and fastCGI Startup Error</title><content type='html'>After a fresh &lt;a href="http://hivelogic.com/narrative/articles/ruby_rails_lighttpd_mysql_tiger"&gt;installation&lt;/a&gt; of the &lt;a href="http://www.rubyonrails.org"&gt;Ruby on Rails&lt;/a&gt; development environment on my Powerbook and a migration of my previous applications into that environment, I was unable to start any of them. There are two ways of starting up an RoR application. The first and simplest way is to use the &lt;a href="http://www.webrick.org/"&gt;WebRick&lt;/a&gt; HTTP server included in your Rails installation. The command for it is as follows:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Windows:&lt;/span&gt; ruby script/server webrick&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Unix/Mac/Linux:&lt;/span&gt; script/server webrick&lt;/li&gt;&lt;/ul&gt;After running the command, you should be able to see your server starting and by directing your browser to [&lt;span style="font-style: italic;"&gt;http://localhost:3000&lt;/span&gt;], access your application's main page.&lt;br /&gt;&lt;br /&gt;The second way of starting up an RoR application is by not specifying the webrick argument on the command line. It would look like this:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Windows:&lt;/span&gt; ruby script/server&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Unix/Mac/Linux:&lt;/span&gt; script/server&lt;/li&gt;&lt;/ul&gt;What happens in this case is that the script will lookup your LightTPD installation and try to startup the rails application using it. Most of the time, this would work right out of the box. Sometimes however, if you've installed &lt;a href="http://www.fastcgi.com"&gt;fastCGI&lt;/a&gt; with LightTPD, you might run into the following error:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;=&gt; Booting lighttpd (use 'script/server webrick' to force WEBrick)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;=&gt; Rails application started on http://0.0.0.0:3000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;=&gt; Call with -d to detach&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;=&gt; Ctrl-C to shutdown server (see config/lighttpd.conf for options)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/Users/jeanpaul/webworkspace/ToDo/public/../config/boot.rb:18:in `require': No such file to load -- rubygems (LoadError)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        from /Users/jeanpaul/webworkspace/ToDo/public/../config/boot.rb:18&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        from /Users/jeanpaul/webworkspace/ToDo/public/../config/environment.rb:11:in `require'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        from /Users/jeanpaul/webworkspace/ToDo/public/../config/environment.rb:11&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        from /Users/jeanpaul/webworkspace/ToDo/public/dispatch.fcgi:21:in `require'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        from /Users/jeanpaul/webworkspace/ToDo/public/dispatch.fcgi:21&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;2007-01-20 00:51:56: (mod_fastcgi.c.1048) the fastcgi-backend /Users/jeanpaul/webworkspace/ToDo/public/dispatch.fcgi failed to start: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;2007-01-20 00:51:56: (mod_fastcgi.c.1052) child exited with status 1 /Users/jeanpaul/webworkspace/ToDo/public/dispatch.fcgi &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;2007-01-20 00:51:56: (mod_fastcgi.c.1055) if you try do run PHP as FastCGI backend make sure you use the FastCGI enabled version.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;You can find out if it is the right one by executing 'php -v' and it should display '(cgi-fcgi)' in the output, NOT (cgi) NOR (cli)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;For more information check http://www.lighttpd.net/documentation/fastcgi.html#preparing-php-as-a-fastcgi-program &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;2007-01-20 00:51:56: (mod_fastcgi.c.1060) If this is PHP on Gentoo add fastcgi to the USE flags &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;2007-01-20 00:51:56: (mod_fastcgi.c.1356) [ERROR]: spawning fcgi failed. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;2007-01-20 00:51:56: (server.c.834) Configuration of plugins failed. Going down. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If you took a chance and directed your browser to [&lt;span style="font-style: italic;"&gt;http://localhost:3000&lt;/span&gt;], you might see a  [&lt;span style="font-style: italic;"&gt;500 - Internal Server Error&lt;/span&gt;] being displayed.&lt;br /&gt;&lt;br /&gt;What all these errors suggest is that your rubygems path is wrong or that you did not install rubygems at all. After spending quite sometime struggling with this, I found out that all that needed to be done was to change the path to ruby in your [&lt;span style="font-style: italic;"&gt;dispatch.fcgi&lt;/span&gt;] file. In order to get that done, run the following command on your terminal / command prompt:&lt;br /&gt;&lt;ul style="font-style: italic;"&gt;&lt;li&gt;which ruby&lt;/li&gt;&lt;/ul&gt;In my case, the returned result was [&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;/usr/local/bin/ruby&lt;/span&gt;&lt;/span&gt;]. It might be slightly different in yours but this does not really matter. Take note of the path to ruby as displayed on your terminal.&lt;br /&gt;&lt;br /&gt;The next step is to open the [&lt;span style="font-style: italic;"&gt;dispatch.fcgi&lt;/span&gt;] file and change the path to ruby at the beginning of the file to what had been displayed on the terminal. The [&lt;span style="font-style: italic;"&gt;dispatch.fcgi&lt;/span&gt;] file usually sits in the [&lt;span style="font-style: italic;"&gt;public&lt;/span&gt;] folder of your rails application. When you open the file, you should see something similar to the following line at the beginning of it:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;#!/usr/bin/ruby&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;You will need to change that line from whatever was there to the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;#!/your/path/to/ruby/as/known/by/your/computer&lt;/span&gt;&lt;/li&gt;&lt;li&gt;In my case, that would be &lt;span style="font-style: italic;"&gt;#!/usr/local/bin/ruby&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;Save the file you just edited and restart your server. If you do not get any further warnings or errors displayed on your terminal after starting up the server, you can safely direct your browser to [&lt;span style="font-style: italic;"&gt;http://localhost:3000&lt;/span&gt;] and you should be able to see your application running.&lt;br /&gt;&lt;br /&gt;Voila! You just got Rails to run with LightTPD and mod_fcgi. ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-8433243332772468459?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/8433243332772468459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2007/01/rails-lighttpd-and-fastcgi-startup.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8433243332772468459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8433243332772468459'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2007/01/rails-lighttpd-and-fastcgi-startup.html' title='Rails LightTPD and fastCGI Startup Error'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-6034936405139602891</id><published>2006-12-28T04:05:00.000-08:00</published><updated>2009-10-05T01:18:36.617-07:00</updated><title type='text'>Code Camp, Bar Camp, Foo Camp, Mobile Monday, Geek Meetup?</title><content type='html'>Earlier today, &lt;a href="http://charlvn.blogspot.com/"&gt;Charl&lt;/a&gt; and I were having a discussion about some of the new technologies / existing ones but now have a marketing-enabled name technologies around. It was fun. But we also got intrigued and decided to check out what has been happening on the African scene and South Africa as far as Internet Startups were concerned.&lt;br /&gt;&lt;br /&gt;After about a few hours of googling, we had to deal with the harsh fact that Africa in general is totally trailing as far as these were concerned. So, we focused our research specifically on South Africa and started crawling the local blogs. A few things popped up:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;many geeks out there are web 2.0-aware: that's a good thing.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;there are quite a number of them coming up with innovative ideas for starting a startup: that's exactly what we were looking for.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;however, there seems to be big problems with the infrastructure available at the moment. For example, there is absolutely no company in South Africa that locally provides Ruby on Rails hosting and from what it seems, there's a huge demand for it [ &lt;span style="font-style: italic;"&gt;market gap to be filled, anyone?&lt;/span&gt; ].&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;almost none of the blogs we've crawled had topics related to mobile devices [ &lt;span style="font-style: italic;"&gt;the quite present and certainly future of human communications&lt;/span&gt; ].&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;finally, we found out that there were a few startups with products already online but no-one and when we say no-one, [ &lt;span style="font-weight: bold;"&gt;forget about the few thousands users&lt;/span&gt; ], we really mean no-one knows about them: there are almost no reviews written on them, they are not indexed by popular aggregators [ e.g.: &lt;a href="http://www.technorati.com"&gt;Technorati&lt;/a&gt; ], they hardly appear in google searches and one has to be really lucky to stumble upon them.&lt;/li&gt;&lt;/ul&gt;So, to sum up, the knowledge exists, but putting it to use and coming up with innovative ideas / ways of utilizing it seems to be a problem.&lt;br /&gt;&lt;br /&gt;We took our somewhat quick research a bit further by comparing what is being done here in South Africa to enable and foster the development of Internet- startups compared to a place like the  Silicon Valley in the US [ &lt;span style="font-weight: bold;"&gt;don't kick me on this: we believe that to progress, one has to compare him/herself with the best&lt;/span&gt; ]. The following is a list of the things that we believe are missing here in SA:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A place where smart people like to work, study, live and innovate, possibly close to a university environment.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Universities / Educational Institutions that provide a safe environment (sort of like a hub / incubator) for startups to actually start and grow a bit instead grad students solely focusing on academic work. Check out &lt;a href="http://www.stanford.edu"&gt;Stanford University&lt;/a&gt; as an example of what we mean.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;An educational system that teaches and promotes the entrepreneurial spirit (Have you ever seen any entrepreneurship semester course in any of the local universities brochure?).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Venture Capitalists that do not necessarily have the face or logo of a bank stamped on them.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;There are many more things that we could highlight but we think the above list is sufficient and quite encompassing of the problems we currently face.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;So, if we do acknowledge that there is a problem, we obviously aren't going to wait for a 3rd party to come and solve it, well at least Charl and I thought we wouldn't wait. In order to start solving most of the problems above, we thought that there is a need for more communication. Not exactly an established entity to do that but just a group of people with good will to get things working. Our proposal is as follows:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;In order to get things going, we geeks need to meet a lot more often. We need to start sharing ideas (don't get us wrong: blogs and comments are great! But being face to face dramatically changes the context of things), working together and all in all having the sort of community creative fun that we currently does not seem to exist.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;These meetings, we believe need to be different from the ones held by usual local Linux users groups. It has to be more technical, more focused without the need to for example use 'normal words' just so that non-acquainted participants understand what is being discussed.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The format that we are looking at will be similar to those of code camps, bar camps, mobile-mondays and other geek meetups that already exist the world over.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The subjects will range from anything web-related including standards, coding, designs, ideas to rich client platform applications, all the way to mobility and studies of emerging markets where products developed here in South Africa could hit really big.&lt;/li&gt;&lt;/ul&gt;The main objective? Solve the problems highlighted earlier. In simple terms, one could put it this way: if lots of smart people congregate into one place and start doing smart and creative things and solving problems, the outcomes will be greater gains in terms of advancement of technology, of standards and so on, and based on those, the creation of businesses that surely could rival those created in similar environments.&lt;br /&gt;&lt;br /&gt;Obviously, we would like to start somewhere. And we believe that now is the ripe time to get things rolling. But first, we'd like to hear from the community out there and obviously collaborate with everyone on getting these up and running. Therefore, your thoughts, comments, contributions are the most welcome.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;The Groovy Labs team&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-6034936405139602891?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/6034936405139602891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2006/12/code-camp-bar-camp-foo-camp-mobile.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/6034936405139602891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/6034936405139602891'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2006/12/code-camp-bar-camp-foo-camp-mobile.html' title='Code Camp, Bar Camp, Foo Camp, Mobile Monday, Geek Meetup?'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-7888024338784284040</id><published>2006-12-21T12:36:00.000-08:00</published><updated>2009-10-05T01:18:36.628-07:00</updated><title type='text'>Christmas 2006 Season to-do list</title><content type='html'>I really love the fact that Christmas this year is on a Monday. This means that we actually get an extended weekend till Wednesday morning! It is a great opportunity to catchup on some things that I wanted to do but never had the time to start or to complete.&lt;br /&gt;&lt;br /&gt;The following is a list of posts that are coming up before the end of this year / festive season:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;How to build an Eclipse-based application&lt;/span&gt;: we will be looking at Eclipse RCP (Richi Client Platform). I will expose part of my experience as well as other related topics I've been working on such as the integration of an existing SWING application into an Eclipse RCP product.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;How to transform an Apache OJB XML mapping repository to a Hibernate one&lt;/span&gt;: we will be touching a bit on topics related to ORM (Object Relational Mapping) frameworks, why developers should use them, their advantages and possibly their shortcomings.&lt;/li&gt;&lt;/ul&gt;Apart from those 2 topics, there are a few more that I would like to write about, mostly RoR related ones. But I believe a lot on the divide and conquer methodology. Therefore, I will first concentrate on getting the above-listed ones done and then I'll move forward to producing a few more tutorials.&lt;br /&gt;&lt;br /&gt;I wonder what most people actually do during the festive season. For me, it's usually a time to catchup on things that I have left incomplete and to learn a bunch of new things: what else is there to do when you've got free time on your hands and you're a geek? :-P You tell me!&lt;br /&gt;&lt;br /&gt;The question for you guys out there is: as a geeks, what's your plan for this holiday season?&lt;br /&gt;&lt;br /&gt;Cheers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-7888024338784284040?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/7888024338784284040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2006/12/christmas-2006-season-to-do-list.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7888024338784284040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7888024338784284040'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2006/12/christmas-2006-season-to-do-list.html' title='Christmas 2006 Season to-do list'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-3352252137167430988</id><published>2006-12-21T12:18:00.000-08:00</published><updated>2009-10-05T01:18:36.638-07:00</updated><title type='text'>Ruby on Rails IDE for Windows</title><content type='html'>Lately, I have been working quite a bit in the Windows environment. Not my favorite, but sometimes we are forced to do certain things we don't necessarily like. Anyways, it's been more than a month since I have been solely developing in the Windows environment and most of my development purely focused on Ruby on Rails. I had found a very good Integrated Development Environment: &lt;a href="http://www.radrails.org"&gt;&lt;span style="font-weight: bold;"&gt;RadRails&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;RadRails is perfect for this kind of development. The IDE definitely helps writing clean code, create projects, import existing projects and work with WebErick and so on. However RadRails is based on Eclipse and a direct implication of this is that it is Java-based. If anyone has had some experience with Java, one thing that the person learns is that it is not the best when it comes to application performance. Although the hardwareI've been developing with was quite recent with all the latest performance options on it, RadRails turned out to be quite slow.&lt;br /&gt;&lt;br /&gt;I started looking for a better IDE. One that would give me the features I have gotten used to while working in RadRail but that was also a whole lot lighter on my CPU. I ran into RoRED, developed by Marcus Oblak from Plasmacode.&lt;br /&gt;&lt;br /&gt;RoRED is simple, beautiful, very light and downloadable even on a GPRS modem. It comes in the compact size of 817 Kbs, compared to the 65Mbs offered by RadRails. It's got features that are as cool as the ones offered by TextMate on OS X, plus the added benefit of being free.&lt;br /&gt;&lt;br /&gt;If you're a Windows user looking for the best editor for your RoR development, I'd suggest you download RoRED and give it a try.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;More information (including screenshots) on Plasmacode, RoRED and Marcus Oblak here: &lt;a href="http://www.plasmacode.com"&gt;&lt;span style="font-weight: bold;"&gt;http://www.plasmacode.com&lt;/span&gt;&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Cheers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-3352252137167430988?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/3352252137167430988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2006/12/ruby-on-rails-ide-for-windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3352252137167430988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3352252137167430988'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2006/12/ruby-on-rails-ide-for-windows.html' title='Ruby on Rails IDE for Windows'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-8497491137072268718</id><published>2006-12-14T19:13:00.000-08:00</published><updated>2009-10-05T01:18:36.648-07:00</updated><title type='text'>A few lessons about starting a startup</title><content type='html'>In my previous post, I had made allusion to some kind of startup that two friends of mine and I are ninja-moding. Obviously, being in Ninja-Mode does not mean we can talk about what we have been learning. Actually, the thing about a startup as I am currently learning it is that there is a constant need to express one-self in order to find some kind of relief from all the stress.&lt;br /&gt;&lt;br /&gt;Yesterday, as after I was done hacking some Ruby code, I started reflecting on what it actually took to start a startup and keep it on the path that had been determined by its founders. Here are in point form a few of the lessons I've been learning along the way:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The first and most important thing is to &lt;span style="font-weight: bold;"&gt;keep healthy&lt;/span&gt;! There are a couple of things involved here: exercise whenever possible (I would recommend an activity as simple as running for about 20 to 30 mns on a daily basis), and sleep! It seems most hackers have the tendency not to sleep a lot. I also can't sleep much and as I have described, I have bad sleeping habits. However, when hacking some cool utilities to be used by other computer geeks is one thing and produce software that users actually want  and like to use is another. In order to achieve the latter, it is imperative to have a clear and rested mind, through which good ideas can fuel.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The second lesson is related to t&lt;span style="font-weight: bold;"&gt;he ideas and the flexibility that the founders should have around those:&lt;/span&gt; so far we have come up with a bunch of things that we wanted to implement and everyday there would be a new idea in one of our minds. As time goes on, some ideas get refined while some others seem not to make sense anymore and literally die. Sometimes, ideas that we have, seem to require some radical changes in the direction that we have taken. I have found out that it is very important to be flexible enough to for example decide to totally scrap a feature or a product and restart with a new one. After all, we would not want to finish and offer a bad product fast when we could have taken more time and offer a really good (a.k.a fantastic) product: it is easier for customers to remember a bad product/service than the good ones. And when they do remember, the word spreads really fast.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;The 3rd lesson is related to &lt;span style="font-weight: bold;"&gt;reading (and doing lots and lots of it)&lt;/span&gt;: obviously as geeks, when we think about reading, we tend to be attracted a lot more to technical books. From my experience so far however, it is equally important to be well acquainted with business related matters as we are with technical ones. So for example, it is important to read marketing related books, to spend sometime every morning on CNN's business website as well as it is important to read books on information architecture, CSS 2.0 and so on. Finally, reading helps new startups to avoid making the same mistakes that others have made. A few months ago, somewhere I've read the following, which pretty much describes the point I was trying to make: "It is very hard to repeat a brilliant performance, but it is straightforward to avoid previous errors."&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;The 4th and final lesson I can think about is &lt;span style="font-weight: bold;"&gt;writing things down&lt;/span&gt;: ideas, thoughts and the lots have one trick that they keep on playing on us: they come and go. For some reason they do not stick to our memory and when they do, whenever we want to recall them they're appear to be very fuzzy and not as vivid as they were when we first had them. Which is why for projects, it is important to setup a Wiki where all the members of the team can jot down ideas related to the project and follow them up as they grow or change or get rejected. I would even advise the individual members of the team to walk around with a pen and small notebooks because ideas come up at the weirdest moments and it really is irritating not to be able to write them down right at that time. A good starting point for a Project's Wiki is &lt;a style="font-weight: bold;" href="http://www.devjavu.com"&gt;DevJavu&lt;/a&gt;. A member of our team stumbled upon it a few days ago and we have started putting it to use: it is exactly what we've been looking for.&lt;/li&gt;&lt;/ul&gt;There are obviously more lessons that we are learning on the way but those four seem to be the essential ones in order to get going and keep fueling the startup on a daily basis.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-8497491137072268718?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/8497491137072268718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2006/12/few-lessons-about-starting-startup.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8497491137072268718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8497491137072268718'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2006/12/few-lessons-about-starting-startup.html' title='A few lessons about starting a startup'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-405703036258882613</id><published>2006-11-07T13:43:00.000-08:00</published><updated>2009-10-05T01:18:36.659-07:00</updated><title type='text'>Restoring AddressBook.app contact entries</title><content type='html'>I will be focusing on a problem that a certain number of people on the &lt;strong&gt;&lt;em&gt;Mac OS X + iSync&lt;/em&gt;&lt;/strong&gt; platform face on a regular basis. First I will start by giving some examples of the cases that might make one want to restore AddressBook contact entries.&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);font-size:130%;" &gt;&lt;strong&gt;The inadvertent phone contact deletion example:&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;somtimes we make mistakes and delete certain contacts from our phones. Sometimes these are not our mistakes but the mistakes of other people who have played around with our phone. For example when you buy a new device and your friend is checking it out and she indavertently deletes an entry but does not even realize that she did. One way or the other, some important contact entries on our phones get deleted accidentally. And if you're like most Mac users, you probably iSync your phone with your computer's addressbook database and this means that those contacts will also get deleted there. So the next time you're looking for that number, it's neither on your phone, neither in your AddressBook database and all of the sudden, cold sweat and other panic symptoms start settling in...&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);font-size:130%;" &gt;&lt;strong&gt;The .Mac syncing example:&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;I have never really used .Mac myself. But I've heard horrible stories about it. This seems to be one of those areas where Apple still need to spend some engineering money and make it worth the price it asks for subscribing to the service. Anyways, one of the stories that keep on coming back and forth is that sometimes, while syncing with .Mac, iSync hangs and  for some strange reason deletes all contact entries in the AddressBook database it was syncing to .Mac. Users start panicking and don't always get the best of help from Apple's support service.&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);font-size:130%;" &gt;&lt;strong&gt;The "Howto" for Restoring your lost contact entries:&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;First of all, when iSyncing any device with your local databases, backups are created. However, those backups are not accessible and not easy to restore, at least for the "common" user. This is a guide on how to restore the backed up AddressBook database. The method is as follows:&lt;p&gt;&lt;/p&gt;- Make sure you're in Finder, if you're not sure what Finder is, just click on an empty space on the desktop of your operating system (Mac OS X is assumed to be your OS).&lt;p&gt;&lt;/p&gt;- Do the following key combination: "Command + Shift + G". In the textbox that appears, type the following: ~/Library/Application Support/AddressBook&lt;p&gt;&lt;/p&gt;- In the Finder window that opens, there will be a certain number of files and directories. The ones relevant to us are the files named AddressBook.data which represent your current addressbook database entries and AddressBook.data.previous, which is the backup made by iSync before things got ugly (referring to one of the two examples above).&lt;p&gt;&lt;/p&gt; - Before proceeding any further, it would be a good idea to make a backup of both files AddressBook.data and AddressBook.data.previous.&lt;p&gt;&lt;/p&gt;- Once the files have been safely backed up in another directory or maybe even on your USB Flash disk, rename AddressBook.data to something like AddressBook.data.7_Nov_2006 (the appended date is not necessary but is useful for future reference). We could have named the file AddressBook.data.my_current_manual_backup and it would not matter.&lt;p&gt;&lt;/p&gt;- Then rename the AddressBook.data.previous file to AddressBook.data&lt;p&gt;&lt;/p&gt;- The next step is to relaunch AddressBook.app and you should see your erased contacts back where they belong.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;span style="font-size:130%;"&gt;&lt;strong style="color: rgb(255, 153, 0);"&gt;To iSync or not to iSync, that is the question:&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;So now, your contacts are safely back into AddressBook.app and you can finally call that old friend of yours! However, you really loved that feature iSync provided you by keeping both your computer and cellphone and .Mac service up-to-date. After the last event, you're now really scared to try synchronizing again and wondering what you should do. Well I'd say, go ahead and sync away! But just before you do that, since the AddressBook contacts will appear as new data to any device or service you're syncing too, and since the behavior of iSync in that case is unpredictable, I would advise you make a quick backup that you can revert to before going ahead.&lt;p&gt;&lt;/p&gt;Such a backup can be done from within AddressBook.app itself and will not necessitate all the process we went through earlier. It should also be noted that you can sync without doing it and this is just an advisory one-time procedure just so that if things went wrong, you could get your contact entries back effortlessly.&lt;p&gt;&lt;/p&gt;Method for backing up your AddressBook:&lt;p&gt;&lt;/p&gt;- Launch AddressBook.app if it weren't already.&lt;p&gt;&lt;/p&gt;- Choose File menu =&amp;gt; "Back up Address Book..." option.&lt;p&gt;&lt;/p&gt;As you can see, the File menu also gives you the option to revert your AddressBook database to a previously backed up file.&lt;p&gt;&lt;/p&gt;Now you can safely go ahead and restart appreciating the joys of iSync + .Mac or iSync + "Freaking Cool Bluetooth Enabled Incredible Super Duper" cellphone. ;-)&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);font-size:130%;" &gt;&lt;strong&gt;Last note on the topic:&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;I've had quite some experience with syncing apps, the SyncML standards and a few other syncing related topics. None of them so far are perfect mostly because synchronization of data is still hard to achieve at the moment and most programming done out there are based on tricks and algorithms that break on certain rare conditions. So, when syncing, users should always keep in mind that something might go wrong. Actually, syncing is something I do often, but it's also one of those activities that worries me. So after every sync, I run quick checks to make sure that things that are supposed to be there are at the right place with the right attributes (cellphone number, emails, chat addresses, etc...) and so on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-405703036258882613?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/405703036258882613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2006/11/restoring-addressbookapp-contact.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/405703036258882613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/405703036258882613'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2006/11/restoring-addressbookapp-contact.html' title='Restoring AddressBook.app contact entries'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-1916175449321200833</id><published>2006-10-30T15:24:00.000-08:00</published><updated>2009-10-05T01:18:36.681-07:00</updated><title type='text'>I know "Ruby on Rails"</title><content type='html'>&lt;a href="http://www.flickr.com/photos/jpgeek/283981083/" title="photo sharing"&gt;&lt;br /&gt;&lt;img alt="" src="http://static.flickr.com/108/283981083_4bd1a5ba4e_m.jpg" style="border: 1px solid rgb(0, 0, 0);" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="http://www.flickr.com/photos/jpgeek/283981083/"&gt;Login&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Remember that part of the Matrix movie where Neo comes out of a "fast track" learning session of martial arts and says "I know Kung-Fu"? Well, I know RoR!&lt;br /&gt;&lt;br /&gt;Click on the screenshot to read the remaining of this post (source code of web-app has been made available for download).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-1916175449321200833?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/1916175449321200833/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2006/10/i-know-on-rails.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/1916175449321200833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/1916175449321200833'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2006/10/i-know-on-rails.html' title='I know &amp;quot;Ruby on Rails&amp;quot;'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-7011405797489539715</id><published>2006-10-21T10:26:00.000-07:00</published><updated>2009-10-05T01:18:36.670-07:00</updated><title type='text'>Choosing an implementation framework: huge dilemma</title><content type='html'>For the past few weeks, I and a friend of mine have been working on a few things related to our startup. At the moment, I cannot give much detail as we are still in Ninja Mode (a.k.a Stealth Mode). However, there are things that we need to discuss with the community out there. Just so that we sort of have a better understanding of what other people think are good practices and good solutions. So this post is the first of many more to come as we go about walking out of Ninja Mode and becoming a lot more exposed.&lt;br /&gt;&lt;br /&gt;The title of this post is a bit misleading. I have to say that we are still a bit far from starting real implementation of our ideas. However, we're advanced enough to start thinking about architecture, load balance, distributed services, testing, best practices, other quality assurance topics and so on.&lt;br /&gt;&lt;br /&gt;So, we've spent the most part of this week analyzing and researching languages, frameworks that will help us get up and running while at the same time providing us with some stability, a good components library, possibility of properly documenting our work and also while fitting into the whole Web 2.0, Ajax and all those other "kewl things" out there.&lt;br /&gt;&lt;br /&gt;Let's get into the substance of the post.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-size:180%;" &gt;&lt;span style="font-weight: bold;"&gt;PHP&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Eventually, we started by evaluating a technology we are familiar with and with which we have done a good amount of work over the past few years. PHP is a great scripting language. I have personally been using it for almost 5 years and it's been a fantastic experience. It had enabled me to develop web applications that I wouldn't have dreamed of if it weren't for it. Besides that, I remember when I started with PHP. It took me about 5 working days to build a complete content management with it. At the time I didn't know the language at all but this shows that the learning curve is almost non-existent. Finally, after such a long experience with PHP and many things that I've seen colleagues do with it and things that I've accomplished with it, I can say that it's been the most flexible language I ever got the chance to play with. However PHP has many downside:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It is a hack language.&lt;/li&gt;&lt;li&gt;OOP support is very poor and totally hacked into the language. This makes OOP implementation dirty and non-consistent.&lt;/li&gt;&lt;li&gt;The language evolves too fast, is not always backward compatible and the amount of keyboard hammering required to get specific things done is massive!&lt;/li&gt;&lt;li&gt;Since PHP implementations do not seem to be stable at the moment and for the foreseeable future, it will be a mistake to build a company and its products on such technology.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);font-size:180%;" &gt;Java&lt;/span&gt;&lt;br /&gt;PHP has been a fantastic adventure. However, when I first met Java, I thought: oh my God! Java turned out to be the language of choice for most of my programming for the past 2 years. I absolutely loved it. The main reasons were as follows:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Structured language.&lt;/li&gt;&lt;li&gt;OOP support is fantastic: basically designs and architectures could be transformed into code without any modification whatsoever.&lt;/li&gt;&lt;li&gt;It's a language that enforces documentation. It supports UML and all those nifty things that we software engineers love.&lt;/li&gt;&lt;li&gt;Testing is easy and there is a good and mature framework available to do just that.&lt;/li&gt;&lt;li&gt;Developing for the web in Java is awesome. With the right architecture, software can be developed and plugged into any type of interface, whether it be pure HTML (JSPs), or RCP interfaces or even better Ajax-enabled interface. The huge advantage here is that, if your users don't like your interface, you can iteratively remodel it with a fast turn over and keep on building on it till it appeals to your users and all this without the slightest modification to application source code (business, logic, database, model, whatever it is called these days): what a beauty!&lt;/li&gt;&lt;li&gt;Finally programming in Java is an absolute pleasure: large amount of IDEs and Software Engineering environments available. Some of them have to be paid for, most of them are totally free and increase productivity quite a notch.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;However, despite all those advantages, Java can turn out to be quite difficult to work with as the application grows. I also had major concerns about performance in general and how the application will handle itself if we had to serve a good 7 to 10 million pages a month/a week/a day? And finally, if the startup grows and we had to recruit more programmers, java skills aren't as popular as one may think. Actually it seems that many people tend to stay away from it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;So, here's the situation: we had PHP and Java. We needed to pick one of them and that hadn't been easy. After further analysis, we realized that what we needed was a platform that had the best of both worlds while minimizing on their weaknesses. So we dug a bit further and the story goes as follows:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);font-size:180%;" &gt;Groovy&lt;/span&gt;&lt;br /&gt;groovy is a combination of what we needed: as flexible as PHP and with the embedded maturity of Java. More details on Groovy &lt;a href="http://groovy.codehaus.org"&gt;here&lt;/a&gt;. It seemed totally adequate and well maybe still is. We considered it for a while and were very excited about it. It had support for everything and I mean everything we needed. However we didn't take it further because of the following reason:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Groovy is extremely young. Community support is not big enough and almost no one knows about it. Eventually, it might grow and become very popular the way Ajax is today. Till then, it would be a risky decision to base our code on a language or technology which is still immature and for which we have no idea how long it will be around.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;RoR or Ruby on Rails&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;RoR? Sure why not? I bet most of the readers were already asking themselves why I haven't touched on the topic yet. Well we did have a look at RoR. Even better, we took it for a full 1-day test drive. Writing an application with it and understanding how things work in there. Here's what we have to say:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Although we might get criticized and flamed for saying this: there's too much magic going on in RoR. Of course it sounds totally stupid to say this when most "innovative and hot" startups seems to be using it and when it increases productivity so much. However, we're engineers (albeit still undegrads in Uni) and even better we're pure computer animals, total geeks and this makes us do one thing: we don't like to relinquish control of our code to some scripts and background magic.&lt;/li&gt;&lt;li&gt;Due to the "magic" discussed earlier, it is difficult to customize things. The moment we start deviating from what the "framework" wants us to do, we will run into serious problems that will turn to be quite counter-productive.&lt;/li&gt;&lt;li&gt;RoR can support a set of simplified data models but from what we've seen, the moment the data models turns out to be very complex, RoR performs quite badly.&lt;/li&gt;&lt;li&gt;We're looking into building a product that can be used by anyone in any language. This means that we need full internationalization (localization?) support as well as a few other things in which RoR or should I say Ruby fails.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;All in all, unless we writing an application as simple as a Blog or a ToDo list or whatever, RoR has been out of our choice list.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;So here we are, back at level 0 of the choice game. The digging continued and here's what we've come up with at last.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);font-size:180%;" &gt;&lt;span style="font-weight: bold;"&gt;Python&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;As mentioned earlier, we need PHP flexibility and power, Java's structure and maturity and an overall clean language. Although we didn't like RoR, we sort of liked Ruby. So we decided to look into something that had the best of all three worlds to offer and that's when Python came up.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Python is structured.&lt;/li&gt;&lt;li&gt;Python magnificiently supports OOP and the core of Python is OOP. No hacks here as in PHP, no Java primitive data types; just real pure OOP.&lt;/li&gt;&lt;li&gt;Python will allow us to port our design and architecture straight into code: Java benefit!&lt;/li&gt;&lt;li&gt;Python supports shell scripting (running background processes on the web server? Absolutely lekker!)&lt;/li&gt;&lt;li&gt;With mod_python, we can develop for the web without a problem.&lt;/li&gt;&lt;li&gt;Python just like PHP does not force developers into using specific frameworks although there is a bunch of them out there: this is good. I don't really trust frameworks or don't like being constrained by them.&lt;/li&gt;&lt;li&gt;The Python learning curve is non-exisitent. Python can be picked up in a matter of a couple of hours past midgniht and a cup of coffee. ;-)&lt;/li&gt;&lt;/ul&gt;So as it seems to suggest, Python might be the way to go. However, we are still evaluating it. We are planning to take it for a test-drive sometime next week and see how it performs. Hopefully things will go well. However, if it turns out that we do not like Python, we will be forced to fall back onto PHP. Which is not bad but we will miss the cleanness offered by Python and Java.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Anyways, we wanted to put this out there, let you guys comment on it and give us your opinion and maybe if you've had experienced this dilemna before, let us know how you solved it, what your criteria were for the final selection, etc...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Regards.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-7011405797489539715?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/7011405797489539715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2006/10/choosing-implementation-framework-huge.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7011405797489539715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7011405797489539715'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2006/10/choosing-implementation-framework-huge.html' title='Choosing an implementation framework: huge dilemma'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-2674371161819760315</id><published>2006-09-26T12:21:00.000-07:00</published><updated>2009-10-05T01:18:36.690-07:00</updated><title type='text'>Image-enabled query / search</title><content type='html'>Search engines have come a long way since the beginning of the Web. However, all search related problems have not yet been solved. A good example would be natural language search. Natural language search or query is the kind of query expression we use in our everyday communication. A good one is for example a child asking her mom whether she's seen the cat: "Mom, have you seen my cat?". Of course, search engines not being involved in individuals' home affairs, they would not be able to provide an answer to such a question. So a more relevant one would be: "Where can I buy an original edition of Romeo and Juliet?". This for example is a query that a [good] search engine ought to be able to give results to. However, this kind of queries are not yet understandable by the current search engines on the market. It is my understanding however that there is tremendous research being done for making search engines more supportive of this kind of query.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That said, Image-Enabled Search or IES for short is the kind of search capability I have always dreamed would one day be available in search engine software.&lt;br /&gt;&lt;br /&gt;Research has shown that images are much better understood, stored and interpreted by the human brain than words. That is the main reason why for example in engineering and in the IT industry, people rely a lot more on diagrams, pictures, schemas than written text.&lt;br /&gt;&lt;br /&gt;Also, it seems that when we recall an object or a person or an animal from our memory where it had been stored in both picture and word formats, we seem to remember the picture of it much better than the word or expression associated with it. Actually, sometimes we don't even remember the words at all.&lt;br /&gt;&lt;br /&gt;Now, imagine that you had pictures of an object or photos of a person or celebrity or anything else on your computer. Imagine that the picture file had a random name and that there was no way you could associate that name with the picture or the photo. A good example would be a photo of let's say "&lt;a href="http://www.imdb.com/name/nm0607865/"&gt;Emily Mortimer&lt;/a&gt;" with a file name of &lt;span style="font-weight: bold;"&gt;1234frijld980_lop.jpg&lt;/span&gt;. Imagine that your in brain, you sort of remember having seen her somewhere but you really don't remember that she is Emily Mortimer.&lt;br /&gt;&lt;br /&gt;Now, think about the fact that you have an Internet connection with access to great search engines (Yahoo, Google, Ask.com, whatever your poison is) that could have helped you find out more about the photo, except that as we discussed earlier you do not know or remember the name "Emily Mortimer" and cannot provide that as a search query. The question is, what's the use?&lt;br /&gt;&lt;br /&gt;Now, just as for Natural Language Queries, wouldn't it be great if you could submit the photo or picture file you have as query and get the same results you would normally get after a normal word or expression query? Wouldn't it be great if you could submit file &lt;span style="font-weight: bold;"&gt;1234frijld980_lop.jpg&lt;/span&gt; to Google and get results back? Well that is an idea I've been thinking about for almost a year and that in my opinion is what Google Image is missing.&lt;br /&gt;&lt;br /&gt;I am not really sure what it would involve in terms of software design, algorithms, search logic and so on. I have not even done any research on the subject. For example are pixels from a particular digital picture / photo unique? If they were, would that help? How about the lighting, the contrast, the saturation etc... Is there really a way of building such a software? Let's agree that there was; the submitted picture query would be compared to milliions if not billions of other pictures in a database built through crawling (an infrastructure already exists for that kind of database: &lt;span style="font-style: italic;"&gt;Google Image Search&lt;/span&gt;) and once a corresponding or a "likely to be" picture is found, words and expressions related to that picture would be returned as a response to the query. The question would be how long would that take? Knowing that an average Web user cannot wait for more than 15 seconds for a page to load, the underlying algorithm for such a search engine would have to be extremely fast and efficient.&lt;br /&gt;&lt;br /&gt;I have never worked with images, I don't even know how it would be possible to algorithmically define a concept such as "likely to be" when it comes to images. This might be all Technological Utopia but things have been done that were deemed impossible. Whenever I have time or get a long break from school work, I would do some serious research on this but otherwise, I am just throwing this out in the wild for anyone to think about it and even come up with a piece of code that solves the problem.&lt;br /&gt;&lt;br /&gt;In the end, if one takes his/her imagination a bit further, once the problem has been solved with images, the same principle could be applied to other things such as audio and video files. For example submitting a small piece of recorded voice to a search engine and get details of the artist or person who was recorded. The possibilities are endless....&lt;br /&gt;&lt;br /&gt;I believe that computer technology (hardware and software) has come to a great level of advancement although more remains to be discovered, implemented and advanced. I  also believe that the future of technology in general would be based on &lt;span style="font-weight: bold;"&gt;Users &lt;/span&gt;and not &lt;span style="font-weight: bold;"&gt;Machines&lt;/span&gt;. If we, as IT professionals, researchers, inventors and students cannot make the machines and what runs them more user-friendly and user-oriented, eventually, our discoveries and inventions would amount to nothing (well almost to nothing).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-2674371161819760315?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/2674371161819760315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2006/09/image-enabled-query-search.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/2674371161819760315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/2674371161819760315'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2006/09/image-enabled-query-search.html' title='Image-enabled query / search'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-7962157593069604496</id><published>2006-09-07T09:42:00.000-07:00</published><updated>2009-10-05T01:18:36.700-07:00</updated><title type='text'>Using the Samsung SHG-D800 as Bluetooth GPRS data modem</title><content type='html'>If you're reading this after a Google search, it probably means that you had the same problem as I did: you bought a Samsung D820 or D800 or D600 (basically a Samsung from the SGH-Dxxx models) and with your Mac running OS X, you could not use it as a Bluetooth GPRS/EDGE data modem. You are now kicking yourself and thinking about returning the phone to get a Good Ol' Nokia. Well do not kick yourself, do not return the phone and fear not because there is actually a solution.&lt;br /&gt;&lt;br /&gt;Step 1: go to &lt;a href="http://timhatch.com/projects/t509-osx/"&gt;Tim's Samsung T509 Project page&lt;/a&gt;. Scan the page quickly and get the link to download the modem script Tim hacked for his T509 phone. I am currently using the 0.1 version of the script.&lt;br /&gt;&lt;br /&gt;Step 2: once the script has been downloaded, unzip the file. Using one of your text utilities, since we're talking about OS X I believe TextEdit would do just fine, open the unzipped file.&lt;br /&gt;&lt;br /&gt;Step 3: if you've never dealt with modem scripts before, fear not. What we will do is very easy and fool-proof. Find the following line: &lt;span style="color: rgb(255, 0, 0);"&gt;write "AT+cgdcont=1,\34IP\34,\34^1\34\13"&lt;/span&gt;, copy it to the clipboard and then comment it out by placing a "!" in front of it. At this point, the line would look like this:&lt;span style="color: rgb(255, 0, 0);"&gt; !write "AT+cgdcont=1,\34IP\34,\34^1\34\13"&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Step 4: using your carriage return, go to the next line and paste the code that you've copied earlier onto the new line. In that line of code, replace the &lt;span style="color: rgb(255, 0, 0);"&gt;^1&lt;/span&gt; by the name of the APN of your wireless network provider. For South African readers and since we're in South Africa, here's the list for the APN of the various providers:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;MTN's APN: internet&lt;/li&gt;&lt;li&gt;Vodacom's APN: internet&lt;/li&gt;&lt;li&gt;CellC's APN: internet&lt;/li&gt;&lt;li&gt;Virgin Mobile's APN: vdata&lt;/li&gt;&lt;/ul&gt;For readers not using any of those networks call your service provider or check out &lt;a href="http://www.taniwha.org.uk/gprs.html"&gt;Ross Barkman's GPRS page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Back to the script, at this point, assuming that Virgin Mobile is the network provider, the line of code would now look like this: &lt;span style="color: rgb(255, 0, 0);"&gt;write "AT+cgdcont=1,\34IP\34,\34&lt;span style="font-weight: bold;"&gt;vdata&lt;/span&gt;\34\13"&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Step 5: save the file, close the editing program. From the Finder, open &lt;span style="color: rgb(255, 0, 0);"&gt;/Library/Modem Scripts/&lt;/span&gt; and  drag or paste the file in that folder.&lt;br /&gt;&lt;br /&gt;Step 6: from this point on do the following:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Pair the Samsung cellphone with the OS X computer system if it isn't already.&lt;/li&gt;&lt;li&gt;Go to System Preferences : Network : Bluetooth : Bluetooth Modem.&lt;/li&gt;&lt;li&gt;Select  "Samsung T509 tmo". Uncheck  "Enable error correction..." and "Wait for dial tone...".&lt;/li&gt;&lt;li&gt;Go to TCP/IP tab. Click "Configure IPv6". Select "Off".&lt;/li&gt;&lt;li&gt;Go to the PPP tab.&lt;/li&gt;&lt;li&gt;Enter the name of your service provider.&lt;/li&gt;&lt;li&gt;Leave the "Username" and "Password" fields blank.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Enter &lt;strong style="color: rgb(255, 0, 0);"&gt;*99#&lt;/strong&gt; as the phone number.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Hit the "Dial Now" button.&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Step 7: that's about it! We're done.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;References&lt;/span&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Tim Hatch's Samsung T509 Modem Script Project: http://timhatch.com/projects/t509-osx/&lt;/li&gt;&lt;li&gt;Ross Barkman's GPRS Info Page: http://www.taniwha.org.uk/gprs.html&lt;/li&gt;&lt;li&gt;Samsung SGH-D820 User Manual&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Lots and lots of Googling: http://www.google.com :-)&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Glossary&lt;/span&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;APN: Access Point Node&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-7962157593069604496?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/7962157593069604496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2006/09/using-samsung-shg-d800-as-bluetooth.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7962157593069604496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7962157593069604496'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2006/09/using-samsung-shg-d800-as-bluetooth.html' title='Using the Samsung SHG-D800 as Bluetooth GPRS data modem'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-3646472973718215906</id><published>2006-07-05T02:23:00.000-07:00</published><updated>2009-10-05T01:18:36.710-07:00</updated><title type='text'>Interesting current reads</title><content type='html'>At the moment, I am on vacation and totally embedded in the following books (that by the way I highly recommend):&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;TECHNICAL&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Speed you your site - Web site optimization&lt;/b&gt; by &lt;i&gt;Andrew B. King&lt;/i&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Mobile web services&lt;/b&gt; by &lt;i&gt;Ariel Pashtan&lt;/i&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;JUST FOR FUN&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Nine minutes Twenty seconds&lt;/b&gt; by &lt;i&gt;Gary M. Pomerantz&lt;/i&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Most of those books can be found on &lt;a href="www.amazon.com" target="_blank"&gt;AMAZON.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-3646472973718215906?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/3646472973718215906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2006/07/interesting-current-reads.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3646472973718215906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3646472973718215906'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2006/07/interesting-current-reads.html' title='Interesting current reads'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-6392391878746463712</id><published>2006-07-05T01:27:00.000-07:00</published><updated>2009-10-05T01:18:36.719-07:00</updated><title type='text'>Google Video Files Playback</title><content type='html'>So this morning around 1 am, I decided to have a look at Google Video. Downlaoded the software on the Mac, searched for some interesting videos (Google TechTalks is one of my favorite categories) and downloaded a few of them.&lt;br /&gt;&lt;br /&gt;What I like about it is that it's very simple and fast. I do regret the fact that it cannot work over a SOCKS proxy though. For what I have mostly seen on most software I've recently downloaded, people always seem to forget to add an option for SOCKS proy servers. This results in incomplete software as some options have been left out!&lt;br /&gt;&lt;br /&gt;So anyways, the Google Video application downloads the choosen videos and play them while the download is done in the background. The videos are stored on the user's computer for later viewing.  &lt;br /&gt;&lt;br /&gt;Two things though:&lt;br /&gt;&lt;br /&gt;1 - Playlists aren't greatly supported (there's some kind of option for that but nothing great compared to other video playback software I am used to).&lt;br /&gt;&lt;br /&gt;2 - Some video options such as "Play faster or slower, image capture, sound equalizer" are missing. &lt;br /&gt;&lt;br /&gt;3 - The videos are stored with a "gvi" extension. Making it hard to play somewhere else (in theory that is).&lt;br /&gt;&lt;br /&gt;So to sum it up: we can get great videos for free but for most of them, all we can do is watch and little work can be done on them.&lt;br /&gt;&lt;br /&gt;I did some googling and fount out that in fact many people or software companies have written software that would enable users to convert GVIs into AVIs and so on. Some of them are free but most of them are sharewares that users would end up paying for.&lt;br /&gt;&lt;br /&gt;Like I said earlier, the fact that the files can only be played by the Google Video application is only a theory. When it comes to videos, what matters the most are the CODECs. If you've got the appropriate codec, you can play a video that has been encoded in its format.&lt;br /&gt;&lt;br /&gt;I also thought that in the current age of software component reuse, it would be a waste to rewrite existing components just for little piece of software, unless of course Google was coming up with a better codec than the existing ones. What I am trying to get at is that if we tried to play GVIs in a generic player that would function with all the codecs installed on a particular system, things should work as expected.&lt;br /&gt;&lt;br /&gt;One of the best video playback applications on Mac and Windows systems at the moment is VLC &lt;a href="www.videolan.org/vlc" target="_blank"&gt;http://www.videolan.org/vlc&lt;/a&gt;. I created a playlist there with all the GVI files I downloaded and it played! Besides just playing, I could run all the functions I would use on normal videos with the application.&lt;br /&gt;&lt;br /&gt;My 1st point is: people buying conversion software to do the same from companies producing those are being totally ripped-off.&lt;br /&gt;&lt;br /&gt;My 2nd point is: computer users in general should try and know their systems better than they currently do and believe it or not: this is one of the biggest problems of the computer age. People buy systems that can do amazing things but only use the tip of the iceberg and that's absolutely sad.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-6392391878746463712?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/6392391878746463712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2006/07/google-video-files-playback.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/6392391878746463712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/6392391878746463712'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2006/07/google-video-files-playback.html' title='Google Video Files Playback'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-8320493906448499632</id><published>2006-05-21T11:19:00.000-07:00</published><updated>2009-10-05T01:18:36.730-07:00</updated><title type='text'>Am selling!</title><content type='html'>Yeah, the time has come to move on, clean up stuff from the past and say hello to the present. Plus, I am a little bit broke right now ( :-) ) so am selling. The worse is, am actually selling the best and top of the range of my equipments. It's absolutely terrible and yet I don't feel any pain at all. Have I gotten to the point where people get totally immaterialistic and really don't care about their belongings anymore? Maybe.&lt;br /&gt;&lt;br /&gt;Today, my phone disappeared, I had forgotten it in a cab (I eventually got it back) but for some reason, I wasn't worried at all. I was way more worried about my data than the phone itself. Most of my friends couldn't believe how calm I was. Actually they were the ones who made sure I got the phone back.&lt;br /&gt;&lt;br /&gt;Anyways, back to the sales. Am currently getting rid of the following:&lt;br /&gt;&lt;br /&gt;- 12" Apple Powerbook G4 (1GHz PPC with 768 MBs DDR SDRAM and 60GB HDD)&lt;br /&gt;- Sony Ericsson P910i&lt;br /&gt;- Giga Pack PSP with 2 Games (Need for Speed Most wanted and Grand Theft Auto Liberty Cities)&lt;br /&gt;&lt;br /&gt;Am not too sure how many South Africans read this blog but if any of my readers are South Africans and are interested in any of the imtes above, send an email to "geekcraze [at] yahoo [dot] fr".&lt;br /&gt;&lt;br /&gt;Will be updating on the blog as the items are sold and let you all know what remains and what's gone already.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-8320493906448499632?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/8320493906448499632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2006/05/am-selling.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8320493906448499632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8320493906448499632'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2006/05/am-selling.html' title='Am selling!'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-3065162444611815931</id><published>2006-02-28T10:06:00.000-08:00</published><updated>2009-10-05T01:18:36.740-07:00</updated><title type='text'>Hard way or Easy way?</title><content type='html'>That's a question a good number of developers ask themselves from time to time, isn't it? I've been learning about Jabber lately. Very interesting and exciting stuff. As a Java programmer, I am more insterested in Java related APIs than others. I am currently reading the XMPP RFC 3920. I've been reading it for a while and been implementing some of the stuff in Java and today, I discovered the exisitence of a Pure Java API that does most of the work. The API is known as Smack and is available on &lt;a href="http://www.jivesoftware.org/smack/" target="_blank"&gt;&lt;b&gt;Smack&lt;/b&gt;&lt;/a&gt;. The cool thing about the API as written on its website is that the developer does not need to know anything about XML in general, XMPP XML protocol in particular. This is very nice when there is a need to implement a client or when some other serious work is undergoing that will be using the Jabber protocols. I downloaded the API and found out that I could use it quite easily.&lt;br /&gt;&lt;br /&gt;If I decide to use the API, I will not have any idea of what is going on in the background apart from the front code that I am seeing as a programmer. This means that I will probably end up stop reading the XMPP Specs and just focus on developing the software I need. It also means that I spend less time developing my product and get to the result really fast. That's fantastic!&lt;br /&gt;&lt;br /&gt;On the other hand, the XMPP Specs are very interesting and knowing them allow developers to use the protocols in new and innovative ways that do not necessarily related to IMing. Besides that, it gives more insight to developers on how to create their own protocol subsets and encapsulate them in the existing Jabber protocols. This is very nice for example when building software that needs messaging capabilities in one way or the other.&lt;br /&gt;&lt;br /&gt;Now the hard question is: should I be a geek and study the whole XMPP Specs or should I be a developer needing to get on with his work really fast?&lt;br /&gt;&lt;br /&gt;I have no idea what to do yet. However, I will keep on reading the specs for now and once I have made a decision, I will be writing an update to this post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-3065162444611815931?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/3065162444611815931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2006/02/hard-way-or-easy-way.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3065162444611815931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3065162444611815931'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2006/02/hard-way-or-easy-way.html' title='Hard way or Easy way?'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-3341551694344299426</id><published>2006-02-25T01:55:00.000-08:00</published><updated>2009-10-05T01:18:36.753-07:00</updated><title type='text'>Layman's review of the PSP Platform</title><content type='html'>Ha! I've now got something to write about. I know a bunch of people have been asking me to restart writing but I've never stopped in the first place. I just don't write anything if there is nothing to write about. The tech world seems to have been kind of dull since the beginning of this year and  it probably will pick up again around May-June, then I will probably have many interesting topics to write about.&lt;br /&gt;&lt;br /&gt;Anyways, I got myself a Sony Playstation Portable yesterday. I've been thinking about it for a while now but it is only on Thursday that I got really convinced that I should get the machine.&lt;br /&gt;&lt;br /&gt;To start with, on the South African market, there are two options to choose from:&lt;br /&gt;&lt;br /&gt;1- The Value Pack, which is the usual Sony PSP box with 32 MBs Memory Stick Duo and nothing added to it.&lt;br /&gt;&lt;br /&gt;2- The Giga Pack, which comes with 1 GBs Memory Stick Duo Pro and one Free game to choose between Need For Speed Most Wanted, King Kong and a few others I quite do not remember.&lt;br /&gt;&lt;br /&gt;I actually didn't know about the Giga Pack when I went to get mine but heard about the deal and it was just slightly more expensive than the Value Pack and largely less expensive than buying a separate 1 GB Memory Stick Duo Later and with the free game option, I didn't think twice.&lt;br /&gt;&lt;br /&gt;What you will find in the box, depending on the pack that you get are as follows:&lt;br /&gt;&lt;br /&gt;1- In all packs: PSP, Battery Pack, Headphones with Remote Control, AC Adaptor, Pouch, Screen Cleaning Cloth, UMD Software (containing game demos, some music video, the Spiderman movie and some System Software updates), Printed Materials.&lt;br /&gt;&lt;br /&gt;2- Specifically in the Value Pack: Memory Stick Duo (32 MB) and a Wrist wrap cord.&lt;br /&gt;&lt;br /&gt;3- Specifically in the Giga Pack: Memory Stick Duo Pro (1 GB), a PSP Stand and a USB Data Cable.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The system itself&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;It took me about 3 hours to charge the battery to the fullest. Usually from other reviews it would take about 2 hours and half but I was configuring mine and learning about the system while charging it. That is probably the reason why it took so long. If you buy a PSP at the moment, there are high chances that you will be running the 2.0 1 System Software. Some people like it, some other don't. The main reason being that every time Sony had released updates, the new systems would make sure that homebrew software wouldn't be able to run on it. Of course, many people don't like it and have downgraded to System Software 1.5. There is currently a release of the 2.60 System software on the official website (www.yourpsp.com).&lt;br /&gt;&lt;br /&gt;I don't intend to run homebrew software on my PSP? Why? Well I've had a look at what is available and to tell the truth, nothing quite like proper games built by professional gaming studios so really there is no point. However, I do not intend to upgrade to 2.60 either because it is buggy as hell from the reviews I've been reading in the blogsphere.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That said, let's talk about some of the interesting features:&lt;br /&gt;&lt;br /&gt;1- Wi-Fi capable. Can create ad-hoc networks for gaming with other PSP owners and can connect to a Infrastructure (also known as Access Point).&lt;br /&gt;&lt;br /&gt;2- Large Wide screen. If you have the Giga Pack, I bet you've realised that watching videos on this is much more comfortable than on an iPod Video.&lt;br /&gt;&lt;br /&gt;3- Possibility to Sync with your Mac is you're a Mac user like me. 3 Options are available for this: &lt;b&gt;&lt;a href="http://ipsp.kaisakura.com/" target="_blank"&gt;iPSP&lt;/a&gt;&lt;/b&gt;, &lt;b&gt;&lt;a href="http://www.nullriver.com/index/products/pspware" target="_blank"&gt;PSPWare&lt;/a&gt;&lt;/b&gt; and Manual Labor if you're that much inclined.&lt;br /&gt;&lt;br /&gt;4- Since it can synch with the Mac and also support WMAs format since update 2.6, it can be a good replacement for your iPod Shuffle 512MB or 1GB.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Let's talk about the UI. Very nice work indeed. I was quite impressed by it. The UI is very simple, not cluttered and contains only 6 main menu options:&lt;br /&gt;&lt;br /&gt;1- Settings,&lt;br /&gt;2- Photo,&lt;br /&gt;3- Music,&lt;br /&gt;4- Video,&lt;br /&gt;5- Game,&lt;br /&gt;6- Internet Browser.&lt;br /&gt;&lt;br /&gt;Photo: I haven't gotten interested in it yet. So I haven't looked at it at all.&lt;br /&gt;&lt;br /&gt;Music: I've played some music from there, not too bad. I like it.&lt;br /&gt;&lt;br /&gt;Video: I've played some of the videos available on the UMD that comes with the PSP. Not too bad. I like the fact that the user gets access to a video-specific control panel that can be used to do a bunch of interesting things.&lt;br /&gt;&lt;br /&gt;Internet Browser: This browser is much much better than anything I've seen on any modern phone, including my current Sony Ericsson P910i. I've tested Gmail and some of my other favorite sites with it: magnificient. The browser connects to the Internet through the Wi-Fi support of the PSP. So it could easily connect to my Airport Express, got configured through DHCP and I was online!&lt;br /&gt;&lt;br /&gt;Game: So far, I have only played the Need For Speed Most Wanted: the graphics where very nice. As good as when the game is played on a PC, this is to mean that the PSP has nothing to do with what we've known from the Gameboys. Usually it is possible to hotswap the UMDs. The system picks up whatever is in there. However, if you have a UMD Game disk in when the console is started, it will go straight to the game and let you play. Options are available to return to the home screen .&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The Other Accessories&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;- The Pouch: the design of the pouch is quite strange. If everything has been designed with so much care like the console and everything else seems to suggest, how come the console does not fit that well in the pouch? I am planning to actually buy in the future a new one.&lt;br /&gt;&lt;br /&gt;- The Earphones and its Remote Control: nice. I have to warn you though: right after using it, I hated it: the sound produced has been intentionally limited by sony to 90 Decibels. That's not too loud and you can basically hear external noise: not too good if you want to concentrate on the game or movie being played. I swapped it with that of my iPod: louder sound and makes sure you hear nothing of the outside world. I am not saying that the limitation of the PSP earphones are bad, but for most people, using earphones means cutting off what's happening around them.&lt;br /&gt;&lt;br /&gt;- The stand: very nice indeed. It makes the PSP stand out when on a desk. Perfect for showing it off.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Basically that's it. I will be writing a more technical review when I have spent much more time with the machine. My current review is that of someone who just wants to know about the machine on the surface, not much about what's hidden underneath.&lt;br /&gt;&lt;br /&gt;Final verdict: good work Sony!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-3341551694344299426?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/3341551694344299426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2006/02/layman-review-of-psp-platform.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3341551694344299426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3341551694344299426'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2006/02/layman-review-of-psp-platform.html' title='Layman&amp;#39;s review of the PSP Platform'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-5862098082911558085</id><published>2006-01-12T23:07:00.000-08:00</published><updated>2009-10-05T01:18:36.775-07:00</updated><title type='text'>Microsoft and the Mac platform</title><content type='html'>Once again it seems that Microsoft in its all time game of not supporting anything that is not Microsoft. In one of my earlier post last year, I posted a screenshot of the error I got when trying to view videos on MSNBC (&lt;a href="www.msnbc.com" target="_blank"&gt;www.msnbc.com&lt;/a&gt;). The response I got from the server was that I did not used the right Operating System. As I discussed in that previous post, usually you would have websites returning errors like "You do not have the right browser" but then saying that I am not using the right OS? I think Microsoft has gone way pass the borders of decency. But then again, their name is Microsoft and their middle name is "Fuck Y'all Who won't buy our product!?!" and they've always been like that and I think they will not change their strategies any time soon.&lt;br /&gt;&lt;br /&gt;I was not too bothered though at that time because if I cannot use MSNBC, I can always use other news websites and videocasts NO?&lt;br /&gt;&lt;br /&gt;However today, the matter has gotten worse. From what I've been reading this morning Microsoft will not support and develop Windows Media Player for the Mac platform anymore. Come to think about it, they stopped developing Microsoft Internet Explorer for the Mac platform after the first version of OS X. But who would be bothered, it is not like we do not have other alternatives to browse the Web and by the way, these alternatives are much much better (Opera, Mozilla, Safari and recently Flock which is also Mozilla based). If these did not exist, I bet one of us would sit down with a group of programmers and write a browser for the platform, so yeah, this is OK.&lt;br /&gt;&lt;br /&gt;However for the Windows Media Player software, there are a few problems: the number and biggest problem is that MS Media Player uses proprietary format and it will be a real challenge for hackers of the Open Source community to find a way into it. If Microsoft stops developing their Media Player for the Mac platform, well we probably won't be playing the latest WMV, ASX, WPL, etc... anymore. Of course most people would argue that we could still use software such as VLC (&lt;a href="www.vlc.org" target="_blank"&gt;www.vlc.org&lt;/a&gt;, but I have tried many times and with the latest version of VLC I could not get WMV version 3.0 files to play. What does this say? You'd say MPlayer? I'd say forget about it! It won't even play MPEGs properly! Of course with the many new upcoming format for digital entertainment files, we will probably be able to survive. However, this will create a greater gap between Windows (L)Users (read Loosers) and Mac Users, taking in account that the current gap is already big enough.&lt;br /&gt;&lt;br /&gt;Then again, we can survive and will do our best to survive: more Open formats are now being made available and that is a great thing. However, there is one more thing: it is believed that Microsoft will not support / develop Mac Office anymore after the next 5 years. Ooh Wowwow. This is incredible! I always thought that Microsoft was avid of money and wouldn't stop at anything to get it and anything would also be "support for Mac users now and for many years to come". Ooh well, why am I complaining anyways, IMHO the less there are people buying Micros*t products, the better No?. Considering this, I think this is the golden moment and opportunity OpenOffice should take advantage of on the Mac platform. I've been using Open Office for some time (since I got my Powerbook) and it miraculuously works well for me. I however think that the guys developing OpenOffice, apart from offering it's outstanding functionality need topolish it a bit more, sort of making it appealing for users who care about aesthetic of the software they're using: that is the one thing I miss about using Mac Office but hey, if MSh*t can do it, independant programmers / developers can surely do it better once the will is there.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To sum it up:&lt;br /&gt;&lt;br /&gt;in the new future, Macers (Mac users) should expect not to able to view Windows Media type of files anymore, nor to be able to access websites heavily designed and based on Microsoft products, and it is time to say good bye to Mac Office and say Hellllooooo to OpenOffice (downlodable for &lt;b&gt;FREE&lt;/b&gt; at &lt;i&gt;&lt;a href="www.openoffice.org" target="_blank"&gt;OpenOffice.org&lt;/a&gt;&lt;/i&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-5862098082911558085?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/5862098082911558085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2006/01/microsoft-and-mac-platform.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/5862098082911558085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/5862098082911558085'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2006/01/microsoft-and-mac-platform.html' title='Microsoft and the Mac platform'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-3055266484122466032</id><published>2006-01-12T06:12:00.000-08:00</published><updated>2009-10-05T01:18:36.765-07:00</updated><title type='text'>Which smartphone is right for your needs?</title><content type='html'>Today I was surfing up the Web and found a page where one can use a some measurements to determine what smartphone is right for him / her. I've spent about an hour on the page judging it and I think it's quite accurate. So I took the test and found out that the right phone for me would be the Nokia 9500. Quite funny though because a few days ago I got myself the SE P910i (yeah I know it's an old phone but then again it depends on everyone's need). The Nokia 9500 might be what I need, but the reality is this: I hate using small keyboards, I hate looking at small wide screens. Besides those factors, the phone is way to "tall", it's way too big and I don't think It can fit in the pockets of my jeans (yeah, the P910i does fit in nicely). Finally and this is the worse part, the Nokia 9500 does not have a touch screen, meaning that the user cannot Tap. With my use of Pocket PCs over the past few years, I have gotten accustomed to tapping on a screen and it works really well with the P910i. I can type a 3-page SMS or complete email very fast and it feels even more natural than the tapping of the Pocket as it supports natural pen writing which is equivalent to what we use in our daily lives.&lt;br /&gt;&lt;br /&gt;Anyways, from the test I took it looks like the Nokia 9500 is what I should have gotten myself but I really don't regret the SE P910i for the reasons above.&lt;br /&gt;&lt;br /&gt;How about you take the test and find out what Smartphone is really "Smart" for you?&lt;br /&gt;&lt;br /&gt;The URL is here: &lt;a href="http://3lib.ukonline.co.uk/grid.htm" target="_blank"&gt;http://3lib.ukonline.co.uk/grid.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy! And do not forget to post comments letting me know what the choice for you is! ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-3055266484122466032?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/3055266484122466032/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2006/01/which-smartphone-is-right-for-your.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3055266484122466032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3055266484122466032'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2006/01/which-smartphone-is-right-for-your.html' title='Which smartphone is right for your needs?'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-1520498997435559557</id><published>2006-01-10T23:50:00.000-08:00</published><updated>2009-10-05T01:18:36.786-07:00</updated><title type='text'>MS Windows on new Mac-Intels</title><content type='html'>Steve Jobs says that Apple will not stop MS Windows users from installing the OS on the new Mac Intels. You can read more about it here: &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.nytimes.com/2006/01/11/technology/11apple.html" target="_blank"&gt;http://www.nytimes.com/2006/01/11/technology/11apple.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On one hand, I think this is totally disappointing. The "Mac cult" might well be on its way to die because a Mac will not be specifically for "Macers" anymore and this can be dangerous for Apple (imagine computer shops buying MacBooks and iMac hardware but shipping them to customers as Windows machines and this might and will happen because Apple is putting no restrictions on the hardware). &lt;br /&gt;&lt;br /&gt;On the other hand this is a good thing for many people as well as for Apple: &lt;br /&gt;&lt;br /&gt;- for Switchers: this would be a good way to be able get used to the Mac and OS X while still being able to use their preferred operating system (Windows). However this might be a strategy used by Apple: make sure that users get gradually used to OS X and later on, produce chips that would not allow the use of Windows on the Mac-Intel hardware. &lt;br /&gt;&lt;br /&gt;- for people already using the Mac hardware: many times at work, school, and Game Lan parties, we are forced to use Windows based computers either for compatibility issues or just because as a programmer, one is developing software requiring DLLs, Windows registry and so on or even worse, because no computer not running Windows is accepted in certain work places. Those situations force many of us to either own 2 laptops or to constantly switch between computers at home and at work. The result: PIM data (contacts, emails, notes, calendar items) not in sync. Other problems arise when for example using hardware such as Windows based smartphones and Windows based PDAs, etc... With the new hardware, there is opportunity to own any secondary device, all working nicely with the same base station (new iMac or MacBook Pro) and just switching between Operating Systems depending on the situation (perfect for gamers, no compatibility issue in the workplace, etc...). &lt;br /&gt;&lt;br /&gt;- for Apple: by offering hardware on which any major Operating System can be installed (OS X, Windows, *Nix), Apple is being really competitive on that part of the IT market. If they play it right, it will probably jumpstart their sales to new heights. &lt;br /&gt;&lt;br /&gt;- Ooh and did I mention cost saving? Many people will complain that the new hardware being more expensive than usual notebooks. However the cost saving in owning two machines is much much greater. Think about it....&lt;br /&gt;&lt;br /&gt;As a conclusion: this is all still new for all of us and we will have to wait and see how Apple plays it's game. It's their arena, it's their show. However, they need to be careful about Microsoft. Although Microsoft does not necessarily produce the best software, they still have quite a large share of the market and they now have the chance to compete on the same ground as Apple software: the hardware. &lt;br /&gt;&lt;br /&gt;P.S.: I really dislike the new name (MacBook Pro). I mean Powerbook as a name used to make us -Powerbook Users- feel POWERful! But then again, they're not using the PPC architecture anymore so they had to find a new name. I am not too sure but I think the "Power" in Powerbook actually comes from the type of architecture they were using.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-1520498997435559557?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/1520498997435559557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2006/01/ms-windows-on-new-mac-intels.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/1520498997435559557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/1520498997435559557'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2006/01/ms-windows-on-new-mac-intels.html' title='MS Windows on new Mac-Intels'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-6241037330686698452</id><published>2006-01-02T22:26:00.000-08:00</published><updated>2009-10-05T01:18:36.797-07:00</updated><title type='text'>Google Mobile and Mobile Websites</title><content type='html'>So yesterday something happened. I was going to sleep and I remembered I had a quick search to do. At that time I was not "wearing" my Powerbook (I lately read that the word "use" is not enough to describe this anymore, hehehe). So I had to make the search using my handphone by connecting to Google Mobile through GPRS. So I did. However, although I was using Google Mobile, results that had been returned were not "Mobile websites". When one is using a smart handphone with the usual small screen, this is quite a problem. Think about it: the user does get the results but he cannot really visit the URLs that have been returned.&lt;br /&gt;&lt;br /&gt;So the question or suggestion is: would it be possible to have an option in Google Mobile to force the Google search engine to only return websites that can be viewed as well as are made for handphones? With such an option, the user can decide whether he wants mobile websites returned or just normal general websites. Then again, the guys at Google are quite smart and might have a hack like that I have no idea about.&lt;br /&gt;&lt;br /&gt;What do you think?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Update&lt;/u&gt;&lt;/b&gt;:&lt;br /&gt;One of my friends just called me about this post: it seems like there is actually something like that coming from Google. I believe i haven't paid much attention but when i logged back into Google Mobile I found out that there is "Mobile Web" search but at the moment it's in Beta edition. However after a few tests, it seems to work quite well. :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-6241037330686698452?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/6241037330686698452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2006/01/google-mobile-and-mobile-websites.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/6241037330686698452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/6241037330686698452'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2006/01/google-mobile-and-mobile-websites.html' title='Google Mobile and Mobile Websites'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-2454708170020764779</id><published>2005-12-30T21:26:00.000-08:00</published><updated>2009-10-05T01:18:36.807-07:00</updated><title type='text'>2005 going to 2006: new year's eve</title><content type='html'>Boy, no one would believe how stressed I woke up this morning. Today is the last day of 2005 that I and millions of people all over the planet would ever see. Somehow new year's eve has always stressed me out and this has been the case for the past few years. I haven't exactly been able to determine why yet but hopefully someday I will. I mean think about it, I go to bed and all of the sudden the next day it's a whole brand new YEAR!! Gosh, this is scary.&lt;br /&gt;&lt;br /&gt;Scary because things as fundamental as time are changing (2000 and 2001, 2001 and 2002, 2005 and then 2006), scary because I feel like am getting older and haven't accomplished as much as I thought I would have or scary just because this time of the year, for the past 6 years I've always been alone somewhere in a foreign country and not with my family around? I don't know and am not too sure. However leaving alone is a choice that I have made for myself and that's probably not a stress factor since I have gotten used to it by know (or so I think).&lt;br /&gt;&lt;br /&gt;Anyways, let's quickly review 2005. What have I done this year or accomplished at all?&lt;br /&gt;&lt;br /&gt;- The big thing that I think I have done for myself this year is this Blog. I don't remember exactly why I started one, was it the hype about it or the fact that I could find a place where I could say things and talk to other people all over the world without being restricted in my opinion and with the positive thought that someone else would read it and think: "oh my Gosh, this guy totally understands how I feel about this or that".&lt;br /&gt;&lt;br /&gt;- The other thing was that 2004 to 2005 has been a year for many changes in my life, some of them really good, some of them bad but I wouldn't complain because I believe and have seen many people around that have gone through more dramatic changes that probably have impacted their lives forever.&lt;br /&gt;&lt;br /&gt;- In 2005, many things happened in terms of technology. Things have changed from Companies publishing most of the stuff on the Web and pushing it towards the Internet populace to letting people actually publish on the Web and make it more interesting because most of what is read are opinions on a one person to another basis without the filtering wall of big corporations in between. Community website has had a whole new meaning. I remember the first community website I have ever gotten interested into (www.ryze.com) and the ones I am currently using with totally different concepts of user participation and of course the new concepts have literally sucked up crowds of surfers. Some good examples are www.flickr.com, www.last.fm, del.icio.us just to list the most popular ones. Then the other interesting thing is how AJAX (Asynchronous Javascript XML) has "resurfaced" and I am using resurfaced beacause XMLHttpRequest is an old thing. Except that from what I believe, no one has really found a good use to it except until now. The other great thing that I've seen this year is the rise of Web 2.0 (www.meebo.com, www.writely.com, etc...). The concept of Web 2.0 as I believe is to bring some more interactivity to the web using tools like Macromedia Flash (now Adobe... what?), Javascript, XML, Web Services and so on. However, calling these changes that have started showing up on the Web Web 2.0 as if it was a new version is quite misleading and of course we will see in the new future many corporations and small to medium size businesses jumping into it all to have part of the "cash" cake that it will all generate. Finally, we've got to talk about two amazing (IMHO) companies: Google without which the web as we know it wouldn't be the web anymore and Apple. Google has come up in this year with so many products and innovations that I think no search engine on the Planet (I unfortunately cannot say Universe  because I strongly believe in Extraterrestrial Intelligences and they might have developed technology that we don't even come close to) has can compete with Google. Apart from that, Google has invested a lot of money in countries like China where it's having a ragine battle with Microsoft. Apple (*grinning*) has done what Google has done but on the hardware side. I mean let's face it, they surely have a very small percentage of the market but with all their products, including OS X and the future move to Intel based processors, death might be looming above the heads of many of its competitors.&lt;br /&gt;&lt;br /&gt;- Now getting back on MY 2005 year, I think I've had the most fun ever. As a Programmer, I have truly grown up during the course of this year because I've learnt many things, I've applied those things and I have had the opportunity to be around some really smart people who helped me improve my thinking as well as problem solving processes and I can only be grateful for that. As a Person, things have been a bit tough here and there but mostly I've learnt from those experiences and hopefully will improve some of those aspects of my life I really need to work on. As a Social Person, I can't say I've changed much. I am still the person I was a few years ago, prefering to be by myself, and not much giving a damn about the opinion other people have of me and my lifestyle that practically revolves around computers and technology. I've been criticized a lot about that aspect of me but well like I said earlier, I don't really give a damn.&lt;br /&gt;&lt;br /&gt;- 2006 in just a few hours: well 2006, although I am really stressed about it should be a good year, I'd even say a fabulous year. At the beginning of the year I should be making a new addition to my family of gadgets that "I really need" (*grinning*) and that would be a 20 or 23 inch Apple Cinema Display. The main reason why I need this is because in the past few years, programming as we knew it (just using an editor as simple as Notepad or VI) has come to a new age where we actually need to run IDEs with many palettes all over the screen and this is quite close to tools used by graphic designers. And because in 2006 through 2007 I will be doing a whole lots of hardcore programming requiring profilers, advanced debugging tools, components and database toolboxes, I really need more screen real estate and a higher resolution. The next thing am planning to do is to travel a little bit around Southern Africa and hopefully some parts of Asia. This is the part of me that can't stay at one place for too long that is asking me to go around and see what else is available and how much more fun life could be elsewhere.&lt;br /&gt;&lt;br /&gt;- Finally, on the 3rd of January 2006, my blog would be a whole great ONE YEAR old!! Yeeeeeaah! I just read my posts of January 2005 and comparing it to now, I couldn't believe how much has ACTUALLY changed during the 2005 year. It is totally unbelievable and I think this is the importance of personal journals of any form: they help one keep track of time and the changes it might or might now have brought along.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And now that I am done with my small 2005 review, I wish you all Great and Blissful 2006 Year.&lt;br /&gt;&lt;br /&gt;=====&lt;br /&gt;JPGeek, for my last post for the year 2005.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-2454708170020764779?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/2454708170020764779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/12/2005-going-to-2006-new-year-eve.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/2454708170020764779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/2454708170020764779'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/12/2005-going-to-2006-new-year-eve.html' title='2005 going to 2006: new year&amp;#39;s eve'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-484836739053271429</id><published>2005-12-17T12:11:00.000-08:00</published><updated>2009-10-05T01:18:36.818-07:00</updated><title type='text'>The perfect Java IDE</title><content type='html'>So it's been a while since I have been looking for the perfect Java IDE. To tell you the truth, I have tried a myriad of them. I have tried IDEs such as IntelliJ 5.0, Borland JBuilder Enterprise Edition 2005 bundled with Borland Together Developer 2005, Oracle JDeveloper 10i, Eclipse 3.0 and of course because I am using a Mac, I also tried BBEdit and SubEthaEdit.&lt;br /&gt;&lt;br /&gt;To tell you the truth, the last 2 did not do a good job at giving me whatever I needed a good IDE to give me. In terms of the heavyweight IDEs, I particularly liked IntelliJ (for the amazing refactoring abilities), JBuilder (because of it's code profiling tool - Optimizit 2005 -) followed directly by Eclipse.&lt;br /&gt;&lt;br /&gt;However most of those IDEs are written in Java and although I have a pretty powerful computer with a 1.5Gbs of ram I still end up getting angry waiting for a window or intellisense code-complete to popup (Eclipse in particular is a big memory/CPU hogger - I tell you! -). I have spent lots of time looking for a really cool IDE that would be written in C++ or C instead of being written in Java and to this point I still do not understand why most Java IDEs are written in Java, thus requiring the developer to have a really powerful machine in order to do something meaningful.&lt;br /&gt;&lt;br /&gt;However I believe that my search is now over. Today I stumbled upon an article that was a tutorial about setting up VIM so that it makes java development a pleasure. I followed it and I have to tell you that I am switching completely. Following the tutorial, one actually gets VI to do stuff like proper java syntax highlighting, code complete, compilation of source files (using ant), javadoc referencing and all this in the fastest and most lightweight IDE ever! I am totally in love with it!&lt;br /&gt;&lt;br /&gt;If you're interested in reading the article and trying it out for yourself, here's the link to it:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://builder.com.com/5100-6370-5054618.html" target="_blank"&gt;Configure vi for Java application development&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I hope there are some guys out there who like me are tired of IDEs that are heavy on their hardware but still need something really decent for their java development projects and whom the above-cited article will be able to help.&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-484836739053271429?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/484836739053271429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/12/perfect-java-ide.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/484836739053271429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/484836739053271429'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/12/perfect-java-ide.html' title='The perfect Java IDE'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-7260193658571332019</id><published>2005-10-14T09:25:00.000-07:00</published><updated>2009-10-05T01:18:36.829-07:00</updated><title type='text'>AJAX or Asynchronous Javascript XML</title><content type='html'>OK, I've discovered lately that the Internet and namely the Web evolved without me knowing about it. I mean, seriously, school has kept me really really busy. But well, thankfully, there are those nights I spend away surfing the web and trying to learn new things. I've found something called AJAX: Asynchronous Javascript XML. I never heard of that platform before this week. And as anything XML, it got me attracted to it. I looked a little bit closer, read a few tutorials here and there and was marvelled by what this platform can be used to possibly do. I will talk about AJAX a bit later. But right now, I want to show you one of the best applications of AJAX I've seen so far. Check it out here: http://www.meebo.com.&lt;br /&gt;&lt;br /&gt;Enjoy! ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-7260193658571332019?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/7260193658571332019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/10/ajax-or-asynchronous-javascript-xml.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7260193658571332019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7260193658571332019'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/10/ajax-or-asynchronous-javascript-xml.html' title='AJAX or Asynchronous Javascript XML'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-2324202157112715039</id><published>2005-10-05T09:27:00.000-07:00</published><updated>2009-10-05T01:18:36.840-07:00</updated><title type='text'>Working for the big fish</title><content type='html'>When I first started with computers and was about 10 years old, Microsoft and Bill Gates where the best thing in the world: normal, they offered me a platform on which I could code (BASIC) and a pretty cool OS at the time (DOS). It was incredibly satisfying to spend nights trying to solve a mathematical problem from school using a computer. At that time and a few years later, for me ending up working at Microsoft someday was the DREAM. I had no idea whether I would ever achieve it but decided to give it a try.&lt;br /&gt;&lt;br /&gt;When I got a little bit older (16), I discovered Open Source and few other things that started to change my mind about that. However although I embraced the whole OS thing and Linux and what not, it was still clear in my mind that someday, as a good software developer / programmer and the right education, I would end up with a job at Microsoft.&lt;br /&gt;&lt;br /&gt;Then I got a little bit older and started understanding even more things. Things like what technology really was, what innovation meant and more than that, I started working with other alternatives (Apple OS 9.0 and OS X). After I've entered the sacred environment of "Applers", and started reading more and more on other technology and business related subjects, I discovered one thing: I discovered that I wanted to work in a company that fostered technological innovation and THAT was in NO CASE Microsoft.&lt;br /&gt;&lt;br /&gt;Time passed, I got older, my belief in Microsoft, their products and whatever "innovation" they babled about started fading dangerously. I've also heard rumours, whether these were the truth or not, I really had no idea. With the dream Microsoft job idea fading and my embracing of the OS culture, I just knew that the great Microsoft nerds/geeks culture I've heard about so much and read about so much as a kid was not for me. Worse, rumours became truth:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.businessweek.com/magazine/content/05_39/b3952001.htm"&gt;http://www.businessweek.com/magazine/content/05_39/b3952001.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I wouldn't really say that I am disappointed nor will I say that I am surprised. One thing that I've learnt from management is that big organizations sometimes become too big for their own good. It's just like a huge boat compared to a smaller one: turning the bigger one takes ages compared to playing around with the smaller boat. What I mean here is that big organizations the size of Microsoft tend not to succeed in adapting quickly to a new situation/business environment like startups and smaller organizations would.&lt;br /&gt;&lt;br /&gt;The Microsoft environment might still be great, but I think it totally depends on who you are , what you are looking for and whatever plans you've made for your life.&lt;br /&gt;&lt;br /&gt;For me, it's this simple: to really enjoy my work and give myself to it at a 250% rate (including sleeping under the desk and eating cold pizzas all week long :-D ), I need an environment that thrives with an innovation culture, new ideas and support from most stakeholders and possibly freedom to take things to a certain level no one has thought they could be taken to.&lt;br /&gt;&lt;br /&gt;So if my dream of working for the "big fish" has died and even died completely after the confirmation from the inner circle, what options do I have? Well quite a bunch:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;start my own startup (hopefully, but not sure whether I am 100% ready to deal with lots of management issues till I get a bit older and get more experience on that subject).&lt;/li&gt;   &lt;li&gt;work for a great startup (better for now since it will let me focus on what I like doing the most: software development / programming).&lt;/li&gt;   &lt;li&gt;work for other big fishes of the moment. Here there's a list to select from and hopefully be selected by: APPLE (would be perfect!), SONY (would be ok...), Google (Yeah!!!), Nokia (I still have some doubts about this one, but well let's see how they evolve).&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;An APPLE job would be nice. Actually, it would be perfect: being part of a team that creates and innovates as much as Apple does would be awesome. It's been almost a year and half since I've been looking at this option for after I graduate. I've even checked for possible internships: it however seems that the only way to get an internship at Apple is to be a US Citizen, which I think is fair enough (give a chance to the natives before considering other options, it is like that everywhere in the world, so I am not going to rant about this).&lt;br /&gt;&lt;br /&gt;There are possibly many other options I haven't looked at or considered yet, but there is still plenty of time ahead... And just as my view of Microsoft (bleh: The Road Behind) has changed over the years, let's see how it goes for with Apple, Google, etc...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-2324202157112715039?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/2324202157112715039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/10/working-for-big-fish.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/2324202157112715039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/2324202157112715039'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/10/working-for-big-fish.html' title='Working for the big fish'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-8762925152929880960</id><published>2005-10-04T16:03:00.000-07:00</published><updated>2009-10-05T01:18:36.851-07:00</updated><title type='text'>iPod Nano Keynote</title><content type='html'>I just finished watching the Apple Special Event 2005 keynote of Steve Jobs. It was great and to tell you the truth, I've never and I mean ever met such a great presenter before. I wish I knew how to present like that.... Wooooot!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-8762925152929880960?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/8762925152929880960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/10/ipod-nano-keynote.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8762925152929880960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8762925152929880960'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/10/ipod-nano-keynote.html' title='iPod Nano Keynote'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-7655232728871566672</id><published>2005-10-01T14:28:00.000-07:00</published><updated>2009-10-05T01:18:36.861-07:00</updated><title type='text'>NoteBook: My first J2ME Application</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7768/741/1600/nokia_3230.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/7768/741/320/nokia_3230.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Last weekend I was bored and since I have changed phones (Now using a Nokia 3230), and with the good support from &lt;a href="http://www.forum.nokia.com/"&gt;Nokia Forums&lt;/a&gt;, I decided to study J2ME and finally ended up writing my first J2ME application. I've already got a bunch of my friends I sent the application to currently testing it. I also already received some feedback from some of the users in terms of features I can add and so on. The source code as well as the *.jar file are available for free for anyone to use and modify. Most of the guys currently using it uploaded the software to their phones using Bluetooth or Infrared. I am currently looking for a place where I could upload both the *.jar and *.jad files for people to access them directly from the GPRS connection on their phones. However and in the meantime I find a solution, for those who wish upload it via Infrared or Bluetooth, you can download the whole package (including source code) here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://rapidshare.de/files/5763187/Nokia_Notebook_J2ME_App.zip.html" target="_blank"&gt;http://rapidshare.de/files/5763187/Nokia_Notebook_J2ME_App.zip.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Instructions on how to install/use the application are in the included README file. For those who would like to read the file before downloading the application, here's its content.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;REQUIREMENTS&lt;/span&gt;&lt;br /&gt;Basically it works for Nokia series 60 phones. This means that it will work on any&lt;br /&gt;6600, 3230, 6630, 6280, 6281, 6280 and others in running the Symbian platform at version 6.0 or 7.0 or 8.0.&lt;br /&gt;&lt;br /&gt;To make sure that your phone is a series 60 phones, please refer to the following web page:&lt;br /&gt;&lt;a href="http://www.forum.nokia.com/main.html"&gt;http://www.forum.nokia.com/main.html&lt;/a&gt; and under the Resources link on your left-side of the screen, choose your phone&lt;br /&gt;from the list of "Device Specifications".&lt;br /&gt;&lt;br /&gt;This is a very basic J2ME program. It also been successfully tested on the following phone models: Motorola e398 and and Motorola e790.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;WHAT IS IT?&lt;/span&gt;&lt;br /&gt;This is my first application learning how to develop for mobile and memory constrained devices. It took me about a day and half with no sleep to learn the whole thing, so DO NOT EXPECT the program to be perfect although I thoroughly tested for bugs and so on. It's just an Notes application where the user can categorise his/her notes compared to the usual flat way it is on most mobile phones. So it's mostly an enhanced version of what cellphone manufacturers already offer.&lt;br /&gt;&lt;br /&gt;However a couple things:&lt;br /&gt;- The graphics are not as nearly attractive as what Nokia has built for their cellphones.&lt;br /&gt;- The code probably needs some optimization and debugging here and there (will know from your various feedback).&lt;br /&gt;- Right now, everything runs through menus and there is no default keyboard commands and so on (will come in future releases).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;IS IT SAFE?&lt;/span&gt;&lt;br /&gt;If you're the geek type and like trying out other people's stuff you'd want to try out this code. I ran it successfully without any problems what-so-ever on 2 of my smartphones (Nokia 3230 and Motorola e398).&lt;br /&gt;&lt;br /&gt;If you're scared stay away from it (it's that simple).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;HOW TO INSTALL IT?&lt;/span&gt;&lt;br /&gt;In the Zip file that you extracted the current README file from, you will find 2 other files:&lt;br /&gt;&lt;br /&gt;- NoteBook.jad and NoteBook.jar.&lt;br /&gt;&lt;br /&gt;What you should do is to send both of the files to your cellphone via Bluetooth or Infrared. In most phones, they will appear&lt;br /&gt;as messages. Run the one that has the Notebook.jad file in it.&lt;br /&gt;&lt;br /&gt;Some cellphones (Motorola) can install with the Notebook.jar file only. Try that out if you're a Motorola user instead.&lt;br /&gt;&lt;br /&gt;If you have no Bluetooth or Infrared on your Nokia (that'll be strange for a smartphone though) but still want to run the program and have at least a GPRS connection on your phone, just upload the files to your website or somewhere and get it using the browser on your phone. Note that in this case, Network Operator's charges will apply.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;WHY DID I WRITE IT?&lt;/span&gt;&lt;br /&gt;I always wanted to play around with mobile devices. More than that I always wanted features or applications on my cellphone that weren't there and when they were I'd usually have to pay for them and mostly they were not satisfying. Finally, I am now on a one-week break and I needed to learn something new and fun. All those circumstances forced me to leverage my Java skills and try this out.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;THE FUTURE OF THIS APP?&lt;/span&gt;&lt;br /&gt;I've got lots of ideas for it. For example, syncing over a SyncML enabled server, doing imaging-notes, etc... Why? Because it's fun, it's satisfying and it is probably going to land me a cool job someday. ;-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;FEEDBACK PLEASE!!!&lt;/span&gt;&lt;br /&gt;As I said, you might discover some bugs, optimization issues or have even cooler ideas of what can be done from that App or using another one. Just Send me a mail: jeanpaul.hounkanrin[at]ravemail[dot]co[dot]za.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;TODOS&lt;/span&gt;&lt;br /&gt;I've already included these in the source code accompanying this file.&lt;br /&gt;Some that I didn't add to the source code files:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Possibility to move notes from one category to another&lt;/li&gt;   &lt;li&gt;Add date of creation to the notes&lt;/li&gt;   &lt;li&gt;Add priority sorting to the notes&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;That's it! It is also important to note that since I haven't used any specific Nokia J2ME extension, this should be able to run on any mobile phone with a J2ME Virtual Machine. For example some of my friends have been able to run it on their Windows Mobile based cellphones. So if you know that your phone has a KVM, you should try running the app and let me know how it went.&lt;br /&gt;&lt;br /&gt;Once I have found a good host for the files, I will post the URL here. I will also make sure that the URL is converted into a &lt;a style="font-weight: bold;" href="http://www.tinyurl.com/"&gt;TinyURL&lt;/a&gt; for easy use.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-7655232728871566672?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/7655232728871566672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/10/notebook-my-first-j2me-application.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7655232728871566672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7655232728871566672'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/10/notebook-my-first-j2me-application.html' title='NoteBook: My first J2ME Application'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-2622083591608686846</id><published>2005-10-01T14:23:00.000-07:00</published><updated>2009-10-05T01:18:36.871-07:00</updated><title type='text'>Macintosh group on Flickr</title><content type='html'>I was checking out a few photoblogs on Flickr today and guess what I've uncovered? A Macintosh group. Really nice pictures they've got there. Check it out here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/groups/macintosh/" target="_blank"&gt;http://www.flickr.com/groups/macintosh/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Have fun browsing! ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-2622083591608686846?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/2622083591608686846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/10/macintosh-group-on-flickr.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/2622083591608686846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/2622083591608686846'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/10/macintosh-group-on-flickr.html' title='Macintosh group on Flickr'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-6028702677571054140</id><published>2005-10-01T14:05:00.000-07:00</published><updated>2009-10-05T01:18:36.881-07:00</updated><title type='text'>Visited the Sandton Apple Store</title><content type='html'>OK,&lt;br /&gt;I visited the Apple store ins Nelson Mandela Square in Sandton city last Thursday. Believe it or not this was my first time ever going to a proper Apple store. I really loved it. I basically spent an hour down there looking at everything that was in the store, checking out machines specs, looking at accessories and deciding what to buy for myself. It was awesome. I also got to chance to see a Mac-mini live. I couldn't believe how much smaller it really is compared to what I see on pics. It's just a beauty and I am thinking I will probably get myself one sometime.&lt;br /&gt;&lt;br /&gt;Talking about what I wanted to get for myself: I actually got two things: one for me and one for my lovely powerbook. Here are the pics:&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://static.flickr.com/27/48371306_2f105e4fca.jpg?v=0"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px;" src="http://static.flickr.com/27/48371306_2f105e4fca.jpg?v=0" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;And here's a picture of my powerbook fitting nicely into its new pouch! ;-) How cool is that?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://static.flickr.com/28/48371307_276168254b.jpg?v=0"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px;" src="http://static.flickr.com/28/48371307_276168254b.jpg?v=0" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-6028702677571054140?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/6028702677571054140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/10/visited-sandton-apple-store.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/6028702677571054140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/6028702677571054140'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/10/visited-sandton-apple-store.html' title='Visited the Sandton Apple Store'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-5819701020473965714</id><published>2005-09-20T15:45:00.000-07:00</published><updated>2009-10-05T01:18:36.891-07:00</updated><title type='text'>Russell Beattie: Voice Powered Mobile Phone</title><content type='html'>As you've seen in my blogroll, one of my daily reads is Russell Beattie's blog. One way or the other, sometime during the day, I have to end up there. And today, I read about the most brilliant idea I've seen in a long time in any blog: Voice Powered Mobile Phone. Read more about it on &lt;a href="http://www.russellbeattie.com/notebook/1008628.html"&gt;&lt;span style="font-weight: bold;"&gt;Russell's Blog&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Good idea for a startup, don't you think?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-5819701020473965714?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/5819701020473965714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/09/russell-beattie-voice-powered-mobile.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/5819701020473965714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/5819701020473965714'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/09/russell-beattie-voice-powered-mobile.html' title='Russell Beattie: Voice Powered Mobile Phone'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-535928779391209433</id><published>2005-09-19T17:12:00.000-07:00</published><updated>2009-10-05T01:18:36.901-07:00</updated><title type='text'>Still up at 2 Am in the morning?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7768/741/1600/DSCF0117_small1.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://photos1.blogger.com/blogger/7768/741/400/DSCF0117_small.jpg" alt="" border="0" /&gt;&lt;/a&gt;Pretty much yep! And will be up till probably 5 Am in the morning. Then sleep for 3 hours and head to class at 8.30 Am. ;-)&lt;br /&gt;&lt;br /&gt;I love my life!!! yeaaah!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-535928779391209433?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/535928779391209433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/09/still-up-at-2-am-in-morning.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/535928779391209433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/535928779391209433'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/09/still-up-at-2-am-in-morning.html' title='Still up at 2 Am in the morning?'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-4140546042892233593</id><published>2005-09-07T12:38:00.000-07:00</published><updated>2009-10-05T01:18:36.920-07:00</updated><title type='text'>Open source and Free Software need more exposure</title><content type='html'>Well, from my previous posts from last week, readers may have seen that there is quite a lot of&lt;br /&gt;Open Source and Free Software stuff going on in the university. It's quite interesting to see how much&lt;br /&gt;importance is being given to it and I like it. I hope things keep growing and that the fire doesn't die.&lt;br /&gt;&lt;br /&gt;Today was an interesting day: there was an Open Source seminar down in school from the &lt;br /&gt;Computer Science and Software Engineering department. There were quite a number of students&lt;br /&gt;present: that was the good part I think. But somehow, I felt really sad when I found out that there&lt;br /&gt;is a staggering number of people who have basically no idea and I mean NO IDEA what Open Source&lt;br /&gt;and Free software is all about. But hey, that is why there are seminars and so son to talk about it&lt;br /&gt;and give it more exposure right?&lt;br /&gt;&lt;br /&gt;But the worse was to find out that many of the students had no idea that there are other&lt;br /&gt;alternatives apart from Microsoft software. And I am not solely talking about OS and Free&lt;br /&gt;software here but I am talking about Apple's OS X, FreeBSD and so on: it was amazing.&lt;br /&gt;&lt;br /&gt;During half of the seminar, I kept on screaming in my head, "ooh my Goodness! This is not real!".&lt;br /&gt;But I think this is also the fault of how other platforms advertise themselves and fight for better exposure.&lt;br /&gt;I mean it's like being in the Matrix: what happens to you when you live in a world where you have no idea&lt;br /&gt;that there is another, better parallel world to yours? Answer: you just don't bother.&lt;br /&gt;&lt;br /&gt;So there is a new mission here, whether Microsoft likes it or not: GET PEOPLE TO BOTHER. GET PEOPLE&lt;br /&gt;TO ASK QUESTIONS ABOUT ALTERNATIVES and most importantly, let people know about Open Source&lt;br /&gt;and Free Software: this is what I'd call "a mission critical" mission. ;-D&lt;br /&gt;&lt;br /&gt;It will take a while, but it is my firm belief that we will get there and get people to know about all this stuff&lt;br /&gt;as well as to experience it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-4140546042892233593?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/4140546042892233593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/09/open-source-and-free-software-need-more.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/4140546042892233593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/4140546042892233593'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/09/open-source-and-free-software-need-more.html' title='Open source and Free Software need more exposure'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-557769716514616760</id><published>2005-09-04T01:20:00.000-07:00</published><updated>2009-10-05T01:18:36.932-07:00</updated><title type='text'>Open Source software toaster</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7768/741/1600/freedom_machines_sm_2.jpg"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/7768/741/320/freedom_machines_sm_2.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt; &lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7768/741/1600/freedom_machines_sm_1.jpg"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/7768/741/320/freedom_machines_sm_1.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Hey,&lt;br /&gt;&lt;br /&gt;this is really cool! I was walking around the university yesterday and guess what I find (still wonder why it was in such a hidden corner): a Freedom Toaster machine from the &lt;a href="http://www.shuttleworthfoundation.org/"&gt;Mark Shuttleworth Foundation&lt;/a&gt;. I've been told about 2 weeks ago that we were going to get one of those, but I couldn't believe it was already here! I got so excited, I couldn't wait to toast the latest version of &lt;a href="http://www.ubuntulinux.org/"&gt;Ubuntu Linux&lt;/a&gt; onto a CD and try out the machine. Really cool toy I might say: touch screen, 3 DVD/CD toasters, very intuitive user interface. Although there are a few things that could be made better:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;To use the cursor and click on anything on the screen, one has to use his/her finger to drag the mouse all the way to that button to click. It should have been something more like what works for PDAs: just touch and it clicks.&lt;/li&gt;   &lt;li&gt;The burning speed was of 4.2 X. I think it should be much much faster. At least to keep backward compatibility with older machines 24 X.&lt;/li&gt; &lt;/ul&gt; But hey, it's the initiative that is great in the first place: Open Source for the nation!!! Yiiiihhaaa!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-557769716514616760?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/557769716514616760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/09/open-source-software-toaster.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/557769716514616760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/557769716514616760'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/09/open-source-software-toaster.html' title='Open Source software toaster'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-8653644870950724264</id><published>2005-09-03T01:08:00.000-07:00</published><updated>2009-10-05T01:18:36.943-07:00</updated><title type='text'>My dream: a startup company</title><content type='html'>In the following short essay, we will have a look at what a startup company is, why would one wants to come up with a startup, the big idea, how to handle competition and what we should keep in mind while starting one. I will also present a small paragraph on past experiences and what I think our mistakes were and what should be done right the next time.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;What is a startup company?&lt;/u&gt;&lt;br /&gt;A &lt;span style="font-weight: bold;"&gt;high-tech&lt;/span&gt; startup company is a company recently formed mostly for the purpose of making business of building wealth by solving a technical problem that potential consumers care about.&lt;br /&gt;&lt;br /&gt;In the late 1990s, high-tech startup companies were flourishing in the United States and other parts of the world where there was a need to solve a bunch of technical problems that people needed solved. Most high-tech companies used to come up with those solutions and implementation thereof. Then they'd look for VCs (Venture Capitalist) to invest into the company and usually when the company is at its premium, shares are sold to potential public investors or the company as a whole is sold to a much bigger one, giving the chance to the people who started it to look at other problems to solve and possibly start a new venture.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Why a startup company?&lt;/u&gt;&lt;br /&gt;Well there are a few reasons why one would want to startup his/her own company.&lt;br /&gt;&lt;br /&gt;The most important one would be the creation of wealth as Paul Graham suggests in his book "Hackers and Painters: big ideas of the computer age". Let's look at this idea a little bit closer. Starting up a company is no joke. It requires a lot dedication, hard work and the ambition to always do better than the competition without forgetting an understanding of basic business principles; plus the ability to learn advanced ones on the go (management, negociation, respond to environmental changes, conflict resolution, understand team work and group cohesiveness, etc...). The question is, if one could have a normal day-job writing software in a super big company that already has a client-base and that pays quite well, why would he/she wastes his/her time starting up from scratch if it weren't for the benefits in it?&lt;br /&gt;&lt;br /&gt;The other one would be "everything that needs to be invented has not been invented yet". I remember having heard this one many times without actually knowing who the source of the expression is. But let's think about it. Has everything that needs to be created already exits? If so, why is it that tons of people still make lots of money by creating and coming up with exisiting but bettered or whole new products? My theory here is that the world is made of millions people. As businesses, the media and what have you have been emphasizing lately, we live in a very diverse world. This diversity comes from the fact that each human being has a different culture, intelligence, values, needs (whether it be physiological, social, information-related), wants, etc... These differences in each of us makes it hard to have a sort of "one fits all" paradigm; meaning that a solution that works for me might not work for all: an example would be generic software like word-processors; as you may have seen, users most of the time need to specialize the software to fit their needs and that is why most of those come with scripting languages allowing the user to build in it whatever specializations fit their needs. The same differences can be tap into by people who would like to startup a company: the secret is to give the users what they care about. And with millions of people on the planet, I believe that wants and needs exists by millions too. So there are probably a dozen million of things that need to be invented that have not yet been created: there lies the opportunity.&lt;br /&gt;&lt;br /&gt;The 3rd reason I would put forward is actually a question: if you worked in a big company where you were paid a certain salary per month. Then according to your calculation, you'd be able to have about R6,000,000 in your bank account when you are 55. However you are presented with the opportunity to make the same in a year-time. Which option would you choose? I bet the year-time one. That is what a startup allows you to do.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;How to find the right idea or opportunity?&lt;/u&gt;&lt;br /&gt;Well, I am not sure whether there is a right idea or right opportunity. However, I believe as I wrote earlier that there is a pool of opportunities to tap into and all that is needed is to find them and make a choice.&lt;br /&gt;&lt;br /&gt;The first approach IMHO (In My Humble Opinion) would be to start by being unconventional or better, by thinking out of the box as the expression usually goes. In today's society, convention is the "right thing". But being conventional means being like everybody, thinking almost like everybody, and just as everyone else, dislike ideas that are "not conventional". But if everyone of us thought the same way and tried to be conventional, there would not be any opportunity for innovation. Take for example the fashion industry: is there any thing conventional in there? I think not. If you've been to a fashion show, you would have noted how unconventional fashion designers' ideas were. At first people think: "Gosh, he/she is crazy!" But a few months down the road, that unconventional thinking becomes the "fashion of the moment": "unconventionality" is what society needs if it expects to progress in any way.&lt;br /&gt;&lt;br /&gt;Once the above has been accomplished, it is believe that it is necessary to introspect in order to find out what ideas oneself would like to implement or what technical problems oneself would like to see solved. Most likely, what you need to solve and what problems you are beeing faced with would be the same for let's say about a million people: there's a market there already although of course a thorough study of that market would be necessary. But I am trying to make here is that it is always easier to solve one's own problems and one person's technical problems is usually shared by other people around the world (I am pretty sure of this).&lt;br /&gt;&lt;br /&gt;The third approach would be to talk to people around you (this is not necessarily your immediate environment but also people on communication networks and so on. Always remember that people on the Internet for example are around you: global village). Talking to people and asking them what problems they'd like to see solved helps you see what the crucial users' problems are and gives you an estimation of what the size of your future market might be.&lt;br /&gt;&lt;br /&gt;Once you have some ideas to play around with, head to putting together your team. From my experience, this seems to be the most difficult part.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;What attributes to look for in the team members?&lt;/u&gt;&lt;br /&gt;Many high-tech startups started as derivative&lt;a href="http://en.wikipedia.org/wiki/Spin-off" title="Spin-off"&gt;&lt;/a&gt; from university research groups or technology-enthusiastic groups who sought for an opportunity, found it, implemented it and decided to make it accessible to the general public.&lt;br /&gt;&lt;br /&gt;IMHO, for a high-tech startup, there is a need for a small group. The smaller the group (not too small though), the more focused the team members and the quicker the implementation of the idea. The size of the group would be anything between 3 to 5 members. Each member should be able to contribute ideas, solutions and quite importantly, should have a sort of technical or manegerial ability that would steer and fasten the development process. The other attributes that are needed would be things like ambition, passion for technology, understanding of users and their problems and a few more I probably cannot remember.&lt;br /&gt;&lt;br /&gt;From all those aspects of team members above-listed, passion would be very important. The thing about a startup is that it might work out quite well (hopefully) or it might crash. And this is why passion for technology and for the cause is important. If there is no passion, team members are discouraged at an early stage and the startup crashes quite badly. This has happened to two of the startups I started with some friends in the past. The ideas were good, the users wanted it, but the passion from most team members died and I believe this is the deadliest thing that can happen to a startup.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;How about competitors?&lt;/u&gt;&lt;br /&gt;Well we all know it: if you have a good idea and it works for you, there would be a bunch of people, organizations that would copy it (without necessarily infringing copyright laws, etc...) and make sure they better it, then get your market and softly kill your startup. How to fight against this? Well Paul Graham in the book I previously mentioned suggests the following:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;release the first version of your implementation as fast as possible. The team should not focus too much on including all the feature in the first one but rather focus on putting in the most important and user-wanted features.&lt;/li&gt;   &lt;li&gt;make incremental releases after the product is launched. If it is web-based and it &lt;span style="font-weight: bold;"&gt;should be&lt;/span&gt;, you don't have to struggle with forcing users to download updates to their computers, fight with software version incompatibilities.&lt;/li&gt;   &lt;li&gt;for every feature to implement, there would be a hard way to do it and an easy way. Always make sure of using the hard way because this gives you an edge over competitors. By the time they start thinking about how you implemented this feature or that other one, you're already on your way of implementing an even harder one. In the end they'd just give up and crash or they'd build something similar but quite sloppy in its design and programming.&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;What is my dream?&lt;/u&gt;&lt;br /&gt;Now, let's get to the subject at hand: "my dream: a startup company". As I said earlier, I've had some experience with this. Two companies I worked for in the past were startups I started with some friends. Our attributes:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;we were all technically apt&lt;/li&gt;   &lt;li&gt;we had great ideas and great solutions for big technical problems&lt;/li&gt;   &lt;li&gt;we had a great passion for technology, problem solving and what not&lt;/li&gt;   &lt;li&gt;we loved working togethers and spend hours in the middle of the night hacking code on our keyboards&lt;/li&gt; &lt;/ul&gt; The why did we fail or crashed?&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;most of our ideas did not encompass what &lt;span style="font-weight: bold;"&gt;USERS WANTED&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;most team members after a while lost passion and got embedded in daily life problems and issues (family, girlfriend or fiancee, loss of focus)&lt;/li&gt;   &lt;li&gt;we lost focus of the &lt;span style="font-weight: bold;"&gt;BIG PICTURE&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt; So what should I and the people I come together with hopefully do different this time? I believe that the number one thing would be to stop being techno-weenies who focus only on interesting technical problems without wondering whether those are the ones users want to see solved. Get a few good ideas to start with and run an elimination process based on criteria such as potential market, current skills and skills to build, available software and hardware, etc...&lt;br /&gt;Once we have the final idea on the table, use it to design great and beautiful software always making sure that the competition if there is any cannot reproduce our work.&lt;br /&gt;Focus, focus and focus again on the big picture while making sure the passion is still vivid and possibly retrench to a location where we do not get bothered by "daily-life problems".&lt;br /&gt;Work extremely hard and fast.&lt;br /&gt;Be objective with our goals and be realistic: for example knowing that although we put 4 months of work into the project, there is always a risk for the startup to tank.&lt;br /&gt;&lt;br /&gt;At the moment I've got a couple of very good ideas. I've been working on them for a while. What do I need now? 2 or 3 People to help me think through it and obviously with the passion, drive and technical ability to implement it. Will I ever find those?&lt;br /&gt;&lt;br /&gt;Well, I am still search and hopefully the future will tell....&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;What do we do if it ever works out?&lt;/u&gt;&lt;br /&gt;Well the idea is to build wealth (money, create employement, etc...), take the company to its premium and ultimately sell it to a big shot. Then focus with the same team on starting up a new venture. How's that?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-8653644870950724264?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/8653644870950724264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/09/my-dream-startup-company.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8653644870950724264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8653644870950724264'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/09/my-dream-startup-company.html' title='My dream: a startup company'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-6809521783802382481</id><published>2005-09-01T10:16:00.000-07:00</published><updated>2009-10-05T01:18:36.954-07:00</updated><title type='text'>Do the complete switch</title><content type='html'>For the past few days, I've also been toying with the idea of selling my PC and replacing it with a mac-mini. Yeah, I know how radical that sounds. I've been a Mac user for years. I could completely switch to a mac and not have any thing reminiscent of Intel PCs anymore. But I've never done it. At any point in time when I've had a Mac, I've always had a PC somewhere in the corner of my room. But as I said in my earlier post, many people are doing away with it and I believe that with a little bit of effort, I should succeed in doing the same.&lt;br /&gt;&lt;br /&gt;If things work out well, a few weeks from now, I might be posting this straight from my mac-mini. How's that for a switch? :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-6809521783802382481?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/6809521783802382481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/09/do-complete-switch.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/6809521783802382481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/6809521783802382481'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/09/do-complete-switch.html' title='Do the complete switch'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-8336048085320337719</id><published>2005-09-01T09:51:00.000-07:00</published><updated>2009-10-05T01:18:36.963-07:00</updated><title type='text'>Apple's WebObject Platform</title><content type='html'>Remember a few weeks ago, I posted about the fact that I needed to become serious with studying and starting working with the .Net platform? Well I've tried and tried and tried again and for some reason, I still do not like it.&lt;br /&gt;&lt;br /&gt;However, everyday that passes, am feeling more and more at home in Java. Besides that, many people in my immediate environment and around the world have started moving away from Microsoft. More and more are going the Open Source way and in my opinion, Java is a beautiful language for OS software implementation. But also, I like Java for its strong background and standards to which extent programmers are somehow forced to adhere to.&lt;br /&gt;&lt;br /&gt;I believe in web applications. I also believe that web applications would be the way to future application development. I believe that applications would be less and less coming to the desktop and rather sitting somewhere on a server where all users have access to it. For developers, web applications are easier to write and to maintain. So, am sticking with web-apps development and to do that, I need a strong platform, running on an OS that I like: enter webobjects from Apple.&lt;br /&gt;&lt;br /&gt;For the next few weeks, I will be busy reading about the technology, code, application etc... &lt;a href="http://developer.apple.com/referencelibrary/GettingStarted/GS_WebObjects/"&gt;HERE&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-8336048085320337719?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/8336048085320337719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/09/apple-webobject-platform.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8336048085320337719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8336048085320337719'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/09/apple-webobject-platform.html' title='Apple&amp;#39;s WebObject Platform'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-3098871700968082747</id><published>2005-08-19T15:49:00.000-07:00</published><updated>2009-10-05T01:18:36.973-07:00</updated><title type='text'>Backing up Windows Update downloaded files</title><content type='html'>Sometimes things happen. And those things force us to "repair" Windows. Today I was installing Redhat Fedora Core on my computer. The installation went well and Fedora worked like a charm till I wanted to reboot into my Windows system. That is when I discovered that I actually messed up the Windows installation and was forced to repair it. The repair process involves Windows backing up ur computer in the state it currently is, then practically reinstalling itself and finally restoring everything. One thing that it doesn't restore however are all previous updates that have been dowloaded and installed (which is a pity IMHO, but understandable...). Anyways, what this means is basically another 800 MBs or even more (depending on whether the CD you used to restore contains Service Pack 1 or not) night of downloads and if you live on a very slow Internet connection, trust me that's not something you'd like to think about.&lt;br /&gt;&lt;br /&gt;After the &lt;a href="http://jpgeek.blogspot.com/2005/08/usb-devices-not-recognized-o.html"&gt;last incident&lt;/a&gt; I had with windows, it took me about 2 days to get all the updates and having to do the same in the same week, let alone in the same month didn't look like a nice prospect and besides I've got tons of assignments to complete. Then I thought about my OS X system. The cool thing with OS X is that updates are downloaded and kept in a directory that you can access and backup (keep downloaded update files) for future use (i.e.: your OS crashes badly and you have to reinstall everything). I thought this might work with Windows too, that is Windows probably keeps downloaded files somewhere. After poking around for almost half an hour, I found that it was indeed the case.&lt;br /&gt;&lt;br /&gt;So this is how I restored windows back to what it should be (with all available and previously downloaded updates):&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;go to x:\windows\softwaredistribution  directory;&lt;/li&gt;   &lt;li&gt;in there, you will find the 'download' folder. I recommend that you back it up for future use and moreover, I recommend you back it up everytime after windows had downloaded some new update files;&lt;/li&gt;   &lt;li&gt;open the 'download' folder , set the view to 'details' and order by 'Date Modified' in an ascending order (so that earlier updates are at the top and latest ones are at the bottom - this will help you follow the order in which the Windows Update Software installs the updates);&lt;/li&gt;   &lt;li&gt;You will find out that subfolders of the 'download' folder have strange and long cryptic names; do not be intimidated by this.&lt;/li&gt;   &lt;li&gt;Open each of the folders in the order we decided earlier on. In each folder, you will find another folder called 'update'. Inside the 'update' subfolder, you will find the 'update.exe' file. For each of the updates, execute that file. Some updates will ask you to restart the system, some others won't. You don't have to restart the system everytime for those updates that ask you to. So you can tick the "Do not restart now" check box at the end of an update. You really have to update only after running the Windows Installer, Service Pack 1 and Service Pack 2 updates.&lt;/li&gt;   &lt;li&gt;That's it!&lt;/li&gt; &lt;/ul&gt; I hope this helps someone. ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-3098871700968082747?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/3098871700968082747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/08/backing-up-windows-update-downloaded.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3098871700968082747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3098871700968082747'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/08/backing-up-windows-update-downloaded.html' title='Backing up Windows Update downloaded files'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-1123493217896788494</id><published>2005-08-15T14:03:00.000-07:00</published><updated>2009-10-05T01:18:36.993-07:00</updated><title type='text'>The art of the programmer</title><content type='html'>"...I was taught in college that one ought to figure out a program completely on paper before even going near a computer. I found that I did not program this way. I found  that I liked to program sitting in front of a computer, not a piece of paper. Worse still, instead of patiently writing out a complete program assuring myself it was correct, I tended to just spew code that was hopelessly broken, and gradually beat it into shape. Debugging, I was taught, was a kind of final pass where you caught typos and oversights. The way I worked, it seemed like programming consisted of debugging." (from "Hackers and Painters, big ideas from the computer age" by Paul Graham).&lt;br /&gt;&lt;br /&gt;I particularly like the above-cited passage of the book. I recommend to anyone who "loves" programming to read it (the book I mean). It's not really like reading a book on how to program or any of those things, but it's a bunch of nice essays which relate very well to people like us. See, the way he says it, is the way I love to program and from there I understand people who prefer the refactoring approach (to the modelling one) which by the way I'll take anytime over any other. The only thing is that there are those moments when as a programmer, you ask yourself whether you have to follow the rules of software engineering or whether you just have to sit and start writing code and put things together as you go; with of course in mind your final objective.&lt;br /&gt;&lt;br /&gt;The other thing I love about this book is that the author, as strange as it may seem thinks that programming or coding is like art, like painting and that's how I've always seen code. Many times I've found myself looking at code and admiring it as if it was some strange beautiful unreplicable art object and that's also why I've grown to believe that each of us has a very special way of expressing themselves through their code.&lt;br /&gt;&lt;br /&gt;Anyways, just felt like sharing these feelings with other programmers. ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-1123493217896788494?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/1123493217896788494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/08/art-of-programmer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/1123493217896788494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/1123493217896788494'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/08/art-of-programmer.html' title='The art of the programmer'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-1056259538198230168</id><published>2005-08-14T22:01:00.000-07:00</published><updated>2009-10-05T01:18:36.983-07:00</updated><title type='text'>USB Devices not recognized!! :-O</title><content type='html'>Today is definitely not so much of a good day and this for one reason: WINDOWS IS MESSING UP AGAIN!&lt;br /&gt;&lt;br /&gt;The situation: yesterday I had to unplug my USB TV box to plug in a USB flash disk in order to copy some quick data. Right after that, I replugged the TV box and BANG! It wouldn't get recognized and so was the same for anything else I plugged in after that. I spent more than 2 hours restarting the computer, shutting down devices and restarting them etc... nothing would work. I first thought then that the devices might not be working after all as Windows was suggesting. I plugged them into my PB and there we go, it's working!! So, this time Windows is messing up, almost forcing me to reinstall and the problem is not virus-related!&lt;br /&gt;I spent the whole night backing up my data and tranfering it between computers. Early this morning (yeah, Windows can mess up as much as it wants, it won't prevent me from sleeping as long as I've got my Mac), I tried 'repairing' Windows and the approach as quite unsuccessfull. I am now in the process of doing a clean install and things better start to work now because I am getting really pissed off!!! I mean gees, why would it just stop recognizing USB devices? For what reason for heaven's sake?&lt;br /&gt;&lt;br /&gt;I feel very  :-( and very :-@.&lt;br /&gt;&lt;br /&gt;Ooh man! Clean install just finished and guess what? Windows still can't recognize my USB devices? So what does that mean? Change my motherboard? Or should I buy a whole new CPU? Hell no!!!! This is not happening!&lt;br /&gt;&lt;br /&gt;I can't wait to get OS X for Intel processors!! Windows is doomed!! :-@&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[==== UPDATE ====]&lt;br /&gt;Well, I've done some search and guess what? It turns out that many people have had the same problems and many did exactly what I did and went through what I went through. But there was no need to reinstall windows or to spend the whole night wondering what the problem is or even changing the motherboard or aything like that. The solution is simple: unplug the CPU (remove power cord) for a few minutes and plug it back, then restart and all USB devices are recognized as nothing ever happened. I wish I knew this earlier. But this is very annoying and I think manufacturers/OS writers should inform users of this kind of condition or possible issue. You can read more about the solution &lt;a href="http://www.ntcompatible.com/Desperately_need_help_---_USB_Devices_Not_Recognized_t32356.html"&gt;&lt;span style="font-weight: bold;"&gt;HERE&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I am not really happy about the fact that I had to reinstall windows and now have to spend an awful lots of time reinstalling every single piece of software. But at least 4 things am glad about:&lt;br /&gt;&lt;br /&gt;1 - I didn't have to replace any of my computer components (too broke to do that at the moment);&lt;br /&gt;&lt;br /&gt;2 - I know how to solve this problem if it ever occurs again either with me or with someone else;&lt;br /&gt;&lt;br /&gt;3 - whatever I say and however angry I may get, my computer is fresh and faster since I did a clean install;&lt;br /&gt;&lt;br /&gt;4 - I am smiling again and but I am still waiting for the Intel-based OS X. I can't take this Windows annoyances anymore...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-1056259538198230168?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/1056259538198230168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/08/usb-devices-not-recognized-o.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/1056259538198230168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/1056259538198230168'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/08/usb-devices-not-recognized-o.html' title='USB Devices not recognized!! :-O'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-2418531469084127340</id><published>2005-08-13T01:11:00.000-07:00</published><updated>2009-10-05T01:18:37.003-07:00</updated><title type='text'>Currently reading the following books</title><content type='html'>Well lately, I've gotten really busy with assignments to complete, research to do and so on, but strangely enough the amount of reading I do that is not related to any of those has also slightly increased.&lt;br /&gt;&lt;br /&gt;Somehow, I am in one of those periods where I am totally hungry for knowledge and want to understand a tons of things for reasons I don't even know about. But ultimately, what I've been reading is either related to science or computers (my favorites).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.grahamhancock.com/images/library/3s.jpg"&gt;&lt;img style="margin: 0pt 5px 5px 0pt; float: left; cursor: pointer; width: 80px;" src="http://www.grahamhancock.com/images/library/3s.jpg" alt="" border="0" /&gt;&lt;/a&gt;The first and most interesting book I am reading at the moment is "The Mars Mystery - a warning from history that could save life on Earth" from authors Graham HANCOCK, Robert Bauval &amp; John Grigsby. This book is about discoveries of potential 'artificial' monuments on Mars and who says artificial means 'created by a being'. There are many interesting facts from NASA as well as from a bunch of space scientists in the book. But most importantly, in my opinion, the book tries to prove something I've always believed in since I was a kid: "we are not alone". I would recommend this book to anyone who's ready to open their mind and who wouldn't mind reading a certain dose of scientific facts on why there is a high possibility that life might have existed or exists somewhere else on the universe apart from Earth. To find out more about the book, click &lt;a href="http://www.grahamhancock.com/library/book.php?bookID=3"&gt;&lt;span style="font-weight: bold;"&gt;HERE&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The second book that has also been sharing my days is "Hackers &amp; Painters - big ideas from the computer age" by author Paul Graham. I just started reading it about a week ago and I can't really put my thoughts down as to what I think about the book yet. An update will follow. But for someone interested in reading it or getting more information about what the topic of this book is, go &lt;a href="http://www.oreilly.com/catalog/hackpaint/"&gt;&lt;span style="font-weight: bold;"&gt;HERE&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Finally, a 'Must read' for any Java programmer who haven't read it yet:  Thinking in Java 3rd edition by author Bruce Eckel. This is the best book about Java programming I've ever read and quite franckly I'd recommend it to anyone even if you're not too versed in the language. It is very focused on what makes Java a good programming language and also contains a very good approach to understanding OOP programming with Java. But that's not all, the one thing I love about this book is that it is available in print form, but also in a free-electronic downloadable book from Bruce Eckel's website and who doesn't like "free book"? huh? For more about the book, click &lt;a style="font-weight: bold;" href="http://www.mindview.net/Books/TIJ/"&gt;HERE&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Well that's what I've been up to lately. I haven't been writing anything much here lately but that is surely because I've been extremely busy. Starting from this week, I will restart posting stuff down here. ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-2418531469084127340?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/2418531469084127340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/08/currently-reading-following-books.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/2418531469084127340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/2418531469084127340'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/08/currently-reading-following-books.html' title='Currently reading the following books'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-7872989189204806682</id><published>2005-06-20T10:49:00.000-07:00</published><updated>2009-10-05T01:18:37.013-07:00</updated><title type='text'>New section on blog</title><content type='html'>Hi everyone,&lt;br /&gt;&lt;br /&gt;I have added a new section to the right side of the blog called "Currently Reading". Check it out!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-7872989189204806682?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/7872989189204806682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/06/new-section-on-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7872989189204806682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7872989189204806682'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/06/new-section-on-blog.html' title='New section on blog'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-5931829422676912218</id><published>2005-06-07T07:09:00.000-07:00</published><updated>2009-10-05T01:18:37.023-07:00</updated><title type='text'>Apple news: Digestion, analysis, conclusion</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Confused reactions&lt;/span&gt;:&lt;br /&gt; I think that the negative reactions observed everywhere on many blogs are primarily due to what I would call the "Mac Geekmania". Many of "us" highly believe in the existence of the so called "Wintel conspiration" which is about Microsoft and Intel taking over the world by controlling chips, information and so on. That belief led or I would say misled many of us in disapproving the "Intel Inside" switch made by Apple due to the facts that we LOVE Apple with passion and hate anything Microsoft / Intel the same. Also, for many mac-geekmaniac, using Apple or Linux (apart from the generous OS features of course) and staying away from anything Windows was our way of defining ourselves as the only people who could see the "evil Wintel had developed into" and the rest of the world was blinded.&lt;br /&gt; Basically, most of the confused reactions came from passion rather than objectively looking at what was being suggested and what the future holds.&lt;br /&gt;&lt;br /&gt; &lt;span style="font-weight: bold;"&gt;Analysis&lt;/span&gt;:&lt;br /&gt; One of the main reasons why many Apple developers at first would not be happy about the changes is the fact that it will take a while for all currently available applications to be developed for the new chip. In terms of economic expenses in software development, this would mean a lot in the sense that many software engineering houses (games, business applications, scientific applications - think NASA -, etc...) spent a large amount of time, porting applications they have written for the most popular platform (Wintel) to Mac G5 family of processors and platforms. With the new changes starting next year, this could mean that "us" using the old platform will not have the advantage of running new applications (this would be very frustrating for firms who have spent large amounts of cash aquiring Macs as well as individuals who basically will be forced of buying new machines).&lt;br /&gt;&lt;br /&gt; From another point of view however (once firms have realigned themselves behind the new Apple decisions), this could generate lots of business and thinking objectively, could kick MS Windows out of the Wintel deal. If Microsoft is running on 90% or so of the desktop machines in the world, this is because users haven't had a proper alternative (not talking Linux here) to Windows. Therefore, most go with what is available. But with OS X (truly the best operating system I've used so far - and I am not campaining for Apple -) with its BSD 4.0 kernel  base, its Unix features, its revolutionary interface and its ease of use as well as interoperability with other platforms becomes available for everyone to run, I think Microsoft has a huge problem. Even more is the fact that Microsoft is currently *VERY* late in producing Windows Longhorn. According to Steve Jobs, the full working version of "&lt;span style="font-weight: bold;"&gt;Leopard&lt;/span&gt;", the upcoming OS X ((which will be Intel compatible) will be available just before Microsoft releases Longhorn. What this means exactly? I am not sure, but most current OS X - G5 developers will have already ported their software by that time and Microsoft will be in "Deep shit". Hence old applications that would not be ported will still be able to run on the new chips via "Rosetta".&lt;br /&gt;&lt;br /&gt; In terms of Business for Apple dealers and Mac software developers (meaning "US"), this means lots of opportunities to push our products very far and to a GREATER AMOUNT of audience / users: it means business! And this is one thing we have always been complaining about, even making plans for *force* organizations / individuals to SWITCH. Now Steve Jobs is making the job easy for us, no-one would need to actually be forced into switching: they will have an alternative and sincerely, with what goes on under the hood of Windows and at the top of it, I can already forsee the winner of this race.&lt;br /&gt;&lt;br /&gt; &lt;span style="font-weight: bold;"&gt;Conclusion&lt;/span&gt;:&lt;br /&gt;As it's always been, people in general are always scared and feel uncertain about changes (mostly the drastic ones) and new technology. But with a deep insight and objective analysis as well as integration into the population of that new technology / change, users get the chance to see what's new in terms of advantages as well as the amount of problems solved compared to the old "way of doing things" and start adopting what is being offered.&lt;br /&gt;&lt;br /&gt; I therefore think that despite every single confused nerve of our mac-geekmaniac brain, the future looks bright and no, Apple has not sold out to the Wintel conspiracy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-5931829422676912218?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/5931829422676912218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/06/apple-news-digestion-analysis.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/5931829422676912218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/5931829422676912218'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/06/apple-news-digestion-analysis.html' title='Apple news: Digestion, analysis, conclusion'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-3629671874219924258</id><published>2005-06-02T01:01:00.000-07:00</published><updated>2009-10-05T01:18:37.040-07:00</updated><title type='text'>Strange String method behavior in java</title><content type='html'>I've got the feeling that Java is not really *write once, run everywhere anymore* for just ONE method in the java.lang.String class: the &lt;span style="color: rgb(255, 0, 0);"&gt;java.lang.String.replace(CharSequence target, CharSequence replacement)&lt;/span&gt; method. I found out that using this method with the same JDK version on both Microsoft Windows and Mac OS X (Jaguar - with JDK 1.5.0_02 as well as previous versions - Panther with JDK 1.4.2-50) on the first case lets one compile his / her class and on the second case doesn't compile. Have a look at the following code:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;&lt;span style="font-style: italic;"&gt;public class Test {&lt;br /&gt;   public static void main(String[] args) {&lt;br /&gt;       String str = "MISSISSIPI";&lt;br /&gt;&lt;br /&gt;       // Using replace(CharSequence target, CharSequence replacement)&lt;br /&gt;       // This method returns a new String resulting from replacing all&lt;br /&gt;       // occurences of oldChar in the concerned String with newChar.&lt;br /&gt;       // Please have a look at the Java APIs doc for  more info on this.&lt;br /&gt;       System.out.println(str.replace("S", " "));&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;On compiling the above-listed code on my Windows XP machine, it compiles and runs fine. On compiling the same code (THE SAME) on my OS X machine, I get the following compile error:&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Test.java:8 replace(char, char) in java.lang.String cannot be applied to (java.lang.String, java.lang.String), etc...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So someone tells me what is happening here. There are 2 replace methods in the String class; there is String.replace(char, char) and String.replace(CharSequence, CharSequence). From my understanding, the latter has not been implemented at all on the OS X JDK: does that make sense at all or I'm an idiot? For some reason, I wouldn't have known this if I hadn't tried to compile my project code on OS X because the primary development environment was MS Windows.&lt;br /&gt;&lt;br /&gt;Now, let's move a bit further in finding out what the problem is. Write once, run everywhere right? So I can basically take the Test class bytecode from my Windows machine (since it compiled successfully there) and try to run it on OS X right? Well I tried and it gives me the following runtime error:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Exception in thread "main" java.lang.UnsupportedClassVersionError: Test (Unsupported major.minor version 49.0) etc....&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Basically, this is the kind of error when a class has been compiled with a non-compatible version of the VM. But wait a minute! Any other classes (as long as they're not using the String.replace(CharSequence, CharSequence) run / compile pretty fine!!&lt;br /&gt;&lt;br /&gt;HellloooO? Can I get some help here! Any useful comments will be more than WELCOME.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-3629671874219924258?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/3629671874219924258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/06/strange-string-method-behavior-in-java.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3629671874219924258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3629671874219924258'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/06/strange-string-method-behavior-in-java.html' title='Strange String method behavior in java'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-9002392331137114249</id><published>2005-05-19T09:09:00.000-07:00</published><updated>2009-10-05T01:18:37.050-07:00</updated><title type='text'>Just Bought OS X 10.4 - Tiger</title><content type='html'>&lt;p&gt;Yiiiiiiiiiiiiiiiiiihhhhhhhhaaaaa!! ==&gt; In pictures&lt;/p&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/24617349@N00/14648312/" title="photo sharing"&gt;&lt;img src="http://photos10.flickr.com/14648312_e99da439d4_m.jpg" alt="" style="border: 2px solid rgb(0, 0, 0);" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/24617349@N00/14648313/" title="photo sharing"&gt;&lt;img src="http://photos14.flickr.com/14648313_c47b8107a6_m.jpg" alt="" style="border: 2px solid rgb(0, 0, 0);" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/24617349@N00/14648314/" title="photo sharing"&gt;&lt;img src="http://photos13.flickr.com/14648314_75769c8afb_m.jpg" alt="" style="border: 2px solid rgb(0, 0, 0);" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-9002392331137114249?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/9002392331137114249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/05/just-bought-os-x-104-tiger.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/9002392331137114249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/9002392331137114249'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/05/just-bought-os-x-104-tiger.html' title='Just Bought OS X 10.4 - Tiger'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-1929176472274653293</id><published>2005-05-07T00:19:00.000-07:00</published><updated>2009-10-05T01:18:37.078-07:00</updated><title type='text'>GmailFS for Microsoft Windows</title><content type='html'>Well, you've probably heard and used GMailFS on your Linux operating system. What GmailFS Does is to mount your Gmail account as a Linux filesystem (basically you can use it as you use any other of your /home/username directory and even better, you can run 'df' commands on it, etc...). GMailFS can be found &lt;a href="http://richard.jones.name/google-hacks/gmail-filesystem/gmail-filesystem.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;But what happens if you do not run Linux and don't even *care* about using exactly like my mom or dad wouldn't? Well, for a while there hasn't been a solution for windows users till recently. I've restarted searching on that today and I finally found a *GmailFS* for Windows called the "Gmail Drive Shell Extension". I used it and boy, it's really sleek and works like a charm. You can find more info and downlaod it &lt;a href="http://www.viksoe.dk/code/gmail.htm"&gt;here&lt;/a&gt;. Although it works on the same principle of sending emails to yourself like I bet most of us do for backing up importnat documents and other files, the hassle of *approprietly emailing* is being eliminated.&lt;br /&gt;&lt;br /&gt;A few screenshots made while I was trying it out can be found &lt;a href="http://www.flickr.com/photos/24617349@N00/sets/310397/"&gt;HERE&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-1929176472274653293?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/1929176472274653293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/05/gmailfs-for-microsoft-windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/1929176472274653293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/1929176472274653293'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/05/gmailfs-for-microsoft-windows.html' title='GmailFS for Microsoft Windows'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-8066028632946076212</id><published>2005-04-27T01:01:00.000-07:00</published><updated>2009-10-05T01:18:37.088-07:00</updated><title type='text'>Access gmail through WAP</title><content type='html'>I've been looking for a way to access my Gmail through WAP for the past 5 months (since I've discovered that GPRS is actually cheap here in SA with the Vodacom network). I use my Gmail account more than any other of my email accounts but it's been really frustrating not being able to access it on the go and I was hoping google will address this problem (actually feature request) at some point. But in the mean time I've had to check out other options. I've tried a couple of them but none of them seemed to work.&lt;br /&gt;&lt;br /&gt;Basically my WAP browser would get to the login page (of the solutions I've tried) but after filling in the form and hitting submit, it wouldn't go further.&lt;br /&gt;&lt;br /&gt;Yesterday I stumbled upon &lt;a href="http://www.gmailwireless.com/"&gt;GmailWireless&lt;/a&gt;; a solution which allows you to register (a basic process for them to check that you really have a Gmail account) and then all you have to do is to direct your browser to wap.gmailwireless.com, fill in the login for and in Gmail you are! It's pretty nifty and now I can access my emails from anywhere. What else could one wish for? :-p&lt;br /&gt;&lt;br /&gt;If you've got GPRS or can access WAP sites through any other means while on the go, I think you might want to try this out.&lt;br /&gt;&lt;br /&gt;In terms of requirements, I have no idea whether the version of WAP supported by your browser is of any importance but for the information, by browser has WAP 2.0 capabilities.&lt;br /&gt;&lt;br /&gt;Good day!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-8066028632946076212?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/8066028632946076212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/04/access-gmail-through-wap.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8066028632946076212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8066028632946076212'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/04/access-gmail-through-wap.html' title='Access gmail through WAP'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-9060710916723244440</id><published>2005-04-25T00:16:00.000-07:00</published><updated>2009-10-05T01:18:37.100-07:00</updated><title type='text'>A review on Visual C# Express Edition 2005 Beta 2</title><content type='html'>I've written the review in a forum here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sadeveloper.net/Forums/ShowPost.aspx?PostID=58352"&gt;http://www.sadeveloper.net/Forums/ShowPost.aspx?PostID=58352&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hope it helps someone.&lt;br /&gt;&lt;br /&gt;P.S.: There's rumor around the cyberspace that Microsoft will be releasing a version of their .Net framework for the Linux platform as well as an IDE similar to the upcoming Visual Studio .Net 2005. If this is true, I think development for and on the Linux platform will become suddenly freaking easy and neat. Let's see what happens. :-)&lt;br /&gt;&lt;br /&gt;Time to bounce to my cse1200 class. brrrr...... :-(&lt;br /&gt;&lt;br /&gt;Enjoy! ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-9060710916723244440?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/9060710916723244440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/04/review-on-visual-c-express-edition-2005.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/9060710916723244440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/9060710916723244440'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/04/review-on-visual-c-express-edition-2005.html' title='A review on Visual C# Express Edition 2005 Beta 2'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-8169077174876818330</id><published>2005-04-24T04:52:00.000-07:00</published><updated>2009-10-05T01:18:37.109-07:00</updated><title type='text'>J#, C# and .Net 2005</title><content type='html'>So, I'm really into this .Net thing. To tell you the truth, I started working with .Net since it first came out in its betas edition. For almost 7 months I haven't played with it at all, but I've decided to go back to it. Although there are other platforms around, everyone I've talked to seems to be very interested about it, thus prompting me to go back to it and sharpen my skills.&lt;br /&gt;&lt;br /&gt;I found a very interesting article that let me start working with the .Net and VS Express edition beta  2005. One thing that I need to mention though is that although the article is on C#, I will just use it as a starting point since I want focus generally on J#. This is due to the fact that I already k now C# (so I'd better learn something new) and also to the fact that we are doing lots of work on Java this whole academic year.&lt;br /&gt;&lt;br /&gt;By focusing on J#, I will get to work with the same language (almost) I am currently using for my assignments although the frameworks are different. So whether it's hobby, business work or school work, I get to leverage previous and currently acquired knowlege.&lt;br /&gt;&lt;br /&gt;Here's the URL to the article I was talking about earlier:&lt;br /&gt;&lt;a href="http://www.projectfirefly.co.za/Default.aspx?tabid=40&amp;newsType=ArticleView&amp;amp;articleId=15"&gt;An Introduction to Programming Using Microsoft Visual C# 2005 Express Edition&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I hope you guys out there who feel like experimenting by intalling a beta on your computer (I usually never do that), get to enjoy it. ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-8169077174876818330?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/8169077174876818330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/04/j-c-and-net-2005.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8169077174876818330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8169077174876818330'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/04/j-c-and-net-2005.html' title='J#, C# and .Net 2005'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-3987490289069308898</id><published>2005-04-24T00:18:00.000-07:00</published><updated>2009-10-05T01:18:37.120-07:00</updated><title type='text'>The hell's wrong with Microsoft?</title><content type='html'>&lt;a href="http://www.flickr.com/photos/24617349@N00/10622739/" title="photo sharing"&gt;&lt;img src="http://photos5.flickr.com/10622739_1ca67d66ad_m.jpg" alt="" style="border: 2px solid rgb(0, 0, 0);" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="margin-top: 0px;font-size:0;" &gt;&lt;a href="http://www.flickr.com/photos/24617349@N00/10622739/"&gt;The_Hell_with_microsoft&lt;/a&gt;&lt;br /&gt;Originally uploaded by &lt;a href="http://www.flickr.com/people/24617349@N00/"&gt;jpgeek&lt;/a&gt;.&lt;/span&gt; &lt;p&gt;All I have to say about this is:&lt;br /&gt;&lt;br /&gt;:-@ *-) +o( :-S :-|&lt;br /&gt;&lt;br /&gt;Grrrrrr!!!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-3987490289069308898?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/3987490289069308898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/04/hell-wrong-with-microsoft.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3987490289069308898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3987490289069308898'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/04/hell-wrong-with-microsoft.html' title='The hell&amp;#39;s wrong with Microsoft?'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-3367788971538783056</id><published>2005-04-15T16:56:00.000-07:00</published><updated>2009-10-05T01:18:37.129-07:00</updated><title type='text'>Microsoft Outlook Contacts to OS X Address Book</title><content type='html'>A few months ago (sometime in december), when I switched phones I needed to convert my  Address Book entries from my Powerbook to Microsoft Outlook on my PC. I remember having spent days looking for a solution but couldn't get any. So I decided to use my skills.&lt;br /&gt;&lt;br /&gt;All I did was to write an AppleScript that converted all the entries in my AddressBook into XML. Then I wrote a compatible VBA script in Microsoft Outlook to import the resulting XML file. It only took me about 2 hours to get everything right (how the heck did I spend so much time looking for something like this online when I could do it myself?). I wanted to build a nice interface and make the scripts available for free, but I never got time to do it. I probably will sometime this year as I know this is something many people would love to have. I think I can probably extend the script into moving stuff from iCalendar to Outlook Calendar etc...&lt;br /&gt;&lt;br /&gt;Anyways, I am switching phones again tomorrow (not that I want to, but something happened to my current phone). The new phone I am getting is a Sony Ericsson Z608. The features are impressive and for the price it is going for, I just couldn't resist. One nice feature of this phone compared to my current Motorola is the fact that it is possible to use iSync and synchronize most of the stuff via bluetooth to the PowerBook.&lt;br /&gt;&lt;br /&gt;Since I reinstalled OS X sometime ago, most of my data was gone including the entries in Address Book. So I needed to get my contacts this time from Microsoft Outlook to Address Book. So basically, all we have to do is to convert the MS Outlook contacts to a group VCard. One major problem is that this is not possible in MS Outlook. The application only gives users the option to export one contact at a time as a vCard (geez, how more stupid could they get?). So I figured out that I could spend the whole night searching on Google for applications that could do this easily or I had to write one myself using VBA.&lt;br /&gt;&lt;br /&gt;It turned out that after 2 hours, my franctic search for such an application yielded some positive results. Among most of the solutions I have tested, the best one by far (IMHO) is &lt;a style="font-weight: bold;" href="http://outpod.stoer.de/"&gt;OutPod&lt;/a&gt;. It worked great! In less than 5 mns, I had converted all my contacts to a group vCard, put the file in a shared directory, accessed it on the PowerBook and dragged it to  AddressBook. If you are facing the same problems, I strongly recommend you have a look at &lt;a style="font-weight: bold;" href="http://outpod.stoer.de/"&gt;OutPod&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So all I have to do tomorrow is to use iSync with the Z608 and I'm good to go! ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-3367788971538783056?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/3367788971538783056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/04/microsoft-outlook-contacts-to-os-x.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3367788971538783056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3367788971538783056'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/04/microsoft-outlook-contacts-to-os-x.html' title='Microsoft Outlook Contacts to OS X Address Book'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-5306849413338389486</id><published>2005-04-08T05:32:00.000-07:00</published><updated>2009-10-05T01:18:37.138-07:00</updated><title type='text'>Replacing Paint!</title><content type='html'>Here I am again,&lt;br /&gt;&lt;br /&gt;it' s strange how difficult it is to concentrate on a Friday. Instead of writing some code or being productive one way or the other, I rather spend an enormous amount of time reading blogs and searching for new things to experiment, etc...&lt;br /&gt;&lt;br /&gt;Anyways, if like me, for years you've been looking for a serious replacement to MS Paint, without really wanting to go the fullway of buying a complete graphics package like Adobe Photoshop, you may want to have a look at Paint.Net here: &lt;a href="http://www.eecs.wsu.edu/paint.net/"&gt;http://www.eecs.wsu.edu/paint.net/&lt;/a&gt; . Am going to catch up with sleep now.&lt;br /&gt;&lt;br /&gt;Enjoy ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-5306849413338389486?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/5306849413338389486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/04/replacing-paint.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/5306849413338389486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/5306849413338389486'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/04/replacing-paint.html' title='Replacing Paint!'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-7386890745869850963</id><published>2005-04-08T04:11:00.000-07:00</published><updated>2009-10-05T01:18:37.148-07:00</updated><title type='text'>MS Roadshow: it was ... OK.</title><content type='html'>Alright,&lt;br /&gt;&lt;br /&gt;I just got back from the seminar building. It was interesting, but not quite what I expected. I think I probably got my expectations a little bit too high. They presented ASP.Net 2.0 and the new VS.Net IDE.&lt;br /&gt;&lt;br /&gt;ASP.Net:&lt;br /&gt;well, I don't know what to say. The architecture is surely better than previous versions and the new features are lovely. Here's what I've been able to gather:&lt;br /&gt;&lt;span style="FONT-STYLE: italic"&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;at the bottom of the architecture, you've got everything related to your data store (Windows - considered as a data store, XML, SQL Server, anything you can think about where data can be stored and retrieved). Then at the top of that, you've got what they called patterns such as Membership, Navigation, Themes and Skins, Master Pages, and a few others. Basically what those patterns do is to help you the deveoper build a bunch of things without really thinking about the code. Something like Master pages is for example excellent when developing in teams because the designer can set areas that are not *editable* and then the developers can write code for the editable areas (isn't it what Smarty and its derived children do in PHP?).&lt;br /&gt;&lt;br /&gt;The other interesting thing which is a great plus (IMHO), is the fact that now solutions do not need to be in only one language. What I mean is from the demonstration, you could have a VB.Net solution and write a C# *code-behind* in it. This is very useful for a team made of various skills, basically, each developer would just leverage whatever skill they have and still get the work done.&lt;br /&gt;&lt;br /&gt;A new feature is the fact that now, solutions can be built anywhere on a computer and the developer doesn't even need to have access to an IIS server (if your computer came with Windows XP Home edition like mine, you'd understand how useful this is). All the developer has to do is to define a directory anywhere on his computer or local network, tell VS.Net to use it to store the various files and then during debugging, VS.Net instantiates an internal webserver that is used to check out the projects during coding. The webserver runs as a localhost on a specific port and is not available from outside the computer.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;There are a few more things that have been discussed. But all in all, I like what ASP.Net is going to look like. I have no idea whether there is currently any document on the web with an insight on what's coming up and what have been presented today. I'll have a look at it and if I am able to grab anything, I'll put the link here.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For those interested in .Net South African developers communities, here are a few links they provided us with:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;SA Developer (&lt;a href="http://www.sadeveloper.net/"&gt;http://www.sadeveloper.net/&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;SA Architect (&lt;a href="http://www.saarchitect.net/"&gt;http://www.saarchitect.net/&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;They also spent sometime explaining to us what are the graduate programs available and what it takes to be in one of those. And finally, we've been told about the Firefly project &lt;a href="http://www.projectfirefly.co.za/"&gt;http://www.projectfirefly.co.za/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;All in all, I was hoping for more, but it wasn't bad either. ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-7386890745869850963?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/7386890745869850963/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/04/ms-roadshow-it-was-ok.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7386890745869850963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7386890745869850963'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/04/ms-roadshow-it-was-ok.html' title='MS Roadshow: it was ... OK.'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-394764319274315701</id><published>2005-04-06T23:49:00.000-07:00</published><updated>2009-10-05T01:18:37.158-07:00</updated><title type='text'>Microsoft Roadshow on campus!</title><content type='html'>Hey,&lt;br /&gt;&lt;br /&gt;I've been waiting for this - not specifically the MS roadshow, but the seminars we used to have last year in the CSSE (Computer Science and Software Engineering) faculty - since the beginning of this semester. I think things have started coming on now.&lt;br /&gt;&lt;br /&gt;I just got an email annoucing that the Microsoft roadshow will be on campus Friday the 8th 2005. This is going to be interesting. They will be mainly discussing technologies such as the .Net framework, the Office 2004 package and how it relates to the .Net framework and there will also be an emphasis on the MS SQL Server.&lt;br /&gt;&lt;br /&gt;Check out my blog on Saturday morning, by then I should have written something on how things went. I'm really excited (this is the first time I'll be at a *real* Microsoft event :-D).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-394764319274315701?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/394764319274315701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/04/microsoft-roadshow-on-campus.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/394764319274315701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/394764319274315701'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/04/microsoft-roadshow-on-campus.html' title='Microsoft Roadshow on campus!'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-3532209582751764803</id><published>2005-04-01T23:50:00.000-08:00</published><updated>2009-10-05T01:18:37.167-07:00</updated><title type='text'>Is your Powerbook secure?</title><content type='html'>In a previous post about securing Windows, I have written something about "physical access to a computer is the deadliest attack ever". Let me show you how deadly this kind of access really is (so this is not a problem with Windows only, it is a common problem with other operating systems as well).&lt;br /&gt;&lt;br /&gt;Anyways, you've just offered yourself a &lt;a href="http://www.apple.com/powerbook"&gt;Powerbook&lt;/a&gt;, you're incredibly happy about it and of course you feel incredibly secure (all your data in a safe place run by an OS based on the BSD4.0 kernel, Unix-like filesystem with all the permissions stuff, etc...). Pretty cool, but if your machine gets stolen, there is nothing (at least that I know of) that can stop the thief to access your information. How does he do it? Read on.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;Start the computer and immediately hold the "Command+S" keys: the computer starts in single mode and access to root privileges is provided.&lt;/li&gt;   &lt;li&gt;Quickly check the state of the filesystem before mounting it as read and write mode:&lt;br /&gt;   # /sbin/fsck -y&lt;br /&gt;   # /sbin/mount -wu&lt;/li&gt;   &lt;li&gt;Now that full root access is provided, you can imagine the possibilities. A good one would be for example, starting up full system services (including network). The rest, I leave it for your imagination.&lt;/li&gt; &lt;/ol&gt; So, that's pretty scary. What's the best way of protecting yourself in the meantime Apple gets a solution for this? I'd say, never ever let anyone touch that computer of yours.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-3532209582751764803?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/3532209582751764803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/04/is-your-powerbook-secure.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3532209582751764803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/3532209582751764803'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/04/is-your-powerbook-secure.html' title='Is your Powerbook secure?'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-7899974704597664886</id><published>2005-04-01T23:30:00.000-08:00</published><updated>2009-10-05T01:18:37.177-07:00</updated><title type='text'>Twelve common sense windows securing tips</title><content type='html'>&lt;ol&gt;   &lt;li&gt;Make sure you upgrade to Service Pack 2 (&lt;a href="http://www.microsoft.com/athome/security/protect/windowsxp/choose.mspx"&gt;Click here&lt;/a&gt;)&lt;/li&gt;   &lt;li&gt;Schedule Windows Update to run at least once a week (&lt;a href="http://www.microsoft.com/athome/security/protect/update.mspx"&gt;Click here&lt;/a&gt;)&lt;/li&gt;   &lt;li&gt;Download the Microsoft Antispyware which is in its beta version at the time of this writing, schedule it for spyware signatures updates as well as daily scanning of your computer (&lt;a href="http://www.microsoft.com/athome/security/spyware/software/default.mspx"&gt;Click here&lt;/a&gt;)&lt;/li&gt;   &lt;li&gt;Avoid installing and running suspicious trial programs and other programs claiming to protect your computer that you encounter on the internet.&lt;/li&gt;   &lt;li&gt;If you have a broadband internet connection, make sure you are behind a firewall or otherwise, switch off your computer when you are not using it.&lt;/li&gt;   &lt;li&gt;Never download attachments from suspicious emails.&lt;/li&gt;   &lt;li&gt;Use a "webmail" instead of anything like Microsoft Outlook if you have the option.&lt;/li&gt;   &lt;li&gt;Don't  let your friends, children or  anybody else for that matter open a file on your computer from a floppy disk or CD-Rom which origins you know nothing about. Even if you do let them because it is important for them to access, make sure you run a complete virus as well as antispyware, trojan horses scan as soon as they are done.&lt;/li&gt;   &lt;li&gt;Always make sure you lock your computer everytime you are not close to it (even if you going to the bathroom for only 10 mns). Security experts have determined that physical access to a computer is the deadliest.&lt;/li&gt;   &lt;li&gt;There are a few available programs that you can run to scan your port and find out what ports on your computer are open, why they're open and what kind of information are being sent out through them. Get such an application and run it about 2 to 3 times in a week.&lt;/li&gt;   &lt;li&gt;Check out suspicious startup tasks / programs by going to "Start Menu -&gt; run -&gt; type "msconfig" -&gt; then click on the "startup" tab. Use google to lookup what suspicious taks or startup-items do and whether you really need to enable them.&lt;/li&gt;   &lt;li&gt;That's it!&lt;br /&gt;  &lt;/li&gt; &lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-7899974704597664886?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/7899974704597664886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/04/twelve-common-sense-windows-securing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7899974704597664886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7899974704597664886'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/04/twelve-common-sense-windows-securing.html' title='Twelve common sense windows securing tips'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-5734613909033625467</id><published>2005-04-01T22:55:00.000-08:00</published><updated>2009-10-05T01:18:37.239-07:00</updated><title type='text'>Wishlist for MS Windows enhancements</title><content type='html'>So, we're all waiting for the upcoming Windows Longhorn right? Although we've seen previews here and there, I don't think most of us would upgrade to it as soon as it's out (I wouldn't till I know for sure that it's the right thing to do - both security and stability wise). Mind you, Windows XP SP2 is the most stable and secured operating system from the Microsoft shop till date. Anyways, my point is that for those of us who will be using Windows XP for about 2 to 3 more years from now, I think that apart from security enhancements, there are a few things that might help make the OS more user friendly. Some of those have already been done in the SP2 but more can be done. Here's my wishlist for bettering the Windows OS.&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;tabbed browsing: this is something I wished I had in IE for years. Many people don't use IE because of security reasons. Although this is the same for me, another main reason why I do not use IE is because I don't want to have 10 different windows opened when am doing a search on google and reading through my results. I mean seriously, the strangest thing is that Microsoft is known or trying to be known (you guys can decide whichever it is) as one of the most innovative tech company in the IT world. But strangely enough, it hasn't been so for a while. I have observed that they only come up with new stuff in their products, only months or years after some other people have implemented it right from the start. A simple example is the fact that "&lt;a href="http://www.apple.com/safari"&gt;Safari&lt;/a&gt;", "&lt;a href="http://www.mozilla.org/firefox"&gt;Mozilla Firefox&lt;/a&gt;" and a few well known browsers out there came up straight with features like tabbed-browsing and popup-blockers. For a long time, third party pluggins had to be bought or downloaded to protect IE users from popups (this has been solved with SP2) but this is still not the case for tabbed-browsing. Would microsoft ever come up with a browser that offers tabbed-browsing? I hope they do (IE version 7 is on the way, let's see what they do with it).&lt;/li&gt;   &lt;li&gt;Easier and enhanced transfer of files between MSN Messenger users. Have you ever tried to transfer a file to someone who's behind a firewall using MSN? It just doesn't work! And believe it or not, most of us guys are behind firewalls. Yahoo has solved this problems a long time ago: when one tries to transfer a file to another Yahoo messenger buddy who's behind a firewall, the application lets you know that your buddy is behind a firewall and cannot receive the file directly from you. It then proposes that you upload the file to a yahoo file server and once this is done, the link is displayed on the messenger of your buddy who just has to click on an HTTP link to get the file downloaded to his computer. HTTP being run commonly on port 80, most firewalls let users access those files without a problem. Even such a feature doesn't appear to be in the latest version 7 of MSN Messenger. Will this ever be implemented? Let's wait and see.&lt;/li&gt;   &lt;li&gt;Access to compilers, make tools and so on directly included in the OS distribution. OK, I know that there is a very small percentage of people who would actually need this in the Windows OS. But like they do with IIS, why wouldn't they allow us after installing Windows to choose "developers' tools" as an optional installation package? Think about it this way, most operating systems (even Apple's OS X) are delivered out of the box as a developer's operating sytem. Meaning that all these tools are hidden from the "average user" but if you do need them, intall them from the optional packages CD, open the terminal and off you go compiling and doing whatever you want to do. In short, you get access to startup / full developers tools without having to buy or spend about 2 or 3 days searching on google for those and all of this without spending more money than you did to buy the OS package. Will we ever get the chance to have something like this with MS Windows?&lt;/li&gt; &lt;/ul&gt; There are probably a few more things you guys out there can think about to make MS Windows a better / user friendly OS. For me, the list stops here (for the moment).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-5734613909033625467?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/5734613909033625467/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/04/wishlist-for-ms-windows-enhancements.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/5734613909033625467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/5734613909033625467'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/04/wishlist-for-ms-windows-enhancements.html' title='Wishlist for MS Windows enhancements'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-6925875409198237675</id><published>2005-04-01T22:10:00.000-08:00</published><updated>2009-10-05T01:18:37.249-07:00</updated><title type='text'>Does Windows XP SP2 really make computers more secure?</title><content type='html'>Let's talk about security of pc users and mainly Windows users today. It's been a while since I wanted to approach the subject, but couldn't do so without testing a few things for myself. So, like me, you've probably been incited by Microsoft everytime you visit their website to install SP2. I upgraded my Windows operating system to SP2 about 4 months ago. During those 4 months, I've experienced quite some improvement and feel better about using Windows now. Now that you've gotten the background, let's get back to the real question of whether WndowsXP SP2 really makes your computer more secure.&lt;br /&gt;&lt;br /&gt;I was quite nervous about upgrading, but since I've done it, I can assure you that I haven't seen Windows XP being so stable and felt so confident about using it. What does SP2 bring to your computer?&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Well first of all and most importantly it delivers an improved and amazingly performance-enhanced firewall. For those who have been using Windows XP since it first came out, you would have seen that all that the "so-called" firewall had to offer was just "an internet connection monitor". The user had no clue whether it really worked and what "monitoring" really went on. With the enhancements brought by SP2, the user has a great decision flexibility: he can decided what software was allowed to connect to the internet, what services could be run and most importantly, the user is notified whenever a software or application he just installed tries to modify port settings and go out on the Internet.&lt;/li&gt;   &lt;li&gt;Second, a few Internet Explorer enhancements. Although security-wise there was been some enhancements with many security holes being patched (thanks God!), I am mostly pleased with the fact that SP2 delivers in IE a very robust popup-blocker as well as new ways to handle downloaded content and ActiveX objects.&lt;/li&gt;   &lt;li&gt;Third there are a few other things but I don't think those are of interest to people like my mom who just want to put their computers on and get their jobs done.&lt;br /&gt;  &lt;/li&gt; &lt;/ul&gt; So, does SP2 make windows more secure? Certainly does. But there is still much work to be done. Some of these things would be for example being able to secure the Windows registry: at this point, it is still too easy for malicious applications to change settings in the Windows registry. For security minded people, it's a nightmare because every night before switching computers off, we have to run scan, we have to monitor any strange behavior on our computer throughout the day and pay attention to specific things like processes that are running, sudden change in the speed of running tasks, etc...&lt;br /&gt;&lt;br /&gt;I hope that future versions of Windows workstation Operating Systems will actually allow us to concentrate on our day to day jobs instead of spending 45% of that time worrying whether our computer is sending out information without us having a clue what's going on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-6925875409198237675?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/6925875409198237675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/04/does-windows-xp-sp2-really-make.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/6925875409198237675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/6925875409198237675'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/04/does-windows-xp-sp2-really-make.html' title='Does Windows XP SP2 really make computers more secure?'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-8614821146726835042</id><published>2005-03-24T00:20:00.000-08:00</published><updated>2009-10-05T01:18:37.259-07:00</updated><title type='text'>Apologies</title><content type='html'>Good morning,&lt;br /&gt;&lt;br /&gt;I would like to start re-posting on my blog by first apologizing to everyone who reads it. I know it's a pain to go to a blog / website and not be able to have access to new information for quite a long time. I don't have a clue how many visits I've missed by not posting anything here, but am sure it would be sorta an impressive figure.&lt;br /&gt;&lt;br /&gt;Since my last posting, many things have happened (whether it's in my life, in technology or just fun or sad stuff) and I have lots of things to talk about (iPod Shuffle, Motorola V500, strange problems with my Powerbook, etc...). My other objective is to try to refocus the main purpose of this blog which is to talk about technology and related topics.&lt;br /&gt;&lt;br /&gt;I might not be able to post everyday as I used to, but I've made a point to make sure I post about 2 times a week as a minimum. My not being able to post everyday is due to the fact that I've restarted school (summer's over) and I've got tons of assignment, research and other things to do, without forgetting the tasksI've got to accomplish on most of my Open Source projects.&lt;br /&gt;&lt;br /&gt;Talking about those projects, I still have to release the code and make it available in order to get more developers to participate. But I also want to make sure that my code is clean enough for other people to work with, to find bugs, to sort things out, etc...&lt;br /&gt;&lt;br /&gt;And Wooow, I can't believe I made it. I've been able to post again. You know, one of the other reasons why I haven't posted in so long is that when one stops something and knows what he or she's  got quite of an audience, it is very difficult to go back and restart because there is this kind of fear of "how the *heck* am I going to apologize for not having said anything in so long". I guess I've gotten over it now.&lt;br /&gt;&lt;br /&gt;It feels pretty good to be alive again!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-8614821146726835042?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/8614821146726835042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/03/apologies.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8614821146726835042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8614821146726835042'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/03/apologies.html' title='Apologies'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-8161527555936242877</id><published>2005-02-11T04:14:00.000-08:00</published><updated>2009-10-05T01:18:37.268-07:00</updated><title type='text'>PHP Frameworks</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Disclaimers:&lt;/span&gt;&lt;br /&gt;Anything written in this particular post is my sole opinion the matters addressed. It's my own judgement and I do not recommend you use anything said here as "recommendation" for system implementation and so on. If you do, do it at your own risk. I rather recommend that you spend some time using the systems addressed here yourself and find what is appropriate in your environment and situation.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Let's get cracking&lt;/span&gt;:&lt;br /&gt;So, let's talk about PHP Frameworks. Before diving more into the main subject of my post, I would like to spend explain what *I* think a framework is and why *I* think it is important.&lt;br /&gt;&lt;br /&gt;I consider an application framework to be a set of standardized methods, settings, filesystem structure, code library and templates to build applications.  I think using an application framework is important because it helps the developing team maintain a set of standards when it comes to coding but also it helps a lot in code reuse: the framework keeps growing till it's got in it enought classes or code library to build applications in just a few declarations and configuration modifications.&lt;br /&gt;&lt;br /&gt;What I particularly found important when I started using frameworks was the fact that it made my life so much easier by *really* breaking my applications in a 3-tier. So basically, I have my data store, application or business logic and presentation layer truly separated.&lt;br /&gt;&lt;br /&gt;A few years ago when I started programming in PHP, I would write the *normal* spaghetti code where a mix of HTML and PHP makes a good meal and I have to say that it always worked till I started dealing with slightly larger projects: because I wanted to sort out bugs easily as well as be able to build applications really fast, I spent sometime building my own framework (tinyCMS as I called it at the time). It worked really well and there is quite an impressive number of applications using it and even some people developing it further till date. But it had one big problem: it was a *2-tier* application, that is the data-store was separated but the presentation and business logic were still tied together. The design didn't *really* allow for easy maintenance, easy debugging and the likes.&lt;br /&gt;&lt;br /&gt;About a few months ago, although I always wanted to work with it (but never did), I discovered PHP-OOP or Object Oriented Paradigm in PHP. It took me a while to get through it but once I did,  it was awesome. For the past 4 months, I've built quite some skills working with PEAR (http://pear.php.net), ADOdb, the Smarty templating engine (http://smarty.php.net) and a custom framework built by SIP. With all those components together, it has been possible to build truly scalable, maintainable and 3-tier applications where  the  origin of the data didn't matter and the presentation layer could be anything I wanted (HTML, XHTML, XML, text, etc...). This also gave me the opportunity to learn and use MVC (Model-View-Controller) paradim.&lt;br /&gt;&lt;br /&gt;I have now gotten so used to it that it's rather difficult to see myself programming *spagetthi* PHP again (I even tried and I just couldn't do it).&lt;br /&gt;&lt;br /&gt;Getting to the point, I wanted to be able to use the same powerful model in my own applications. I spent almost a week now evaluating and studying the various possibilities out there. Here are some of the PHP frameworks I've had a look at:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;&lt;a href="http://phrame.sourceforge.net"&gt;Phrame&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;&lt;a href="http://www.mamboserver.com"&gt;Mamboserver&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;&lt;a href="http://www.blueshoes.org"&gt;Blueshoes&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;&lt;a href="http://www.horde.org/horde"&gt;Horde&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;&lt;a href="http://waffle.muldown.com/"&gt;PHP Waffle&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;&lt;a href="http://www.mojavi.org"&gt;Mojavi&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;a few other I don't really remember&lt;/li&gt; &lt;/ul&gt; Those are some of the frameworks I really liked but they had a few downfalls: some of them were way too complex but I could deal with that. What I couldn't however deal with is the fact that a majority of them were poorly documented (how the *fuck* am I supposed to know what classes to use, what functions to call, the way the controller worked, etc...). But one obviously stand out: &lt;a href="http://www.mojavi.org"&gt;Mojavi&lt;/a&gt;. The number one thing about Mojavi3 is that it works only with PHP5 and is fully OOP. Besides that it was easy to implement and although I was not running PHP5 and never ran it as a matter of fact because I didn't want to get rid of my PHP4 installation, I found a way to have both version of PHP running simultaneously on the same machine (&lt;a href="http://www.iris-studio.com/docs/php4_and_php5_on_osx.html"&gt;see here&lt;/a&gt;). In no time yesterday night (which was my first encounter with Mojavi), around 2.50 Am I was running my first small application. Mojavi has turned out to be the best framework I've come accross so far and it totally kicks ass compared to its competitors (IMHO).&lt;br /&gt;&lt;br /&gt;To finish up on PHP frameworks, if you need ease of deployment, easy learning curve, OOP based and 3-tier layer applications, Mojavi might be the way forward. But then again, your needs might not be the same as mine.&lt;br /&gt;&lt;br /&gt;If you have had experiences with other frameworks, it would hurt to leave your impressions and thoughts in the comment section of this post. ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-8161527555936242877?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/8161527555936242877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/02/php-frameworks.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8161527555936242877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8161527555936242877'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/02/php-frameworks.html' title='PHP Frameworks'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-1640988059477396224</id><published>2005-02-06T23:31:00.000-08:00</published><updated>2009-10-05T01:18:37.279-07:00</updated><title type='text'>The Zend PHP Certification</title><content type='html'>OK, it's now looking like PHP is being recognized as a *normal* programming language and is being used more and more around the world (although I still have a few friends who constantly keep telling me that programming with PHP is just not the thing to do). But let's have a look at what PHP can do at the moment and what I have myself done with it:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;PHP can be used to build the dumbest and simplest application ever (with quite a small learning curve)&lt;/li&gt;   &lt;li&gt;PHP since it's version 4 can be used as an OOP programming language and since version 5 can be totally used as an OOP programming language (without having to be *procedural*) as you would do when programming in Java&lt;/li&gt;   &lt;li&gt;PHP can be used to build secure and enterprise level applications just like Java and languages of the .Net framework (I've done that and I've seen many companies / people do that)&lt;/li&gt;   &lt;li&gt;PHP can be used to build desktop applications (with the &lt;a href="http://freshmeat.net/projects/php-gtk/"&gt;PHP-GTK&lt;/a&gt; extension)&lt;br /&gt;&lt;br /&gt; &lt;/li&gt;   &lt;li&gt;PHP is highly flexible and extensible without forgetting that it can run a quite a large number of server platform, the main ones being (Linux, &lt;a href="http://www.easyphp.org/"&gt;MS Windows&lt;/a&gt;)  and basically anything else capable of running &lt;a href="http://www.apache.org/"&gt;Apache&lt;/a&gt; and the PHP Module.&lt;/li&gt; &lt;/ul&gt; Since we've had a look at what PHP can do and what it has already done, let's talk about the new&lt;a href="http://www.zend.com/store/education/certification/certification-jobs.php"&gt; Zend PHP Certification&lt;/a&gt;. I read about it this morning when visiting &lt;a href="http://www.zend.com/jobs"&gt;my daily cup of tea&lt;/a&gt;. The certification, as &lt;a href="http://www.zend.com/"&gt;Zend&lt;/a&gt; explains it gives you  some kind of competitive advantage in the job market and so on. The exam's &lt;a href="http://www.zend.com/store/education/certification/zend-php-certification-objectives.php"&gt;objectives&lt;/a&gt; are quite clear and simple and you can even take a &lt;a href="http://www.zend.com/store/education/certification/self-test.php?begin=1"&gt;sample test&lt;/a&gt; to see how far you fair.&lt;br /&gt;&lt;br /&gt;It all sounds very good but I am a little bit concerned about this certification. A few years ago, what we have seen is a large number of *certified* people who once given a job, couldn't accomplish them; strangely enough, most employers would recruit *certified* job seekers over non-certified ones who could *actually* do the job. I have to say that I almost went for certifications myself but after deeply thinking about it, I told myself it was simply a waste of resources and time. Think about it this way:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;if this year, you for example took the MCSE or MCSD certifications and you studied hard enough and passed them all, next year, you'd have to spend more money and take maybe MCSE 2006 or MCSD 2006 and so on. When are you supposed to stop? Because when you think about it, employers would always recruit the latest MCS* over you if you didn't take the last certification although you've got years of experience.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To cut it short, I think certifications and the Zend PHP Certification are a good thing, but does that mean that because I have decided not to take the certification, my employment chances as a freelancer or fulltime employee would jump low although I have years of experience dealing with the technology?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Another question that I keep on asking myself is *what does it really mean to be certified?*: that you would always be able to get the job done? Humm...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Well, let's keep watch and see what the future would tell us.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-1640988059477396224?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/1640988059477396224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/02/zend-php-certification.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/1640988059477396224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/1640988059477396224'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/02/zend-php-certification.html' title='The Zend PHP Certification'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-1865564477944914488</id><published>2005-02-02T10:44:00.000-08:00</published><updated>2009-10-05T01:18:37.288-07:00</updated><title type='text'></title><content type='html'>&lt;a href='http://photos1.blogger.com/img/210/2833/640/02Photo.jpg'&gt;&lt;img border='0' style='border:1px solid #000000; margin:2px' src='http://photos1.blogger.com/img/210/2833/320/02Photo.jpg'&gt;&lt;/a&gt;&lt;br /&gt;Much much deeper that same night: I need to sleep!! Heeeeellpp!!&amp;nbsp;&lt;a href='http://www.hello.com/' target='ext'&gt;&lt;img src='http://photos1.blogger.com/pbh.gif' alt='Posted by Hello' border='0' style='border:0px;padding:0px;background:transparent;' align='absmiddle'&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-1865564477944914488?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/1865564477944914488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/02/much-much-deeper-that-same-night-i-need.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/1865564477944914488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/1865564477944914488'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/02/much-much-deeper-that-same-night-i-need.html' title=''/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-2450791197970768852</id><published>2005-02-02T10:43:00.000-08:00</published><updated>2009-10-05T01:18:37.298-07:00</updated><title type='text'></title><content type='html'>&lt;a href='http://photos1.blogger.com/img/210/2833/640/01Photo.jpg'&gt;&lt;img border='0' style='border:1px solid #000000; margin:2px' src='http://photos1.blogger.com/img/210/2833/320/01Photo.jpg'&gt;&lt;/a&gt;&lt;br /&gt;Deeper during the same night...&amp;nbsp;&lt;a href='http://www.hello.com/' target='ext'&gt;&lt;img src='http://photos1.blogger.com/pbh.gif' alt='Posted by Hello' border='0' style='border:0px;padding:0px;background:transparent;' align='absmiddle'&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-2450791197970768852?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/2450791197970768852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/02/deeper-during-same-night.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/2450791197970768852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/2450791197970768852'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/02/deeper-during-same-night.html' title=''/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-7980157361819923266</id><published>2005-02-02T10:40:00.000-08:00</published><updated>2009-10-05T01:18:37.307-07:00</updated><title type='text'></title><content type='html'>&lt;a href='http://photos1.blogger.com/img/210/2833/640/03Photo.jpg'&gt;&lt;img border='0' style='border:1px solid #000000; margin:2px' src='http://photos1.blogger.com/img/210/2833/320/03Photo.jpg'&gt;&lt;/a&gt;&lt;br /&gt;Early during the night...&amp;nbsp;&lt;a href='http://www.hello.com/' target='ext'&gt;&lt;img src='http://photos1.blogger.com/pbh.gif' alt='Posted by Hello' border='0' style='border:0px;padding:0px;background:transparent;' align='absmiddle'&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-7980157361819923266?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/7980157361819923266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/02/early-during-night.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7980157361819923266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7980157361819923266'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/02/early-during-night.html' title=''/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-5584645571433799817</id><published>2005-01-25T03:07:00.000-08:00</published><updated>2009-10-05T01:18:37.323-07:00</updated><title type='text'>Reaction on Comment about RSS.</title><content type='html'>I am happy to react to one of the first and most relevant comments on the topics I've discussed on this blog so far. Here's the comment I got this morning:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-size:78%;" &gt;I am waiting patiently to see what comes next after xml/rss. Looks like life has always been that way. Things come, they become hip and in no time folks forget about them.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I remember when back in the days e-cards became the craze. Then flash animations took over the web arena. Some few 'centuries' later we started seeing "email this to a friend" and "printable format" links all over the web. Just taking a turn off the web, mobile phones with cameras took over the human race:&gt;). Should I say blogging was or is...?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Then came these tiny orange icons. RSS. Its interesting the kind of things it allows us to do.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What do u think could be the next big 'data' thing after XML/&lt;a href="http://technorati.com/tag/RSS" rel="tag"&gt;RSS&lt;/a&gt;?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Well, I find it interesting that XML is being considered as something "hip", reading to disappear anytime from now. Here's my reply (I wouldn't usually do this, but this is particularly interesting):&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;"&lt;span style="font-style: italic;"&gt;Well as you said, things come and go. But there are things that are bound to stay. XML is not just a "print box" or "email to a friend". XML is a core technology. Not only used on the web, but also used to build many and various other technologies. There are a certain number of things that wouldn't have been without XML. Think about it this way, say XML will disappear is almost like saying "data" would stop being transported and platform independant (forget about the web here). We are talking about software interoperability. The software that you use to build websites and web-applications (Dreamweaver MX) heavily uses XML for its functionning and so do Microsoft Office tools, and so on. Hence XML is used in B2B and B2C and EDI realms. So no, &lt;a href="http://technorati.com/tag/XML" rel="tag"&gt;XML&lt;/a&gt; isn't just something like "come-make'em happy-disappear". And finally, when you think about it, "print and send email" boxes were not based on any standard or no one actually spent hours and years building them. I do not think that an organization as important as the W3C would spend such an enormous amount of time and resources building a standard that is a "joke". And I definitely do not think that Corporations such as Sun Microsystems, Apple, Microsoft, IBM would waste their resources either working on it.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Think about it.&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0); font-weight: bold;"&gt;MUCH LATER AS WE REACH SOME KIND OF AGREEMENT after his &lt;a href="http://jpgeek.blogspot.com/2005/01/reaction-on-comment-about-rss.html#comments"&gt;comment&lt;/a&gt; on my repost&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-weight: bold;"&gt;Nirvana&lt;/span&gt;: let me ask u a question?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RevBlont&lt;/span&gt;: ask&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Nirvana&lt;/span&gt;: b4 xml, could u gather data from MS Outlook and make  that data available to other platforms easily?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RevBlont&lt;/span&gt;: thats not the issue... listen .. my bottom line is this&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RevBlont&lt;/span&gt;: xml is not the last we are seeing&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Nirvana&lt;/span&gt;: i know&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Nirvana&lt;/span&gt;: but at the same time it's not the "printbox" thingy&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Nirvana&lt;/span&gt;: that u have to understand&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Nirvana&lt;/span&gt;: it's a core technology&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RevBlont&lt;/span&gt;: i didnt say it was... what i am saying is... it CAN disappear&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RevBlont&lt;/span&gt;: even as a core techology&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RevBlont&lt;/span&gt;: if another BETTER core tech comes along&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Nirvana&lt;/span&gt;: but at the same time it's not gonna disappear before the next 15 or 20 years&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Nirvana&lt;/span&gt;: just as SGML on which HTML, XML and any other markup we use is based on&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RevBlont&lt;/span&gt;: yes but it will&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Nirvana&lt;/span&gt;: good&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Nirvana&lt;/span&gt;:  I am going back there for a final  repost&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As a reader of this blog, if you have an opinion on this topic that you would like to express, you're welcome to use the comment fields.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-5584645571433799817?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/5584645571433799817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/01/reaction-on-comment-about-rss.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/5584645571433799817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/5584645571433799817'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/01/reaction-on-comment-about-rss.html' title='Reaction on Comment about RSS.'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-9057742483199354388</id><published>2005-01-24T23:53:00.000-08:00</published><updated>2009-10-05T01:18:37.334-07:00</updated><title type='text'>My Gmail Inbox as an RSS Feed</title><content type='html'>It looks like RSS is *really* becoming the next big thing. I haven't visted any website lately that didn't offer a sort of RSS Syndication. Why? I think the answer is simple: RSS is XML and XML goes everywhere, talks to anything and is 100% platform independant. Since XML is so *transportable*, RSS enables access to relevant information anywhere, anytime, and even when you're offline! The cool thing is, one doesn't have to only transport text information with RSS. Another flavor of RSS enables you to &lt;a href="http://www.ipodder.org/whatIsPodcasting"&gt;Podcast&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As any modern Internet user, my favorite browser is &lt;a href="http://www.firefox.com/"&gt;Mozilla Firefox&lt;/a&gt;. It's the best browser I've used so far and it's got an important number of &lt;a href="https://addons.update.mozilla.org/extensions/?os=nt&amp;application=firefox"&gt;extensions&lt;/a&gt; for hardcore Internet users as well as extensions that would perfectly fit the online lifestyle of any other Internet users category. A very cool feature of Firefox is that it lets you know whether a website is offering feeds or not. If a website you are currently visiting offers feeds, you will see the RSS logo appearing at the lower right corner of the browser. I was in my &lt;a href="http://gmail.google.com/gmail/help/about.html"&gt;Gmail&lt;/a&gt; Inbox today and I saw the RSS icon. I believe it must have always been there and I've never paid any attention to it. I quickly searched the web to find out how one could subscribe to his/her Inbox feed (ain't that cool?) . And yes, I wasn't dreaming. Gmail offers its users the possibility to RSS syndicate their mailbox: the software is getting cooler and featureful ;-).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So, now we know that we can syndicate our mailbox. How does it work though? All you have to do is to subscribe to it using the following format (it involves an HTTP authorization):&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:85%;"&gt;http://yourgmailusername:yourgmailpassword&lt;br /&gt;&lt;br /&gt;@gmail.google.com/gmail/feed/atom/index.xml&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And if everything works out well, you should be able to read your mailbox in your RSS news reader. Even better, you should be able to read your gmail-box on your Pocket PC using RSS Sync (ref.: the post before this one).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Have fun and let me know how it goes!&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-9057742483199354388?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/9057742483199354388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/01/my-gmail-inbox-as-rss-feed.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/9057742483199354388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/9057742483199354388'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/01/my-gmail-inbox-as-rss-feed.html' title='My Gmail Inbox as an RSS Feed'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-5040694388512623099</id><published>2005-01-22T19:59:00.000-08:00</published><updated>2009-10-05T01:18:37.344-07:00</updated><title type='text'>Pocket PC RSS Sync</title><content type='html'>I had a really bad night. Woke up around 2 Am and for some reason I couldn't get back to sleep. I went instead to my computer to do the best thing you can do on the web: research and read.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It turned out quite well as I stumbled upon something that made me forget my aweful night: an RSS sync for PocketPCs. I always wanted something like this: I spend an enormous amount of time every day reading blogs and tons of other documents that could be syndicated but once I was off my computer, there was no way I could read any of those. With &lt;a style="font-weight: bold;" href="http://www.viksoe.dk/code/rsssync.htm"&gt;RSS Sync&lt;/a&gt; which is an extension for ActiveSync, I can take all those reads with me to my room and everywhere I go.  Isn't that great?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Of course, you can argue that I could use &lt;a href="http://www.avantgo.com/"&gt;AvantGo&lt;/a&gt; (which I do by the way) but apart from &lt;a href="http://www.cnn.com/"&gt;CNN&lt;/a&gt;, &lt;a href="http://www.bbc.co.uk/"&gt;BBC&lt;/a&gt; and some of the *big* news channels, not everyone publishes on AvantGo. So I think we, PPC users owe a big thanks to whoever is the author of this extension.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;How does it work? It's all explained on the &lt;a href="http://www.viksoe.dk/code/rsssync.htm"&gt;&lt;span style="font-weight: bold;"&gt;WEBSITE&lt;/span&gt;&lt;/a&gt; where I found it. I've already subscribed to all my current blog read! Yiiiiiihaaa!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I think I am happy enough to go back to sleep. And by the way, if you don't have a clue what RSS stands for, it's Really Simple Syndication. If you want to read more about RSS, have a look at "&lt;a href="http://www.xml.com/pub/a/2002/12/18/dive-into-xml.html"&gt;What is RSS&lt;/a&gt;". You can also read about the &lt;a href="http://www.rss-specifications.com/"&gt;RSS  specs&lt;/a&gt; if you're that inclined.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-5040694388512623099?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/5040694388512623099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/01/pocket-pc-rss-sync.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/5040694388512623099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/5040694388512623099'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/01/pocket-pc-rss-sync.html' title='Pocket PC RSS Sync'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-7487432722283657403</id><published>2005-01-18T06:45:00.000-08:00</published><updated>2009-10-05T01:18:37.354-07:00</updated><title type='text'>Review of the Samsung SGH-X430</title><content type='html'>As I said in one of my &lt;a href="http://jpgeek.blogspot.com/2005/01/here-is-very-interesting-topic-by.html"&gt;previous posts&lt;/a&gt;, I considerably downgraded in terms of mobile telephony devices compared to the kind of devices I've used for the past 2 years. But downgrading doesn't necessarily mean using a mobile phone that was created last century. People may not know much about the Samsung SGH-X430, so I decided to write a small review.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/img/210/2833/640/DSCF0056.jpg"&gt;&lt;img style="border: 1px solid rgb(0, 0, 0); margin: 2px;" src="http://photos1.blogger.com/img/210/2833/320/DSCF0056.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My Samsung SGH-X430&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here's a list of the features it holds:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;65536 Color Screen&lt;/li&gt;   &lt;li&gt;Polyphonic Ringtone or Melody&lt;/li&gt;   &lt;li&gt;Multimedia Messaging Service&lt;/li&gt;   &lt;li&gt;MIDP 2.0 Enabled&lt;/li&gt;   &lt;li&gt;Support for WAP 1.2 / XHTML&lt;/li&gt;   &lt;li&gt;500 entries for the internal phonebook&lt;/li&gt;   &lt;li&gt;GPRS also known as 2.5G&lt;/li&gt;&lt;li&gt;Talk time of 150 - 210 min&lt;/li&gt;   &lt;li&gt;Stand-by time of 150 - 260 hrs&lt;br /&gt;&lt;br /&gt;  &lt;/li&gt;  &lt;/ul&gt; As, you can see, apart from the crisp and nice screen rendering, it's basically a low end phone (no irDA, no support for the Bluetooth protocol, no camera, and I could keep on listing...). The question that you might ask would be what could possibly make me buy such a phone. Well, first you need to read the link to the previous post at the top of this review to understand where I am coming from. Second, although the phone is pretty much low end, it's got a bunch of other cool features that I take in account when my geeky side sleeps for a while:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;folding type of phone (enters your pocket and you don't feel it's there compared to the Nokias I've owned through the years)&lt;/li&gt;   &lt;li&gt;nice and simple design&lt;/li&gt;   &lt;li&gt;100% stylish when I feel fashionistic!&lt;/li&gt;   &lt;li&gt;and still holds in its light weight the minimum my type of  geek would ask for in a cellphone&lt;/li&gt; &lt;/ul&gt; I would definitely recommend this phone to anyone who wants something good and stylish without necessarily spending lots of money.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;On the other hand, if you're a heavy SMS (Short Messaging Service) user and don't feel like learning a new way of writing your SMSs, I wouldn't recommend this phone at all: you'd rather go for a Nokia (I believe they've got the best, easiest and most intuitive SMS writing application).&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-7487432722283657403?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/7487432722283657403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/01/review-of-samsung-sgh-x430.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7487432722283657403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7487432722283657403'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/01/review-of-samsung-sgh-x430.html' title='Review of the Samsung SGH-X430'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-8787911610622694771</id><published>2005-01-15T12:03:00.000-08:00</published><updated>2009-10-05T01:18:37.371-07:00</updated><title type='text'>MSN Messenger: finally connected</title><content type='html'>Do you believe in the fact that when you've got a problem to solve, relaxing and forgetting about it for a while is the best way to ACTUALLY solve it?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;On the network of the place where I currently live, we've had a problem accessing anything related to Microsoft such as HOTMAIL, Microsoft Passport enabled websites, Windows Update (and you know how critical this one is), MSN Messenger, registration site for Microsoft Pocket Reader and a few others. I first thought that the problem was on our ADSL gateway machine. I've tried a bunch of things such as reconfiguring Iptables, trying a straight connection to our ADSL line and many other things in that sense and I never got a result.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;At some point, I even thought that Microsoft websites and servers were banned from access in SA, which didn't make much sense. And as any problems that you can't solve, I sort of put it in the back of my brain and forgot about it till tonight.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I was really bored, just finished watching "Corky Romano", one of the funniest movie I've seen in a while and came back to my computer. For some reason, I thought about how we used to connect to the internet through a proxy server in school and it got me thinking.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I looked up a list of free HTTP proxy servers available, configured the connection in IE and MSN Messenger and boy, I was surprised I was online! I couldn't believe that I haven't thought about this ALL THIS TIME! You know, it's one of those things that make you look like an IDIOT! But I got the solution and I learnt something new: that's the best thing that happened today.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;As a friend of mine says: "A day without learning is a day gone wasted."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-8787911610622694771?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/8787911610622694771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/01/msn-messenger-finally-connected.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8787911610622694771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/8787911610622694771'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/01/msn-messenger-finally-connected.html' title='MSN Messenger: finally connected'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-7282370737995162849</id><published>2005-01-13T23:13:00.000-08:00</published><updated>2009-10-05T01:18:37.394-07:00</updated><title type='text'>Samsung Develops World's 1st 'Motion-Recognition' Phone</title><content type='html'>In my first post today, I was talking about how important it was for innovators to come up with some idea soon to make mobile phones more interesting. Well I kept on reading and looking up and From &lt;a href="http://english.yna.co.kr/Engnews/20050112/320000000020050112140553E8.html"&gt;this article&lt;/a&gt; I found out that Samsung has developed the world's 1st Motion-Recognition phone!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here are some of the article particles:&lt;br /&gt;&lt;br /&gt;"&lt;em&gt;Using a six-axis sensor that it says can interpret simple human motions, the SCH-S310 phone allows users to dial phone numbers by writing the numbers into the air instead of pressing buttons, Samsung Electronics said in a statement.&lt;/em&gt;"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;"&lt;em&gt;The new device also enables users to delete unsolicited commercial text messages by shaking the phone up and down, the company said.&lt;/em&gt; "&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That sounds exciting, doesn't it? The question I've got of course is whether they made the phone "hackable" in terms of, whether people could use a provided API for example to write SMS by making signs in the air! Now that would be fun!&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-7282370737995162849?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/7282370737995162849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/01/samsung-develops-world-1st-phone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7282370737995162849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/7282370737995162849'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/01/samsung-develops-world-1st-phone.html' title='Samsung Develops World&amp;#39;s 1st &amp;#39;Motion-Recognition&amp;#39; Phone'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2192522729679427452.post-6829078591249144723</id><published>2005-01-13T22:51:00.000-08:00</published><updated>2009-10-05T01:18:37.404-07:00</updated><title type='text'>Mobile phones as hackable platforms</title><content type='html'>I woke up today a very happy man. I still can't stop thinking about the new products from Apple.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Anyways, I started the day going through my reading list as I always do and stumbled upon this very interesting article which I found after reading it very close to the topic discussed by &lt;a href="http://www.russellbeattie.com/notebook/"&gt;Russ&lt;/a&gt; and on which I commented yesterday. The article is available on &lt;a href="http://www.thefeature.com"&gt;thefeature.com&lt;/a&gt;. It is titled &lt;a href="http://www.thefeature.com/article?articleid=101234"&gt;Phones as hackable platforms&lt;/a&gt;. I particularly recommand the article to people interested in where the mobile innovation is right now and where it might be heading as well as innovators looking for something to get their brains on.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2192522729679427452-6829078591249144723?l=jpaulh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpaulh.blogspot.com/feeds/6829078591249144723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jpaulh.blogspot.com/2005/01/mobile-phones-as-hackable-platforms.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/6829078591249144723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2192522729679427452/posts/default/6829078591249144723'/><link rel='alternate' type='text/html' href='http://jpaulh.blogspot.com/2005/01/mobile-phones-as-hackable-platforms.html' title='Mobile phones as hackable platforms'/><author><name>Jean-Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_BTqMk6V7Lls/StTgQ6n6mVI/AAAAAAAAABI/robvFDZUd5Q/S220/Tux+Avatar+(247).png'/></author><thr:total>0</thr:total></entry></feed>
