<?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-8353696605063426251</id><updated>2012-01-24T14:50:24.135+03:00</updated><category term='barcamp'/><category term='flash'/><category term='gnumeric'/><category term='help desk'/><category term='untangle'/><category term='cli'/><category term='hotmail'/><category term='live'/><category term='sms'/><category term='access point'/><category term='news'/><category term='bug'/><category term='vulnerability'/><category term='development'/><category term='NSF'/><category term='shopping'/><category term='asus'/><category term='boost'/><category term='volume group'/><category term='privacy'/><category term='hell desk'/><category term='adobe'/><category term='brainstorm'/><category term='lvm'/><category term='suse'/><category term='default route'/><category term='practice'/><category term='SAP'/><category term='dslr'/><category term='tftp'/><category term='rom'/><category term='p2v'/><category term='viva'/><category term='nginx'/><category term='spam'/><category term='apps'/><category term='hard disk'/><category term='email'/><category term='fraud'/><category term='rant'/><category term='confusion'/><category term='facebook'/><category term='malicious'/><category term='xfs'/><category term='attack'/><category term='workshop'/><category term='cv'/><category term='spf'/><category term='schedule'/><category term='wifi'/><category term='legal'/><category term='memory'/><category term='root'/><category term='wordpress'/><category term='conan'/><category term='online'/><category term='lotus notes'/><category term='asterisk'/><category term='regulations'/><category term='desktop'/><category term='dns'/><category term='nbu'/><category term='snooping'/><category term='ie6'/><category term='mac'/><category term='stock'/><category term='dsl'/><category term='sticky-note'/><category term='design'/><category term='network'/><category term='dhcp'/><category term='statistics'/><category term='framework'/><category term='ubuntu'/><category term='account'/><category term='qualitynet'/><category term='google'/><category term='virtualization'/><category term='zapata'/><category term='technology'/><category term='support'/><category term='fasttelco'/><category term='vmg'/><category term='esxi'/><category term='system cache'/><category term='secure'/><category term='event'/><category term='currency'/><category term='openoffice'/><category term='ISP'/><category term='electricity'/><category term='gateway'/><category term='nokia'/><category term='apocalypse'/><category term='adsl'/><category term='survey'/><category term='shell'/><category term='nfs'/><category term='image'/><category term='zain'/><category term='update'/><category term='repository'/><category term='hardware'/><category term='speedtouch'/><category term='recovery'/><category term='freepbx'/><category term='radio'/><category term='threat'/><category term='boot'/><category term='docs'/><category term='p2p'/><category term='vcenter'/><category term='english'/><category term='howto'/><category term='highlight'/><category term='trixbox'/><category term='pbx'/><category term='cyanogenmod'/><category term='proprietary'/><category term='case mod'/><category term='zaptel'/><category term='bladecenter'/><category term='activesync'/><category term='regex'/><category term='copyright'/><category term='drizzle'/><category term='antenna'/><category term='wireless'/><category term='plagiarism'/><category term='unix'/><category term='task'/><category term='administration'/><category term='nexus one'/><category term='samba'/><category term='airlive'/><category term='vpn'/><category term='esx'/><category term='nbk'/><category term='erp'/><category term='defective'/><category term='gmail'/><category term='ip telephony'/><category term='mobile'/><category term='nexus'/><category term='zombies'/><category term='storage'/><category term='word'/><category term='kuwait'/><category term='open source'/><category term='phone'/><category term='firefox'/><category term='simplescalar'/><category term='iphone'/><category term='vlan'/><category term='tls'/><category term='nortel'/><category term='grep'/><category term='cakephp'/><category term='performance'/><category term='raid'/><category term='dahdi'/><category term='radius'/><category term='notebook'/><category term='laptop'/><category term='backup'/><category term='story'/><category term='business'/><category term='advice'/><category term='64-bit'/><category term='repetition'/><category term='vmware'/><category term='security'/><category term='seminar'/><category term='economy'/><category term='pptp'/><category term='caller id'/><category term='bash'/><category term='compile'/><category term='dyndns'/><category term='on-the-fly'/><category term='gui'/><category term='evga'/><category term='segfault'/><category term='movie'/><category term='khalid al-zanki'/><category term='android'/><category term='filesystem'/><category term='software'/><category term='iscsi'/><category term='ssl'/><category term='scam'/><category term='froyo'/><category term='google apps'/><category term='url'/><category term='proxy'/><category term='ota'/><category term='extract'/><category term='cache'/><category term='bitcoin'/><category term='apple'/><category term='passwords'/><category term='piracy'/><category term='telecom'/><category term='wardriving'/><category term='benchmark'/><category term='gzip'/><category term='export'/><category term='RAM'/><category term='switch'/><category term='compression'/><category term='spreadsheet'/><category term='social networking'/><category term='ibm'/><category term='bank'/><category term='black ops'/><category term='32-bit'/><category term='browser'/><category term='internet'/><category term='script'/><category term='windows'/><category term='HFS'/><category term='database'/><category term='pxe'/><category term='linux'/><category term='crash'/><category term='HDD'/><category term='guide'/><category term='office'/><category term='social engineering'/><category term='opensuse'/><category term='law'/><category term='php'/><category term='process'/><category term='convert'/><category term='politics'/><category term='htc'/><category term='aix'/><category term='voip'/><category term='route'/><category term='blade'/><category term='antivirus'/><category term='blogger'/><category term='kuwaitpaperdump'/><category term='search'/><category term='microsoft'/><category term='https'/><category term='traffic'/><category term='data'/><title type='text'>Techy Title Here</title><subtitle type='html'>Technology related stuff</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default?start-index=101&amp;max-results=100'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>118</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-6573434468924531006</id><published>2011-12-13T14:00:00.002+03:00</published><updated>2011-12-13T14:00:56.439+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cyanogenmod'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='rom'/><title type='text'>CyanogenMod 7.1 for Nexus One and Google Talk</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I recently dumped the stock ROM on my Nexus One, after Google failed so many times to implement proper Arabic support and enable the FM radio, and installed CyanogenMod 7.1.0.&lt;br /&gt;&lt;br /&gt;One issue is that the Google Apps bundle that is compatible with that bundle has a version of gtalk that is not compatible with the Nexus One, because the phone doesn't have a front camera.&lt;br /&gt;&lt;br /&gt;I installed the latest gApps and then grabbed a Gingerbread stock ROM and took the talk.apk file from it and installed it. Now GTalk works.&lt;br /&gt;&lt;br /&gt;The stock ROM is about 80 MB, so I took the liberty of uploading the file for you here:&lt;br /&gt;&lt;a href="https://docs.google.com/open?id=0B7kOGqWtHc4NNWRlM2M2ZTUtYWQzNi00Y2ZjLWFjYTktNDE1ZjFhYWU1ZTc0"&gt;talk.apk&lt;/a&gt; (600 kB):&amp;nbsp;67e322ecdd038cfc4344b6a5ee4cf1da (md5 sum)&lt;br /&gt;&lt;br /&gt;Copy it to your SD card then open the file manager and install it.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-6573434468924531006?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/6573434468924531006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=6573434468924531006' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/6573434468924531006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/6573434468924531006'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2011/12/cyanogenmod-71-for-nexus-one-and-google.html' title='CyanogenMod 7.1 for Nexus One and Google Talk'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-8999845782031146456</id><published>2011-12-11T14:06:00.001+03:00</published><updated>2011-12-11T14:08:10.646+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='event'/><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='kuwait'/><category scheme='http://www.blogger.com/atom/ns#' term='barcamp'/><title type='text'>BarCamp Kuwait Three</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Barcamp Kuwait three is coming up on January 7th, 2012! &lt;a href="http://barcampkw.eventbrite.com/"&gt;Register now&lt;/a&gt; (free).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://barcampkw.wordpress.com/2011/12/11/barcamp-kuwait-three-registration/"&gt;Click here for details&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-8999845782031146456?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/8999845782031146456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=8999845782031146456' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/8999845782031146456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/8999845782031146456'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2011/12/barcamp-kuwait-three.html' title='BarCamp Kuwait Three'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-6736378359288988217</id><published>2011-12-10T20:46:00.001+03:00</published><updated>2011-12-10T21:17:21.311+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seminar'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='vmware'/><category scheme='http://www.blogger.com/atom/ns#' term='workshop'/><title type='text'>Virtualization Workshop</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Greetings humans and bots!&lt;br /&gt;&lt;br /&gt;I'll be presenting and showcasing a VMware vSphere5 virtualization workshop at Kuwait IT Society in &lt;a href="http://maps.google.com/maps?q=%D8%A7%D9%84%D8%AC%D9%85%D8%B9%D9%8A%D8%A9+%D8%A7%D9%84%D9%83%D9%88%D9%8A%D8%AA%D9%8A%D8%A9+%D9%84%D8%AA%D9%82%D9%86%D9%8A%D8%A9+%D8%A7%D9%84%D9%85%D8%B9%D9%84%D9%88%D9%85%D8%A7%D8%AA,+%D9%85%D8%AF%D9%8A%D9%86%D8%A9+%D8%A7%D9%84%D9%83%D9%88%D9%8A%D8%AA,+%D8%A7%D9%84%D8%B9%D8%A7%D8%B5%D9%85%D8%A9&amp;amp;hl=en&amp;amp;ie=UTF8&amp;amp;ll=29.324542,48.010018&amp;amp;spn=0.005304,0.00913&amp;amp;hq=%D8%A7%D9%84%D8%AC%D9%85%D8%B9%D9%8A%D8%A9+%D8%A7%D9%84%D9%83%D9%88%D9%8A%D8%AA%D9%8A%D8%A9+%D9%84%D8%AA%D9%82%D9%86%D9%8A%D8%A9+%D8%A7%D9%84%D9%85%D8%B9%D9%84%D9%88%D9%85%D8%A7%D8%AA,&amp;amp;hnear=Kuwait+City,+Al+Asimah,+Kuwait&amp;amp;t=m&amp;amp;z=17&amp;amp;vpsrc=6"&gt;Rouda area&lt;/a&gt; on Wednesday at 7 PM.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What is virtualization? What does it have to do with cloud computing? What features does it offer? Is it worth the hype &amp;amp; the investment?&lt;br /&gt;All of that &amp;amp; more plus a live demo of a VMware infrastructure in the session.&amp;nbsp;No cats will be hurt during the demo.&lt;br /&gt;&lt;br /&gt;Note: I'll briefly mention the differences between offerings from Citrix, RedHat, Microsoft, VMware &amp;amp; IBM, but most of the focus will be on VMware as it's my area of expertise.&lt;br /&gt;&lt;br /&gt;The event is free for all to attend so feel free to invite others.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-6736378359288988217?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/6736378359288988217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=6736378359288988217' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/6736378359288988217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/6736378359288988217'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2011/12/virtualization-workshop.html' title='Virtualization Workshop'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-4102670047701849088</id><published>2011-10-29T19:44:00.000+03:00</published><updated>2011-10-29T19:44:53.212+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drizzle'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='nginx'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='guide'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Drizzle, NGINX, PHP and PHP-APC</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Introduction&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is a guide/howto on setting up &lt;a href="http://www.drizzle.org/"&gt;Drizzle database&lt;/a&gt;, &lt;a href="http://nginx.org/"&gt;Nginx webserver&lt;/a&gt;, &lt;a href="http://php.net/"&gt;PHP&lt;/a&gt; (CGI) and PHP-apc (bytecode cache) on &lt;a href="http://www.debian.org/"&gt;Debian Linux&lt;/a&gt; 6 (codename Squeeze).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;NOTE&lt;/b&gt;: If the guide is too messy to read here, head over to this &lt;a href="https://docs.google.com/document/pub?id=1rWa6N4q_8yCV1uXAiZoBBqY4lBFhVvnNCrFp7q7qP7E"&gt;Google Document for better formatting&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Why?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Apache and MySQL are quite heavy and MySQL has been becoming worse thanks to the idiots in Oracle. NGINX has been getting a lot of recommendations and it’s proving itself to be quite stable and faster than any existing webserver in the arena.&lt;br /&gt;&lt;br /&gt;Drizzle DB is the child of the co-founder of MySQL after he left MySQL when Sun bought it. Its main focus is web applications, and easy replication of databases.&lt;br /&gt;&lt;br /&gt;From preliminary tests on a non-optimized virtual machine, I was able to reach 800 requests/sec for read/write operations and 2400 requests for read-only operations, hitting my URL shortening web application on NGINX and Drizzle. My VM had 1 core and 512MB RAM, but only 69MB RAM was used during the tests!&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Stress Test&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Hardware: Lenovo laptop with an Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz, 6GB RAM, running Debian6 32-bit.&lt;br /&gt;Software: VMware Workstation v7. The VM has 512MB RAM and 1 core allocated, running Debian6 32-bit (business card installation). VMware tools were not installed during the stress tests.&lt;br /&gt;&lt;br /&gt;I had apc statistics enabled and access logging enabled in NGINX at first, but turning them off reduced load times from 126ms to 16ms for read/write operations and from 40ms to 4ms for read-only requests.&lt;br /&gt;&lt;br /&gt;Read/write test: ab -c13 -n 10000 http://192.168.59.135/shorten.php?longurl=http://bit.ly&lt;br /&gt;Requests per second: &amp;nbsp; &amp;nbsp;789.07 [#/sec] (mean)&lt;br /&gt;Time per request: &amp;nbsp; &amp;nbsp; &amp;nbsp; 16.475 [ms] (mean)&lt;br /&gt;Time per request: &amp;nbsp; &amp;nbsp; &amp;nbsp; 1.267 [ms] (mean, across all concurrent requests)&lt;br /&gt;CPU utilization: 25% Drizzle, 19% NGINX, 2.3% * 15 PHP CGI processes.&lt;br /&gt;&lt;br /&gt;Read-only test: ab -c13 -n 10000 http://192.168.59.135/a&lt;br /&gt;Requests per second: &amp;nbsp; &amp;nbsp;2633.09 [#/sec] (mean)&lt;br /&gt;Time per request: &amp;nbsp; &amp;nbsp; &amp;nbsp; 4.937 [ms] (mean)&lt;br /&gt;Time per request: &amp;nbsp; &amp;nbsp; &amp;nbsp; 0.380 [ms] (mean, across all concurrent requests)&lt;br /&gt;CPU utilization: 49% NGINX, 3.3% * 15 PHP CGI. Drizzle wasn’t showing in “top.”&lt;br /&gt;&lt;br /&gt;The read-only test involved engaging a REWRITE rule from NGINX, which puts a tad bit more processing on its shoulders.&lt;br /&gt;&lt;br /&gt;The numbers above are very specific to my application, but the numbers can be much better if I install VMware tools to provide VM optimizations, so don’t let the 49% CPU usage put you off.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;0) Installation&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;0.0) Drizzle&lt;/span&gt;&lt;br /&gt;Note: Drizzle relies on upstart, which means sysvinit will be removed.&lt;br /&gt;&lt;br /&gt;First, add the PPA to /etc/apt/sources.lst using your favorite editor&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; deb http://ppa.launchpad.net/drizzle-developers/ppa/ubuntu maverick main&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; deb-src http://ppa.launchpad.net/drizzle-developers/ppa/ubuntu maverick main&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Run:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 06899068&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;sudo apt-get update&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;sudo apt-get install drizzle&lt;/span&gt;&lt;br /&gt;(to continue, you’ll have to type ‘Yes, do as I say!’ excluding the single quotes)&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Resouces:&lt;/div&gt;&lt;div&gt;&lt;a href="http://docs.drizzle.org/installing/from_source.html#debian-install-commands"&gt;http://docs.drizzle.org/installing/from_source.html#debian-install-commands&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.howtoforge.com/install-drizzle-on-debian-lenny"&gt;http://www.howtoforge.com/install-drizzle-on-debian-lenny&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://docs.drizzle.org/configuration.html"&gt;http://docs.drizzle.org/configuration.html&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit; font-size: large;"&gt;0.1) NGINX&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; sudo apt-get install nginx&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;0.2) PHP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; sudo apt-get install php5-cgi php5-mysql php-apc&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The PHP extension for drizzle is available as a PECL but it’s not kept up to date &amp;amp; since we’re gonna compile either way, we’ll have to install some dev packages &amp;amp; a compiler. Those can (should) be removed after the compilation of the extension, if you’re doing this on a production box.&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; apt-get install php5-dev libdrizzle-dev make&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is to fix a bug in the configure script looking in the wrong place&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ln -s /usr/include/libdrizzle-1.0/libdrizzle /usr/include/libdrizzle&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Grab the latest stable Drizzle PHP extension from here: &lt;a href="https://launchpad.net/drizzle-php-ext"&gt;https://launchpad.net/drizzle-php-ext&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; wget http://launchpad.net/drizzle-php-ext/trunk/0.5/+download/drizzle-php-ext-0.5.tar.gz&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;tar -zxf drizzle-php-ext-0.5.tar.gz&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;cd drizzle-php-ext-0.5&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;./configure&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;make -j2&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;make install&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Let’s clean up after the mess&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; make clean&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;apt-get remove php5-dev libdrizzle-dev make&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;apt-get autoremove&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;rm -I /var/cache/apt/archives/*&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In my case, the modules were copied to: /usr/lib/php5/20090626+lfs/ &amp;nbsp;and the module drizzle.so is ready to be included in php.ini later.&lt;br /&gt;&lt;br /&gt;Resources:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.phptutorial.info/?apc.configuration"&gt;http://www.phptutorial.info/?apc.configuration&lt;/a&gt;&lt;br /&gt;&lt;a href="http://devzone.zend.com/article/4793"&gt;http://devzone.zend.com/article/4793&lt;/a&gt;&lt;br /&gt;&lt;a href="http://php.net/manual/en/install.pecl.phpize.php"&gt;http://php.net/manual/en/install.pecl.phpize.php&lt;/a&gt;&lt;br /&gt;&lt;a href="http://chrisschuld.com/2007/07/missing-phpize/"&gt;http://chrisschuld.com/2007/07/missing-phpize/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;1) Configuration&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;1.0) NGINX&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The configuration of nginx is not a standard process. Each website may have its own specific setup &amp;amp; needs that one would have to tweak the settings around to fit one’s needs. Make sure you refer to the referenced links to see all available options and things to avoid doing.&lt;br /&gt;&lt;br /&gt;I’ll include my own configuration changes here and not the full configuration file.&lt;br /&gt;&lt;br /&gt;Modify the file /etc/nginx/nginx.conf&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;worker_processes 3;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;error_log /var/log/nginx/error.log;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;pid /var/run/nginx.pid;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;events {&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;worker_connections 1024;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;multi_accept on;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;http {&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;include /etc/nginx/mime.types;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; access_log off;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;# if you want to have an access log, comment the line above and uncomment the following one&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;# access_log /var/log/nginx/access.log;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;sendfile on;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;tcp_nopush on;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Modify the file /etc/nginx/sites-enabled/default&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;index index.php index.html index.htm;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;server {&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; # this block redirects all connections to www.domain.com to domain.com&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; # this is handy for cache configurations like Varnish &amp;amp; for statistics&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;# if you prefer to view your site as www.domain.com, swap server names&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; listen 80;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;server_name www.domain.com;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; rewrite ^ $scheme://domain.com$request_uri redirect;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;server {&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;listen 80;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;#listen [::]:80 default ipv6only=on;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;server_name domain.com;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; root /var/www/;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;#access_log /var/log/nginx/localhost.access.log;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;location / {&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;try_files $uri $uri/ /index.php;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; location ~ \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; #I don’t want it to search for directories so I removed $uri/&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; try_files $uri /index.php;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;#enable this if you enabled access logging previously&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #access_log off;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; expires 30d; #useful for caches&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; location ~ \.php$ {&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; try_files $uri /index.php;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; include fastcgi_params;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;# unix sockets are faster &amp;amp; better than binding to a port&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fastcgi_pass unix:/tmp/php.socket;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;# remember to include other settings from the original config file&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Modify the file /etc/nginx/fastcgi_params&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;fastcgi_param &amp;nbsp;SERVER_SOFTWARE &amp;nbsp; &amp;nbsp;nginx;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;fastcgi_param &amp;nbsp;SCRIPT_FILENAME &amp;nbsp; &amp;nbsp;$document_root$fastcgi_script_name;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;fastcgi_param &amp;nbsp;SCRIPT_NAME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;$fastcgi_script_name;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Create a new file /etc/init.d/php-cgi&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;#!/bin/bash&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;BIND=/tmp/php.socket&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;USER=www-data&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;PHP_FCGI_CHILDREN=15&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;PHP_FCGI_MAX_REQUESTS=1000&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;PHP_CGI=/usr/bin/php-cgi&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;PHP_CGI_NAME=`basename $PHP_CGI`&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;PHP_CGI_ARGS="- USER=$USER PATH=/usr/bin PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS $PHP_CGI -b $BIND"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;RETVAL=0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;start() {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; echo -n "Starting PHP FastCGI: "&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; start-stop-daemon --quiet --start --background --chuid "$USER" --exec /usr/bin/env -- $PHP_CGI_ARGS&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; RETVAL=$?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; echo "$PHP_CGI_NAME."&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;stop() {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; echo -n "Stopping PHP FastCGI: "&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; killall -q -w -u $USER $PHP_CGI&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; RETVAL=$?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; echo "$PHP_CGI_NAME."&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;case "$1" in&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; start)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; start&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; ;;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; stop)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; stop&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; ;;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; restart)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; stop&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; start&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; ;;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; *)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; echo "Usage: php-fastcgi {start|stop|restart}"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; exit 1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; ;;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;esac&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;exit $RETVAL&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Run the commands:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; chmod +x /etc/init.d/php-cgi&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;update-rc.d php-cgi defaults&lt;/span&gt;&lt;/div&gt;&lt;div&gt;You are now able to start the php cgi service: service php-cgi start&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;References:&lt;/div&gt;&lt;div&gt;&lt;a href="http://wiki.nginx.org/DirectiveIndex"&gt;http://wiki.nginx.org/DirectiveIndex&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://wiki.nginx.org/IfIsEvil"&gt;http://wiki.nginx.org/IfIsEvil&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://wiki.nginx.org/Pitfalls"&gt;http://wiki.nginx.org/Pitfalls&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://wiki.nginx.org/NginxHttpLogModule#access_log"&gt;http://wiki.nginx.org/NginxHttpLogModule#access_log&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://wiki.nginx.org/PHPFcgiExample"&gt;http://wiki.nginx.org/PHPFcgiExample&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://tomasz.sterna.tv/2009/04/php-fastcgi-with-nginx-on-ubuntu/"&gt;http://tomasz.sterna.tv/2009/04/php-fastcgi-with-nginx-on-ubuntu/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.howtoforge.com/installing-php-5.3-nginx-and-php-fpm-on-ubuntu-debian"&gt;http://www.howtoforge.com/installing-php-5.3-nginx-and-php-fpm-on-ubuntu-debian&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://interfacelab.com/nginx-php-fpm-apc-awesome/"&gt;http://interfacelab.com/nginx-php-fpm-apc-awesome/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;1.1) PHP&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;These are minor modifications and you should take an overall look at the config file to see if you’d like to make any other changes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Modify the file /etc/php5/cgi/php.ini&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ; this prevents PHP from executing scripts uploaded by users into image directories&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;cgi.fix_pathinfo=0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;; required for security reasons on CGI deployments&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;cgi.force_redirect=1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;expose_php = Off&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;; original value is 128M which in my opinion is too much&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;memory_limit = 64M&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;; before the File Uploads section, add this&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;; apc settings&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;apc.shm_size = 32M&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;apc.stat = 0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;; before the Module Settings section, add this&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;extension=drizzle.so&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;References:&lt;br /&gt;&lt;a href="http://devzone.zend.com/article/12618"&gt;http://devzone.zend.com/article/12618&lt;/a&gt;&lt;div&gt;&lt;a href="http://www.phpjabbers.com/measuring-php-page-load-time-php17.html"&gt;http://www.phpjabbers.com/measuring-php-page-load-time-php17.html&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;1.2) Drizzle&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Run:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; mkdir -p /home/drizzle/db/.temporary&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;cp -Rv /var/lib/drizzle/* /home/drizzle/db/&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;chmod -R 750 /home/drizzle&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;chown -R drizzle:drizzle /home/drizzle&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; mv /etc/init/drizzle.conf /etc/init/drizzle.conf.orig&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Make a new file: /etc/init/drizzle.conf&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; # Drizzle Service&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;description &amp;nbsp; &amp;nbsp; "Drizzle Server"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;author &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;"MBH &lt;mbhkewl@gmail.com&gt;"&lt;/mbhkewl@gmail.com&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;start on runlevel [2345]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;stop on runlevel [016]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;expect fork&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;script&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; DRIZ_VARS="--user drizzle --datadir /home/drizzle/db --drizzle-protocol.port 3306"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; start-stop-daemon --quiet --start --pidfile /home/drizzle/db/drizzle.pid --chuid drizzle --group drizzle --startas /usr/sbin/drizzled -- $DRIZ_VARS&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;end script&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Notes:&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Drizzle doesn’t support unix sockets to make sure applications connect to 127.0.0.1 rather than localhost, if the DB is local.&lt;/li&gt;&lt;li&gt;The drizzle username created in Debian doesn’t have a shell nor a home directory, and it should remain this way.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: left;"&gt;&lt;div&gt;You can now start poking with Drizzle and make your own applications. Here’s a link for a quick usage of Drizzle and PHP: &lt;a href="http://devzone.zend.com/article/4793"&gt;http://devzone.zend.com/article/4793&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;References:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.linuxjedi.co.uk/?p=35"&gt;http://www.linuxjedi.co.uk/?p=35&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://upstart.ubuntu.com/wiki/"&gt;http://upstart.ubuntu.com/wiki/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://upstart.ubuntu.com/wiki/UnprivilegedUsers"&gt;http://upstart.ubuntu.com/wiki/UnprivilegedUsers&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://devzone.zend.com/article/4793"&gt;http://devzone.zend.com/article/4793&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://docs.drizzle.org/options.html"&gt;http://docs.drizzle.org/options.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://docs.drizzle.org/"&gt;http://docs.drizzle.org/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.howtoforge.com/install-drizzle-on-debian-lenny"&gt;http://www.howtoforge.com/install-drizzle-on-debian-lenny&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://azhari.harahap.us/2011/04/connecting-drizzle-from-php-and-phpmyadmin/"&gt;http://azhari.harahap.us/2011/04/connecting-drizzle-from-php-and-phpmyadmin/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-4102670047701849088?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/4102670047701849088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=4102670047701849088' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/4102670047701849088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/4102670047701849088'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2011/10/drizzle-nginx-php-and-php-apc.html' title='Drizzle, NGINX, PHP and PHP-APC'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-928863410714828945</id><published>2011-10-24T19:53:00.002+03:00</published><updated>2011-10-24T19:53:34.340+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='traffic'/><category scheme='http://www.blogger.com/atom/ns#' term='kuwait'/><category scheme='http://www.blogger.com/atom/ns#' term='survey'/><title type='text'>Kuwait Traffic Jam Survey for 2011</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I created a quick survey (Arabic) to measure the sources, destinations and times of traffic in Kuwait. The survey is 14 questions only, so kindly answer them and spread the link around. Thank you!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://chart.apis.google.com/chart?cht=qr&amp;amp;chs=100x100&amp;amp;choe=UTF-8&amp;amp;chld=H|0&amp;amp;chl=http://goo.gl/us4aQ" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://chart.apis.google.com/chart?cht=qr&amp;amp;chs=100x100&amp;amp;choe=UTF-8&amp;amp;chld=H|0&amp;amp;chl=http://goo.gl/us4aQ" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://goo.gl/us4aQ"&gt;http://goo.gl/us4aQ&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;The results will be posted on &lt;a href="http://www.mbhbox.net/"&gt;http://www.mbhbox.net&lt;/a&gt; later on when enough data has been collected.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-928863410714828945?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/928863410714828945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=928863410714828945' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/928863410714828945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/928863410714828945'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2011/10/kuwait-traffic-jam-survey-for-2011.html' title='Kuwait Traffic Jam Survey for 2011'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-6476169617785106656</id><published>2011-10-13T19:40:00.000+03:00</published><updated>2011-10-14T14:16:07.888+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='kuwait'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='apps'/><category scheme='http://www.blogger.com/atom/ns#' term='phone'/><title type='text'>Mobile Apps Development Discussion Panel</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Ahmad Al-Ibrahim, co-founder of &lt;a href="http://koutbo6.com/"&gt;Koutbo6.com&lt;/a&gt;, is moderating a discussion panel&amp;nbsp;about Mobile Apps Development which is hosted&amp;nbsp;&lt;a href="http://maps.google.com/maps?q=%D8%A7%D9%84%D8%AC%D9%85%D8%B9%D9%8A%D8%A9+%D8%A7%D9%84%D9%83%D9%88%D9%8A%D8%AA%D9%8A%D8%A9+%D9%84%D8%AA%D9%82%D9%86%D9%8A%D8%A9+%D8%A7%D9%84%D9%85%D8%B9%D9%84%D9%88%D9%85%D8%A7%D8%AA,+%D9%85%D8%AF%D9%8A%D9%86%D8%A9+%D8%A7%D9%84%D9%83%D9%88%D9%8A%D8%AA,+%D8%A7%D9%84%D8%B9%D8%A7%D8%B5%D9%85%D8%A9&amp;amp;hl=en&amp;amp;ie=UTF8&amp;amp;ll=29.324542,48.010018&amp;amp;spn=0.005304,0.00913&amp;amp;hq=%D8%A7%D9%84%D8%AC%D9%85%D8%B9%D9%8A%D8%A9+%D8%A7%D9%84%D9%83%D9%88%D9%8A%D8%AA%D9%8A%D8%A9+%D9%84%D8%AA%D9%82%D9%86%D9%8A%D8%A9+%D8%A7%D9%84%D9%85%D8%B9%D9%84%D9%88%D9%85%D8%A7%D8%AA,&amp;amp;hnear=Kuwait+City,+Al+Asimah,+Kuwait&amp;amp;t=m&amp;amp;z=17&amp;amp;vpsrc=6"&gt;by KITS (map)&lt;/a&gt;&amp;nbsp;on &lt;a href="http://goo.gl/aA6ji"&gt;Tuesday Oct 18 7:30PM-9:30PM&lt;/a&gt;&amp;nbsp;(calendar event).&lt;br /&gt;&lt;br /&gt;The event's guests/speakers are:&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Abdullah Al-Khulaifi&lt;/li&gt;&lt;li&gt;Abdulrahman Al-Zanki&lt;/li&gt;&lt;li&gt;Hussain Al-Bustan&lt;/li&gt;&lt;li&gt;Fahad Al-Mudhayan&lt;/li&gt;&lt;li&gt;Mohammad Al-Meer&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;This is a public event and everyone is free to come &amp;amp; invite others, too!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Questions for the speakers can be asked from now and the moderator (Ahmad) and the audience will vote on which questions to be asked:&amp;nbsp;&lt;a href="http://goo.gl/fcSgG"&gt;http://goo.gl/fcSgG&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-6476169617785106656?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/6476169617785106656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=6476169617785106656' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/6476169617785106656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/6476169617785106656'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2011/10/mobile-apps-development-discussion.html' title='Mobile Apps Development Discussion Panel'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-8209245917078137868</id><published>2011-10-06T14:34:00.001+03:00</published><updated>2011-10-07T13:42:11.496+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='viva'/><category scheme='http://www.blogger.com/atom/ns#' term='kuwait'/><category scheme='http://www.blogger.com/atom/ns#' term='secure'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='telecom'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><title type='text'>Viva's Insecure Online Payment System</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Viva's website allows you to pay your bills using credit cards like VISA or MasterCard, or the regionally accepted K-Net. In the case of VISA and MasterCard, Viva pushes the data (your phone number, email, credit card number, expiration date, cvv code) in clear text, without encryption!&lt;br /&gt;&lt;br /&gt;In any website that takes payments or has a user authentication portal, should offer a secure channel using SSL/TLS and the user sees the link starting with "https." In addition, current browsers show part of the address bar in green when the browser is able to verify that the website is secure and it is who it claims to be.&lt;br /&gt;&lt;br /&gt;A friend was worried as she didn't see "https" in the URL, so I checked the pages' source code to see if it was sending the data in a secure channel via javascript or some other mean, without showing it in the URL, alas, it was all in the clear text.&lt;br /&gt;&lt;br /&gt;Here's a screenshot of a sniffed packet session from my machine to &lt;a href="http://www.viva.com.kw/"&gt;viva.com.kw&lt;/a&gt; (94.128.1.30), while submitting the form data.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-8A0hVvidiyw/To2NYgXiHZI/AAAAAAAAAhY/6ZdrtxP_qeU/s1600/viva-packets.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="188" src="http://4.bp.blogspot.com/-8A0hVvidiyw/To2NYgXiHZI/AAAAAAAAAhY/6ZdrtxP_qeU/s320/viva-packets.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;This is some of the text from the packet (I removed my personal data):&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;prepRechargeCreditForm%3A&lt;b&gt;holder=Mojo+Jojo&lt;/b&gt;&amp;amp;prepRechargeCreditForm%3AcardNumber=&lt;b&gt;4550xxxxxxxxxxxx&lt;/b&gt;&amp;amp;prepRechargeCreditForm%3A&lt;b&gt;yearList=XY&lt;/b&gt;&amp;amp;prepRechargeCreditForm%3A&lt;b&gt;monthList=XY&lt;/b&gt;&amp;amp;prepRechargeCreditForm%3A&lt;b&gt;cvv2=XYZ&lt;/b&gt;&amp;amp;autoScroll=&amp;amp;prepRecharg&lt;/code&gt;&lt;/blockquote&gt;&lt;br /&gt;I have contacted &lt;a href="https://twitter.com/vivatelecom"&gt;VIVA Telecom&lt;/a&gt; and Mr.&amp;nbsp;&lt;a href="https://twitter.com/SalmanAlBadran"&gt;Salman Al-Badran&lt;/a&gt; (CEO) via Twitter &amp;nbsp;on Saturday Oct 1st (when I found out about the issue). Mr. Salman replied on the same day and said he'll forward it to his team.&amp;nbsp;I also gave him my email address in case his team wanted to get in touch with me.&lt;br /&gt;&lt;br /&gt;Three days later I told Mr. Salman that the problem is still there and that I'll publish my findings on my blog next Sunday (a week from reporting the issue). He replied saying it'll be fixed on Oct 6th.&lt;br /&gt;&lt;br /&gt;[this is fixed now]&amp;nbsp;&lt;b&gt;I checked today (Oct 6th) and the form now redirects to a secure website (https)&lt;/b&gt;. The address bar may not always appear in a green color; In that case, do not use the website, but instead, refresh or try again until the icon looks like this: &lt;img border="0" src="http://www.google.com/help/hc/images/chrome_14679_greenhttps_en.png" /&gt;&amp;nbsp;not like this&amp;nbsp;&lt;img border="0" src="http://www.google.com/help/hc/images/chrome_14679_redhttps_en.png" /&gt;. Description of these can be &lt;a href="http://www.google.com/support/chrome/bin/answer.py?answer=95617"&gt;found here&lt;/a&gt;. (the two images were produced by Google.)&lt;br /&gt;&lt;br /&gt;[this is fixed now] Also, it seems like the changes they made broke the form in the main page, which sends the @ sign of the email address in hex form (%40). Just change the %40 to @ and submit the form again and it'll work.&lt;br /&gt;&lt;br /&gt;I'd like to thank Mr. Salman for his prompt response to the matter. I wish other enterprise corporates' CEOs were as attentive and interactive with the consumers as he is. &lt;b&gt;I would also like to point the finger at the technical team and the audit team who let this one slip by! This is a trivial and pivotal requirement of any online payment system!&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;What kind of complications the insecure site would have?&lt;/b&gt;&lt;br /&gt;An attacker in the same network as you are can capture clear text that is being sent from your machine/mobile to the website. That's why the data shows in clear text in the picture above. If the connection was secure, it would have been garbled.&lt;br /&gt;&lt;br /&gt;If the address bar showed in red, it is still possible to attack a visitor from the same network, by altering the content that is being transmitted via insecure channels, which could lead to changing the form itself and the user would end up sending the data to a different script/page or a whole different website that the attacker crafted to collect the data.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-8209245917078137868?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/8209245917078137868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=8209245917078137868' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/8209245917078137868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/8209245917078137868'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2011/10/vivas-insecure-online-payment-system.html' title='Viva&apos;s Insecure Online Payment System'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-8A0hVvidiyw/To2NYgXiHZI/AAAAAAAAAhY/6ZdrtxP_qeU/s72-c/viva-packets.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-5051417474921692770</id><published>2011-09-26T18:45:00.001+03:00</published><updated>2011-10-07T13:55:59.564+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kuwait'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><title type='text'>Botamba Owns Your Twitter Account</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Updated&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Scroll to the bottom for the updates.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-5Qhx_Spg6lo/Tn9vLE-YwJI/AAAAAAAAAhU/-JJYpT7d8rQ/s1600/botamba.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="193" src="http://2.bp.blogspot.com/-5Qhx_Spg6lo/Tn9vLE-YwJI/AAAAAAAAAhU/-JJYpT7d8rQ/s320/botamba.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Botamba.com is a blog aggregator and it used to allow creation of users and then each user would link his/her blog(s).&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I checked yesterday after a friend mentioned it redirects to twitter now, and it seems like they did changed their methodology to &lt;b&gt;requiring&lt;/b&gt;&amp;nbsp;Twitter and it asks to allow their application &lt;b&gt;to access your Twitter account&lt;/b&gt;!!! It was based off a typical user/pass authentication previously.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;What's worse is that their application gets the following permissions:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Read tweets from your timeline (even if it's private)&lt;/li&gt;&lt;li&gt;See who you follow, and follow new people&lt;/li&gt;&lt;li&gt;Update your profile&lt;/li&gt;&lt;li&gt;Post tweets for you&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;It can not do the following:&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Access your direct messages&lt;/li&gt;&lt;li&gt;See your Twitter password&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Why does a blog aggregator needs access to my Twitter account, see my timeline, post for me, update my profile &amp;amp; other privileges?! That's a massive privacy invasion, even if it provides certain ease of use for some users (to use their existing accounts).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you did not know about this, and you've already allowed Botamba to access your account, you can deauthorize it by going to your profile settings, applications and deauhorize it from there.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;So what could Botamba do?&lt;/b&gt;&lt;br /&gt;They can get your tweets and follower list and &lt;b&gt;sell&lt;/b&gt;&amp;nbsp;that information to advertisers (currently sponsored by Zain). Advertisers can use the info to send you targeted advertisement by reading your tweets and seeing where you have been or what you liked and talked to with your friends.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How can I tell if Botamba posted on my timeline?&lt;/b&gt;&lt;br /&gt;Some Twitter clients show the name of the program that posted on the timeline. &lt;a href="http://cdn.tutorialzine.com/wp-content/uploads/2009/09/i1.jpg"&gt;In this picture&lt;/a&gt; you can see under the tweet the line "from TweetDeck." That's the name of the program and in case of Botamba, you'll see the line "from Botamba."&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Solution?&lt;/b&gt;&lt;br /&gt;Ask Botamba to NOT use Twitter for authentication &amp;amp; not invade your privacy (even if they *promise* they wouldn't), and ask them to put back the old user registration system, or use &lt;a href="http://openid.net/"&gt;OpenID&lt;/a&gt; instead.&lt;br /&gt;&lt;br /&gt;I'm waiting for a comment from Botamba on this issue to see what they have to say about this.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt;&lt;br /&gt;- Oct 4th: Botamba has deployed a user/pass authentication system. You can link your Twitter account but it gets read-only access to your timeline&lt;br /&gt;- Oct 5th: Botamba's valid reasoning in using Twitter account-linking: If you own a public Twitter account that you'd like to be mentioned in Botamba's tweets/posts, you can link it to your account (read-only mode &amp;amp; only reads your public timeline).&amp;nbsp;If you have a private account, you wouldn't want it to be public &amp;amp; tweet it, so you won't add it.&lt;br /&gt;&lt;br /&gt;In the end, I'd like to thank Botamba for being responsive and understanding to the sensitivity of users' privacy!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-5051417474921692770?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/5051417474921692770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=5051417474921692770' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/5051417474921692770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/5051417474921692770'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2011/09/botamba-owns-your-twitter-account.html' title='Botamba Owns Your Twitter Account'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-5Qhx_Spg6lo/Tn9vLE-YwJI/AAAAAAAAAhU/-JJYpT7d8rQ/s72-c/botamba.png' height='72' width='72'/><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-818228305316305093</id><published>2011-09-01T02:35:00.000+03:00</published><updated>2011-09-01T02:35:32.998+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ssl'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><title type='text'>SSL Certificates Stolen</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The issue of DigiNotar's breach keeps getting worse; &lt;a href="http://www.computerworld.com/s/article/9219663/Hackers_may_have_stolen_over_200_SSL_certificates"&gt;Computer World writes&lt;/a&gt; that over 200 SSL certificates have been generated &amp;amp; stolen, signed for Google, Yahoo, Mozilla, Tor Project among many others.&lt;br /&gt;&lt;br /&gt;Google &amp;amp; Mozilla have updated their browsers to remove the affected certificates/invalid signatures, but in the latest build of Chrome on Linux (13.0.782.218) I still see DigiNotar as a CA.&lt;br /&gt;&lt;br /&gt;I suggest you delete DigiNotar from all your browsers as it's not worthy of trust at the moment. Remember, if you update your browser, double check its existence as it may be added again by the update.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-818228305316305093?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/818228305316305093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=818228305316305093' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/818228305316305093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/818228305316305093'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2011/09/ssl-certificates-stolen.html' title='SSL Certificates Stolen'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-4117629489489038829</id><published>2011-08-03T22:20:00.000+03:00</published><updated>2011-08-03T22:20:12.951+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Designing Software For The Poor and The Rich</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;This is just a quick post of an idea I got today about how to kind of "force" people into buying/supporting software companies.&lt;br /&gt;&lt;br /&gt;Many a time I come across some software that I need to use only once, or maybe a few times a year only. I don't see a need to pay for that, but maybe someone who uses it very often *should* buy it.&lt;br /&gt;&lt;br /&gt;The idea is to create software that gradually slows down (i.e., functions slower/take more time to execute the same functions) the more you use it. If left unused for a while, it gains speed gradually.&lt;br /&gt;&lt;br /&gt;This would come in handy for those who use software for commercial use, as they'd be running it very often, unlike hobbyists or one-time users.&lt;br /&gt;&lt;br /&gt;I do admit, this is an annoying and evil idea, but there are users out there who don't bother donating for free software that they use very often, yet keep ranting at its bugs!&lt;br /&gt;&lt;br /&gt;Oh, and if you're wondering about how the title doesn't fit and it should've been "The Casual &amp;amp; The Avid," well, if you're poor, you won't pay and you'll suffer the slowness. Much like with cars.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-4117629489489038829?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/4117629489489038829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=4117629489489038829' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/4117629489489038829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/4117629489489038829'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2011/08/designing-software-for-poor-and-rich.html' title='Designing Software For The Poor and The Rich'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-41207584683636150</id><published>2011-06-20T13:49:00.000+03:00</published><updated>2011-06-20T13:49:09.924+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bitcoin'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='currency'/><title type='text'>MtGox Compromise And What It Means To Me</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="https://mtgox.com/"&gt;MtGox&lt;/a&gt; is a &lt;a href="http://bitcoin.org/"&gt;BitCoin&lt;/a&gt; Exchange Market for the BitCoin digital currency and I have read about BitCoin last year but waited for it to mature before stepping into the market.&lt;br /&gt;&lt;br /&gt;About two weeks ago I invested in MtGox about $880 USD and 2 days later a Distributed Denial of Service (DDoS) attack was launched at MtGox. I did some reading and it wasn't the first time they were under attack and they had everything secured and well planned so I wasn't worried.&lt;br /&gt;&lt;br /&gt;The market volume suddenly increased with massive quantities flooding the market, followed by a market crash (prices dropped to $13/BTC where the price previously was $17). MtGox closed the market and halted all transactions. Apparently, &lt;a href="https://support.mtgox.com/entries/20208066-huge-bitcoin-sell-off-due-to-a-compromised-account-rollback"&gt;they were compromised&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I panicked at first as I couldn't access my account on MtGox (they froze all) and they said they were going to do a roll over, which means undo everything and return to the state before the crash.&lt;br /&gt;I wasn't happy because I didn't know the state of my money &amp;amp; coins, and those who bought coins at cheap prices could have withdrawn the coins from the market which means there is no way to trace the coins nor return them.&lt;br /&gt;&lt;br /&gt;I still don't know how will MtGox deal with those who bought cheap coins &amp;amp; withdrew them, but if they do a roll back, they'll get their money/coins back to what they had before the crash, in addition to the coins they withdrew! That means extra profit! Unless they monitored the withdrawn amounts from each account and will balance those out.&lt;br /&gt;&lt;br /&gt;Anyway, I searched for my username on Google in relation to MtGox but nothing came up. Maybe Google didn't have time to index all pages, they're underground or maybe my user wasn't affected. Either way, my account will be rolled back and the password I used was unique to MtGox itself, so the attackers can't access my email or any other service associated with my email.&lt;br /&gt;&lt;br /&gt;Moreover, MtGox has switched to an obscenely secure password hashing scheme: SHA-512, along with contacting GMail and providing them with a list of compromised email addresses so GMail could block them and require a password reset before accessing them (I was one of those affected).&lt;br /&gt;&lt;br /&gt;MtGox keeps updating its post with news of what they're doing so they've not neglected their customers, even when under such a big stress.&lt;br /&gt;&lt;br /&gt;In my opinion, I'm sticking with them because only at rough times you'll see what a good company can do for its customers, and while there are inconveniences, the overall success of containing the situation was successful.&lt;br /&gt;Perhaps people would have felt much better had MtGox shared how it manages its systems and what kind of security schemes are implemented so that we know they can be trusted. I hope they do that soon.&lt;br /&gt;&lt;br /&gt;Away from MtGox, and in general, those who know me well know pretty well that I'm a paranoid person when it comes to computers and being online. Below are some of my practices for staying safe:&lt;br /&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Different passwords for different accounts.&lt;/li&gt;&lt;li&gt;If I forgot a password, it's OK, I request a password reset.&lt;/li&gt;&lt;li&gt;Passwords are at least 10 camel-cased alpha numeric and special characters.&lt;/li&gt;&lt;li&gt;My passwords are a mixture of meaningful words forming a non-meaningful sentence: R0undTomatoe$Insid3Triangl3Whalez&lt;/li&gt;&lt;li&gt;Always check my emails from my own systems &amp;amp; never someone else's (not even family or friends).&lt;/li&gt;&lt;li&gt;GMail shows you the list of IPs of who last accessed your account &amp;amp; alerts you on&amp;nbsp;suspicious&amp;nbsp;access.&lt;/li&gt;&lt;li&gt;When you create an account at a new site, request a password reset; if they send you the exact password in plaintext, close your account. They're not securing their database &amp;amp; don't care about your account security.&lt;br /&gt;If they send you a link to reset the password, or email you a randomly generated password, then you're fine.&lt;/li&gt;&lt;li&gt;Use different browsers: One for your accounts and another browser for everything else.&lt;br /&gt;I use Chrome for GMail and Twitter. All links in emails or tweets are opened in Incognito mode (separate/isolated processes from the main) or in Firefox.&lt;/li&gt;&lt;li&gt;I use Linux. No Windows or Mac for me, and please don't laugh at Windows if you're a Mac fanboy, Mac OSs are less secure than Windows but aren't targeted as much because you're a minority.&lt;/li&gt;&lt;li&gt;If you have to use Windows, use a good antivirus. I put Kaspersky on my family members' machines. I had used it for companies and fully trust it.&lt;/li&gt;&lt;li&gt;Do not open emails from strangers.&lt;/li&gt;&lt;li&gt;Emails that say they're from good &amp;amp; honest people are most likely aren't.&lt;/li&gt;&lt;li&gt;Email that come from addresses of people you know aren't necessarily from them. The addresses can be spoofed, i.e., I can send you an email from your account without accessing your account. Magic.&lt;/li&gt;&lt;li&gt;If someone you know asks you for your password or to install something you don't know about, call them and ask them in person.&lt;/li&gt;&lt;li&gt;If you read online about a nice service that you use that isn't secure, you better not shrug it off and say that you won't be affected. That's how everyone gets slapped in the end.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I probably have other habits that don't come to mind right now. If you have any suggestions, leave a comment (you can do so anonymously) and I'll be more than happy to add it to the list.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Live paranoid. Live safe.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-41207584683636150?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/41207584683636150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=41207584683636150' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/41207584683636150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/41207584683636150'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2011/06/mtgox-compromise-and-what-it-means-to.html' title='MtGox Compromise And What It Means To Me'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-6821754148138571209</id><published>2011-06-07T11:16:00.004+03:00</published><updated>2011-06-08T20:22:22.547+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='ISP'/><category scheme='http://www.blogger.com/atom/ns#' term='kuwait'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>Kuwait ISPs Capping Bandwidth</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Updated1: Tuesday 7th, 8:44 PM&lt;br /&gt;&lt;br /&gt;Update2: Wednesday 8th, 8:17 PM&lt;br /&gt;&lt;br /&gt;ISPs in Kuwait have decided to gang up on residential consumers rather than step up to the Ministry of Communication's abuse. After all, it's easier (and cheaper) for multi-million companies to bully users rather than file a lawsuit against a ministry.&lt;br /&gt;&lt;br /&gt;ISPs have setup what they call Fair Usage Policy, where they claim they have generously defined daily bandwidth cap/limits on users, to ensure that everyone has a pleasant experience. They have enforced this policy, WITHOUT NOTIFYING USERS!&lt;br /&gt;&lt;br /&gt;Fair Usage Policies: &lt;a href="http://www.qualitynet.net/?page_id=2102"&gt;QualityNet&lt;/a&gt;, &lt;a href="http://www.kems.net/custom_page.aspx?pid=10"&gt;KEMS&lt;/a&gt;, &lt;a href="http://www.fasttelco.net/AxCMSTemplates/FAP_1471.pdf"&gt;FastTelco&lt;/a&gt; and &lt;a href="http://www.gulfnet.com.kw/myPortal-0.0.1-SNAPSHOT/conditions/terms.html"&gt;GulfNet&lt;/a&gt;. As you can see, some have blatantly put up the caps and others are doing it subtly without mentioning what the caps are.&lt;br /&gt;&lt;br /&gt;According to them, "some" bandwidth abusers are the cause of this, as such, everyone must suffer!&lt;br /&gt;It is not enough that they have increased their prices by at least 70% this year (February 2011), the increment was approved by the Ministry of Communications, and now the ministry is saying it'll fight the price increments!!! WHO THE HELL DO YOU THINK YOU'RE FOOLING?&lt;br /&gt;&lt;br /&gt;In addition to the high prices and bad service, consumers were never compensated during the days of degraded service when there were regional cable cuts, which lasted for about 3 weeks.&lt;br /&gt;&lt;br /&gt;If ISPs are saying that a few abusers have caused this, then why provide them with bandwidth if the ISPs can't handle it? Don't provide 24Mbps if you don't expect users to download at 24Mbps!!!&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Speed (Mbps)&lt;/td&gt;&lt;td&gt;Max Downloadable/Day (GigaBytes)&lt;/td&gt;&lt;td&gt;New Cap Limit/Day (GigaBytes)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;10.54&lt;/td&gt;&lt;td&gt;1.7&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1.5&lt;/td&gt;&lt;td&gt;15.82&lt;/td&gt;&lt;td&gt;1.9&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;21.1&lt;/td&gt;&lt;td&gt;2.9&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;31.64&lt;/td&gt;&lt;td&gt;3.8&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;42&lt;/td&gt;&lt;td&gt;4.7&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;52.73&lt;/td&gt;&lt;td&gt;5.4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;63.3&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;73.83&lt;/td&gt;&lt;td&gt;6.8&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;84.4&lt;/td&gt;&lt;td&gt;7.9&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;The formula is: Daily maximum downloadable content = (Speed in Mbps/(8*1024))*3600*24&lt;br /&gt;&lt;br /&gt;As you can see, we're getting barely 15% of what we paid for! And that's FAIR! Take a look at &lt;a href="http://binibrahim.com/cap-scam/"&gt;this nice table&lt;/a&gt; for more info.&lt;br /&gt;&lt;br /&gt;Consumers are enraged and are forming an alliance to file lawsuits against the ISPs to fight for their rights. It doesn't matter if the contract mentioned Fair Usage or not, it doesn't matter if the contracts says it can be updated without prior notice or not, you cannot rip us off like that.&lt;br /&gt;&lt;br /&gt;We have games to play online, buy &amp;amp; download games online (via Steam), rent movies online (iTunes, YouTube, NetFlix and Hulu) and watch many kitty-infused videos on youtube, in HIGH DEFINITION.&lt;br /&gt;&lt;br /&gt;ISPs do NOT get the right to define what the Internet is.&lt;br /&gt;&lt;br /&gt;Update1: We're using the hash tag &lt;a href="http://twitter.com/#!/search/%23q8cap"&gt;#q8cap on Twitter&lt;/a&gt; to rant and disclose information about the topic.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;Update2: &lt;a href="http://twitter.com/#!/justjimmar"&gt;@justjimmar&lt;/a&gt; provided a &lt;a href="http://4.bp.blogspot.com/-BDtif2PDYx8/Te-vNMP5QYI/AAAAAAAAAhQ/3J2vAllTvmQ/s1600/kems-cap-facebook.png%22"&gt;chat log with KEMS on Facebook&lt;/a&gt;. Ridiculous reasons for the cap! (&lt;a href="http://twitpic.com/58q4ou/full"&gt;original link to chat log&lt;/a&gt;)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-6821754148138571209?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/6821754148138571209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=6821754148138571209' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/6821754148138571209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/6821754148138571209'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2011/06/kuwait-isps-capping-bandwidth.html' title='Kuwait ISPs Capping Bandwidth'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-7517219573189656961</id><published>2011-03-29T22:21:00.001+03:00</published><updated>2011-03-29T22:30:42.457+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pxe'/><category scheme='http://www.blogger.com/atom/ns#' term='network'/><category scheme='http://www.blogger.com/atom/ns#' term='vmware'/><category scheme='http://www.blogger.com/atom/ns#' term='esxi'/><title type='text'>PXE Installation of VMware ESXi 4.1</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h1&gt;Introduction&lt;/h1&gt;Installing ESXi on multiple hosts at the same time over the network is achieved through PXE booting. Unfortunately many of the guides I found online take a long route to setup PXE booting on Linux and install multiple programs, each with its own config file which complicates the matter.&lt;br /&gt;&lt;br /&gt;I chose to use DNSmasq because it provides DHCP, DNS, PXE &amp;amp; TFTP services all in one program. In addition, thanks to Simon, he added a feature where you could assign IPs sequentially rather than based on the Mac address. Read &lt;a href="http://mbhtech.blogspot.com/2011/03/dnsmasq-offers-sequential-ip-addressing.html"&gt;here for details&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This mini-guide assumes the use of Linux. If you're a Windows user, I suggest you use&lt;a href="http://support.3com.com/software/utilities_for_windows_32_bit.htm"&gt; 3C Daemon tool&lt;/a&gt; from 3Com which offers DHCP, FTP, TFTP &amp;amp; PXE services for Windows.&lt;br /&gt;&lt;br /&gt;I have setup a virtual machine dedicated to PXE booting &amp;amp; installation to make it portable &amp;amp; share it with others. Feel free to run your tests on a VM or a physical box.&lt;br /&gt;&lt;h1&gt;Requirements&lt;/h1&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Linux OS. My choice was &lt;a href="http://www.debian.org/"&gt;Debian&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;VMware ESXi Hypervisor &lt;a href="http://downloads.vmware.com/d/info/datacenter_downloads/vmware_vsphere_hypervisor_esxi/4_0"&gt;ISO file&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Internet connection.&lt;/li&gt;&lt;li&gt;pxelinux.0 file from &lt;a href="http://www.kernel.org/pub/linux/utils/boot/syslinux/"&gt;syslinux&lt;/a&gt; version 3.&lt;/li&gt;&lt;li&gt;Chocolate chip cookies. mmmmm.&lt;/li&gt;&lt;/ul&gt;&lt;h1&gt;Installation &amp;amp; Configuration&lt;/h1&gt;0] Install the operating system (Debian) and setup a static IP on the NIC.&lt;br /&gt;1] Edit the file: /etc/network/interfaces -- My editor of choice is nano.&lt;br /&gt;&lt;pre&gt;auto lo&lt;br /&gt;iface lo inet loopback&lt;br /&gt;&lt;br /&gt;allow-hotplug eth0&lt;br /&gt;iface eth0 inet static&lt;br /&gt;   address 10.172.0.250&lt;br /&gt;   netmask 255.255.255.0&lt;br /&gt;   gateway 10.172.0.254&lt;/pre&gt;&lt;br /&gt;2] Run the command: service networking restart&lt;br /&gt;Note: In the initial setup, put the IP above to match your network to be able to download then change it once you're done with this guide to the above to avoid conflicts with any network.&lt;br /&gt;&lt;br /&gt;3] Install apache and dnsmasq: apt-get install apache2 dnsmasq&lt;br /&gt;4] Edit: /etc/dnsmasq.conf&lt;br /&gt;&lt;pre&gt;dhcp-range=10.172.0.1,172.10.0.100,255.255.255.0,infinite&lt;br /&gt;dhcp-option=66,10.172.0.250&lt;br /&gt;dhcp-option=67,"pxelinux.0"&lt;br /&gt;dhcp-boot=/srv/tftp/pxelinux.0&lt;br /&gt;enable-tftp&lt;br /&gt;tftp-root=/srv/tftp&lt;/pre&gt;&lt;br /&gt;Note 0: The IPs above do not need to match your network.&lt;br /&gt;Note 1: "infinite" is the lease time. The ESXi installer invokes a lease-release token which will cause the IP to be used by another host. I did not want that to happen because I have scripts assigning hosts their IPs sequentially.&lt;br /&gt;&lt;br /&gt;5] Create the directory structure: mkdir -p /srv/tftp/pxelinux.cfg&lt;br /&gt;&lt;br /&gt;6] Download syslinux v3, extract pxelinux.0 &amp; put it in /srv/tftp: wget &amp;lt;URL&amp;gt;&lt;br /&gt;7] Extract the files: tar -xf &amp;lt;File name&amp;gt;&lt;br /&gt;8] Copy pxelinux.0: cp ./syslinux-3.86/core/pxelinux.0 /srv/tftp/&lt;br /&gt;9] Create PXE boot file: nano /srv/tftp/pxelinux.cfg/default and edit it:&lt;br /&gt;&lt;pre&gt;default esxi_scripted&lt;br /&gt;label esxi_scripted&lt;br /&gt;   kernel vmware/esxi411/mboot.c32&lt;br /&gt;   append vmware/esxi411/vmkboot.gz ks=http://10.172.0.250/ks.php --- vmware/esxi411/vmkernel.gz&lt;br /&gt;   --- vmware/esxi411/sys.vgz --- vmware/esxi411/cim.vgz ---&lt;br /&gt;   vmware/esxi411/ienviron.vgz --- vmware/esxi411/install.vgz&lt;br /&gt;&lt;br /&gt;prompt 0&lt;br /&gt;timeout 10&lt;/pre&gt;&lt;br /&gt;Note: Make sure all of the append parameters are on one line. It may pan out here due to little page width.&lt;br /&gt;&lt;br /&gt;A] Edit: /var/www/ks.php&lt;pre&gt;accepteula&lt;br /&gt;rootpw password&lt;br /&gt;autopart --firstdisk --overwritevmfs&lt;br /&gt;install url http://10.172.0.250/vmware/esxi411&lt;br /&gt;network --bootproto=dhcp --device=vmnic0&lt;br /&gt;reboot&lt;/pre&gt;&lt;br /&gt;The above is a kickstart script which the ESXi installer will execute. These are the defaults that are found in the PXE Guide by VMware.&lt;br /&gt;Note: This will install to the first disk detected by the BIOS and will overwrite existing VMFS filesystems.&lt;h1&gt;File Preparation&lt;/h1&gt;B] mkdir -p /srv/tftp/vmware/esxi411&lt;br /&gt;C] Copy the contents of the ISO file to the directory above. You can mount an ISO by: mount -o loop /path/to/isofile /mnt. The files will be in /mnt: cp -Rv /mnt/* /srv/tftp/vmware/esxi411/&lt;br /&gt;D] Link to vmware directory: ln -s /srv/tftp/vmware /var/www/vmware&lt;br /&gt;E] service dnsmasq restart&lt;br /&gt;&lt;br /&gt;By now, things should be good to go!&lt;h1&gt;Caveats&lt;/h1&gt;&lt;ul&gt;&lt;li&gt;If you set this in a VM, keep the NIC disabled by default to avoid wiping systems by mistake and broadcasting DHCP over the LAN.&lt;/li&gt;&lt;li&gt;If using a VM, the physical adapter must have a static IP not set on DHCP&lt;/li&gt;&lt;li&gt;To reset the list of leases: echo "" &amp;gt; /var/lib/misc/dnsmasq.leases&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;This shows a very basic and default setup of installing ESXi over multiple boxes. Hopefully I'll have the time to post my custom scripts that integrate into the kickstart script to auto-assign IPs, VLANs, and a few more tasks to streamline the installation.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-7517219573189656961?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/7517219573189656961/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=7517219573189656961' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/7517219573189656961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/7517219573189656961'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2011/03/pxe-installation-of-vmware-esxi-41.html' title='PXE Installation of VMware ESXi 4.1'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-7868757936736385367</id><published>2011-03-13T21:56:00.000+03:00</published><updated>2011-03-13T21:56:27.468+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='event'/><category scheme='http://www.blogger.com/atom/ns#' term='kuwait'/><category scheme='http://www.blogger.com/atom/ns#' term='barcamp'/><title type='text'>BarCamp Kuwait Two</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The 2nd barcamp is being planned and we're looking for people interested in participating with presentations to make our reservations. You're welcome too if you'd like to just attend!&lt;br /&gt;&lt;br /&gt;Details about the event:&amp;nbsp;&lt;a href="http://goo.gl/DuLTu"&gt;http://goo.gl/DuLTu&lt;/a&gt;&amp;nbsp;-- Please make sure you fill in the form at the end of the page!&lt;br /&gt;&lt;br /&gt;What is BarCamp? An ad-hoc gathering where people present their projects and experience in the IT field. We usually have key speakers and then The Grid, where other speakers arriving to the event reserve a slot to give their speech. Slots are first-come-first-serve.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-7868757936736385367?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/7868757936736385367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=7868757936736385367' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/7868757936736385367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/7868757936736385367'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2011/03/barcamp-kuwait-two.html' title='BarCamp Kuwait Two'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-7648725492668233437</id><published>2011-03-12T19:28:00.000+03:00</published><updated>2011-03-12T19:28:34.518+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dns'/><category scheme='http://www.blogger.com/atom/ns#' term='pxe'/><category scheme='http://www.blogger.com/atom/ns#' term='tftp'/><category scheme='http://www.blogger.com/atom/ns#' term='esx'/><category scheme='http://www.blogger.com/atom/ns#' term='vmware'/><category scheme='http://www.blogger.com/atom/ns#' term='esxi'/><category scheme='http://www.blogger.com/atom/ns#' term='dhcp'/><title type='text'>DNSmasq Offers Sequential IP Addressing</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;A few days back Simon, the developer of &lt;a href="http://www.thekelleys.org.uk/dnsmasq/"&gt;DNSmasq&lt;/a&gt;, added an option for DNSmasq to serve IPs in a sequential manner rather than based on a hash of the MAC address, upon my request.&lt;br /&gt;&lt;br /&gt;He was kind enough to implement it, allowing me to use DNSmasq as a DNS, DHCP, PXE &amp;amp; TFTP daemon for my VMware ESXi automated deployments.&lt;br /&gt;&lt;br /&gt;This feature is available in version &lt;a href="http://www.thekelleys.org.uk/dnsmasq/test-releases/"&gt;2.58 test 4&lt;/a&gt;. I tested it on a bunch of virtual machines simulating an ESXi installation and everything went smooth.&lt;br /&gt;&lt;br /&gt;I have to note: If you're using it for ESXi deployments, you may want to set the lease expiration time to infinite because the ESXi installer sends a lease release after the installation is done, causing subsequent hosts to get the same IP.&lt;br /&gt;&lt;br /&gt;Big thanks go to Simon!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-7648725492668233437?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/7648725492668233437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=7648725492668233437' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/7648725492668233437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/7648725492668233437'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2011/03/dnsmasq-offers-sequential-ip-addressing.html' title='DNSmasq Offers Sequential IP Addressing'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-4935008361495992860</id><published>2011-03-04T14:59:00.001+03:00</published><updated>2011-03-31T23:17:28.899+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vlan'/><category scheme='http://www.blogger.com/atom/ns#' term='bladecenter'/><category scheme='http://www.blogger.com/atom/ns#' term='network'/><category scheme='http://www.blogger.com/atom/ns#' term='nortel'/><category scheme='http://www.blogger.com/atom/ns#' term='esx'/><category scheme='http://www.blogger.com/atom/ns#' term='switch'/><category scheme='http://www.blogger.com/atom/ns#' term='vmware'/><category scheme='http://www.blogger.com/atom/ns#' term='esxi'/><category scheme='http://www.blogger.com/atom/ns#' term='blade'/><title type='text'>VMware ESXi 4.1 on IBM BladeCenter with Nortel Switches</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;Update&lt;/b&gt;: We resolved the issue permanently and I understand what was going on, but have little time to post everything soon. If you're in a hurry and want help, leave a comment or email me.&lt;br /&gt;&lt;br /&gt;One of our customers purchased two BladeCenter H Chassis for deploying VMware on them. Each chassis came with two Nortel switches providing 2 internal ports and 9 external ports. The external network ports are: 3x 10Gbit and 6x 1Gbit.&lt;br /&gt;&lt;br /&gt;The customer has a physically isolated DMZ network, so one 1Gbit port from each switch was dedicated to a DMZ switch (VLAN1).&lt;br /&gt;&lt;br /&gt;The client had purchased only 2x 10Gbit SFPs, so the third port was empty and won't be used in this setup.&lt;br /&gt;&lt;br /&gt;To make use of VMware's Virtual Switch Tagging (VST) network concept, the switches which the blades have to be connected to must be configured as a trunk and allow the required VLANs to pass. Also, the Nortel switch on the BladeCenter must be configured to pass those VLANs, for both external and internal ports.&lt;br /&gt;&lt;br /&gt;The following VLANs were created:&lt;br /&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Management&lt;/li&gt;&lt;li&gt;vMotion&lt;/li&gt;&lt;li&gt;Fault Tolerance (FT)&lt;/li&gt;&lt;li&gt;Virtual Machines&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;After configuring the external and internal ports of the Nortel switch to be part of those VLANs, a strange problem popped up: I couldn't ping or reach any of the ESXi hosts in any way, unless I pinged my workstation from within the ESXi server first!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To make matters clear, here's how things were connected:&lt;/div&gt;&lt;div&gt;My workstation -&amp;gt; Server Farm Switch&lt;/div&gt;&lt;div&gt;BladeCenter -&amp;gt; Server Farm Switch&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ping from workstation to any ESXi host: Fails&lt;/div&gt;&lt;div&gt;After 1 ping from an ESXi host to my workstation: Succeeds, and all pings from my workstation to that specific ESXi host go through.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Also, even after traffic is established and I connect using vSphere Client, it disconnects me after about 15 minutes and I can no longer communicate with that host until I ping my workstation from that host again!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After poking around for hours, the solution was to take one external port (1Gbit) out of all VLANs except 1. That is, that port must not belong to any VLAN except VLAN1 (untagged).&amp;nbsp;Doing so, allowed us to communicate with all servers smoothly.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I still don't understand why that worked and whether traffic is now passing through the tagged external ports or that specific untagged port. I'll be doing more investigations next week and update this post.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-4935008361495992860?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/4935008361495992860/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=4935008361495992860' title='51 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/4935008361495992860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/4935008361495992860'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2011/03/vmware-esxi-41-on-ibm-bladecenter-with.html' title='VMware ESXi 4.1 on IBM BladeCenter with Nortel Switches'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>51</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-3671441562965362045</id><published>2011-02-14T10:01:00.001+03:00</published><updated>2011-02-15T09:19:28.739+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='p2v'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='vmware'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='convert'/><title type='text'>P2V Conversion of OEM Windows Systems</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;A physical to virtual conversion of a machine running an Original Equipment Manufacturer (OEM) Windows license will not be without hiccups.&lt;br /&gt;&lt;br /&gt;Because the OEM validates the product key against the hardware itself, after the conversion process, the validation program will not find any OEM hardware thus rejecting all keys, even the standard ones. This is true for desktops, laptops and servers.&lt;br /&gt;&lt;br /&gt;If you don't know what OEM is, it's similar to buying a Lenovo laptop with Windows preinstalled on it. In this case, all the hardware was provided by one manufacturer and the operating system (OS) will validate against the OEM hardware only. &lt;br /&gt;&lt;br /&gt;The only solution is to obtain a Volume Licensing media of the same OS and a product key for it, then perform an OS repair (not using the recovery console).&lt;br /&gt;&lt;br /&gt;Simply put, you boot up from the media, proceed as if you want to install, then select the partition that has been detected to have an existing OS and select Repair rather than a fresh installation.&lt;br /&gt;&lt;br /&gt;All your settings and configurations will be preserved for your programs. You may need to reinstall certain hot fixes or a service pack.&lt;br /&gt;&lt;br /&gt;Note: If setup cannot see the SCSI hard disk (in case of Windows XP), see &lt;a href="http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1006956"&gt;this KB&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;a href="http://blogs.catapultsystems.com/IT/archive/2009/08/06/p2v-lesson-learned-%E2%80%93-check-the-license-first.aspx"&gt;Catapult Systems IT Team Blog&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://communities.vmware.com/message/521945#521945"&gt;VMware forums&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://support.microsoft.com/kb/816579/"&gt;Microsoft Knowledge Base&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-3671441562965362045?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/3671441562965362045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=3671441562965362045' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/3671441562965362045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/3671441562965362045'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2011/02/p2v-conversion-of-oem-windows-systems.html' title='P2V Conversion of OEM Windows Systems'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-7078104082335989323</id><published>2011-01-30T23:04:00.003+03:00</published><updated>2011-12-19T13:51:06.018+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vcenter'/><category scheme='http://www.blogger.com/atom/ns#' term='esx'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='vmware'/><category scheme='http://www.blogger.com/atom/ns#' term='esxi'/><category scheme='http://www.blogger.com/atom/ns#' term='convert'/><title type='text'>Converting Windows 2000 with VMware Converter</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Converting a Windows 2000 machine has a bunch of caveats and problems when going from physical to virtual (p2v), using VMware vCenter Converter Standalone.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;Requirements:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;VMware Standalone Converter version 4.0.1 (See Additional Info at the end)&lt;/li&gt;&lt;li&gt;Update Rollup 1 for Windows 2000 SP4 (&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=b54730cf-8850-4531-b52b-bf28b324c662&amp;amp;displaylang=en"&gt;KB891861&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Windows 2000 Sysprep tools (&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?familyid=0C4BFB06-2824-4D2B-ABC1-0E2223133AFB&amp;amp;displaylang=en"&gt;Q257813&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;A Windows or Linux LiveCD. I recommend &lt;a href="http://www.knopper.net/knoppix-mirrors/index-en.html"&gt;Knoppix&lt;/a&gt; (6.4+ - Linux) or &lt;a href="http://www.hirensbootcd.org/download/"&gt;Hiren&lt;/a&gt;&amp;nbsp;(Windows).&lt;br /&gt;If you need to modify registry keys, use Hiren.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;Procedure:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;Install VMware Standalone Converter versoin 4.0.1&lt;/li&gt;&lt;li&gt;Extract sysprep tools and place them in C:\Documents and Settings\All Users\Application Data\VMware\VMware vCenter Converter Standalone\sysprep\2k&lt;br /&gt;That should be on the same machine that has VMware Converter, not the Windows 2000 server.&lt;br /&gt;* On Windows 2008, the location is&amp;nbsp;C:\Users\All Users\VMware\VMware vCenter Converter Standalone\sysprep\2k (Thanks Anonymous for the tip!)&lt;/li&gt;&lt;li&gt;Either apply the update rollup to the server or extract the update rollup and replace it with the file SCSIPORT.SYS in C:\WINNT\system32\drivers. Applying the update is recommended if the system is stable.&lt;/li&gt;&lt;li&gt;If you’re using a static IP on the Windows 2000 server, see &lt;a href="http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1005595"&gt;this Knowledge Base article&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Run the Converter and deploy the agent. If you’re asked to restart, restart then start the VMware Converter service manually before running the Converter again, otherwise it’ll ask you to deploy the agent again.&lt;/li&gt;&lt;li&gt;In Step 3: View / Edit Options, Click on the Devices pane and change the disk controller to BusLogic SCSI.&lt;/li&gt;&lt;li&gt;Keep the number of processors as is, because if you change it, Windows 2000 won’t auto-detect new CPUs and you’ll need to update the Hardware Abstraction Layer (HAL) on it manually. See &lt;a href="http://support.microsoft.com/kb/234558"&gt;KB234558&lt;/a&gt; and &lt;a href="http://support.microsoft.com/kb/249694"&gt;KB249694&lt;/a&gt; for more details.&lt;/li&gt;&lt;li&gt;In the Networks pane, deselect the option to connect at power on.&lt;/li&gt;&lt;li&gt;In the Advanced Options pane, do not select the options to power off the source and select the option to power on the target (VM). Do install VMware tools.&lt;br /&gt;Do NOT select "configure guest preferences for the virtual machine"&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;With that, you should be set to convert that machine.&amp;nbsp;After the conversion is complete, the VM will start, install VMware tools, then restart. After it comes up you should apply the proper network settings then shutdown and enable the NIC to connect at power on.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;Problems and Solutions:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;"disk read error" when starting the virtual machine.&lt;br /&gt;This happens because you have selected the Disk Controller as “Preserve Source” or “IDE” -- you must select “SCSI” -- after doing so, you’ll need to reconvert the machine.&lt;/li&gt;&lt;li&gt;“KMODE_EXCEPTION_NOT_HANDLED” Blue Screen of Death (BSOD) during boot up.&lt;br /&gt;This happens because Windows 2000 is using the old SCSI driver (SCSIPORT.SYS).&lt;br /&gt;You must boot into a LiveCD and replace the file in the location mentioned above.&lt;br /&gt;This happened to me even after I copied the SCSIPORT.SYS to the target machine before converting.&lt;/li&gt;&lt;li&gt;After installing the Converter agent, you face problems &amp;amp; restart the Windows 2000 server, then when running converter again, it asks you to re-deploy the agent.&lt;br /&gt;This happens because when the Windows 2000 system comes up again, the Converter agent service isn’t started again.&lt;br /&gt;Open the services console (services.msc in run) and right-click VMware Converter then choose Start. After the service is started, run VMware Converter and it should connect.&lt;/li&gt;&lt;li&gt;Unable to communicate to the agent.&lt;br /&gt;The network traffic is probably blocked by firewalls that are on the Converter machine, the Windows 2000 target machine or in between. Make sure the firewalls are disabled or port 9089 is allowed to pass through.&lt;/li&gt;&lt;li&gt;"Inaccessible boot device" Blue Screen of Death (BSOD) during boot up.&lt;br /&gt;This happens due to some misconfiguration of drivers in the registry.&lt;br /&gt;To fix this, run the Converter program again and do a machine reconfiguration only (don't reconvert). Let it install VMware Tools, select "Reconfigure destination virtual machine" and do NOT select "Configure guest preferences for the virtual machine"&lt;br /&gt;If that does not solve your problem, read &lt;a href="http://communities.vmware.com/message/1663020"&gt;this thread&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;Using The Linux LiveCD:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;If you’re new to Linux, then here are some steps to help you replace files on virtual machines.&lt;/div&gt;&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;Boot the virtual machine from the LiveCD, by either attaching the ISO file from the data store, your machine, or burning the ISO to a CD (as an image!) and booting it from your CD drive.&lt;/li&gt;&lt;li&gt;At the boot prompt of Knoppix, just press enter to boot into the graphical interface.&lt;/li&gt;&lt;li&gt;Now we need to attach the VM’s disk to the Linux system: open a root shell / terminal.&lt;/li&gt;&lt;li&gt;Type: fdisk -l&lt;br /&gt;This will list all disks in your VM. Identify your operating system hard disk (by capacity if possible). If it’s not possible, then proceed with the next steps until you find your desired partition by looking at its contents.&lt;br /&gt;You will see things like: /dev/sda, /dev/sda1, /dev/sda2, ...etc. sda is your first hard disk. sdb is your second hard disk. sda1 is the first partition in your first hard disk.&lt;/li&gt;&lt;li&gt;Type: mkdir /mnt/os&lt;/li&gt;&lt;li&gt;If your operating system (OS) is installed on the first hard disk, first partition, then type:&amp;nbsp;mount /dev/sda1 /mnt/os&lt;/li&gt;&lt;li&gt;You can now open a file manager in the graphical interface and go to this directory: /mnt/os -- you’ll see the contents of that partition.&lt;br /&gt;If that is not your desired partition, skip to step 10 then try mounting another partition.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Note&lt;/b&gt;: Make sure you mount a partition &amp;amp; not a disk!&lt;br /&gt;mount /dev/sda1 is correct. mount /dev/sda is not.&lt;/li&gt;&lt;li&gt;To copy a file over the network from a Windows share on another machine, open a file manager and in the address tab type: smb://ip&lt;br /&gt;Example: smb://192.168.0.1, where the IP is of the machine you want to access over the network to copy a file from.&lt;/li&gt;&lt;li&gt;Right click &amp;amp; copy the file, then go to /mnt/os and paste it there.&lt;/li&gt;&lt;li&gt;You’re almost done. Now you just need to unmount the partition, so close the file manager window that opens /mnt/os and then in the root shell type: umount /mnt/os&lt;/li&gt;&lt;li&gt;Reboot the VM and unattach the CD / ISO.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;Additional Info:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Knoppix is like any *nix system: case-sensitive when it comes to file names. So you may have to delete to the original file manually then copy the new .SYS file due to the difference in letter case.&lt;/li&gt;&lt;li&gt;The sysprep tools will be used by the VMware Converter to prepare a new copy of Windows. It’s required for the cloning process.&lt;/li&gt;&lt;li&gt;Support for Windows 2000 has been dropped in VMware Converter version 4.3.&lt;/li&gt;&lt;li&gt;VMware Converter Standalone is free. VMware requires that you register to be able to download, but their servers are slow (at least in my experience). I got my copy from 4shared, so just search for it &amp;amp; verify the md5 checksum.&lt;br /&gt;Windows: VMware-converter-4.0.1-161434.exe - 35f22a3b40b114d70cdbda2d5056c10f&lt;br /&gt;Linux: VMware-converter-4.0.1-161434.tar.gz - 90ce68a9f75af91aed9119d419a98b3c&lt;/li&gt;&lt;li&gt;LiveCD Selection: You can choose anything that works for you as long as it has SCSI disk drivers, otherwise you won’t be able to see the VM’s disks (which is why getting Damn Small Linux was a waste of time...)&amp;nbsp;and can read &amp;amp; write to the NTFS filesystem.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-7078104082335989323?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/7078104082335989323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=7078104082335989323' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/7078104082335989323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/7078104082335989323'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2011/01/converting-windows-2000-machine-has.html' title='Converting Windows 2000 with VMware Converter'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-6408778864158102138</id><published>2011-01-30T22:16:00.000+03:00</published><updated>2011-01-30T22:16:14.188+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='docs'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>New Google Docs Shows No Love For Blogs</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I haven't used Google Docs to publish posts in a while and I found out today that the new version of Google Docs does not support publishing to blogs. I found out after I had finished writing my post.&lt;br /&gt;&lt;br /&gt;I didn't find a way to revert back, as the option to use the old version has been removed. Also, Blogger has no option to import a post from an ODF or Word.&lt;br /&gt;My options are limited to one: Pasting the text into the composer then manually removing any coloring of the text, since it hard-codes the colors which contradict with my theme.&lt;br /&gt;&lt;br /&gt;I'll blame myself for trusting Google in maintaining a usable solution after deploying it to the masses. I'll stick to writing in Blogger's direct composer from now on.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-6408778864158102138?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/6408778864158102138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=6408778864158102138' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/6408778864158102138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/6408778864158102138'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2011/01/new-google-docs-shows-no-love-for-blogs.html' title='New Google Docs Shows No Love For Blogs'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-5222454754716632156</id><published>2010-11-27T17:37:00.000+03:00</published><updated>2010-11-27T17:37:21.655+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dslr'/><category scheme='http://www.blogger.com/atom/ns#' term='news'/><category scheme='http://www.blogger.com/atom/ns#' term='kuwait'/><title type='text'>Kuwait DSLR Ban is a Hoax</title><content type='html'>Kuwait Times reported the ban, and soon after it was picked up by many other sites like The Next Web &amp;amp; Engadget.&lt;br /&gt;&lt;br /&gt;Kuwait Times was the only newspaper in Kuwait to mention this story without any merit or proof of the ban. The government didn't make any official statements either.&lt;br /&gt;&lt;br /&gt;Now, Kuwait Times has edited the article &lt;a href="http://www.kuwaittimes.net/read_news.php?newsid=MzAwMTg4ODg1"&gt;retracted&lt;/a&gt; the shameful piece of news.&lt;br /&gt;&lt;br /&gt;News websites that picked it up should be ashamed of themselves for not seeking the info from other news outlets, and for criticizing the whole country based on one lousy article.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-5222454754716632156?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/5222454754716632156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=5222454754716632156' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/5222454754716632156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/5222454754716632156'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/11/kuwait-dslr-ban-is-hoax.html' title='Kuwait DSLR Ban is a Hoax'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-704479081816179533</id><published>2010-11-19T03:47:00.000+03:00</published><updated>2010-11-19T03:47:50.772+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='gateway'/><category scheme='http://www.blogger.com/atom/ns#' term='untangle'/><title type='text'>Untangle To Include Web Cache</title><content type='html'>&lt;a href="http://www.untangle.com/"&gt;Untangle&lt;/a&gt; is a gateway controller built on top of Linux. It can act as a router or a transparent bridge in the network.&lt;br /&gt;&lt;br /&gt;Untangle is open source and offers a free version. The &lt;a href="http://www.untangle.com/Lite-Package"&gt;free version&lt;/a&gt; provides the following:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Web URL filter&lt;/li&gt;&lt;li&gt;Virus Scanner &amp;amp; Blocker&lt;/li&gt;&lt;li&gt;Spam Blocker&lt;/li&gt;&lt;li&gt;Attack Blocker&lt;/li&gt;&lt;li&gt;Phish Blocker&lt;/li&gt;&lt;li&gt;Spyware Blocker&lt;/li&gt;&lt;li&gt;Protocol Control (Layer-7 filtering)&lt;/li&gt;&lt;li&gt;Captive Portal&lt;/li&gt;&lt;li&gt;Firewall&lt;/li&gt;&lt;li&gt;Intrusion Prevention&lt;/li&gt;&lt;li&gt;OpenVPN&lt;/li&gt;&lt;li&gt;Reports&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;It currently does not provide a caching proxy, but&amp;nbsp;I received an email notification today that the &lt;a href="http://bugzilla.untangle.com/show_bug.cgi?id=4015"&gt;Untangle Web Cache&lt;/a&gt; feature request ticket, that was opened 2 years ago, has been assigned to a developer and should be included in Untangle 8.1. The current version as of this writing is 8.0.&lt;br /&gt;&lt;br /&gt;I don't know when it's due, but that's certainly great news! I've been told by many people that making squid work with clamav is a huge headache as it often just dies (squid). So I'm guessing the Untangle team has finally worked a way to get around these issues.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-704479081816179533?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/704479081816179533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=704479081816179533' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/704479081816179533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/704479081816179533'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/11/untangle-to-include-web-cache.html' title='Untangle To Include Web Cache'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-4398898879951268553</id><published>2010-11-13T02:03:00.000+03:00</published><updated>2010-11-13T02:03:02.695+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='copyright'/><category scheme='http://www.blogger.com/atom/ns#' term='practice'/><category scheme='http://www.blogger.com/atom/ns#' term='plagiarism'/><category scheme='http://www.blogger.com/atom/ns#' term='khalid al-zanki'/><category scheme='http://www.blogger.com/atom/ns#' term='fraud'/><category scheme='http://www.blogger.com/atom/ns#' term='business'/><title type='text'>Bad Business Practices: Dealing With Haters</title><content type='html'>If you're a business owner, how do you deal with haters? Like any problem, you have to understand why you have the problem before you grab your tools &amp;amp; start fixing it.&lt;br /&gt;&lt;br /&gt;It doesn't take a&amp;nbsp;genius&amp;nbsp;to see why people hate Oracle, but this post is not about Oracle. I'd like to use &lt;b&gt;Khalid Al-Zanki&lt;/b&gt; as an example here because of some of his tweets that have been&amp;nbsp;surfacing&amp;nbsp;ever since &lt;a href="http://bashar.posterous.com/khalid-al-zanki-and-the-big-successful-fraud-2"&gt;Bashar&lt;/a&gt; and &lt;a href="http://mbhtech.blogspot.com/search/label/khalid%20al-zanki"&gt;I wrote&lt;/a&gt; about his &lt;a href="http://blogallalong.com/2010/08/29/khalid-al-zanki-confirms-copypasting-his-content/"&gt;bad business practices&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Before going through some pictures, I'd like to note that we've never mentioned his personal life. We've only highlighted his fraudulent approaches to marketing his services and himself.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/TN2-cnGQbdI/AAAAAAAAAgU/Jp0OgG34DAw/s1600/00-zanki-please-believe-me.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="288" src="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/TN2-cnGQbdI/AAAAAAAAAgU/Jp0OgG34DAw/s320/00-zanki-please-believe-me.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/TN2-dnxTwuI/AAAAAAAAAgY/eOapabsEyyY/s1600/01-zanki-confuse-to-win.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="250" src="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/TN2-dnxTwuI/AAAAAAAAAgY/eOapabsEyyY/s320/01-zanki-confuse-to-win.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/TN2-eqS7kkI/AAAAAAAAAgc/kWCCw730VbE/s1600/02-zanki-making-excuses.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="316" src="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/TN2-eqS7kkI/AAAAAAAAAgc/kWCCw730VbE/s320/02-zanki-making-excuses.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/TN2-fexEVlI/AAAAAAAAAgg/JdEyIK-Ic3M/s1600/03-zanki-defending-his-style.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="107" src="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/TN2-fexEVlI/AAAAAAAAAgg/JdEyIK-Ic3M/s320/03-zanki-defending-his-style.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/TN2-f4ko58I/AAAAAAAAAgk/afJ3aOWBQMY/s1600/04-zanki-on-a-spree.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="117" src="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/TN2-f4ko58I/AAAAAAAAAgk/afJ3aOWBQMY/s320/04-zanki-on-a-spree.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;As you can see, in these pictures and ones from previous posts, that his approach to all our exposures was to warn people to not listen to us, write a general post about what his method is without saying that he uses it, and rather than looking at things from a professional point of view, he quickly saw them as personal.&lt;br /&gt;&lt;br /&gt;How did Khalid deal with haters? Not as a professional for sure:&lt;br /&gt;- He didn't bother replying to us directly.&lt;br /&gt;- Always deleted our questions on his posts.&lt;br /&gt;- Switched his Twitter account to Private, disallowing his followers to read about what's going on.&lt;br /&gt;- Rather than admitting his mistakes, he hides for a while then pushes for more.&lt;br /&gt;- He scolded people publicly when he didn't like a reaction or something someone did (like tagging him in an event in Facebook)&lt;br /&gt;&lt;br /&gt;So from the last image, in addition to his funny typo, we can guess what he's gonna be up to &amp;amp; count on us coming after his cunning and dirty approaches at doing business, over &amp;amp; over until he learns about something called &lt;b&gt;ETHICS&lt;/b&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-4398898879951268553?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/4398898879951268553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=4398898879951268553' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/4398898879951268553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/4398898879951268553'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/11/bad-business-practices-dealing-with.html' title='Bad Business Practices: Dealing With Haters'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_9_Sv3ZsvT4I/TN2-cnGQbdI/AAAAAAAAAgU/Jp0OgG34DAw/s72-c/00-zanki-please-believe-me.PNG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-3609391197105859800</id><published>2010-11-09T12:49:00.000+03:00</published><updated>2010-11-09T12:49:57.869+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='law'/><category scheme='http://www.blogger.com/atom/ns#' term='online'/><category scheme='http://www.blogger.com/atom/ns#' term='legal'/><category scheme='http://www.blogger.com/atom/ns#' term='kuwait'/><category scheme='http://www.blogger.com/atom/ns#' term='regulations'/><title type='text'>Kuwait Law Needs Presence</title><content type='html'>How many times did a policeman stop you and tell you that something you did/have is illegal?&lt;br /&gt;I remember 3 occasions, and probably forgot more. In each time, the policeman would say it's illegal without providing proof or making sense as to why it is illegal. When questioning him, seeking a logical explanation, I get the same answer: "it's illegal."&lt;br /&gt;&lt;br /&gt;Example: Bumper Stickers on cars.&lt;br /&gt;Verdict: Illegal.&lt;br /&gt;Reason: Because he said so.&lt;br /&gt;Actual reason: A friend had a small questionnaire for the Department of Motor Vehicles in Kuwait, and it turned out that what they &lt;b&gt;meant&lt;/b&gt; is stickers that change the color of the car, i.e., those that cover the entire car.&lt;br /&gt;&lt;br /&gt;As you can see, what they &lt;b&gt;meant&lt;/b&gt; is not what was being applied because there was not enough description of the item being banned.&lt;br /&gt;&lt;br /&gt;Ironically, if you have a sticker that covers the entire rear window but it's a picture of the Amir or it's verses from the Quran, it's not illegal!!!&lt;br /&gt;&lt;br /&gt;My proposal to this is to force all government agencies to publish Kuwait's laws &amp;amp; regulations online, in both Arabic and English, so that everyone knows what are their rights, be able to easily search for them without paying a lawyer, and to be able to even question the details or application of these laws.&lt;br /&gt;&lt;br /&gt;There's a legal software being sold in the market for many years, monopolized by one lawyer, which contains laws of Kuwait (I don't know if it includes DMV regulations) and their changes throughout the years.&lt;br /&gt;This software targets lawyers, but since a digital copy is available, it's &amp;nbsp;quite easy to publish it online! Yet no one seems to care to go for the effort.&lt;br /&gt;&lt;br /&gt;I'm tired of questioning mindless policemen over idiotic regulations that they keep coming up with. I need evidence.&amp;nbsp;Or maybe they should carry booklets of regulations as proof.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-3609391197105859800?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/3609391197105859800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=3609391197105859800' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/3609391197105859800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/3609391197105859800'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/11/kuwait-law-needs-presence.html' title='Kuwait Law Needs Presence'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-7332320412937410063</id><published>2010-10-21T16:42:00.000+03:00</published><updated>2010-10-21T16:42:32.246+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conan'/><category scheme='http://www.blogger.com/atom/ns#' term='live'/><category scheme='http://www.blogger.com/atom/ns#' term='zombies'/><title type='text'>Zombies Attack Conan O'Brian's HQ</title><content type='html'>Today at around 14:00 UTC+3, zombies attacked Conan O'Brian's headquarters in the Team Coco building. Luckily, they had &lt;a href="http://www.teamcoco.com/live"&gt;a live camera&lt;/a&gt; setup and I was able to watch the whole event.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/TMA90sAKfOI/AAAAAAAAAeo/mW2Li0hqZwc/s1600/00-zombies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/TMA90sAKfOI/AAAAAAAAAeo/mW2Li0hqZwc/s320/00-zombies.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;The zombies are roaming about &amp;amp; tossing toilet paper.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/TMA93xapVMI/AAAAAAAAAes/URkACfYKUJs/s1600/01-zombies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="179" src="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/TMA93xapVMI/AAAAAAAAAes/URkACfYKUJs/s320/01-zombies.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;A zombie with a red candle. How romantic.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/TMA963LDjCI/AAAAAAAAAew/75n4vbvg9Fs/s1600/02-zombies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/TMA963LDjCI/AAAAAAAAAew/75n4vbvg9Fs/s320/02-zombies.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Zombie eating toilet paper. Going&amp;nbsp;vegan?&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/TMA9-O0vyYI/AAAAAAAAAe0/vjoIERq9LEw/s1600/03-zombies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/TMA9-O0vyYI/AAAAAAAAAe0/vjoIERq9LEw/s320/03-zombies.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-BWWeloI/AAAAAAAAAe4/NoU7mXxg9sA/s1600/04-zombies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="181" src="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-BWWeloI/AAAAAAAAAe4/NoU7mXxg9sA/s320/04-zombies.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-EZvpIDI/AAAAAAAAAe8/GaLUeanHcr4/s1600/05-zombies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-EZvpIDI/AAAAAAAAAe8/GaLUeanHcr4/s320/05-zombies.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Zombie singer.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-G0fdTSI/AAAAAAAAAfA/vZgsTrZLPWs/s1600/06-zombies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="179" src="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-G0fdTSI/AAAAAAAAAfA/vZgsTrZLPWs/s320/06-zombies.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Zombie singer. Insisting.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-JcYelBI/AAAAAAAAAfE/MpOgFi9yAwY/s1600/07-zombies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-JcYelBI/AAAAAAAAAfE/MpOgFi9yAwY/s320/07-zombies.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Zombies attempting to clean.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-MON36TI/AAAAAAAAAfI/y0SAHtSxEuU/s1600/09-zombies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-MON36TI/AAAAAAAAAfI/y0SAHtSxEuU/s320/09-zombies.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Zombies cleaning in action.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-Otje-fI/AAAAAAAAAfM/X2WR8r3s3IM/s1600/10-zombies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-Otje-fI/AAAAAAAAAfM/X2WR8r3s3IM/s320/10-zombies.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Hot cleaning zombie action! Oh yeah!&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-QyTDmwI/AAAAAAAAAfQ/6JqJc0Kuki4/s1600/14-zombies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-QyTDmwI/AAAAAAAAAfQ/6JqJc0Kuki4/s320/14-zombies.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Zombie singer does the braainnnss song. Needs more work.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-TY1AQxI/AAAAAAAAAfU/s-Ff9Tu8IQQ/s1600/15-zombies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-TY1AQxI/AAAAAAAAAfU/s-Ff9Tu8IQQ/s320/15-zombies.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Protester zombie demands brains.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-VX5wWmI/AAAAAAAAAfY/CORr4H8JXkI/s1600/16-zombies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="181" src="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-VX5wWmI/AAAAAAAAAfY/CORr4H8JXkI/s320/16-zombies.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Protester zombie emphasizes on needs.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-X-BdGYI/AAAAAAAAAfc/5VAdwydHTPc/s1600/17-zombies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-X-BdGYI/AAAAAAAAAfc/5VAdwydHTPc/s320/17-zombies.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Singer zombie jumps out of nowhere to scare us. Try harder.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-alseqWI/AAAAAAAAAfg/2QkTcdNMXsw/s1600/20-zombies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="179" src="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-alseqWI/AAAAAAAAAfg/2QkTcdNMXsw/s320/20-zombies.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Zombie coming out of the elevator.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-c2tuCrI/AAAAAAAAAfk/G9y_QUyaiIY/s1600/21-zombies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="179" src="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-c2tuCrI/AAAAAAAAAfk/G9y_QUyaiIY/s320/21-zombies.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Sudden party. No zombies. What's going on?!&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-f0yXvRI/AAAAAAAAAfo/A0Qddt1A3Zg/s1600/23-zombies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-f0yXvRI/AAAAAAAAAfo/A0Qddt1A3Zg/s320/23-zombies.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Human attempts to walk through zombies. Succeeded.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-h5Ot_hI/AAAAAAAAAfs/QGLSGiJTMk8/s1600/24-zombies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="181" src="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-h5Ot_hI/AAAAAAAAAfs/QGLSGiJTMk8/s320/24-zombies.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Zombie got tired &amp;amp; is meditating on the stairs.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-kyNDKlI/AAAAAAAAAfw/VEru0yJjyjA/s1600/25-zombies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="179" src="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-kyNDKlI/AAAAAAAAAfw/VEru0yJjyjA/s320/25-zombies.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Romantic zombie is looking for love.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-nZc5KLI/AAAAAAAAAf0/bY6m0qU04kU/s1600/26-zombies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-nZc5KLI/AAAAAAAAAf0/bY6m0qU04kU/s320/26-zombies.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Romantic zombie is asking web cam stalkers for love, or brains. Or both.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-p3-0S5I/AAAAAAAAAf4/4rVA61tlOzw/s1600/27-zombies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-p3-0S5I/AAAAAAAAAf4/4rVA61tlOzw/s320/27-zombies.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;The zombies are leaving! Toilet paper wasn't enough.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-sO2ZfHI/AAAAAAAAAf8/m7bvjcXXoXg/s1600/28-zombies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-sO2ZfHI/AAAAAAAAAf8/m7bvjcXXoXg/s320/28-zombies.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Sudden poker game. No zombies. What's going on?!&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-u0jDTWI/AAAAAAAAAgA/qEO72l_XQtg/s1600/31-zombies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-u0jDTWI/AAAAAAAAAgA/qEO72l_XQtg/s320/31-zombies.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;All zombies left. Flyers &amp;amp; toilet paper left.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-vpYaceI/AAAAAAAAAgE/0TsA-iZcqRM/s1600/32-zombies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="68" src="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-vpYaceI/AAAAAAAAAgE/0TsA-iZcqRM/s320/32-zombies.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Flash plugin crashed and its process became a zombie too!!! (unintentional!)&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-x6ANWTI/AAAAAAAAAgI/-cUUdZSn690/s1600/33-zombies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-x6ANWTI/AAAAAAAAAgI/-cUUdZSn690/s320/33-zombies.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Humans rush to cleaning after verifying the end of the zombie protest/attack.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-zw57SgI/AAAAAAAAAgM/atlzmJ3R6yY/s1600/34-zombies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="179" src="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/TMA-zw57SgI/AAAAAAAAAgM/atlzmJ3R6yY/s320/34-zombies.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;The floor is cleaned.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/TMA_2gVfcvI/AAAAAAAAAgQ/IrEDklVZ468/s1600/35-zombies.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="209" src="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/TMA_2gVfcvI/AAAAAAAAAgQ/IrEDklVZ468/s320/35-zombies.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;A staff member sleeping in a bag with laundry around her...&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-7332320412937410063?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/7332320412937410063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=7332320412937410063' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/7332320412937410063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/7332320412937410063'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/10/zombies-attack-conan-obrians-hq.html' title='Zombies Attack Conan O&apos;Brian&apos;s HQ'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_9_Sv3ZsvT4I/TMA90sAKfOI/AAAAAAAAAeo/mW2Li0hqZwc/s72-c/00-zombies.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-4073288329776565099</id><published>2010-10-18T06:12:00.000+03:00</published><updated>2010-10-18T06:12:44.052+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='statistics'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='browser'/><title type='text'>Unscientific Browser Statistics</title><content type='html'>In my previous post, &lt;a href="http://mbhtech.blogspot.com/2010/10/apocalypse-survival-guide.html"&gt;Apocalypse Survival Guide&lt;/a&gt;, I posted a link to the slides using &lt;a href="http://goo.gl/"&gt;Google's URL shortening service&lt;/a&gt;. I had a few reasons for choosing that specific service:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.google.com/support/websearch/bin/answer.py?answer=190768"&gt;Its short URLs are permanent&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;a href="http://yro.slashdot.org/story/10/10/07/1222259/Libya-Takes-Hard-Line-On-Link-Shortening-Domains"&gt;The service is unlikely to be under odd political disputes&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.google.com/support/websearch/bin/answer.py?answer=190768"&gt;It detects malicious websites &amp;amp; warns you&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;a href="http://goo.gl/info/XHgI"&gt;It provides neat statistics&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;a href="http://goo.gl/info/XHgI"&gt;It generates a small QR barcode image to share the short URL&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;From the statistics link&amp;nbsp;&lt;a href="http://goo.gl/info/XHgI"&gt;http://goo.gl/info/XHgI&lt;/a&gt; you can see some interesting things like times &amp;amp; dates of clicks, referrers, countries, browsers &amp;amp; platforms (operating systems / devices).&lt;br /&gt;&lt;br /&gt;As of this writing, the link to the guide I posted had 62 clicks but shows an intriguing trend in browser usage:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Chrome: 11 users&lt;/li&gt;&lt;li&gt;Firefox: 11 users&lt;/li&gt;&lt;li&gt;Safari: 7 users&lt;/li&gt;&lt;li&gt;Mobile: 3 users&lt;/li&gt;&lt;li&gt;IE: 1 user&lt;/li&gt;&lt;li&gt;Opera: 1 user&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;What's even more interesting is the platform usage:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Windows: 16&lt;/li&gt;&lt;li&gt;Macintosh: 10&lt;/li&gt;&lt;li&gt;Other Unix (since Mac is considered Unix): 4&lt;/li&gt;&lt;li&gt;iPhone: 3&lt;/li&gt;&lt;li&gt;Linux: 1 (that's probably me!)&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;So people are using Chrome &amp;amp; Firefox more on Windows. That's heart-warming &amp;amp; gives me hope in humanity.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The next time you want a URL shortener, use Google's and check out the statistics by adding /info/ in the middle of the short URL (see the link above).&lt;/div&gt;&lt;div&gt;I used &lt;a href="http://bit.ly/"&gt;bit.ly&lt;/a&gt;'s service but didn't like its statistics page though it links to Twitter &amp;amp; Facebook public feeds for reference, but it doesn't always show the numbers or referrers correctly.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-4073288329776565099?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/4073288329776565099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=4073288329776565099' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/4073288329776565099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/4073288329776565099'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/10/unscientific-browser-statistics.html' title='Unscientific Browser Statistics'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-2709973763786123055</id><published>2010-10-11T12:40:00.000+03:00</published><updated>2010-10-11T12:40:44.315+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kuwait'/><category scheme='http://www.blogger.com/atom/ns#' term='apocalypse'/><category scheme='http://www.blogger.com/atom/ns#' term='barcamp'/><title type='text'>Apocalypse Survival Guide</title><content type='html'>This is a brief presentation that I prepared for the &lt;a href="http://barcamp.org/BarCampKuwait"&gt;BarCamp Kuwait&lt;/a&gt; event held yesterday (10/10/10).&amp;nbsp;I added some commentaries &amp;amp; extra slides which I only talked about in the event.&lt;br /&gt;Also, all the pictures were found in search engines. I hold nor claim any copyright over any of them.&lt;br /&gt;&lt;br /&gt;Enjoy the slides:&amp;nbsp;&lt;a href="http://goo.gl/XHgI"&gt;http://goo.gl/XHgI&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-2709973763786123055?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/2709973763786123055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=2709973763786123055' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/2709973763786123055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/2709973763786123055'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/10/apocalypse-survival-guide.html' title='Apocalypse Survival Guide'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-1744601984165787471</id><published>2010-09-02T13:04:00.001+03:00</published><updated>2011-03-13T21:51:38.759+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='event'/><category scheme='http://www.blogger.com/atom/ns#' term='barcamp'/><title type='text'>IT Peeps in Kuwait: Gather Around!</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://www.ahamshay.com/"&gt;Shaymaa&lt;/a&gt; (a.k.a &lt;b&gt;ahamshay&lt;/b&gt;) has a message for you:&amp;nbsp;If you are in Kuwait and in the IT business (company owner, teacher, student, freelancer, geek, nerd) send your contact info to: info [theAtSign] ahamshay.com or send a direct message over Twitter @ahamshay .&lt;br /&gt;&lt;br /&gt;She'll be organizing events &amp;amp; stuff! Tell your friends! This is for both guys &amp;amp; gals.&lt;br /&gt;&lt;br /&gt;Your contact info is confidential. (The engineering meaning of confidential, not the marketing/sales meaning)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-1744601984165787471?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/1744601984165787471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=1744601984165787471' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/1744601984165787471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/1744601984165787471'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/09/it-peeps-in-kuwait-gather-around.html' title='IT Peeps in Kuwait: Gather Around!'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-8065495670170450848</id><published>2010-09-02T12:01:00.001+03:00</published><updated>2010-09-02T12:03:11.990+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='copyright'/><category scheme='http://www.blogger.com/atom/ns#' term='plagiarism'/><category scheme='http://www.blogger.com/atom/ns#' term='khalid al-zanki'/><category scheme='http://www.blogger.com/atom/ns#' term='fraud'/><title type='text'>Khalid Al-Zanki: Oliver Was Surprised, Too!</title><content type='html'>A supportive member of the general public took the initiative in contacting Oliver Olsen, the author of the book that Khalid claims he wrote.&lt;br /&gt;&lt;br /&gt;Well, Mr. Oliver replied and I was just as surprised by his reply as he was by Khalid's copying!&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/TH9mVlLfUmI/AAAAAAAAAd8/nOjL5l7dUfI/s1600/email-oliver.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/TH9mVlLfUmI/AAAAAAAAAd8/nOjL5l7dUfI/s320/email-oliver.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;So as you can see, it seems to be OK between online marketers to share their content (free or for a fee) as long as the receiving end does some magical paraphrasing so as to not look like a&amp;nbsp;buffoon when someone decides to paste some of the book's content in a search engine.&lt;br /&gt;&lt;br /&gt;As usual, Khalid is yet to reply to our posts and he's probably cursing us from behind his private Twitter &amp;amp; Facebook accounts, calling us names like: &lt;strike&gt;market&lt;/strike&gt; &lt;strike&gt;business&lt;/strike&gt; morons or liars, as he also does some of his magical brain washing to his beloved followers &amp;amp; fans.&lt;br /&gt;&lt;br /&gt;If you have nothing to hide then why don't you let them see the truth? Why don't you reply to our posts in public? Why post some general post about Private Label and Royalty Free definitions without stating WHY you posted it?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Follow up posts&lt;/b&gt;: &lt;a href="http://mbhtech.blogspot.com/search/label/khalid%20al-zanki"&gt;http://mbhtech.blogspot.com/search/label/khalid%20al-zanki&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-8065495670170450848?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/8065495670170450848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=8065495670170450848' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/8065495670170450848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/8065495670170450848'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/09/khalid-al-zanki-oliver-was-surprised.html' title='Khalid Al-Zanki: Oliver Was Surprised, Too!'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_9_Sv3ZsvT4I/TH9mVlLfUmI/AAAAAAAAAd8/nOjL5l7dUfI/s72-c/email-oliver.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-7803072741304230263</id><published>2010-08-31T18:04:00.000+03:00</published><updated>2010-08-31T18:04:15.350+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='gmail'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Google: Please Stop Raping GMail</title><content type='html'>I opened my browser and logged in to my GMail account and heard this odd music playing out of no where!&lt;br /&gt;&lt;br /&gt;It was frustrating that I did not know where it came from, I could not stop it, and the browser tab kept freezing! And there on top, I noticed a new feature by Google called "Priority Inbox" and after a few times of refreshing the page, I got to click on it and turns out it had a video!&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/TH0VeVVFyDI/AAAAAAAAAdg/JOJezMIgAyI/s1600/00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="127" src="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/TH0VeVVFyDI/AAAAAAAAAdg/JOJezMIgAyI/s200/00.png" width="200" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/TH0VgTq4_aI/AAAAAAAAAdo/CgrtEOW2iJU/s1600/01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="72" src="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/TH0VgTq4_aI/AAAAAAAAAdo/CgrtEOW2iJU/s200/01.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;This is the 2nd time Google does this kind of stunt! It's irritating! You could have used the HTML5 version rather than the crappy flash one!!!&lt;br /&gt;&lt;br /&gt;And since I'm ranting, I might as well take this off my chest: YOUR NEW USER INTERFACE IS BAD! And &lt;a href="http://www.google.com/search?hl=en&amp;amp;q=google+new+gmail+user+interface"&gt;I'm not the only one complaining&lt;/a&gt;! And here is a &lt;a href="https://www.google.com/sidewiki/clientui?hl=en&amp;amp;url=http://mail.google.com/support/bin/answer.py%3Fhl%3Den%26answer%3D184497"&gt;list of comments&lt;/a&gt; written by users on &lt;a href="http://mail.google.com/support/bin/answer.py?hl=en&amp;amp;answer=184497"&gt;Google's topic&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;List of disadvantages to the new GMail interface:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;I hardly ever click on Contacts. I don't need to see it in my face all the &amp;nbsp;time!&lt;/li&gt;&lt;li&gt;I don't use tasks. Why can't I hide it like the other labels?&lt;/li&gt;&lt;li&gt;I liked "Compose" as a link more than it is as a button now. At least it was obvious that I could hold SHIFT while clicking the link to compose in a new window.&lt;/li&gt;&lt;li&gt;The drop list. I despise the drop list! I can't express how much I hate it! Instead of a single click, now I have to click the drop list then choose an option! Why increase the effort to 2 clicks? Is this your idea of an optimized user interface?!&lt;/li&gt;&lt;/ol&gt;If you're having problems loading your GMail account, load the HTML interface:&amp;nbsp;&lt;a href="https://mail.google.com/mail/?ui=html&amp;amp;zy=a"&gt;https://mail.google.com/mail/?ui=html&amp;amp;zy=a&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Google: I'm disappointed.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-7803072741304230263?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/7803072741304230263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=7803072741304230263' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/7803072741304230263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/7803072741304230263'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/08/google-please-stop-raping-gmail.html' title='Google: Please Stop Raping GMail'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_9_Sv3ZsvT4I/TH0VeVVFyDI/AAAAAAAAAdg/JOJezMIgAyI/s72-c/00.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-5772274398235248014</id><published>2010-08-31T04:29:00.000+03:00</published><updated>2010-08-31T04:29:48.818+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='repetition'/><category scheme='http://www.blogger.com/atom/ns#' term='word'/><category scheme='http://www.blogger.com/atom/ns#' term='highlight'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Word Repetition Count and Highlight</title><content type='html'>&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Intro&lt;/span&gt;&lt;br /&gt;Ever wanted something to count all the repeated words and highlight each word with a different color? No? Well I did!&lt;br /&gt;&lt;br /&gt;I looked around but didn't find what I wanted so I wrote my own. A quick &amp;amp; dirty PHP script. It was a good waste of those extra 3 hours I had.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Caveats&lt;/span&gt;&lt;br /&gt;Script limitations/bugs:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;All punctuation is removed&lt;/li&gt;&lt;li&gt;Some long words are not counted for some reason&lt;/li&gt;&lt;li&gt;The colors are random so some may not be pleasant&lt;/li&gt;&lt;li&gt;Sometimes it matches partial words sometimes it doesn't.&lt;/li&gt;&lt;/ul&gt;It's always good practice to sacrifice a Microsoftie before running/using the script, to make sure things run smooth. Depending on the kind of text, you may want to add Lawyers, Salesmen, Marketers and Apple Fanboys into the mix.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Script Types&lt;/span&gt;&lt;br /&gt;I wrote 2 scripts: One for use for the command line (read from a text file and outputs to shell, which you could redirect to another file) and another for the web. You can modify the web one to make it check URLs directly, but I'm warning you: It'll massacre all kinds of styling and you'll need to do some extra work to make work properly.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Links&lt;/span&gt;&lt;br /&gt;You can [ab]use the script here:&amp;nbsp;&lt;a href="http://sectorx.org/word-highlight-web.php"&gt;http://sectorx.org/word-highlight-web.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The scripts &lt;a href="https://docs.google.com/leaf?id=0B7kOGqWtHc4NMDNkZjg0NDktZGIyYi00NDBjLWJiODctNmVkNTE3MmZjNGJl&amp;amp;hl=en"&gt;are available freely for download&lt;/a&gt; &amp;amp; redistribution as long as the credits are retained. If you make enhancements to the scripts, I'd appreciate it if you send them back to me to add them to the others (with your credits retained of course).&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Demo&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;What better demo is than to test it on cats and geeks? :D&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/THxYVdWCCqI/AAAAAAAAAdY/bQDP9K30d9s/s1600/script-screenshot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="316" src="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/THxYVdWCCqI/AAAAAAAAAdY/bQDP9K30d9s/s400/script-screenshot.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Yes, I cheated by manually placing the text in the middle for a better screenshot. Spank me for being bad.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-5772274398235248014?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/5772274398235248014/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=5772274398235248014' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/5772274398235248014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/5772274398235248014'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/08/word-repetition-count-and-highlight.html' title='Word Repetition Count and Highlight'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_9_Sv3ZsvT4I/THxYVdWCCqI/AAAAAAAAAdY/bQDP9K30d9s/s72-c/script-screenshot.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-7358047817182801594</id><published>2010-08-29T18:17:00.002+03:00</published><updated>2010-08-31T23:06:13.015+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='copyright'/><category scheme='http://www.blogger.com/atom/ns#' term='plagiarism'/><category scheme='http://www.blogger.com/atom/ns#' term='khalid al-zanki'/><category scheme='http://www.blogger.com/atom/ns#' term='fraud'/><title type='text'>Khalid Al-Zanki: Out Of The Closet!</title><content type='html'>After much silence, Khalid has finally &lt;a href="http://www.alzanki.com/blog/wiki/private-label-private-label-rights-and-royalty-free/" rel="nofollow"&gt;decided&lt;/a&gt; to ALMOST reply to our posts. Indirectly, too!&lt;br /&gt;&lt;br /&gt;His post is cunning! He doesn't say what is covered: Is it the ebook? Is it the website? Is it the posts?&lt;br /&gt;Either way, it clearly means that he's admitting using someone else's content, even if he paid for it.&lt;br /&gt;(and for a change, he actually listed the sources of his quotations this time!)&lt;br /&gt;&lt;br /&gt;I have heard of private label services where someone manufacturers a product for me to use under my own name, but what if that manufacturer made the same book/content and sold it to hundreds or thousands?&lt;br /&gt;What if all what was changed is the book's cover? The content's title?&lt;br /&gt;&lt;br /&gt;Also, as &lt;a href="http://bashar.posterous.com/khalid-al-zanki-and-the-big-successful-fraud-2"&gt;Bashar's post&lt;/a&gt; &lt;a href="http://mbhtech.blogspot.com/2010/08/khalid-al-zanki-big-successful-fraud.html"&gt;and&lt;/a&gt; &lt;a href="http://mbhtech.blogspot.com/2010/08/khalid-al-zanki-plagiarism-fraud.html"&gt;mine&lt;/a&gt; show, he had copied and paraphrased content from various places. Did he pay to each &amp;amp; every website he copied from before posting? Or do all these websites copy from the same ebook?!&lt;br /&gt;&lt;br /&gt;In my opinion, it's great that all he did was change some pictures &amp;amp; styling in the ebook, because it proved that he does not have the capacity to write his own content.&lt;br /&gt;&lt;b&gt;A copied About&lt;/b&gt; page, &lt;b&gt;Terms of Service&lt;/b&gt; disclaimer, &lt;b&gt;blog posts&lt;/b&gt;, and God knows what else! All of that to show that he has knowledge and knows what he's talking about.&lt;br /&gt;&lt;br /&gt;Does he? Maybe.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;I don't know about you, but I would not do any kind of business with a person who can't write his own content yet sells his services through it!&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Khalid, you're welcome to reply back in comments or email and I promise you that I will not modify nor delete any of your comments, unlike how &lt;a href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/THYGYRPNJjI/AAAAAAAAAb8/bAu946OYKtc/s200/blog-market-strategies-zanki-comments.jpg"&gt;you deleted mine&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;: I commented on Khalid's blog to thank him for confirming that the content wasn't his &amp;amp; asked him to comment back on my blog. He deleted my comments!!! AGAIN!&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/THqev8JwvyI/AAAAAAAAAdI/DaxR3Q-hCj4/s1600/blog-private-label-zanki-comments.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/THqev8JwvyI/AAAAAAAAAdI/DaxR3Q-hCj4/s320/blog-private-label-zanki-comments.jpeg" /&gt;&lt;/a&gt;&lt;/div&gt;Notice the time: 8:07 PM. If you go to his post now you won't find the comments.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Also, it has come to my attention that he has posted his explanation post to make it clear to (and I quote): "most of Arabs in 3rd world are still confused with.."&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/THqfzT7d0PI/AAAAAAAAAdQ/GGbIS68vS8k/s1600/facebook-fanpage-third-world-arabs.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/THqfzT7d0PI/AAAAAAAAAdQ/GGbIS68vS8k/s320/facebook-fanpage-third-world-arabs.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I would like to see you keeping our comments on your blog to allow your followers, fans and visitors to see the other point of view of the story, rather than brainwashing them with your copy/paste talk.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Follow up posts&lt;/b&gt;:&amp;nbsp;&lt;a href="http://mbhtech.blogspot.com/search/label/khalid%20al-zanki"&gt;http://mbhtech.blogspot.com/search/label/khalid%20al-zanki&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-7358047817182801594?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/7358047817182801594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=7358047817182801594' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/7358047817182801594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/7358047817182801594'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/08/khalid-al-zanki-out-of-closet.html' title='Khalid Al-Zanki: Out Of The Closet!'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_9_Sv3ZsvT4I/THqev8JwvyI/AAAAAAAAAdI/DaxR3Q-hCj4/s72-c/blog-private-label-zanki-comments.jpeg' height='72' width='72'/><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-1297742485210468913</id><published>2010-08-26T14:09:00.005+03:00</published><updated>2010-08-31T23:05:45.484+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='copyright'/><category scheme='http://www.blogger.com/atom/ns#' term='plagiarism'/><category scheme='http://www.blogger.com/atom/ns#' term='khalid al-zanki'/><category scheme='http://www.blogger.com/atom/ns#' term='fraud'/><title type='text'>Khalid Al-Zanki: Plagiarism, Fraud &amp; Thievery</title><content type='html'>The scam artist Khalid Al-Zanki has been quiet on Twitter for the past 2 days since he was exposed. In fact, he switched his twitter account to private mode!&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/THYFuKSZ18I/AAAAAAAAAb0/CojS-y3ieM0/s1600/twitter-zanki-privateTweets.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="90" src="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/THYFuKSZ18I/AAAAAAAAAb0/CojS-y3ieM0/s200/twitter-zanki-privateTweets.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;That's something odd for someone who's been boasting online for a very long time! But I'll continue with this post with more evidence of Khalid's theft and&amp;nbsp;plagiarism.&lt;br /&gt;&lt;br /&gt;In my &lt;a href="http://mbhtech.blogspot.com/2010/08/khalid-al-zanki-big-successful-fraud.html"&gt;previous post&lt;/a&gt;, I showed one of his posts and where he stole the content from. I had left him a comment on that same post but he deleted it and replied in a private email.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/THYGYRPNJjI/AAAAAAAAAb8/bAu946OYKtc/s1600/blog-market-strategies-zanki-comments.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/THYGYRPNJjI/AAAAAAAAAb8/bAu946OYKtc/s200/blog-market-strategies-zanki-comments.jpg" width="197" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/THYHGKwzeKI/AAAAAAAAAcE/GsOaHFbtss0/s1600/blog-market-strategies-zanki-comments-reply.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="112" src="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/THYHGKwzeKI/AAAAAAAAAcE/GsOaHFbtss0/s320/blog-market-strategies-zanki-comments-reply.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;So he took the content from a book, and published it under his own name and claims that the publisher allows that. And that's funny, because if the publisher does allow that kind of thing (which I'm not sure of), it means both of them are scammers!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now to another post of his titled: The Social Strategy.&lt;br /&gt;This post wasn't completely copy/pasted but it was paraphrased from a website sponsored by the Australian Government: &lt;a href="http://onlinegrowthprogram.com.au/AnnouncementRetrieve.aspx?ID=32139"&gt;OnlineGrowthProgram.com.au&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/THYIU1VTniI/AAAAAAAAAcM/o_b6MS9odkI/s1600/blog-the-social-strategy-zanki.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="111" src="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/THYIU1VTniI/AAAAAAAAAcM/o_b6MS9odkI/s200/blog-the-social-strategy-zanki.jpg" width="200" /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/THYIcmO4pII/AAAAAAAAAcU/VPBwM6JnO70/s1600/blog-the-social-strategy-src.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="193" src="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/THYIcmO4pII/AAAAAAAAAcU/VPBwM6JnO70/s200/blog-the-social-strategy-src.jpg" width="200" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/THYIg_4VrWI/AAAAAAAAAcc/yfeE8h0v--Y/s1600/blog-the-social-strategy-google.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="143" src="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/THYIg_4VrWI/AAAAAAAAAcc/yfeE8h0v--Y/s200/blog-the-social-strategy-google.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;To another post of your favorite scammer: Why A Business Plan Is Important&lt;br /&gt;This is a nice paste by Khalid. He did a great job as usual; the material this time is from:&amp;nbsp;&lt;a href="http://www.anesite.com/profitboostingstrategies.html"&gt;http://www.anesite.com/profitboostingstrategies.html&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/THZKTqdnCKI/AAAAAAAAAck/gbv_5jXYYtg/s1600/blog-why-a-business-plan-zanki.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/THZKTqdnCKI/AAAAAAAAAck/gbv_5jXYYtg/s200/blog-why-a-business-plan-zanki.jpg" width="196" /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/THZKYtTAIbI/AAAAAAAAAcs/x0dhFq-AkzU/s1600/blog-why-a-business-plan-src.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="150" src="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/THZKYtTAIbI/AAAAAAAAAcs/x0dhFq-AkzU/s200/blog-why-a-business-plan-src.jpg" width="200" /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/THZKd2-HMAI/AAAAAAAAAc0/-YtkNl_ZNKg/s1600/blog-why-a-business-plan-google.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="160" src="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/THZKd2-HMAI/AAAAAAAAAc0/-YtkNl_ZNKg/s200/blog-why-a-business-plan-google.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;After all of this, I didn't really bother looking further. It's quite obvious that he's a professional paster and people, organizations and companies have paid him thousands for this great paste work, which they could have gotten for free from the web.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Follow up posts&lt;/b&gt;:&amp;nbsp;&lt;a href="http://mbhtech.blogspot.com/search/label/khalid%20al-zanki"&gt;http://mbhtech.blogspot.com/search/label/khalid%20al-zanki&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-1297742485210468913?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/1297742485210468913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=1297742485210468913' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/1297742485210468913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/1297742485210468913'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/08/khalid-al-zanki-plagiarism-fraud.html' title='Khalid Al-Zanki: Plagiarism, Fraud &amp; Thievery'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_9_Sv3ZsvT4I/THYFuKSZ18I/AAAAAAAAAb0/CojS-y3ieM0/s72-c/twitter-zanki-privateTweets.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-1369174494728028527</id><published>2010-08-24T17:53:00.003+03:00</published><updated>2010-08-31T23:04:57.112+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='copyright'/><category scheme='http://www.blogger.com/atom/ns#' term='plagiarism'/><category scheme='http://www.blogger.com/atom/ns#' term='khalid al-zanki'/><category scheme='http://www.blogger.com/atom/ns#' term='fraud'/><title type='text'>Khalid Al-Zanki: The Big Successful Fraud</title><content type='html'>Khalid Al-Zanki is an entrepreneur who thrives at utilizing online and social technologies to maximize a business's profits. He also does that while writing blog posts, quotes, and a book that he had stole from other people!&lt;br /&gt;&lt;br /&gt;My good buddy &lt;a href="http://blogallalong.com/"&gt;Bashar&lt;/a&gt; wrote &lt;a href="http://bashar.posterous.com/khalid-al-zanki-and-the-big-successful-fraud-2"&gt;a post exposing&lt;/a&gt; Khalid Al-Zanki and his thievery. All with screenshots. Please do check Bashar's post as it has more details than you'll find here.&lt;br /&gt;&lt;br /&gt;I have also took the initiative and did some quick search of mine own, to discover even more rip offs and&amp;nbsp;plagiarism&amp;nbsp;by the amazing entrepreneur!&lt;br /&gt;&lt;br /&gt;Before posting my findings, I have to explain why I'm joining this expose: It's OK for you to become an entrepreneur and grow a business, but it's not by stealing other people's intellectual property, thoughts and efforts and then claim them to be yours.&lt;br /&gt;What I sincerely hate about Khalid is that he pushed his face unto TV shows, newspapers, online ads and worse held speeches for college students and major corporations.&lt;br /&gt;&lt;br /&gt;1) Khalid's blog post: Market Strategies:&amp;nbsp;http://www.alzanki.com/blog/internet-business/business-plan/market-strategies/&lt;br /&gt;It dates to August 20th, 2010, while &lt;a href="http://www.newageentrepreneurs.com/id68.html"&gt;the source&lt;/a&gt; he ripped it off from dates to July 16th, 2008!&lt;br /&gt;You can check the date of HTML pages by putting this line in the address bar after the page loads:&lt;br /&gt;javascript:alert(document.lastModified)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/THPXAF542rI/AAAAAAAAAbc/xHwVWa3FqjQ/s1600/blog-market-strategies-zanki.jpg" imageanchor="1" style="clear: left; float: center; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/THPXAF542rI/AAAAAAAAAbc/xHwVWa3FqjQ/s200/blog-market-strategies-zanki.jpg" width="196" /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/THPXEoPLZqI/AAAAAAAAAbk/rEECheZmHEk/s1600/blog-market-strategies-src.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="106" src="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/THPXEoPLZqI/AAAAAAAAAbk/rEECheZmHEk/s200/blog-market-strategies-src.jpg" width="200" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/THPXGjhx-HI/AAAAAAAAAbs/eXmM087qdeA/s1600/blog-market-strategies-google.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="115" src="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/THPXGjhx-HI/AAAAAAAAAbs/eXmM087qdeA/s200/blog-market-strategies-google.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;His other blog posts are mostly&amp;nbsp;plagiarized. If not whole, each chunk from a place.&lt;br /&gt;&lt;br /&gt;I don't know about you, but I wouldn't do business with a thief. And to those whom he fooled already, I hope from the bottom of my heart that you sue him, especially the &lt;a href="http://www.ack.edu.kw/"&gt;Australian College of Kuwait (ACK)&lt;/a&gt; since he was brought over for workshops to your dear students.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Follow up posts&lt;/b&gt;:&amp;nbsp;&lt;a href="http://mbhtech.blogspot.com/search/label/khalid%20al-zanki"&gt;http://mbhtech.blogspot.com/search/label/khalid%20al-zanki&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-1369174494728028527?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/1369174494728028527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=1369174494728028527' title='25 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/1369174494728028527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/1369174494728028527'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/08/khalid-al-zanki-big-successful-fraud.html' title='Khalid Al-Zanki: The Big Successful Fraud'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_9_Sv3ZsvT4I/THPXAF542rI/AAAAAAAAAbc/xHwVWa3FqjQ/s72-c/blog-market-strategies-zanki.jpg' height='72' width='72'/><thr:total>25</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-5627880630062537388</id><published>2010-08-05T01:34:00.000+03:00</published><updated>2010-08-05T01:34:12.389+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='threat'/><category scheme='http://www.blogger.com/atom/ns#' term='passwords'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='account'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><title type='text'>Websites and Account Management: Threat to Privacy</title><content type='html'>It's astonishing how many websites are still using archaic methods in storing their users' personal information.&lt;br /&gt;&lt;br /&gt;I did stumble across a few in the past but have no recollection of them now, pretty much because I never bothered using them ever again.&lt;br /&gt;&lt;br /&gt;The latest encounter was a few minutes ago when I went&amp;nbsp; to &lt;a href="http://changethis.com/"&gt;ChangeThis.com&lt;/a&gt; to vote for a manifesto. It required registration and I did register, only to find an email from them containing my password in clear text!&lt;br /&gt;I followed my suspicion and changed the password, then logged out, then clicked on "Forgot password" to have them email me the password, and there it was: They sent me the password in clear text rather than a randomly generated one!!!&lt;br /&gt;&lt;br /&gt;Why is this an issue? Simply because should one day their website gets hijacked, all registered users' passwords are visible to the attackers and since it also holds their email addresses, the attackers can try each email &amp;amp; password to see if it logs in or not, then collect those that were successfully logged in and sell them to SPAM networks.&lt;br /&gt;&lt;br /&gt;Another issue is having a rogue/snoopy employee at the website trying to login to emails using the clear password.&lt;br /&gt;&lt;br /&gt;This method of storing password is absolutely unacceptable! Websites should store hashes of the passwords and not the passwords in clear text, and when the user requests a password reset, a randomly generated one should be created, saved &amp;amp; served to the user.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-5627880630062537388?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/5627880630062537388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=5627880630062537388' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/5627880630062537388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/5627880630062537388'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/08/websites-and-account-management-threat.html' title='Websites and Account Management: Threat to Privacy'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-764706670866989036</id><published>2010-07-23T15:34:00.000+03:00</published><updated>2010-07-23T15:34:25.275+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='url'/><category scheme='http://www.blogger.com/atom/ns#' term='ssl'/><category scheme='http://www.blogger.com/atom/ns#' term='https'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='tls'/><category scheme='http://www.blogger.com/atom/ns#' term='secure'/><title type='text'>Secure Connections to Facebook</title><content type='html'>For the past 2 days I was plagued with constant blank pages whenever trying to visit Facebook. I tried adding an "s" to http://facebook.com and viola! It opened!&lt;br /&gt;&lt;br /&gt;I was surprised because I did try that a few months back and it didn't work, which made me think: Why isn't Facebook advertising the fact that it supports SSL?! I certainly wouldn't want my corporate admins to be snooping on my status updates or picture uploads/views!&lt;br /&gt;&lt;br /&gt;But since this is Facebook, there's yet another disappointment: They use full URLs rather than relative ones. This means that when you click a link to comment or a profile, you'll be sent using HTTP and not HTTPS (no security/encryption). That's retarded.&lt;br /&gt;&lt;br /&gt;Thankfully, there's an addon for &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/12714/"&gt;FireFox called Force-TLS&lt;/a&gt; which forces the use of HTTPS even when the link you're being redirected to is HTTP.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-764706670866989036?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/764706670866989036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=764706670866989036' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/764706670866989036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/764706670866989036'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/07/secure-connections-to-facebook.html' title='Secure Connections to Facebook'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-6478213991921691661</id><published>2010-07-20T18:21:00.001+03:00</published><updated>2010-07-22T16:08:14.283+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='defective'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='antenna'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>iPhone4 Antenna: Father Steve is Blind</title><content type='html'>[updated: see bottom]&lt;br /&gt; &lt;br /&gt;I'll skip the jokes and mockery; Apple had its share with the iPad.&lt;br /&gt;&lt;br /&gt;A lot of buzz and fuss has been rumbling in regards to the iPhone4's antenna. Is it really a problem, or are users blowing things out of proportion?&lt;br /&gt;&lt;br /&gt;I'd like to point out that the problem is being mixed and stirred with another problem, to dilute the first problem which is a major design flaw. The issues at stake here are:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Improper antenna design&lt;/li&gt;&lt;li&gt;Incorrect signal-display formula&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;When Apple was caught pants down with the antenna issue, it told the public that it discovered, just now, that the problem is their function to display the signal strength (bars): their formula to calculate the signal strength and represent it in terms of bars was wrong, and this problem has been there since 2007 (iPhone 3G).&lt;br /&gt;&lt;br /&gt;Apple then had the nerve to take an extra step and &lt;a href="http://www.apple.com/antenna/"&gt;publish a page comparing its iPhone4 to other phones&lt;/a&gt; to show that all other phones suffer from signal attenuation when held from a specific spot.&lt;br /&gt;&lt;br /&gt;What's important to note here is that Apple failed to mention in that page is that their antenna design is flawed because of two things:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Their antenna is actually exterior and touches the body of the phone&lt;/li&gt;&lt;li&gt;Their antenna is located in an often-used spot to hold a phone&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;When holding the phone from that spot, the human body works as a short circuit to the antenna and drains the full signal. Apple is giving away free cases now to amend the problem, but the problem isn't really fixed, it's just polished.&lt;br /&gt;&lt;br /&gt;If you look at the link above, you'll notice that the BlackBerry's antenna is located the bottom where no one holds a phone from, and HTC's Droid Eris's antenna is located the most top, where also no one holds a phone from.&lt;br /&gt;&lt;br /&gt;Why did this happen now?&lt;br /&gt;I believe that due to Apple's over-zealous secrecy and being up tight about all its products, the beta products (pre-releases) are tested by very very few people, and Steve Jobs assumed that these very few people's experience represented that of the whole consumer base.&lt;br /&gt;Hey, it worked for so many years, so why stop now, aih? You were foiled by an ill-designed phone, which apparently none of the beta testers held from that dead spot.&lt;br /&gt;&lt;br /&gt;It's even more hilarious that Steve's first reaction to the problem is asking people to not hold the phone from there!&lt;br /&gt;It's like when your car is rattling when you reach 100 kmh and you complain to the dealer, and the dealer's response is: Don't drive over 80 kmh. It's safer anyway!&lt;br /&gt;&lt;br /&gt;This whole charade reminds me of Vista. People rushed to &lt;a href="http://www.amazon.com/"&gt;Amazon&lt;/a&gt; and tagged the product: Defective by Design. And this is what iPhone4 is: Defective by design.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt;&lt;br /&gt;I'd like to share two links:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://spectrum.ieee.org/podcast/telecom/wireless/how-bad-is-the-iphone-4s-antenna-problem"&gt;A podcast on IEEE Spectrum&lt;/a&gt; with an antenna engineer on the iPhone4 problem&lt;/li&gt;&lt;li&gt;An &lt;a href="http://www.antennasys.com/antennasys-blog/2010/7/14/iphone-4-meets-the-gripofdeathinator.html"&gt;antenna designing company's tests&lt;/a&gt; with the iPhone4 &amp;amp; iPhone 3G&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/8353696605063426251-6478213991921691661?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/6478213991921691661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=6478213991921691661' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/6478213991921691661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/6478213991921691661'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/07/iphone4-antenna-father-steve-is-blind.html' title='iPhone4 Antenna: Father Steve is Blind'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-1688099023130580280</id><published>2010-06-29T17:33:00.000+03:00</published><updated>2010-06-29T17:33:34.839+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dns'/><category scheme='http://www.blogger.com/atom/ns#' term='email'/><category scheme='http://www.blogger.com/atom/ns#' term='gmail'/><category scheme='http://www.blogger.com/atom/ns#' term='google apps'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='spf'/><title type='text'>Google Apps and Email Delivery Issues</title><content type='html'>If you're setting up a &lt;a href="http://www.google.com/a/"&gt;Google Apps&lt;/a&gt; account and would like to use the email service from it in a web application or in a way that you'll be sending a lot of emails, whether to one person or many, you'll suffer from email delivery failures.&lt;br /&gt;&lt;br /&gt;I've recently moved a company from a dedicated server to another, and that included switching the email service from being on the dedicated server itself, to Google Apps.&lt;br /&gt;&lt;br /&gt;After 2 days, their delivery email account was disabled because it was suspected by Google to be a spam account. Re-enabling it was as simple as logging in through the web interface.&lt;br /&gt;&lt;br /&gt;Another 2 days pass, and emails started being rejected from delivery and the company's customers weren't receiving confirmation emails. That's very bad.&lt;br /&gt;&amp;nbsp;I've asked in Google's public forum and turns out you have to add Google's SPF records to your domain name's DNS records to avoid such issues.&lt;br /&gt;&lt;br /&gt;The&amp;nbsp; bounced emails had the following message:&lt;br /&gt;&lt;b&gt;Delivery to the following recipient failed permanently.&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Message rejected.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;What's annoying is that Google already &lt;a href="http://www.google.com/support/a/bin/answer.py?hl=en&amp;amp;answer=33786"&gt;has a page explaining&lt;/a&gt; why you should use SPF records, but it's not linked to the &lt;a href="http://www.google.com/support/a/bin/answer.py?hl=en&amp;amp;answer=33352"&gt;basic setup&lt;/a&gt; that explains setting up email exchange (MX) records.&lt;br /&gt;If I'm going to setup the MX records, then I might as well add the SPF records too since I'll be modifying the DNS records! It would've been very helpful to have linked or pointed at the SPF page rather than wait till I face problems, search for its cause &amp;amp; solution then find out!&lt;br /&gt;&lt;br /&gt;So what are SPF records?&lt;br /&gt;In a nut shell, they are records that are added to a domain name's DNS zone and they dictate who is authorized to send emails from that domain name.&lt;br /&gt;The Sender Policy Framework is used by both the sender and the receiver to verify that incoming email was sent by the domain it's claiming to have come from.&lt;br /&gt;&lt;br /&gt;Setting up the DNS records:&lt;br /&gt;Add the text as Google has shown to the @none field and not to all. See the picture below.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/TCoCtEcoHqI/AAAAAAAAAak/4fDG4WWsKwE/s1600/spf-record.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="42" src="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/TCoCtEcoHqI/AAAAAAAAAak/4fDG4WWsKwE/s400/spf-record.jpeg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Make sure to type the text as you were told by Google! Some parts may not show in the above picture.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-1688099023130580280?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/1688099023130580280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=1688099023130580280' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/1688099023130580280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/1688099023130580280'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/06/google-apps-and-email-delivery-issues.html' title='Google Apps and Email Delivery Issues'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_9_Sv3ZsvT4I/TCoCtEcoHqI/AAAAAAAAAak/4fDG4WWsKwE/s72-c/spf-record.jpeg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-20326337708076475</id><published>2010-06-26T18:19:00.000+03:00</published><updated>2010-06-26T18:19:56.407+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stock'/><category scheme='http://www.blogger.com/atom/ns#' term='ota'/><category scheme='http://www.blogger.com/atom/ns#' term='froyo'/><category scheme='http://www.blogger.com/atom/ns#' term='update'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='rom'/><title type='text'>Android Froyo 2.2 FRF83 Stable/Final Is Here</title><content type='html'>Build FRF50 was a beta, followed by a second beta FRF72 and now Google has started pushing the final build named FRF83 Over The Air (OTA) a few days back.&lt;br /&gt;&lt;br /&gt;If you're running FRF50, you can &lt;a href="http://android.clients.google.com/packages/passion/signed-passion-FRF83-from-FRF50.38d66b26.zip"&gt;download the stable update&lt;/a&gt; (1.8MB) from Google directly.&lt;br /&gt;&lt;br /&gt;As usual, rename the file to update.zip, put it on your sdcard and &lt;a href="http://mbhtech.blogspot.com/2010/05/android-22-on-rooted-nexus-with-stock.html"&gt;follow the instructions&lt;/a&gt; from #1, skipping #4.&lt;br /&gt;&lt;br /&gt;If you have another build, then read on at &lt;a href="http://androidandme.com/2010/06/news/nexus-one-receives-final-froyo-build-via-ota-update/"&gt;this link&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-20326337708076475?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/20326337708076475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=20326337708076475' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/20326337708076475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/20326337708076475'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/06/android-froyo-22-frf83-stablefinal-is.html' title='Android Froyo 2.2 FRF83 Stable/Final Is Here'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-2679261840032899477</id><published>2010-05-25T07:36:00.002+03:00</published><updated>2010-05-26T22:48:51.498+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stock'/><category scheme='http://www.blogger.com/atom/ns#' term='image'/><category scheme='http://www.blogger.com/atom/ns#' term='froyo'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='root'/><category scheme='http://www.blogger.com/atom/ns#' term='boot'/><category scheme='http://www.blogger.com/atom/ns#' term='rom'/><title type='text'>Android 2.2 on Rooted Nexus With Stock ROM</title><content type='html'>I have a Nexus One and I rooted it to get Arabic to work, which it did but only for SMS. The letters were broken for other things.&lt;br /&gt;&lt;br /&gt;To get an official ROM to work, it has to verify that your current system is indeed an official release and it is the exact previous update/release.&lt;br /&gt;&lt;br /&gt;I had to restore back the original ERE27 files that I replaced to get Arabic to work:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;DroidSansFallback.ttf: 4caeadd734f4be9973163bdf02ea6cf5 (md5sum)&lt;/li&gt;&lt;li&gt;libskiagl.so: 1b5cedd01b14838320956bea94b0fe97&lt;/li&gt;&lt;li&gt;libskia.so: cc692fb57efb199045c720de491cc3cf&lt;/li&gt;&lt;li&gt;libwebcore.so: c8b9931ec8771a720497d5197cd1a108&lt;/li&gt;&lt;/ul&gt;But that wasn't enough, because rooting the phone modifies the boot partition of the phone which is also checked by updates.&lt;br /&gt;&lt;br /&gt;Guides on the Internet were all about using a custom recovery image, wiping user data and doing some other unnecessary things. All what is needed is to flash the original boot image again:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;boot.img: 36a29d765387dd69cde89367def51dda&lt;/li&gt;&lt;li&gt;ERE27 stock ROM (2.1-update1): 90700607c04279716b505aa203e9c684&lt;/li&gt;&lt;/ul&gt;To flash the boot image, you need the Android SDK&amp;nbsp; to get the USB drivers for the phone working, but you should already know that since you already rooted the phone. Painfully long steps &lt;a href="http://www.machackpc.com/headline/restore-your-nexus-one-to-its-original-shipping-image/"&gt;can be found here&lt;/a&gt; (Windows).&lt;br /&gt;&lt;br /&gt;Files you'll need from Android ERE27 (2.1-update1):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Original / stock font &amp;amp; libs&lt;/li&gt;&lt;li&gt;Original / stock boot.img&lt;/li&gt;&lt;li&gt;Fastboot utility &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.androidpolice.com/2010/05/22/breaking-nexus-one-users-download-your-froyo-here/"&gt;The new Froyo update&lt;/a&gt; (Android 2.2) named as update.zip (put it on your sdcard)&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;You can download the stock ERE27 font, libs, boot.img and fastboot from me &lt;a href="http://docs.google.com/leaf?id=0B7kOGqWtHc4NOTY5NjRjYTYtMzZlNy00ZTI3LWI1YTktYWQwY2FiYzZmOWI0&amp;amp;hl=en"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Steps:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Enable USB debugging on the phone: Menu -&amp;gt; Settings -&amp;gt; Applications -&amp;gt; Development -&amp;gt; USB debugging&lt;/li&gt;&lt;li&gt;Turn off the phone and connect the USB cable&lt;/li&gt;&lt;li&gt;Hold the trackball, press the power button&lt;/li&gt;&lt;li&gt;Using fastboot, open a shell/command line and type: fastboot flash boot boot.img&lt;br /&gt;You should see something like this:&lt;br /&gt;sending 'boot' (2560 KB)... OKAY&lt;br /&gt;writing 'boot'... OKAY&lt;/li&gt;&lt;li&gt;Then type: fastboot reboot-bootloader to reboot the phone into the bootloader screen&lt;/li&gt;&lt;li&gt;To navigate use the volume up/down buttons &amp;amp; to select press the power button once &lt;/li&gt;&lt;li&gt;Select BootLoader then Recovery&lt;/li&gt;&lt;li&gt;The screen will go black for a while then you'll see a Droid with an exclamation mark. Press volume up &amp;amp; power at the same time&lt;/li&gt;&lt;li&gt;In the new menu, use volume up/down to navigate then Trackball to select&lt;/li&gt;&lt;li&gt;Select apply sdcard:update.zip&lt;/li&gt;&lt;li&gt;Now it'll verify your system files and partitions then start patching then deploying new files&lt;/li&gt;&lt;li&gt;The phone will reboot 3 times to unpack multiple updates&lt;/li&gt;&lt;li&gt;Enjoy your new toy&lt;/li&gt;&lt;/ol&gt;The files &lt;a href="http://docs.google.com/leaf?id=0B7kOGqWtHc4NOTY5NjRjYTYtMzZlNy00ZTI3LWI1YTktYWQwY2FiYzZmOWI0&amp;amp;hl=en"&gt;that I've linked&lt;/a&gt; are hosted on my Google account. I've taken them from official releases. Feel free to compare the md5 hashes.&lt;br /&gt;&lt;br /&gt;Enhancements that I noticed in Android 2.2: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Exchange calendars now sync&lt;/li&gt;&lt;li&gt;Trackball was flashing blue for Facebook updates &amp;amp; white for emails&lt;/li&gt;&lt;li&gt;The phone now can tether using USB or act as a wireless access point&lt;/li&gt;&lt;li&gt;Notifications have new funny icons&lt;/li&gt;&lt;li&gt;Flash 10.1 from Adobe (go to adobe's website then click on Get Flash Player)&lt;/li&gt;&lt;li&gt;Call log groups calls from a single contact (like in SMS)&lt;/li&gt;&lt;li&gt;In the market, you can enable application auto-update&lt;/li&gt;&lt;li&gt;In the market, there's a button to Update All apps&lt;/li&gt;&lt;li&gt;The on-screen menu button now has 2 more brothers: browser &amp;amp; phone, so you can delete the icons from the desk/screen&lt;/li&gt;&lt;li&gt;In GTalk, clicking menu gives you the signout option (no need to click more)&lt;/li&gt;&lt;li&gt;I noticed a Twitter app&lt;/li&gt;&lt;li&gt;Faster camera response on the display&lt;/li&gt;&lt;li&gt;More camera options: Focus, Exposure, Zoom, ...etc.&lt;/li&gt;&lt;li&gt;Arabic font builtin but it looks weird and the letters are broken (unconnected)&lt;/li&gt;&lt;li&gt;170-250 MB free RAM rather than the previous 40-60MB free RAM!!! &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/8353696605063426251-2679261840032899477?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/2679261840032899477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=2679261840032899477' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/2679261840032899477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/2679261840032899477'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/05/android-22-on-rooted-nexus-with-stock.html' title='Android 2.2 on Rooted Nexus With Stock ROM'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-1366295566836594048</id><published>2010-05-23T14:45:00.000+03:00</published><updated>2010-05-23T14:45:28.454+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='radius'/><category scheme='http://www.blogger.com/atom/ns#' term='access point'/><category scheme='http://www.blogger.com/atom/ns#' term='airlive'/><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><title type='text'>AirLive WL-5460AP v2: Almost An Enterprise Access Point</title><content type='html'>I have two of these at home. They're cheap and sturdy Access Points (APs) that pack many features, most of which I didn't know they existed before poking into them today.&lt;br /&gt;&lt;br /&gt;In case you don't believe that these cheap APs are worth it, here are some numbers to shock you: One AP had 78 days of uptime (no restart) and another had 101 days of uptime!&lt;br /&gt;And I say "had" because I updated them with the latest firmware, so they had to be rebooted.&lt;br /&gt;&lt;br /&gt;91 images were the total to cover all the features this AP provides! The only downside is that even though the firmware is being updated once in a while, the documentation still refers to the old firmware, so you may have to invest in some trial &amp;amp; error episodes to get things done.&lt;br /&gt;&lt;br /&gt;Wireless modes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Access Point&lt;/li&gt;&lt;li&gt;Client: Client-Infrastructure / Client Ad-Hoc&lt;/li&gt;&lt;li&gt;Bridge&lt;/li&gt;&lt;li&gt;WDS Repeater&lt;/li&gt;&lt;li&gt;Universal Repeater&lt;/li&gt;&lt;li&gt;WISP&lt;/li&gt;&lt;li&gt;WISP + Universal Repeater&lt;/li&gt;&lt;li&gt;Gateway: AP + Router (Static IP, PPPoE, PPTP &amp;amp; L2TP)&lt;/li&gt;&lt;li&gt;Bridge (send beacon)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Features in various modes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; 802.1x / RADIUS authentication and encryption (includes accounting support)&lt;/li&gt;&lt;li&gt;Encryption: None, WEP, WPA-PSK (TKIP), WPA-PSK (AES), WPA2-PSK (AES), WPA2-PSK Mixed&lt;/li&gt;&lt;li&gt;Fragment &amp;amp; RTS threshold control&lt;/li&gt;&lt;li&gt;Preamble: Long or Short&lt;/li&gt;&lt;li&gt;SSID Broadcasting (Enable, Disable)&lt;/li&gt;&lt;li&gt;Single SSID support&lt;/li&gt;&lt;li&gt;Inter Access Point Protocol (IAPP): Used to handoff between different APs&lt;/li&gt;&lt;li&gt;802.11g Protection: Prevents network degradation when b &amp;amp; g clients use the same network&lt;/li&gt;&lt;li&gt;Transfer Power Level (Tx): Default = 18dB. Lowest = 8dB. Highest = 20dB&lt;/li&gt;&lt;li&gt;Watchdog: Reboots AP when watched host can't be reached&lt;/li&gt;&lt;li&gt;Wireless Client Isolation: Prevents hosts connected from seeing each other&lt;/li&gt;&lt;li&gt;Wireless MAC Access Control (Filtering): Allow/Deny Listing&lt;/li&gt;&lt;li&gt;IP/MAC/Interface Traffic Control/Shaping: Quality of Service (QoS)&lt;/li&gt;&lt;li&gt;DHCP: Disabled, Client, Server, Relay agent&lt;/li&gt;&lt;li&gt;Packet Statistics: WiFi Interface, Ethernet LAN, Ethernet WAN&lt;/li&gt;&lt;li&gt;MAC Address Cloning&lt;/li&gt;&lt;li&gt;System Logging: All system or Wireless only, and can log to a remote syslog server&lt;/li&gt;&lt;li&gt;Network Time Protocol (NTP): Time synchronization&lt;/li&gt;&lt;li&gt;802.1d Spanning Tree support&lt;/li&gt;&lt;li&gt;In WISP mode: WAN port (Static IP, DHCP, PPPoE, PPTP, L2TP)&lt;/li&gt;&lt;li&gt;In WISP mode: IPsec pass through support over VPN&lt;/li&gt;&lt;li&gt;In WISP mode: Virtual Servers - Port forwarding (single or range)&lt;/li&gt;&lt;li&gt;In WISP mode: Special Applications (port mapping / port remapping)&lt;/li&gt;&lt;li&gt;A single DMZ host support&lt;/li&gt;&lt;li&gt;Enable / Disable remote management on WAN port&lt;/li&gt;&lt;li&gt;Dynamic DNS (dyndns): support for dyndns &amp;amp; TZO only&lt;/li&gt;&lt;li&gt;Encryption choices: On WLAN, WAN or both&lt;/li&gt;&lt;li&gt;In Gateway mode: Denial of Service (DoS) prevention&lt;/li&gt;&lt;li&gt;URL filtering (doesn't say if it's blocking or allowing!)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;All of these features are slapped into a 2MB firmware image!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-1366295566836594048?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/1366295566836594048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=1366295566836594048' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/1366295566836594048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/1366295566836594048'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/05/airlive-wl-5460ap-v2-almost-enterprise.html' title='AirLive WL-5460AP v2: Almost An Enterprise Access Point'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-7271431297636947776</id><published>2010-05-19T13:10:00.001+03:00</published><updated>2010-05-20T15:46:41.371+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='wordpress'/><category scheme='http://www.blogger.com/atom/ns#' term='kuwait'/><category scheme='http://www.blogger.com/atom/ns#' term='gzip'/><category scheme='http://www.blogger.com/atom/ns#' term='dyndns'/><category scheme='http://www.blogger.com/atom/ns#' term='kuwaitpaperdump'/><category scheme='http://www.blogger.com/atom/ns#' term='cache'/><category scheme='http://www.blogger.com/atom/ns#' term='boost'/><title type='text'>Optimizing WordPress Performance: KuwaitPaperDump Gets a Boost</title><content type='html'>Updated on May 20th: Benchmark results!&lt;br /&gt; &lt;br /&gt;The awesome guys at &lt;a href="http://www.kuwaitpaperdump.com/"&gt;KuwaitPaperDump&lt;/a&gt; (KPD) have been doing a great effort into reducing paper usage and providing almost all kinds of brochures and leaflets online.&lt;br /&gt;&lt;br /&gt;For such great efforts, I felt obliged to help them gain even the tiniest performance boost possible. And they did!&lt;br /&gt;&lt;br /&gt;WordPress introduced a set of options since 2.6 that would help take advantage of some features of the HTTP protocol: A protocol that all websites and browsers speak and communicate with.&lt;br /&gt;&lt;br /&gt;Currently, KPD have taken one of several steps into boosting the performance. The next steps require some coding and some ritual dancing. Hopefully we'll get those done and invite everyone for the paperless party soon ;D&lt;br /&gt;&lt;br /&gt;I've already created a presentation for KPD to simplify the concept and ideas, so rather than rewriting, I'll link to that presentation and just summarize things in here for reference.&lt;br /&gt;&lt;br /&gt;Optimization tricks:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Load files in parallel&lt;/li&gt;&lt;li&gt;Separate the static content from the dynamic one&lt;/li&gt;&lt;li&gt;Enable GZIP on the server, not WordPress &lt;/li&gt;&lt;li&gt;Serve files from a geographically closer location&lt;/li&gt;&lt;/ul&gt;The last point is possible to achieve&amp;nbsp; with mirroring the content between 2 servers and create a failover scenario using free Dynamic DNS services.&lt;br /&gt;&lt;br /&gt;You may want to check back here in a week or two, because we'll try tobenchmark before and after each enhancement to know how muchperformance gain we're getting.&lt;br /&gt;&lt;br /&gt;Benchmarks:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Before using a subdomain to point at same server: 16 seconds to full page load&lt;/li&gt;&lt;li&gt;After (on Mac): 10.6 seconds (33.75% performance boost)&lt;/li&gt;&lt;li&gt;After (on Linux): 8.9 seconds (55.6% performance boost)&lt;/li&gt;&lt;/ul&gt;There will be more benchmarks as PaperDump goes for extra enhancements, so stay tuned!&lt;br /&gt;&lt;br /&gt;The presentation can be found &lt;a href="http://docs.google.com/present/view?id=dcpcb7hw_30g2zcd6cd"&gt;here&lt;/a&gt;. (browser and mobile friendly!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-7271431297636947776?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/7271431297636947776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=7271431297636947776' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/7271431297636947776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/7271431297636947776'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/05/optimizing-wordpress-performance.html' title='Optimizing WordPress Performance: KuwaitPaperDump Gets a Boost'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-6424598826879633681</id><published>2010-03-06T22:07:00.003+03:00</published><updated>2010-03-08T13:49:19.113+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='htc'/><category scheme='http://www.blogger.com/atom/ns#' term='nexus'/><category scheme='http://www.blogger.com/atom/ns#' term='nexus one'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='root'/><category scheme='http://www.blogger.com/atom/ns#' term='rom'/><title type='text'>Nexus One vs. HTC Hero</title><content type='html'>Revision: 4 (see bottom for changes)&lt;br&gt;&lt;br&gt; I had an &lt;a href="http://mbhtech.blogspot.com/2009/12/htc-hero-review.html" id="h15m" title="HTC Hero"&gt;HTC Hero&lt;/a&gt; for quite some time now, then I bought the Nexus One. This post is a comparison between the two, but highly details the falls and pits of the Nexus One.&lt;br&gt;&lt;br&gt; If you find this version of the post ugly, click here for a &lt;a href="http://docs.google.com/View?id=dfkcwsgj_26q5644sdv" id="fyrz" title="neat HTML version"&gt;neat HTML version&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;Phone &amp;amp; Charger Design&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;USB Port: Micro-USB. Got to carry my own cable around now :/ (Hero uses the common Mini-USB)&lt;/li&gt;&lt;li&gt;Soft amber light when charging unlike Hero&amp;#39;s bright amber LED. The charger does not have a light&lt;/li&gt;&lt;li&gt;Nexus&amp;#39;s trackball light is brighter than Hero&amp;#39;s. It has a blue-ish light&lt;/li&gt;&lt;li&gt;Hero&amp;#39;s activation buttons (as I call them): answer, home, menu &amp;amp; hang up/power are no longer buttons on Nexus but are touch-buttons. They also no longer activate the screen. The power button on the top does&lt;/li&gt;&lt;li&gt;The charger has a chin that takes space from either left or right, which is quite inconvenient since you have to put it on the edge of a power distributor&lt;/li&gt;&lt;li&gt;No place to hang a phone pendant! Where am I supposed to put my gold-plated 1 fils now? :(&lt;/li&gt;&lt;li&gt;The screen is amazing! Its colors are way better than that of an iPhone 3GS&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Dock Station&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;Doesn&amp;#39;t transmit data. Must not connect to computer USB ports!&lt;/li&gt;&lt;li&gt;The phone transmits music to the dock via Bluetooth&lt;/li&gt;&lt;li&gt;Tacking the phone off the dock takes you to the unlocked home screen&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Battery &amp;amp; Power&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;Charging Time: ~2:30 hours&lt;/li&gt;&lt;li&gt;Battery Statistics: Shows battery usage and which components use it mostly: Display, Cell standby, Android, Wallpaper, Phone idle, Voice calls and a few more&lt;/li&gt;&lt;li&gt;The default live wallpaper consumes the least power. Even less than still ones!&lt;/li&gt;&lt;li&gt;The screen shows the charging percentage when on the dock station&lt;/li&gt;&lt;li&gt;Power Off Options&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Hero: Power Off, Silent mode, Vibration mode, Airplane mode, Mobile network&lt;/li&gt;&lt;li&gt;Nexus: Power Off, Silent mode, Airplane mode&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Booting/Startup&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;Boot time: 35-40 seconds (to unlocked home screen)&lt;/li&gt;&lt;li&gt;Booting animation: Fastens as it loads&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Dialer&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;Nexus&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Calling is a 4-step process: Click contacts icon &amp;gt; search &amp;gt; click contact icon &amp;gt; call&lt;/li&gt;&lt;li&gt;Punching numbers in the dialer will not search for neither phones nor names&lt;/li&gt;&lt;li&gt;Search is limited to names only. Phones cannot be searched&lt;/li&gt;&lt;li&gt;During a call, you can easily switch to speaker or add another call by clicking buttons on the screen. Hero requires you to click the menu button to get these options&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;Hero&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Calling is a 3-step process: Click phone icon &amp;gt; dial/search &amp;gt; click to call&lt;/li&gt;&lt;li&gt;In Dial/Search you input numbers and is interpreted as both numbers and characters of names&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Privacy Issues &amp;amp; Options&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;Search History: Enabled by default to save all your searched terms and shows custom results based on your previous search queries (tied to your email account)&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;Browser Settings: Sending your location to those requesting it is enabled by default. This might be used by targeted ads&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;Both previous points were enabled even though I had My Location service disabled&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Widgets&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;Control: wireless, bluetooth, GPS, data sync, brightness&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;No quick contact dialing widget. Specific to HTC&amp;#39;s Sense UI&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Contacts&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;Nexus syncs with the gmail account groups but doesn&amp;#39;t have an option to create groups from the phone&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;Newly created contacts on Nexus get added to &amp;quot;My Contacts&amp;quot; group in the gmail account and cannot be added to a specific group inside the account, unless done from the web. Horrible!&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;When logged in to gtalk and browsing contacts, aa status indicator shows near the name&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;Clicking a contact&amp;#39;s icon shows in a small bar all contact possibilities: phone, sms, gtalk, facebook, email &amp;amp; view info&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;On Hero, it was possible to link contacts to their Facebook profiles when the names in your contact list &amp;amp; Facebook didn&amp;#39;t match. This is not possible on Nexus &amp;amp; names have to be the same for them to merge and become one&lt;/li&gt;&lt;li&gt;Contact Shortcut: Adding a shortcut to a contact on the screen provides these icons: Contact Info, Email, Facebook, Phone, SMS, Gtalk&lt;/li&gt;&lt;li&gt;When adding a new number through the call log, using the search function won&amp;#39;t add the number. You have to scroll to the contact and click it to see the new number&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Usability &amp;amp; User Interface&lt;br&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Muting the Nexus doesn&amp;#39;t require unlocking its screen. Press power button then the speaker icon. Hero requires unlocking then holding the power button then choosing silent&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;Keyboard: Nexus has no new line button for SMS in neither landscape nor portrait mode!!!!&lt;/li&gt;&lt;li&gt;Date &amp;amp; Time: Hero had more options like showing the name of the day. Not included on Nexus&lt;/li&gt;&lt;li&gt;Empty space menu: Hero required 2.5-3 seconds to bring up the menu. Nexus brings it in 1 second when clicking in an empty spot&lt;/li&gt;&lt;li&gt;Tiny dots on the bottom of the screen each representing a screen. Clicking the dots changes to the screen either on left or right (depending on which dot was clicked)&lt;/li&gt;&lt;li&gt;Still no option to have no wallpaper. I prefer my screens blank but seems like it&amp;#39;s a far fetched dream&lt;/li&gt;&lt;li&gt;Keyboard doesn&amp;#39;t include numbers when long-pressing keys. One must click on &amp;quot;?123&amp;quot; to get numbers and special characters&lt;/li&gt;&lt;li&gt;Calendar: Looks ugly compared to Hero&amp;#39;s&lt;/li&gt;&lt;li&gt;When sending an SMS, a clock icon shows near the message meaning that it is being sent, then the clock goes when it is sent. Hero didn&amp;#39;t have that and you wouldn&amp;#39;t know if it was sent or not, and if there was a failure you&amp;#39;d find out after 3-5 minutes with a failure notification&lt;/li&gt;&lt;li&gt;Hero would vibrate once when a pending call is picked up. Nexus doesn&amp;#39;t (part of HTC&amp;#39;s Sense UI)&lt;/li&gt;&lt;li&gt;Notifications: Only sound and trackball light. Hero had a green LED that lit when emails or SMS were received, in addition to the trackball light&lt;/li&gt;&lt;li&gt;System update: No option to notify before download. It&amp;#39;ll always download by itself then notify you when it&amp;#39;s ready to install the update&lt;/li&gt;&lt;li&gt;Has voice input to write SMS, call people or perform search. It requires an Internet connection&lt;/li&gt;&lt;li&gt;No profiles. I have to use 3rd party apps to get this basic functionality, which an 8KD Nokia phone provides...&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Applications&lt;br&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;GMail app is better than Hero&amp;#39;s. Undoing actions is now possible (like when archiving an email by mistake)&lt;br&gt;&lt;/li&gt;&lt;li&gt;Can&amp;#39;t save attachments from either the gmail app or the mail app. You can view them only (tried a PDF file)!!&lt;/li&gt;&lt;li&gt;In the gmail and mail apps, we cannot see who is sender of an email unless we click on the contact circle. There is no way to copy that email without adding to contacts first!&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;Software update: Caught it automatically downloading Update1 (15.2MB). Personalized settings or data won&amp;#39;t be affected, it says.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;Gtalk signed in with the same mode I used in the web chat&lt;/li&gt;&lt;li&gt;Browser takes less than 1 second to load! It&amp;#39;s freakin&amp;#39; fast! Hero&amp;#39;s take 3-5 seconds of not more sometimes&lt;/li&gt;&lt;li&gt;Youtube app is newer on Nexus. When viewing details of a video, you get to copy the URL by clicking a button&lt;/li&gt;&lt;li&gt;App installation: Apps install very fast! 2 seconds installation for the same apps on Hero. Hero used to take about 6-10 seconds&lt;/li&gt;&lt;li&gt;Exchange sync: Does NOT sync exchange account calendar(s)!!!! Major blow D:&lt;/li&gt;&lt;li&gt;Picture sharing: The following aren&amp;#39;t available on Nexus: Flickr, Twitter, Youtube&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Connectivity&lt;br&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;PPTP VPN: PPTP VPN works! I use VPNoD and they enforce high-security (MPPE 128)&lt;/li&gt;&lt;li&gt;A friend had issues with PPTP VPN not working on his VPN. It worked after rooting the phone&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;Turning off 3G data Internet takes 6 steps. One has to create a shortcut to avoid the mess. Also you have to define a dummy access point with no configuration&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Limitations&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Nexus One has a Broadcom BCM4329 WiFi/FM transmit/receive chipset, but there&amp;#39;s no option to use the &lt;a href="http://blog.makezine.com/archive/2010/02/htc_sense_ui_on_nexus_one.html" id="g_o_" title="FM receiver"&gt;FM receiver&lt;/a&gt;!&lt;/li&gt;&lt;li&gt;WiFi detects up to 11 channels only. My AP was on channel 13 and it wasn&amp;#39;t seen till I changed it to 11. Hero supported 13 channels&lt;/li&gt;&lt;li&gt;Ringer speaker volume is very low. The same issue was there on the Hero. HTC seems to be using cheap parts!&lt;/li&gt;&lt;li&gt;Alarm&amp;#39;s volume is very low and should NOT be used for important things (certainly not to wake you up)&lt;/li&gt;&lt;li&gt;Reminders suffer the same problems of alarms and it is not possible to define a value manually&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br&gt;&lt;br&gt; Info before update:&lt;br&gt; Firmware version: 2.1&lt;br&gt; Baseband version: 32.19.00.16U_4.02.02.14&lt;br&gt; Kernel version: 2.6.29-gad36b87, android-build@apa26 #1&lt;br&gt; Build number: ERD79&lt;br&gt;&lt;br&gt; Info after update:&lt;br&gt; Firmware version: 2.1-update1&lt;br&gt; Baseband version: 32.24.00.22U_4.03.00.21_2&lt;br&gt; Kernel version: 2.6.29-01117-g4bc62c2, android-build@apa26 #1&lt;br&gt; Build number: ERE27&lt;br&gt;&lt;br&gt;Pictures of the phone and the dock station &lt;a href="http://picasaweb.google.com/iPhoKu/NexusOne#" id="g2cp" title="are here"&gt;are here&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;h2&gt;Conclusion&lt;/h2&gt; Coming out of the simple &amp;amp; intuitive Sense UI, I find the vanilla (standard) Android quite lacking. I could live without the simple dialer, but not being able to create groups, adding a contact to a specific group or syncing the Exchange calendar is unacceptable!&lt;br&gt;&lt;br&gt; I was moments away from selling the phone until I found out it&amp;#39;s possible to use Sense UI on Nexus One by rooting the phone and using HTC Desire&amp;#39;s ROM, which I&amp;#39;m going to do when it finally reaches a stable version in a month or two.&lt;br&gt;&lt;br&gt; I was hesitant about rooting the phone before, but I clarified a piece of info that had me take the decision: You can unlock the bootloader, root your phone and use custom ROMs, but you&amp;#39;ll only receive over the air (OTA) updates on the original ROM. For the custom ones, you&amp;#39;ll need to redeploy as updates are released.&lt;br&gt;&lt;br&gt;&lt;h2&gt;Revisions&lt;/h2&gt; 4: March 8th: Added a new bug to &amp;quot;Contacts&amp;quot; and an entry under &amp;quot;Connectivity&amp;quot;&lt;br&gt;3: March 7th: Added link to picture gallery.&lt;br&gt;2: March 7th: Added an entry under &amp;quot;Phone &amp;amp; Charger Design&amp;quot; about the screen. Two points under &amp;quot;Limitations&amp;quot;&lt;br&gt; 1: March 6th: Initial post&lt;br&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/8353696605063426251-6424598826879633681?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/6424598826879633681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=6424598826879633681' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/6424598826879633681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/6424598826879633681'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/03/nexus-one-vs-htc-hero.html' title='Nexus One vs. HTC Hero'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-1738103106813333453</id><published>2010-02-14T21:01:00.000+03:00</published><updated>2010-02-14T21:01:05.030+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='segfault'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='search'/><category scheme='http://www.blogger.com/atom/ns#' term='adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='crash'/><title type='text'>Firefox Crashing When Searching And Playing Flash</title><content type='html'>I've been having this problem for quite sometime now with various versions of Firefox (3.5.7 here as of this writing).&lt;br /&gt;&lt;br /&gt;Problem description: When there's something playing, or has already played with flash content (like youtube videos), and then I attempt to search for text in a page and that text is NOT found, the browser crashes (segfault).&lt;br /&gt;&lt;br /&gt;I found 2 solutions to this, one of them seems more of a workaround rather than a solution, and the real problem seems to be coming from Adobe's Flash plugin for Linux (they just can never get it right...).&lt;br /&gt;&lt;br /&gt;Solutions:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Turn off search sound: open a tab and in the address type: about:config&lt;br /&gt;look for sound and then disable: accessibility.typeaheadfind.enablesound by double clicking it, then restart your browser.&lt;/li&gt;&lt;li&gt;Use nspluginwrapper along with Adobe's libflash package. Whether the search sound is enabled or disabled, this should work just fine.&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/8353696605063426251-1738103106813333453?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/1738103106813333453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=1738103106813333453' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/1738103106813333453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/1738103106813333453'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/02/firefox-crashing-when-searching-and.html' title='Firefox Crashing When Searching And Playing Flash'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-226730292256586775</id><published>2010-02-01T06:30:00.000+03:00</published><updated>2010-02-01T06:30:50.792+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='pptp'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='vpn'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>VPN Service: Free For A While</title><content type='html'>A generous friend has setup a cluster of secure VPN servers in USA and is now offering the service for free for a couple of months to test the systems out.&lt;br /&gt;&lt;br /&gt;If you don't know what a VPN is, it stands for Virtual Private Network; basically, you connect to the Internet, then to a VPN server and all your Internet traffic goes through that server.&lt;br /&gt;Since the servers are in USA, you can access all websites that require you to be in the US, like Hulu online streaming site, watch copyrighted videos on youtube, and a lot more!&lt;br /&gt;&lt;br /&gt;I've &lt;a href="http://mbhtech.blogspot.com/2010/01/adding-ips-to-gateway.html"&gt;been using&lt;/a&gt; it for a while now and it's great!&lt;br /&gt;&lt;br /&gt;You can now subscribe for free and enjoy the service. It works on Mac, Windows &amp; Linux. To join, simply send an email to: &lt;b&gt;promotion [theAtSign] vpnod.com&lt;/b&gt;, with subject &lt;b&gt;vpnod&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;An account will be automatically and instantly created for you where your email is your username and the password is autogenerated by the system. You'll also receive instructions on how to set it up on Windows.&lt;br /&gt;&lt;br /&gt;If you need help on how to set it up on Mac or Linux, let me know. (Anonymous comments are enabled).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-226730292256586775?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/226730292256586775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=226730292256586775' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/226730292256586775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/226730292256586775'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/02/vpn-service-free-for-while.html' title='VPN Service: Free For A While'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-1012777728930904453</id><published>2010-01-31T04:04:00.000+03:00</published><updated>2010-01-31T04:04:59.134+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='ie6'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Google To Phase Out IE6 Support</title><content type='html'>As received by email: (emphasis is mine)&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Dear Google Apps admin,​&lt;br /&gt;&lt;br /&gt;In order to continue to improve our products and deliver more sophisticated features and performance, we are harnessing some of the latest improvements in web browser technology.  This includes faster JavaScript processing and new standards like HTML5.  As a result, over the course of 2010, we will be &lt;b&gt;phasing out&lt;/b&gt; support for Microsoft &lt;b&gt;Internet Explorer 6.0&lt;/b&gt; as well as other older browsers that are &lt;b&gt;not supported by their own manufacturers&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;We plan to begin phasing out support of these older browsers on the Google Docs suite and the Google Sites editor on &lt;b&gt;March 1, 2010&lt;/b&gt;. After that point, certain functionality within these applications may have higher latency and may not work correctly in these older browsers. Later in 2010, we will start to phase out support for these browsers for Google Mail and Google Calendar.&lt;br /&gt;&lt;br /&gt;Google Apps will continue to &lt;b&gt;support&lt;/b&gt; Internet Explorer 7.0 and above, &lt;b&gt;Firefox 3.0&lt;/b&gt; and above, Google &lt;b&gt;Chrome 4.0&lt;/b&gt; and above, and Safari 3.0 and above.&lt;br /&gt;&lt;br /&gt;Starting next week, users on these older browsers will see a message in Google Docs and the Google Sites editor explaining this change and asking them to upgrade their browser.  We will also alert you again closer to March 1 to remind you of this change.&lt;br /&gt;&lt;br /&gt;In 2009, the Google Apps team delivered more than 100 improvements to enhance your product experience.  We are aiming to beat that in 2010 and continue to deliver the best and most innovative collaboration products for businesses.&lt;br /&gt;&lt;br /&gt;Thank you for your continued support!&lt;br /&gt;&lt;br /&gt;Sincerely,&lt;br /&gt;&lt;br /&gt;The Google Apps team&lt;/blockquote&gt;&lt;br /&gt;A subtle sucker-punch to Microsoft for not supporting their own products, while still supporting Firefox 3.0. I thought FF 3.0 would be phased out too!&lt;br /&gt;&lt;br /&gt;As for Chrome, as far as I know the stable version is 3.x while 4.x is beta, but I could be wrong.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-1012777728930904453?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/1012777728930904453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=1012777728930904453' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/1012777728930904453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/1012777728930904453'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/01/google-to-phase-out-ie6-support.html' title='Google To Phase Out IE6 Support'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-55922389615735637</id><published>2010-01-23T04:34:00.004+03:00</published><updated>2010-01-23T04:38:45.101+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cakephp'/><category scheme='http://www.blogger.com/atom/ns#' term='opensuse'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='suse'/><title type='text'>CakePHP: Initial Problems</title><content type='html'>I just started with &lt;a href="http://cakephp.org/"&gt;CakePHP&lt;/a&gt;, a PHP framework, and have been having some problems going through the "15 minutes" blog tutorial. It took me about 2 days to dig my way out through openSUSE, Apache, Linux and CakePHP itself.&lt;br /&gt;&lt;br /&gt;First issue I had was enabling mod_rewrite on openSUSE. To do that, edit the file: "&lt;b&gt;/etc/sysconfig/apache2&lt;/b&gt;" (Assuming Apache2.2)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Go to the line that starts with "&lt;b&gt;APACHE_MODULES&lt;/b&gt;" and add "&lt;b&gt;rewrite&lt;/b&gt;" at the end just before the closing quote.&lt;/li&gt;&lt;li&gt;Save the file then run "&lt;b&gt;sudo SuSEconfig&lt;/b&gt;" to update Apache's configuration files.&lt;/li&gt;&lt;/ul&gt;I'm not using virtual hosts. I have downloaded the latest stable CakePHP and extracted it in my "&lt;b&gt;/srv/www/htdocs&lt;/b&gt;" directory and named it "&lt;b&gt;blog&lt;/b&gt;"&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;mj@linux-mlvm:~$ ls -l /srv/www/htdocs&lt;br /&gt;drwxr-xr-x&amp;nbsp; 5 mj&amp;nbsp;&amp;nbsp; users 4096 2010-01-23 02:28 blog&lt;/pre&gt;So I access the blog through: &lt;b&gt;http://localhost/blog/&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;After configuring the database and the connection settings for CakePHP as instructed in &lt;a href="http://book.cakephp.org/view/219/Blog"&gt;the tutorial&lt;/a&gt;, I had to set permissions for the tmp directory: "&lt;b&gt;/srv/www/htdocs/blog/app/tmp&lt;/b&gt;"&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;sudo chown wwwrun /srv/www/htdocs/blog/app/tmp&lt;/pre&gt;This will set ownership of the directory to the user running Apache. In my case, it's &lt;b&gt;wwwrun&lt;/b&gt;. On a shared web host, it's often &lt;b&gt;nobody&lt;/b&gt;. You can find out which username Apache uses by making a small PHP script:&lt;br /&gt;&lt;pre&gt;&amp;lt;?php echo `whoami`; ?&amp;gt;&lt;/pre&gt;Visit the script in a web browser and voila!&lt;br /&gt;&lt;br /&gt;Second issue: when reaching the step to create the &lt;a href="http://book.cakephp.org/view/336/Creating-Post-Views"&gt;posts view&lt;/a&gt;, I created the directory:&lt;br /&gt;&lt;pre&gt;mkdir app/views/posts&lt;/pre&gt;But I got an error message in the browser when visiting the link: &lt;b&gt;http://localhost/blog/posts&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;Missing View&lt;br /&gt;Error: The view for PostsController::index() was not found.&lt;br /&gt;Error: Confirm you have created the file: /srv/www/htdocs/blog/app/views/posts/index.ctp&lt;br /&gt;Notice: If you want to customize this error message, create app/views/errors/missing_view.ctp&lt;br /&gt;&lt;br /&gt;After verifying that everything is properly spelled and whatnot, turns out it was a dumb mistake of not checking directory permissions:&lt;br /&gt;&lt;pre&gt;mj@linux-mlvm:/srv/www/htdocs/blog/app$ ls -la&lt;br /&gt;drwxr-xr-x 12 mj     users 4096 2010-01-23 02:03 .&lt;br /&gt;drwxr-xr-x  5 mj     users 4096 2010-01-23 02:28 ..&lt;br /&gt;drwxr-xr-x  3 mj     users 4096 2010-01-12 05:58 config&lt;br /&gt;drwxr-xr-x  3 mj     users 4096 2010-01-21 22:32 controllers&lt;br /&gt;-rw-------  1 mj     users   67 2010-01-23 02:03 .directory&lt;br /&gt;-rw-r--r--  1 mj     users  169 2010-01-23 02:08 .htaccess&lt;br /&gt;-rw-r--r--  1 mj     users  859 2010-01-12 01:47 index.php&lt;br /&gt;drwxr-xr-x  3 mj     users 4096 2010-01-12 01:47 locale&lt;br /&gt;drwxr-xr-x  4 mj     users 4096 2010-01-19 06:54 models&lt;br /&gt;drwxr-xr-x  2 mj     users 4096 2010-01-12 01:47 plugins&lt;br /&gt;drwxr-xr-x  5 mj     users 4096 2010-01-12 01:47 tests&lt;br /&gt;drwxr-xr-x  6 wwwrun www   4096 2010-01-12 01:47 tmp&lt;br /&gt;drwxr-xr-x  3 mj     users 4096 2010-01-12 01:47 vendors&lt;br /&gt;&lt;i&gt;&lt;b&gt;drwxr--r--  8 mj     users 4096 2010-01-19 07:00 views&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;drwxr-xr-x  5 mj     users 4096 2010-01-19 07:36 webroot&lt;/pre&gt;&lt;br /&gt;Never mind the fact that I'm using my own username for the directories. It's just for quick editing.&lt;br /&gt;Focus on the bold line which has "&lt;b&gt;views&lt;/b&gt;" -- since I didn't assign the user &lt;b&gt;wwwrun&lt;/b&gt; for that directory, the permissions prevented Apache from accessing the directory resulting in the above Missing error message.&lt;br /&gt;&lt;br /&gt;You can either change directory ownership as done for tmp, or change permissions:&lt;br /&gt;&lt;pre&gt;chmod 755 views&lt;/pre&gt;&lt;br /&gt;Note: If a directory is not executable, you can't change to it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-55922389615735637?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/55922389615735637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=55922389615735637' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/55922389615735637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/55922389615735637'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/01/cakephp-initial-problems.html' title='CakePHP: Initial Problems'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-961317863926926365</id><published>2010-01-21T23:10:00.000+03:00</published><updated>2010-01-21T23:10:12.776+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='attack'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><title type='text'>Google's Response to Chinese Attacks</title><content type='html'>Google &lt;a href="http://googleblog.blogspot.com/2010/01/new-approach-to-china.html"&gt;has finally spoken&lt;/a&gt; officially on the attacks on its infrastructure and the theft of intellectual property in China.&lt;br /&gt;&lt;br /&gt;It's not clear in their response what was stolen from Google itself, but it did state that some email accounts of Human Rights activists were accessed.&lt;br /&gt;&lt;br /&gt;For now, as a response, Google has started providing uncensored search results, which the Chinese government had mandated at the time of business negotiations in 2006.&lt;br /&gt;&lt;br /&gt;It's yet not clear whether Google will withdraw from China, but it's a possibility.&lt;br /&gt;&lt;br /&gt;The link above contains links to detailed reports on the attacks and responses.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-961317863926926365?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/961317863926926365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=961317863926926365' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/961317863926926365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/961317863926926365'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/01/googles-response-to-chinese-attacks.html' title='Google&apos;s Response to Chinese Attacks'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-2819166704258072490</id><published>2010-01-20T06:08:00.001+03:00</published><updated>2010-01-20T06:09:26.761+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kuwait'/><category scheme='http://www.blogger.com/atom/ns#' term='piracy'/><category scheme='http://www.blogger.com/atom/ns#' term='movie'/><title type='text'>Blatant Movie Piracy in Kuwait</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/S1ZzF1p6vSI/AAAAAAAAAQY/fW3UGNOT_vs/s1600-h/snapshot3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/S1ZzF1p6vSI/AAAAAAAAAQY/fW3UGNOT_vs/s320/snapshot3.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;This is the 2nd website that I see selling pirated movies including home delivery, without being obstructed by the police.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;So why is it that shops and door-to-door sellers are shut down, but not the websites?&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The image above shows the site, the movies he's selling, their prices, his name, bank account and bank name. It doesn't get more obvious!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-2819166704258072490?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/2819166704258072490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=2819166704258072490' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/2819166704258072490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/2819166704258072490'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/01/blatant-movie-piracy-in-kuwait.html' title='Blatant Movie Piracy in Kuwait'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_9_Sv3ZsvT4I/S1ZzF1p6vSI/AAAAAAAAAQY/fW3UGNOT_vs/s72-c/snapshot3.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-3249151787350586699</id><published>2010-01-20T03:23:00.000+03:00</published><updated>2010-01-20T03:23:35.844+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='social networking'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><title type='text'>Facebook Desperate For Love</title><content type='html'>After so many Facebook &lt;a href="http://mbhtech.blogspot.com/2009/10/facebook-privacy-where-is-it.html"&gt;privacy&lt;/a&gt; &lt;a href="http://mbhtech.blogspot.com/2009/12/facebook-privacy-friend-lists-are.html"&gt;breaches&lt;/a&gt; by Facebook itself, and the &lt;a href="http://www.readwriteweb.com/archives/facebooks_zuckerberg_says_the_age_of_privacy_is_ov.php"&gt;recent statement&lt;/a&gt; of its founder on how privacy is not important and everything should be publicly available, seems like Facebook is trying hard to get some back respect and love...&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/S1ZJ1mUKO0I/AAAAAAAAAQQ/RxUcbk0V1Pc/s1600-h/snapshot2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/S1ZJ1mUKO0I/AAAAAAAAAQQ/RxUcbk0V1Pc/s320/snapshot2.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;If privacy isn't that important, then why is its &lt;a href="http://www.facebook.com/zuck"&gt;founder's profile&lt;/a&gt; private? The same person calling for public exposure of info... hmmm???&lt;br /&gt;&lt;br /&gt;Note: Mark Zuckerberg (founder of Facebook) has 2 profiles: A &lt;a href="http://www.facebook.com/markzuckerberg"&gt;public one&lt;/a&gt; (for stunts) and a &lt;a href="http://www.facebook.com/zuck"&gt;private one&lt;/a&gt; (which got breached when they broke their own privacy rules!).&lt;br /&gt;&lt;br /&gt;Try harder you snob.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-3249151787350586699?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/3249151787350586699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=3249151787350586699' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/3249151787350586699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/3249151787350586699'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/01/facebook-desperate-for-love.html' title='Facebook Desperate For Love'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_9_Sv3ZsvT4I/S1ZJ1mUKO0I/AAAAAAAAAQQ/RxUcbk0V1Pc/s72-c/snapshot2.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-677702354500826354</id><published>2010-01-17T01:44:00.000+03:00</published><updated>2010-01-17T01:44:19.124+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='default route'/><category scheme='http://www.blogger.com/atom/ns#' term='route'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='gateway'/><category scheme='http://www.blogger.com/atom/ns#' term='vpn'/><category scheme='http://www.blogger.com/atom/ns#' term='shell'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><title type='text'>Adding IPs to a Gateway</title><content type='html'>I've been using a &lt;a href="http://en.wikipedia.org/wiki/Virtual_private_network"&gt;VPN&lt;/a&gt; and I want only certain websites to go through the VPN, while the rest through my current connection.&lt;br /&gt;&lt;br /&gt;On Linux, after connecting to the VPN, I can make it execute a &lt;a href="http://www.amazon.com/Classic-Shell-Scripting-Arnold-Robbins/dp/0596005954?ie=UTF8&amp;amp;tag=tech09f-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969%22"&gt;shell script&lt;/a&gt; of my choice, by default named: ip-up.local -- below is my script:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;#!/bin/bash&lt;br /&gt;# add domain names to theHosts array -- don't edit anything else&lt;br /&gt;# the script will have each site's IP pass through the gateway of the&lt;br /&gt;# connection being established&lt;br /&gt;&lt;br /&gt;theHosts=( pandora.com last.fm hulu.com youtube.com netflix.com )&lt;br /&gt;&lt;br /&gt;ips=$(for host in ${theHosts[@]}; do host -4tA $host; done | awk '{print $4}')&lt;br /&gt;for ip in $ips; do /sbin/route add -host $ip gw $4 dev $1; done&lt;/pre&gt;&lt;br /&gt;ip-up.local should be in /etc/ppp/&lt;br /&gt;&lt;br /&gt;Make sure you check the option to tell your connection to not replace your existing default route.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-677702354500826354?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/677702354500826354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=677702354500826354' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/677702354500826354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/677702354500826354'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/01/adding-ips-to-gateway.html' title='Adding IPs to a Gateway'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-530356046226251031</id><published>2010-01-13T14:31:00.006+03:00</published><updated>2010-01-14T05:40:34.869+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='antivirus'/><category scheme='http://www.blogger.com/atom/ns#' term='malicious'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><title type='text'>Al-Ghanim X-Cite: Reported Attack Site</title><content type='html'>A friend sent me an email saying that Al-Ghanim's XCite website is being reported as a malicious website, by Firefox and Google.&lt;br /&gt;&lt;br /&gt;Go to their website &lt;a href="http://www.xcite.com.kw/"&gt;http://www.xcite.com.kw/&lt;/a&gt;, click on Search then "Search By Keyword"&lt;br /&gt;&lt;br /&gt;Since they run .asp pages, they have a Windows web-server and it seems to be infected. Also, according to &lt;a href="http://safebrowsing.clients.google.com/safebrowsing/diagnostic?client=Firefox&amp;amp;hl=en-US&amp;amp;site=http://www.xcite.com.kw/searchpro/index.asp?q=%22SLR%22&amp;amp;g=1"&gt;Google's report&lt;/a&gt;, the website has been reported for malicious activity 5 times in the past 90 days.&lt;br /&gt;&lt;br /&gt;If you know anyone who works at Al-Ghanim, make sure you pass this to them so that they clean up their server! (&lt;a href="http://www.xbyte-kuwait.com/"&gt;My company&lt;/a&gt; sells and deploys &lt;a href="http://www.kaspersky.com/"&gt;Kaspersky&lt;/a&gt; for enterprises)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/S02wUz_zgTI/AAAAAAAAAPw/BbJWcZgHYco/s1600-h/xcite.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 164px;" src="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/S02wUz_zgTI/AAAAAAAAAPw/BbJWcZgHYco/s320/xcite.png" alt="" id="BLOGGER_PHOTO_ID_5426186997653012786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/S02wdrXxzjI/AAAAAAAAAP4/3M8Br6mVPO0/s1600-h/xcite1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 208px;" src="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/S02wdrXxzjI/AAAAAAAAAP4/3M8Br6mVPO0/s320/xcite1.png" alt="" id="BLOGGER_PHOTO_ID_5426187149956468274" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I tried contacting Al-Ghanim via their online web-form but it crashed...&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/S06D73ADKJI/AAAAAAAAAQA/2w7CtYMFabY/s1600-h/xcite2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 200px;" src="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/S06D73ADKJI/AAAAAAAAAQA/2w7CtYMFabY/s320/xcite2.png" alt="" id="BLOGGER_PHOTO_ID_5426419665427703954" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-530356046226251031?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/530356046226251031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=530356046226251031' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/530356046226251031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/530356046226251031'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2010/01/al-ghanim-x-cite-reported-attack-site.html' title='Al-Ghanim X-Cite: Reported Attack Site'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_9_Sv3ZsvT4I/S02wUz_zgTI/AAAAAAAAAPw/BbJWcZgHYco/s72-c/xcite.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-831674470835113113</id><published>2009-12-17T16:55:00.004+03:00</published><updated>2009-12-17T17:29:45.051+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kuwait'/><category scheme='http://www.blogger.com/atom/ns#' term='wardriving'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><category scheme='http://www.blogger.com/atom/ns#' term='wifi'/><title type='text'>Wardriving Kuwait: Listing Access Points</title><content type='html'>&lt;p&gt;"&lt;b&gt;Wardriving&lt;/b&gt; is the act of searching for &lt;a href="http://en.wikipedia.org/wiki/Wi-Fi" title="Wi-Fi"&gt;Wi-Fi&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Wireless_network" title="Wireless network"&gt;wireless networks&lt;/a&gt; by a person in a moving vehicle, using a portable computer or &lt;a href="http://en.wikipedia.org/wiki/Personal_digital_assistant" title="Personal digital assistant"&gt;PDA&lt;/a&gt;." -- &lt;a href="http://en.wikipedia.org/wiki/Wardriving"&gt;Wikipedia&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Ever since I got my &lt;a href="http://mbhtech.blogspot.com/2009/12/htc-hero-review.html"&gt;new mobile&lt;/a&gt; (HTC Hero) which has both GPS and WiFi, I've been wardriving; simply run a program and it does all the dirty work of scanning for wireless networks and attaching the geographical location of these access points (APs).&lt;/p&gt;&lt;p&gt;The program I use is &lt;a href="http://code.google.com/p/wardrive-android/"&gt;&lt;span style="font-weight: bold;"&gt;wardrive&lt;/span&gt;&lt;/a&gt;. It's written by Raffaele Ragni and is freely available in Android's market.&lt;/p&gt;&lt;p&gt;A quick link to reach the full map is: &lt;a href="http://sites.mbhbox.net/"&gt;http://sites.mbhbox.net&lt;/a&gt;. If you would like a list of only the open APs, visit the program's website: &lt;a href="http://wardrivedb.appspot.com/"&gt;http://wardrivedb.appspot.com&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The purpose of this project is to collect statistics and show a map of open and secured access points along with other things.&lt;/p&gt;&lt;p&gt;Don't be shy. Leave a comment. Anonymous comments are enabled.&lt;/p&gt;&lt;p&gt;If you'd like to contribute to this project, email me: mbhkewl TheAtSign gmail Dot com.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-831674470835113113?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/831674470835113113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=831674470835113113' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/831674470835113113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/831674470835113113'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2009/12/wardriving-kuwait-listing-access-points.html' title='Wardriving Kuwait: Listing Access Points'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-418099888373622359</id><published>2009-12-14T12:32:00.004+03:00</published><updated>2009-12-14T13:36:03.505+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><title type='text'>Facebook Privacy: Friend Lists Are Public</title><content type='html'>After Facebook's new fiasco about its new "enhanced" and "simple" privacy settings, which resulted in setting most, if not all, pictures and information to be public!&lt;br /&gt;&lt;br /&gt;What I found today is that even if you set your friend list to be private, it's still available to the public eyes, through a swift link.&lt;br /&gt;&lt;br /&gt;To demonstrate, I'll show an example on Mark Zuckerberg, Facebook's founder.&lt;br /&gt;&lt;br /&gt;Here's &lt;a href="http://www.facebook.com/zuck"&gt;Mark's profile&lt;/a&gt;. As you can see, there's no friend list available to the public. but that's OK, going to &lt;a href="http://www.facebook.com/friends/?id=zuck"&gt;this link&lt;/a&gt; will show the friend list! Tada!&lt;br /&gt;&lt;br /&gt;In case they fix this problem before you can look at it, here're pictures:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/SyYMGsumUoI/AAAAAAAAAOs/9WrU-OML-5U/s1600-h/facebooksucks1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 247px;" src="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/SyYMGsumUoI/AAAAAAAAAOs/9WrU-OML-5U/s320/facebooksucks1.png" alt="" id="BLOGGER_PHOTO_ID_5415028911184958082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/SyYMGwnnKsI/AAAAAAAAAO0/4buL0eYnOsc/s1600-h/facebooksucks2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 234px;" src="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/SyYMGwnnKsI/AAAAAAAAAO0/4buL0eYnOsc/s320/facebooksucks2.png" alt="" id="BLOGGER_PHOTO_ID_5415028912229395138" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The trick applies even to numeric IDs of users.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-418099888373622359?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/418099888373622359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=418099888373622359' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/418099888373622359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/418099888373622359'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2009/12/facebook-privacy-friend-lists-are.html' title='Facebook Privacy: Friend Lists Are Public'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_9_Sv3ZsvT4I/SyYMGsumUoI/AAAAAAAAAOs/9WrU-OML-5U/s72-c/facebooksucks1.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-8785643756020959347</id><published>2009-12-05T10:07:00.006+03:00</published><updated>2009-12-16T15:19:07.037+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='htc'/><category scheme='http://www.blogger.com/atom/ns#' term='activesync'/><category scheme='http://www.blogger.com/atom/ns#' term='phone'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>HTC Hero Review</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;h1&gt;   Introduction&lt;br /&gt;&lt;/h1&gt;&lt;br /&gt;I have received my new phone: HTC Hero. The phone's operating system is &lt;a href="http://en.wikipedia.org/wiki/Android_%28operating_system%29" id="ai5c" title="Android"&gt;Android&lt;/a&gt;. My previous phones were all Nokia Communicators (9110i, 9250, 9500), so I expect my phone to provide me with control and easy methods of text input for messaging and communication.&lt;br /&gt;&lt;br /&gt;While people typically look for a cute interface, I look for functionality. Lots of it. The Hero has amazed me by having both. During this post, I'll go through about my findings, but I won't be able to provide pictures of the interface itself. There're however tons of video reviews out there and screenshots for the eye-candy hungry.&lt;br /&gt;&lt;br /&gt;Below are my findings and notes regarding my experience thus far (4 days).&lt;br /&gt;&lt;br /&gt;Note: You can view a clean/plain version of this post &lt;a href="http://docs.google.com/View?id=dfkcwsgj_24fb9m8dhg" id="l9bq" title="here"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;h1&gt;Table of Contents&lt;/h1&gt;&lt;div class="writely-toc" id="WritelyTableOfContents" toctype="decimal+decimal"&gt;&lt;ol class="writely-toc-decimal"&gt;&lt;li&gt;&lt;a target="_self" href="http://www.blogger.com/post-edit.g?blogID=8353696605063426251&amp;amp;postID=8785643756020959347#_Introduction_"&gt;Introduction&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="http://www.blogger.com/post-edit.g?blogID=8353696605063426251&amp;amp;postID=8785643756020959347#_Specification_"&gt;Specification&lt;/a&gt;&lt;ol style="margin-left: 0pt;" class="writely-toc-subheading writely-toc-decimal"&gt;&lt;li&gt;&lt;a target="_self" href="http://www.blogger.com/post-edit.g?blogID=8353696605063426251&amp;amp;postID=8785643756020959347#_Hardware_"&gt;Hardware&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="http://www.blogger.com/post-edit.g?blogID=8353696605063426251&amp;amp;postID=8785643756020959347#_Operating_System_"&gt;Operating System&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="http://www.blogger.com/post-edit.g?blogID=8353696605063426251&amp;amp;postID=8785643756020959347#_Package_Contents_"&gt;Package Contents&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="http://www.blogger.com/post-edit.g?blogID=8353696605063426251&amp;amp;postID=8785643756020959347#_Physical_Look_and_Feel_"&gt;Physical Look and Feel&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="http://www.blogger.com/post-edit.g?blogID=8353696605063426251&amp;amp;postID=8785643756020959347#_Migrating_Contacts_"&gt;Migrating Contacts&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="http://www.blogger.com/post-edit.g?blogID=8353696605063426251&amp;amp;postID=8785643756020959347#_First_Run_Problems_"&gt;First Run Problems&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="http://www.blogger.com/post-edit.g?blogID=8353696605063426251&amp;amp;postID=8785643756020959347#_Boot_up_and_Shutdown_"&gt;Boot up and Shutdown&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="http://www.blogger.com/post-edit.g?blogID=8353696605063426251&amp;amp;postID=8785643756020959347#_Adapting_to_the_Touchscreen_"&gt;Adapting to the Touchscreen&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="http://www.blogger.com/post-edit.g?blogID=8353696605063426251&amp;amp;postID=8785643756020959347#_WiFi_and_WEP_Problems_"&gt;WiFi and WEP Problems&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="http://www.blogger.com/post-edit.g?blogID=8353696605063426251&amp;amp;postID=8785643756020959347#_User_Interface_"&gt;User Interface&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="http://www.blogger.com/post-edit.g?blogID=8353696605063426251&amp;amp;postID=8785643756020959347#_Multimedia_"&gt;Multimedia&lt;/a&gt;&lt;ol style="margin-left: 0pt;" class="writely-toc-subheading writely-toc-decimal"&gt;&lt;li&gt;&lt;a target="_self" href="http://www.blogger.com/post-edit.g?blogID=8353696605063426251&amp;amp;postID=8785643756020959347#_Music_and_Audio_"&gt;Music and Audio&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="http://www.blogger.com/post-edit.g?blogID=8353696605063426251&amp;amp;postID=8785643756020959347#_Flash_"&gt;Flash&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="http://www.blogger.com/post-edit.g?blogID=8353696605063426251&amp;amp;postID=8785643756020959347#_Youtube_"&gt;Youtube&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="http://www.blogger.com/post-edit.g?blogID=8353696605063426251&amp;amp;postID=8785643756020959347#_Pictures_"&gt;Pictures&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="http://www.blogger.com/post-edit.g?blogID=8353696605063426251&amp;amp;postID=8785643756020959347#_Browsing_"&gt;Browsing&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="http://www.blogger.com/post-edit.g?blogID=8353696605063426251&amp;amp;postID=8785643756020959347#_Contacts_Email_and_Calendarin"&gt;Contacts, Email and Calendaring&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="http://www.blogger.com/post-edit.g?blogID=8353696605063426251&amp;amp;postID=8785643756020959347#_Battery_"&gt;Battery&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="http://www.blogger.com/post-edit.g?blogID=8353696605063426251&amp;amp;postID=8785643756020959347#_Essential_Applications_"&gt;Essential Applications&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="http://www.blogger.com/post-edit.g?blogID=8353696605063426251&amp;amp;postID=8785643756020959347#_Other_"&gt;Other&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="http://www.blogger.com/post-edit.g?blogID=8353696605063426251&amp;amp;postID=8785643756020959347#_Conclusion_"&gt;Conclusion&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;&lt;h1&gt;   Specification&lt;br /&gt;&lt;/h1&gt;&lt;h2&gt;   Hardware&lt;br /&gt;&lt;/h2&gt; &lt;a href="http://www.htc.com/www/product/hero/specification.html" id="qwgx" title="HTC's page"&gt;HTC's page&lt;/a&gt; lists most of the things but not all.&lt;br /&gt; &lt;ul&gt;&lt;li&gt;Processor: Qualcomm® MSM7200A™ @ 528 MHz&lt;br /&gt; &lt;/li&gt;   &lt;li&gt;Operating System ROM: 512 MB&lt;br /&gt; &lt;/li&gt;   &lt;li&gt;RAM: 288 MB&lt;br /&gt; &lt;/li&gt;   &lt;li&gt;Display: 3.2-inch TFT-LCD touch-sensitive screen with 320x480 HVGA resolution&lt;br /&gt; &lt;/li&gt;   &lt;li&gt;Quad band with HSDPA support up to 7.2 Mbps&lt;br /&gt; &lt;/li&gt;   &lt;li&gt;Connectivity: Bluetooth, Wifi (b/g), mini-USB, standard 3.5mm audio jack.&lt;br /&gt; &lt;/li&gt;   &lt;li&gt;Camera: 5 MP with auto-focus&lt;br /&gt; &lt;/li&gt;   &lt;li&gt;Audio formats: MP3, AAC(AAC, AAC+, AAC-LC), AMR-NB, WAV, MIDI and Windows Media® Audio 9&lt;br /&gt; &lt;/li&gt;   &lt;li&gt;Video formats: MPEG-4, H.263, H.264 and Windows Media® Video 9&lt;br /&gt; &lt;/li&gt;   &lt;li&gt;Battery capacity: 1350 mAh&lt;br /&gt; &lt;/li&gt;   &lt;li&gt;Expansion slot: micro-SD (2.0 compatible)&lt;br /&gt; &lt;/li&gt;   &lt;li&gt;Extras:&lt;br /&gt; &lt;/li&gt;&lt;ul&gt;&lt;li&gt;GPS with internal antenna&lt;br /&gt;   &lt;/li&gt;     &lt;li&gt;G-sensor&lt;br /&gt;   &lt;/li&gt;     &lt;li&gt;Digital compass&lt;br /&gt;   &lt;/li&gt;   &lt;/ul&gt;   &lt;li&gt;Other:&lt;br /&gt; &lt;/li&gt;&lt;ul&gt;&lt;li&gt;Internal phone capacity: 160 MB&lt;br /&gt;   &lt;/li&gt;     &lt;li&gt;No flash for camera&lt;br /&gt;   &lt;/li&gt;&lt;br /&gt; &lt;/ul&gt; &lt;/ul&gt;&lt;h2&gt;   Operating System&lt;br /&gt; &lt;/h2&gt; &lt;ul&gt;&lt;li&gt;Firmware version: 1.5&lt;br /&gt; &lt;/li&gt;   &lt;li&gt;Baseband version: 63.18.55.06EU_6.35.06.18&lt;br /&gt; &lt;/li&gt;   &lt;li&gt;Kernel version: 2.6.27-8dd6deee&lt;br /&gt; &lt;/li&gt;   &lt;li&gt;Build number: 2.73.421.5&lt;br /&gt; &lt;/li&gt;   &lt;li&gt;Software version: 1.0.0.A6288&lt;br /&gt; &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;h1&gt;   Package Contents&lt;br /&gt;&lt;/h1&gt; The packaging of the phone is great and delicate, as if they're delivering an ancient wine bottle to you!&lt;br /&gt; &lt;ul&gt;&lt;li&gt;Phone: covered with a temporary protective sheet. The battery is also covered &amp;amp; must be uncovered to use the phone.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;   &lt;li&gt;Earphones with soft cover cloths. Left &amp;amp; right earphone cables are equal in length &amp;amp; have Play/Pause, Back &amp;amp; Next controls.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;   &lt;li&gt;Earphone cable holder (tiny) that snaps on the cable and holds to clothes.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;   &lt;li&gt;2GB Micro-SD card.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;   &lt;li&gt;USB data cable: Standard to mini-USB.&lt;br /&gt; &lt;/li&gt;&lt;br /&gt; &lt;li&gt;AC adapter: 100-240 volts universal adpater. Has 2 circular pins and provides USB port to plug cable into then to the phone. The adapter is modular so you can remove the 2-pin head and plug a different head (only 2-pin is included).&lt;br /&gt; &lt;/li&gt;&lt;br /&gt; &lt;li&gt;Warranty, Accessory and Quick Startup guides included. &lt;b&gt;Make sure you read the quick startup guide&lt;/b&gt;!&lt;br /&gt; &lt;/li&gt; &lt;/ul&gt; No pouch included.&lt;br /&gt;&lt;br /&gt;AC adapter extra info: Input: 100-240 volts/0.2 Amps 50-60 Hz. Output: 5 volts/1 Amp.&lt;br /&gt;&lt;br /&gt;According to the quick start guide, the phone charges fully within 3 hours. And it did!&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;   Physical Look and Feel&lt;br /&gt;&lt;/h1&gt;   &lt;ol&gt;&lt;li&gt;The phone is very tiny. It's smaller than the palm of my hand.&lt;br /&gt; &lt;/li&gt;&lt;br /&gt; &lt;li&gt;The coating of the back-cover is neat and feels like rubber, not some cheap plastic.&lt;br /&gt; &lt;/li&gt;&lt;br /&gt; &lt;li&gt;The touchscreen is not a fingerprint magnet. It looked better than an iPhone's screen. (Haven't seen an iPhone 3GS to compare against)&lt;br /&gt; &lt;/li&gt;&lt;br /&gt; &lt;li&gt;Buttons: Top: Call, Home, Menu, Hangup/Power. Bottom: Search, Back.&lt;br /&gt; &lt;/li&gt;&lt;br /&gt; &lt;li&gt;Trackball.&lt;br /&gt; &lt;/li&gt;&lt;br /&gt; &lt;li&gt;The touchscreen looks great. I mean amazing! Even when there's sunlight.&lt;br /&gt; &lt;/li&gt;&lt;br /&gt; &lt;li&gt;The earbuds are lite. I forgot that I had them on after half an hour and didn't even feel them.&lt;br /&gt;&lt;/li&gt; &lt;/ol&gt; &lt;h1&gt;&lt;a id="_Migrating_Contacts_" name="_Migrating_Contacts_"&gt;&lt;/a&gt;&lt;br /&gt; Migrating Contacts&lt;br /&gt;&lt;/h1&gt; This is everyone's major hassle whenever moving to a new phone. I never had an issue since I moved from one Nokia Communicator to another, but since I got sick of their crappy software and each new generation gets a worse user interface than the previous, I jumped to Android.&lt;br /&gt;&lt;br /&gt;I had taken a full backup of my phone using Nokia PC Suit and synced my contacts to Outlook Express. Both Nokia PC Suit and Outlook Express have the option to export your contacts, but both suck really bad because they export only ONE landline and ONE mobile phone number per contact.&lt;br /&gt;&lt;br /&gt;Exporting to a Comma Separated Value (CSV) file, writes columns according to what Nokia or Microsoft wants, not according to what you have already defined inside the contacts. The fields are fixed by Nokia &amp;amp; Microsoft, so if you have extra fields, sorry, can't have them.&lt;br /&gt; &lt;div&gt;&lt;br /&gt;   From 11 PM till 9:30 AM the next day, I was looking for a painless way to move all of my contacts, and I finally found it. Using a free program called NBU Explorer, I exported all the contacts from a full backup to vCard files: Each contact in its own vCard file. (vCard is also known as vcf). I then ran one command line in the shell which combined all these contacts in one file, then I uploaded that one vCard file to a GMail account to sync with the phone.&lt;br /&gt;     &lt;ul&gt;&lt;li&gt;Linux: cat ./* &amp;gt; ../contacts_all.vcf&lt;br /&gt;     &lt;/li&gt;       &lt;li&gt;Windows: Start -&amp;gt; Run -&amp;gt; cmd -&amp;gt; cd C:\path\to\contacts\directory, then type:&lt;br /&gt;       copy /B *.vcf contacts_all.vcf&lt;br /&gt;&lt;/li&gt;     &lt;/ul&gt;     When you first run your phone, it will ask you to sign in using a Google ID (or a Google App ID) and it will sync the contacts to your phone from that account. This is great because if I format the phone, or get a new phone, it will sync the contacts from my GMail account. I'm no longer dependent on a computer.&lt;br /&gt;&lt;br /&gt;   You could also sync the contacts to your computer in addition to your gmail account.&lt;br /&gt;&lt;br /&gt;   &lt;b&gt;WARNING: HTC Sync tool only works on 32-bit Windows.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;   If you don't want to create a temporary Google ID (which you can't selectively delete -- it has to expire by itself after 9 months or so), I'm willing to create you a temporary ID to sync your contacts to, then to your phone, then to your computer. After you're done migrating, I'll delete your account from my domain. Email me if you'd like that.&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;       First Run Problems&lt;br /&gt;   &lt;/h1&gt;     When you turn on the phone for the first time, you'll be asked to sign in to a Google ID, and if you don't have one, create one.&lt;br /&gt;&lt;br /&gt;   I did the mistake of signing in with my personal GMail account. It synced 605 email addresses, none of which had phone numbers, to the phone. I deleted the first 6, only to realize that they were also deleted from my GMail account!&lt;br /&gt;&lt;br /&gt;   Since I run Google Apps on my own domain name, I created a new username and imported the contacts to it. Then I had to factory-reset the phone to be able to use the new ID. &lt;strike&gt;&lt;b&gt;There's no option to change the phone's main ID. A factory-reset is the only way out&lt;/b&gt;&lt;/strike&gt;.&lt;br /&gt;&lt;br /&gt;   &lt;b&gt;To change your Google ID on the phone, Go to Settings &gt; Applications &gt; Manage, then look for all Google's programs (Gmail, Google Apps, Maps, ...etc.), open each and clear the data. When you're done, open the gmail application from programs menu and it will take you to the sign-in wizard.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;   After you login to your Google account, go to Phone &gt; People &gt; Groups, then Menu and choose Sync Groups. You can specify which groups to synchronize to your phone.&lt;br /&gt;You can also import all your contacts to a specific group using the web interface.&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;       Boot up and Shutdown&lt;br /&gt;   &lt;/h1&gt;     Shutdowns in 2 seconds. Startup takes 1:04 minute.&lt;br /&gt;&lt;br /&gt;   I had to shutdown twice due to some programs that I downloaded and froze the phone. Watch out from incompatible programs!&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;       Adapting to the Touchscreen&lt;br /&gt;   &lt;/h1&gt;     I never had a touchscreen before and feared that my typing would be hindered by it by not having a physical keyboard, but I was mistaken. Using the phone in portrait mode was easy enough, but using in landscape was freakin' amazing! I was typing quite fast on it, and you don't need to fear typing mistakes in either mode because auto-correction and word-suggestion are there for the rescue.&lt;br /&gt;&lt;br /&gt; &lt;/div&gt;&lt;div&gt;     It took me about 2 hours only to fully adapt to the touchscreen. There's a calibration option in the phone, too.&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;       WiFi and WEP Problems&lt;br /&gt;   &lt;/h1&gt;     I have an Access Point (AP) at home configured with WEP security, using a nonstandard Encryption Key Index. You have 4 index keys, and #1 is the default. I was using something else, and couldn't connect to the AP because of that. There was no option to select the key index manually.&lt;br /&gt;&lt;br /&gt;   I haven't tried 3rd party applications from the application market. I instead configured another AP with WPA-mixed and connected just fine. I'll be configuring that first AP to WPA anyway, so it's not a big deal.&lt;br /&gt;&lt;br /&gt;   I did search online about this problem and turns out I wasn't the only one suffering but didn't find a quick solution and it wasn't worth all that trouble anyway. WEP can be cracked in less than 15 minutes, so yet another reason to ditch it.&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;       User Interface&lt;br /&gt;   &lt;/h1&gt;     The user interface (UI) is custom made by HTC, and provides many custom widgets which aren't available by default to Android. There are similar widgets, like the Clock Widget, but Sense UI offers a large collection of clocks to choose from.&lt;br /&gt;&lt;br /&gt;   Apart from looking good, it makes accessing functions quite easy and integrates various services into a single place. To sum it up: Sense UI improves the usability of the various options in the phone.&lt;br /&gt;&lt;br /&gt;   With all this glory, people have been complaining that it consumes a lot of memory from the phone. I wasn't able to find out how much exactly it was consuming, but the total free RAM available after a fresh boot is 100 MB, with all system services running (default apps).&lt;br /&gt;&lt;br /&gt;   With just 100 MB of free RAM, applications are still very fast to launch, and the whole system is quick to switch between tasks.&lt;br /&gt;&lt;br /&gt; &lt;/div&gt;&lt;div&gt;     The features I'll go through in the UI in later sections may or may not be exclusive to Sense UI. I have no definite way to tell them apart.&lt;br /&gt;     &lt;ul&gt;&lt;li&gt;One feature that seamed to wow the Apple crowd is the unlocking and password protection: You drag a bar to the bottom and then for a password, you draw a pattern on the screen. (My reaction was: Oh cute. Their reaction was: ZOMG! I LOVE IT!)&lt;br /&gt;     &lt;/li&gt;&lt;/ul&gt;   &lt;/div&gt;   &lt;div&gt;&lt;ul&gt;&lt;li&gt;The weather &amp;amp; world clock default widgets were quite useful. World Clock allows you to add other countries/cities which is handy since I deal with companies in UAE &amp;amp; USA. The weather widget allows you to add other countries/cities too.&lt;/li&gt;     &lt;/ul&gt;&lt;ul&gt;&lt;li&gt;SMS messages are consolidated; messages between you and a person are stacked up together and are viewed as a single entry in the general view, rather than list each message separately (and having to scroll endlessly!)&lt;br /&gt;     &lt;/li&gt;     &lt;/ul&gt;     &lt;ul&gt;&lt;li&gt;When adding icons to a screen that is full, it asks you to drag the icon to another screen with free space, rather than just show an error. But if you'd like to switch the location of 2 icons (same screen or otherwise), there's no swap option; you'd have to delete one, move the other &amp;amp; re-add the first.&lt;br /&gt;&lt;/li&gt;     &lt;/ul&gt;&lt;ul&gt;&lt;li&gt;When typing an email, the keyboard includes a ".com" button to avoid the hassle of typing those common last 4 chars.&lt;br /&gt;     &lt;/li&gt;     &lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Links and numbers are auto detected in SMS messages. Clicking them would bring up the proper dialog to add/call/message/browse.&lt;br /&gt;     &lt;/li&gt;     &lt;/ul&gt;&lt;ul&gt;&lt;li&gt;When inside some program and an SMS is received, it's displayed in the taskbar at the top. First it shows the sender's name, then shows lines of the message itself. Convenient since you know who &amp;amp; what was sent and if not important, you don't have to exit/switch from your program.&lt;br /&gt;     &lt;/li&gt;     &lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Character count while typing an SMS only shows when exceeding one message size (140 chars for Latin chars).&lt;br /&gt;     &lt;/li&gt;     &lt;/ul&gt;&lt;ul&gt;&lt;li&gt;No confirmation is shown (and no option for it) when sending a multi part SMS. I like the challenge of squeezing whatever I need in the least amount possible ;)&lt;br /&gt;&lt;/li&gt;     &lt;/ul&gt;   &lt;/div&gt;   &lt;div&gt;&lt;ul&gt;&lt;li&gt;When viewing contact groups you can send a group SMS or email with a click.&lt;/li&gt;     &lt;/ul&gt;&lt;br /&gt;     &lt;/div&gt;&lt;div&gt;&lt;h1&gt;       Multimedia&lt;br /&gt;   &lt;/h1&gt;     This section covers music, flash, youtube and pictures, each separately.&lt;br /&gt;&lt;h2&gt;       Music and Audio&lt;br /&gt;   &lt;/h2&gt;     I installed a file-manager application and used it to open an mp3 file. When I switched to another screen, audio stopped playing. When I launched the same audio file with the music player application, then switched to another screen, it continued to play and showed the status "playing" as an icon in the taskbar at the top.&lt;br /&gt;&lt;br /&gt;   You can create playlists and add your audio files to it. Even when the phone is locked, you can still play/control the playlist using the controls on the earphones' cable!&lt;br /&gt;&lt;br /&gt;   The phone's speaker is a mono speaker but it sounds really great! Multimedia files play just fine and the volume is good, but the ringer volume is a bit low even when you max it. You could work around this by increasing the volume with a sound editing program on your ring tone file. (Personally, I find the ringer's volume just fine. That was a friend's complaint).&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;       Flash&lt;br /&gt;   &lt;/h2&gt;     I browsed youtube and other websites that have flash contents and was able to play videos and flash content without issues.&lt;br /&gt;&lt;br /&gt;   If you're browsing youtube, you're better off using the youtube application rather than the normal browser since the video quality in that application is far superior.&lt;br /&gt;&lt;br /&gt;   While playing videos using flash over a browser, the screen locked. An inconvenience if you watch flash-videos over the web, but can circumvented by disabling screen auto-lock &amp;amp; sleep.&lt;br /&gt;&lt;h2&gt;       Youtube&lt;br /&gt;   &lt;/h2&gt;     I played full high definition videos from youtube at 1080p of The Dark Knight and Transformers. Both played without stuttering (after pausing to let it buffer).&lt;br /&gt;&lt;br /&gt;   The video quality on the youtube application was amazing! Videos looked a bit fuzzy on the flash player of the web browser.&lt;br /&gt;&lt;br /&gt;   Videos play in HD format by default on HTC Hero. You have to press Menu button then select normal mode if you wish so.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;       Pictures&lt;br /&gt;   &lt;/h2&gt;     I went for one of my usual early morning walks on the beach and ceased the opportunity to try various features in the phone: The camera, GPS and media sharing.&lt;br /&gt;&lt;br /&gt;   I snapped &lt;a href="http://picasaweb.google.com/iPhoKu/RandomNothings#5410117483818208114" id="utj:" title="this picture"&gt;this picture&lt;/a&gt; on sunrise and you can see the timestamp (optional) and on the right side a map showing the location of the image. The GPS takes some time to get the coordinates at first.&lt;br /&gt;&lt;br /&gt;   The camera application has simple zoom functionality and auto-focus on the area you want by tapping on the screen at the object you wish to be focused at.&lt;br /&gt;&lt;br /&gt;   When I got home, I connected to my wifi AP and opened the albums application, viewed the pictures, and then clicked the share button. It showed the option to share over these services:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Facebook&lt;br /&gt;     &lt;/li&gt;       &lt;li&gt;Flickr&lt;br /&gt;     &lt;/li&gt;       &lt;li&gt;GMail&lt;br /&gt;     &lt;/li&gt;       &lt;li&gt;HTC mail&lt;br /&gt;     &lt;/li&gt;       &lt;li&gt;Messages&lt;br /&gt;     &lt;/li&gt;       &lt;li&gt;Peep&lt;br /&gt;     &lt;/li&gt;       &lt;li&gt;Picasa: Whatever albums you have + &lt;a href="https://www.dropbox.com/" id="v4pd" title="DropBox"&gt;DropBox&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;       &lt;li&gt;Youtube&lt;br /&gt;     &lt;/li&gt;     &lt;/ul&gt;     The lens isn't too great even though the resolution is high, but it's good enough.&lt;br /&gt;&lt;br /&gt;   * A common misconception is that the higher the MegaPixel rating, the better the picture. the pixel rate affects only the max resolution of the picture. The picture's clarity depends on the camera lens itself.&lt;br /&gt;&lt;br /&gt;   The albums app allows for sharing, cropping, rotating, and showing the pictures in a slideshow.&lt;br /&gt;&lt;br /&gt;   &lt;b&gt;WARNING: The Media Uploader app doesn't work with non gmail.com IDs. If you're using your own domain name with Google Apps, you'll have to create a gmail.com ID.&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;h1&gt;       Browsing&lt;/h1&gt;&lt;ul&gt;&lt;li&gt;The browser is as fast as Firefox, or a bit faster. Almost all the sites that I visited had everything displayed properly; yay standards!&lt;br /&gt;     &lt;/li&gt;     &lt;/ul&gt;     &lt;ul&gt;&lt;li&gt;If you want to zoom, use 2 fingers (multi touch glory) and either drag them closer to each other to zoom out, or away from each other to zoom in.&lt;br /&gt;     &lt;/li&gt;&lt;br /&gt;     &lt;li&gt;After zooming in or out, text auto re-wraps to fit the screen. No more scrolling sideways! As far as I know, this is specific to Sense UI.&lt;br /&gt;     &lt;/li&gt;&lt;br /&gt;     &lt;li&gt;Google Docs opened without issues in the browser.&lt;/li&gt;     &lt;/ul&gt;&lt;br /&gt;  &lt;h1&gt;       Contacts, Email and Calendaring&lt;br /&gt;   &lt;/h1&gt;     I grouped these together because whenever you add an account, you always have the option to synchronize all.&lt;br /&gt;     &lt;ul&gt;&lt;li&gt;When creating a new contact from an unknown number or adding it to an existing contact, the contact's name appears immediately instead of "unknown" in the call history.&lt;br /&gt;     &lt;/li&gt;     &lt;/ul&gt;&lt;ul&gt;&lt;li&gt;When creating a new contact, you can save the contact on your Google account, Phone, SIM card or Exchange account. All my contacts are on my Google account on my own domain (not my personal GMail account). See migration section for details. You can also link directly to Facebook and pull a profile picture for use.&lt;br /&gt;&lt;/li&gt;     &lt;/ul&gt;&lt;ul&gt;&lt;li&gt;You can choose how to display the contact's name: "First Last" name or "Last First" name.&lt;br /&gt;&lt;/li&gt;     &lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Contacts can be linked (and auto detected) to Facebook and Flickr. It will also pull the profile picture and birth date from Facebook. I don't have a Flickr account to test it.&lt;br /&gt;     &lt;/li&gt;     &lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;If the contact's birthday was near, it shows a notification in the Social Network section of contacts and tells you to tap on it to send a greeting: Call Mobile or Send message.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;       &lt;li&gt;Calendar allows the first day of week to be either Sunday or Monday.&lt;br /&gt;     &lt;/li&gt;     &lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Calendar has multiple views: Month, Day &amp;amp; Agenda.&lt;br /&gt;     &lt;/li&gt;     &lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Agenda can be displayed Event Wise or Time Wise.&lt;br /&gt;&lt;/li&gt;     &lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Multiple calendars can exist and be synced.&lt;br /&gt;&lt;/li&gt;     &lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Adding a new calendar event is a click away. You choose which calendar to add the event to, what it is, duration of event, location, description, flexible reminders and whether it's a one time event or a repetitive one.&lt;br /&gt;&lt;/li&gt;     &lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Reminders are fixed values. Custom values are not possible. It starts from: None, 5 minutes, 10, 15, 20, 25, 30, 45, 1 hour, 2h, 3h, 12h, 24h, 2 days and 1 week.&lt;br /&gt;&lt;/li&gt;     &lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Event Repetitiveness: One-time event, Daily, Weekly (shows which day), Monthly (Every first {day}), Monthly (On day number) and Yearly (exact date).&lt;br /&gt;     &lt;/li&gt;     &lt;/ul&gt;&lt;ul&gt;&lt;li&gt;The yearly event says: Every Saturday, December 5th 2009 (for example). This is a bit misleading, as next year Dec. 5th may not be a Saturday, and why was 2009 included anyway? It's redundant.&lt;br /&gt;&lt;/li&gt;     &lt;/ul&gt;&lt;ul&gt;&lt;li&gt;You can create one Exchange account only. By default it's setup to fetch every 15 minutes, but you can set it to use the Push feature where it fetches emails as soon as they arrive to the inbox. This works on Google Mail accounts as well (gmail and &lt;a href="http://google.com/support/mobile/bin/answer.py?hl=en&amp;amp;answer=138636" id="f2d4" title="Google Apps"&gt;Google Apps&lt;/a&gt;).&lt;br /&gt;&lt;/li&gt;     &lt;/ul&gt;&lt;ul&gt;&lt;li&gt;You can create multiple IMAP/POP accounts.&lt;br /&gt;     &lt;/li&gt;     &lt;/ul&gt;&lt;ul&gt;&lt;li&gt;You can send email and use gtalk with your device's Google ID using the built-in GMail and GTalk applications. They don't allow you to change the ID.&lt;/li&gt;     &lt;/ul&gt;&lt;br /&gt;   &lt;h1&gt;       Battery&lt;br /&gt;   &lt;/h1&gt;     The battery charges in 3 hours, as stated in the quick start guide. I use the AC adapter rather than my computer's USB port, because the AC adapter outputs 1A current, while a USB 2.0 port &lt;a href="http://en.wikipedia.org/wiki/Universal_Serial_Bus#Power" id="stcz" title="supports a maximum"&gt;supports a maximum&lt;/a&gt; of 0.5A. This means the AC adapter charges the phone faster.&lt;br /&gt;&lt;br /&gt;   Battery life becomes poor when enabling GPS and Wifi together (lasts less than a day). GPS is known to be power hungry.&lt;br /&gt;&lt;br /&gt;   I was able to extend the battery life to 2 days in a single charge by selecting an option to connect to 2G networks only, and mild use of wifi but no GPS.&lt;br /&gt;&lt;br /&gt;   For an extra mile of battery conservation, I also have a program to list other apps running in the background and kill them. This frees memory and since the processor isn't busy with background tasks, it consumes less power.&lt;br /&gt;&lt;br /&gt; &lt;/div&gt;&lt;div&gt;     By default, wifi will disconnect when the screen is locked. You have 2 more options: Never disconnect when connected to power/computer and to Never Disconnect.&lt;br /&gt;&lt;br /&gt;   Enabling the Push feature on an Exchange account may affect battery life. Google suggests that you set it to pull every 30 minutes instead.&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;       Essential Applications&lt;br /&gt;   &lt;/h1&gt;     I found some applications that I consider essentials and suggest that you install them as well.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Abduction! game. HIGHLY ADDICTIVE!&lt;br /&gt;     &lt;/li&gt;       &lt;li&gt;OI File Manager&lt;br /&gt;     &lt;/li&gt;       &lt;li&gt;SambaExplorer: Access Windows shares and download files&lt;br /&gt;     &lt;/li&gt;       &lt;li&gt;Shazam: Listens to music playing &amp;amp; identifies the track. It detected Mario Bros Overworld track! XD&lt;br /&gt;     &lt;/li&gt;       &lt;li&gt;TaskPanel: Lists and kills background apps. Can be configured to auto kill background apps&lt;br /&gt;     &lt;/li&gt;       &lt;li&gt;Ultra Notes: I take a lot of notes. This prog makes it easy to write them and later SMS/email them&lt;br /&gt;     &lt;/li&gt;       &lt;li&gt;DailyStrip: Follow your favorite comics! Dilbert, ftw!&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;   &lt;h1&gt;       Other&lt;br /&gt;   &lt;/h1&gt;     These are features that didn't belong elsewhere:&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Phone vibrates once when a call is picked up. No need to keep holding to your ear waiting for an answer!&lt;br /&gt;     &lt;/li&gt;     &lt;/ul&gt;         &lt;ul&gt;&lt;li&gt;When the battery is low, the charging orange LED blinks once a second instead of flashing the screen. Nokia's communicator would flash the screen and make beep noises, draining even more precious power!!!&lt;br /&gt;     &lt;/li&gt;     &lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Trackball has white light. Light can be configured for notifications.&lt;/li&gt;     &lt;/ul&gt;&lt;ul&gt;&lt;li&gt;When an SMS is received, the phone rings and the trackball flashes smoothly in white. The screen stays turned off. (great power saver).&lt;br /&gt;     &lt;/li&gt;     &lt;/ul&gt;         &lt;ul&gt;&lt;li&gt;You can put a phone call on hold or mute it.&lt;br /&gt;     &lt;/li&gt;     &lt;/ul&gt;     &lt;ul&gt;&lt;li&gt;I recommend that you press the home button once a call is established to avoid ending the call by mistake by holding the phone close to your cheek.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Accessing the micro-SD card slot requires removing the cover only not the battery.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/div&gt;   &lt;h1&gt;     Conclusion&lt;br /&gt; &lt;/h1&gt;   I love the phone, software and hardware. I find the fact that 180MB out of 288MB are gone annoying. I may switch to a vanilla (non-custom) Android interface just to see how much memory I'd save and whether I'd lose a lot of functionality or not.&lt;br /&gt;&lt;br /&gt;I'm not happy that HTC's Syn program is restricted to 32-bit Windows only, but for whatever I'm synchronizing, it's already on a Google ID, so I'm not depending on a machine and fearing loss in case of a disk crash or a format.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-8785643756020959347?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/8785643756020959347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=8785643756020959347' title='22 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/8785643756020959347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/8785643756020959347'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2009/12/htc-hero-review.html' title='HTC Hero Review'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>22</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-2645360696837329087</id><published>2009-11-16T02:24:00.003+03:00</published><updated>2009-11-16T03:03:47.768+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='spam'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='economy'/><title type='text'>SPAM: Economics and Prevention</title><content type='html'>SPAM is unsolicited mail delivered to you, wasting your time and consuming resources. This applies to both physical mail and electronic ones (email).&lt;br /&gt;&lt;br /&gt;While you're typically protected by laws against physical SPAM to a certain extent, email is uncontrollable and has been on the rise ever since it started some time in the 1990's.&lt;br /&gt;&lt;br /&gt;Many preventative measures have been taken throughout time to fight email SPAM, but it has only worked on marginally classifying and separating your email from SPAM.&lt;br /&gt;&lt;br /&gt;One should ask: Why do we keep receiving SPAM? How come it never stops?&lt;br /&gt;A simple answer is that it's being funded!&lt;br /&gt;&lt;br /&gt;The rise of malicious software known as worms has given the option for mischievous companies or groups to take control of thousands of user machines and use them to send SPAM to millions of users around the world.&lt;br /&gt;&lt;br /&gt;Those shady companies or groups are charging money to promote products of other companies. Mostly drugs but may include promotions to other products.&lt;br /&gt;&lt;br /&gt;A simple conclusion is that if you penalize companies that pay for shady groups to use such abusive methods, SPAM would almost disappear.&lt;br /&gt;&lt;br /&gt;If governments that house such companies refuse too cooperate, ISPs worldwide can contribute to major SPAM reduction by making it a national law to ensure that your computers at home and company are clean.&lt;br /&gt;&lt;br /&gt;ISPs can monitor traffic patterns and identify malicious traffic, after that, it should be obliged to notify users that are suspected to be infected and as such, those users must clean their machines or be fined, and if they don't comply, inflate the fine and so on.&lt;br /&gt;&lt;br /&gt;When taking such measures, governments allowing shady companies to operate and pay for SPAM groups to run can be blacklisted, by blocking all IP addresses from that country.&lt;br /&gt;&lt;br /&gt;This has another powerful side effect: When blocking IP addresses of a whole country, businesses in that country will be severely affected and will demand law enforcement of criminalizing the offenders responsible for SPAM and those funding it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-2645360696837329087?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/2645360696837329087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=2645360696837329087' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/2645360696837329087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/2645360696837329087'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2009/11/spam-economics-and-prevention.html' title='SPAM: Economics and Prevention'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-8959172525625078811</id><published>2009-11-08T06:19:00.004+03:00</published><updated>2009-11-08T06:39:43.353+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='extract'/><category scheme='http://www.blogger.com/atom/ns#' term='nbu'/><category scheme='http://www.blogger.com/atom/ns#' term='proprietary'/><category scheme='http://www.blogger.com/atom/ns#' term='nokia'/><category scheme='http://www.blogger.com/atom/ns#' term='vmg'/><category scheme='http://www.blogger.com/atom/ns#' term='sms'/><title type='text'>Companies And The Love of Proprietary Formats</title><content type='html'>I mentioned in &lt;a href="http://mbhtech.blogspot.com/2008/07/extracting-sms-messages-from-nokia-nbu.html"&gt;an old post&lt;/a&gt; how to extract SMS messages from a Nokia .NBU backup file. Today I had to suffer, and sacrifice 2 bunnies and a goat, to get 1 SMS messages that was saved in the Drafts directory in one of the backup files I had of my, piece of crap, Nokia 9500.&lt;br /&gt;&lt;br /&gt;The reason I couldn't use the same software in my old post is that it couldn't see the Drafts directory, and since Nokia had decided to create its own format for backup files and NOT provide ANY extraction functionality, I had to look for programs to do that for me.&lt;br /&gt;&lt;br /&gt;How long has it been for companies like Nokia in the market so far? Or for any mobile phone maker company for that matter? For the sake of simplicity, let's say 5 years.&lt;br /&gt;In those 5 years, I'm yet to see a company that makes mobile phones, and provide software that properly backups, restores and is able to extract data from those bloody backup files!&lt;br /&gt;&lt;br /&gt;I could never understand why such companies decided to lock up OUR data in a weird format. To make it worse, they won't even provide decent functionality in their crippled softwares!&lt;br /&gt;&lt;br /&gt;Apart from Nokia's mindless lack of extraction features, Sony has decided that SMS is not important and as such, it will not be backed up for you. Oh, guess what, you won't notice until after you've formatted your mobile and in the process of restoring what you think is a backup.&lt;br /&gt;&lt;br /&gt;My sister had lost all her SMS messages because of such idiocy. Luckily, she didn't have messages with critical information. Learning from that lesson, I searched for FREE software that did a proper &amp;amp; decent full backup when the time came to backup my mom's mobile. (My mother would've slaughtered me and grilled me if any of her messages disappeared)&lt;br /&gt;&lt;br /&gt;I seriously don't understand the mentality of the monkeys that take decisions on locking the data format. You'd think they might sell other software that provides the lacking features, but they'll be happy to prove you wrong and tell you that you can't get your data unless you restore it. If you are able to.&lt;br /&gt;&lt;br /&gt;In the end of this rant, I'd like to say to both Nokia and Sony: Burn in hell you idiots. I'll never buy a phone from you ever again.&lt;br /&gt;&lt;br /&gt;P.S.: I used a program called &lt;a href="http://sourceforge.net/projects/nbuexplorer/"&gt;NBUExplorer&lt;/a&gt; to extract an SMS from the Drafts directory, which was in another proprietary format (.VMG). I double-clicked that .VMG file and it opened with Nokia's PC Suite and I copid the text to a normal text file. NBUExplorer is free &amp;amp; open source.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-8959172525625078811?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/8959172525625078811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=8959172525625078811' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/8959172525625078811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/8959172525625078811'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2009/11/companies-and-love-of-proprietary.html' title='Companies And The Love of Proprietary Formats'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-3666041445442659824</id><published>2009-10-28T03:48:00.004+03:00</published><updated>2009-10-28T04:05:17.119+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='advice'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><title type='text'>Facebook Privacy: Where Is It?</title><content type='html'>I'm new to Facebook. I didn't like it before and I still don't like it. One of the reasons that I dislike it is its weird, absurd and abusive privacy laws.&lt;br /&gt;&lt;br /&gt;I have no apps or games lurking in my profile. I'm part of 2 groups so far. The other day I wanted to join a fan-page, and I was shocked at the message that showed up:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/SueV3uyodAI/AAAAAAAAANc/irV6Epbp8FI/s1600-h/fb_abuse.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 270px;" src="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/SueV3uyodAI/AAAAAAAAANc/irV6Epbp8FI/s320/fb_abuse.png" alt="" id="BLOGGER_PHOTO_ID_5397447463112569858" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I simply clicked a poll asking which Operating System I use. It asked me the following:&lt;br /&gt;"Allowing Poll access will let it pull your profile information, photos, your friends' info, and other content that it requires to work.&lt;br /&gt;Allow or cancel"&lt;br /&gt;&lt;br /&gt;I find it &lt;span style="font-weight: bold;"&gt;very&lt;/span&gt; hard to understand why a poll application &lt;span style="font-weight: bold;"&gt;needs&lt;/span&gt; to pull my profile along my friends'! It's a stinky poll! All it could require is my name and whatever public information I've opted to share.&lt;br /&gt;&lt;br /&gt;The fact that Facebook defaults to leaving every privacy option set to Public isn't enough deter people apparently.&lt;br /&gt;&lt;br /&gt;I should note that even when you leave the fan-page, game or application, your information is still retained by the maintainers of that application. It is &lt;span style="font-weight: bold;"&gt;not deleted&lt;/span&gt;!&lt;br /&gt;&lt;br /&gt;I haven't joined any games, and will not, because of such absurd privacy &lt;span style="font-weight: bold;"&gt;violations&lt;/span&gt;. Maybe if people paid enough attention, Facebook would actually do something about it. Hopefully. One day. Eventually?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-3666041445442659824?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/3666041445442659824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=3666041445442659824' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/3666041445442659824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/3666041445442659824'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2009/10/facebook-privacy-where-is-it.html' title='Facebook Privacy: Where Is It?'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_9_Sv3ZsvT4I/SueV3uyodAI/AAAAAAAAANc/irV6Epbp8FI/s72-c/fb_abuse.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-1234878613256703336</id><published>2009-09-08T05:16:00.002+03:00</published><updated>2009-09-13T02:23:54.091+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='volume group'/><category scheme='http://www.blogger.com/atom/ns#' term='raid'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='filesystem'/><category scheme='http://www.blogger.com/atom/ns#' term='hard disk'/><category scheme='http://www.blogger.com/atom/ns#' term='lvm'/><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='storage'/><category scheme='http://www.blogger.com/atom/ns#' term='HDD'/><category scheme='http://www.blogger.com/atom/ns#' term='benchmark'/><title type='text'>Software RAID vs. LVM: Quick Speed Test</title><content type='html'>&lt;h1&gt;Table of Contents&lt;/h1&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="writely-toc" id="WritelyTableOfContents" toctype="decimal+disc"&gt;&lt;ol class="writely-toc-decimal"&gt;&lt;li&gt;&lt;a target="_self" href="#Introduction"&gt;Introduction&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="#System_Setup"&gt;System Setup&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="#Speed_Test_Methods"&gt;Speed Test Methods&lt;/a&gt;&lt;ol style="margin-left: 0pt;" class="writely-toc-subheading writely-toc-disc"&gt;&lt;li&gt;&lt;a target="_self" href="#hdparm"&gt;hdparm&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="#dd"&gt;dd&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="#Speed_Test_1_RAID_vs_LVM"&gt;Speed Test #1: RAID vs. LVM&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="#Speed_Test_2_Disks_Separately"&gt;Speed Test #2: Disks Separately&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="#Conclusion"&gt;Conclusion&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br&gt;&lt;h1&gt;&lt;a id="Introduction" name="Introduction"&gt;&lt;/a&gt;Introduction&lt;/h1&gt;Currently, I have a fileserver that is setup this way:&lt;br&gt;&lt;br&gt;Filesystem&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ^&lt;br&gt;Logical Volume Manager&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ^&lt;br&gt;Software RAID Arrays&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ^&lt;br&gt;Physical Disks&lt;br&gt;&lt;br&gt;In my case, the LVM is an extra layer and it's not useful since I only have one physical entity that belongs to a Volume Group: A single RAID5 array.&lt;br&gt;So you could put your filesystem on top of a Logical Volume, or directly on the RAID array device. It depends on how you want to manage your data and devices.&lt;br&gt;&lt;br&gt;So, is this hampering performance? The tables below will do the talking, but first: the setup.&lt;br&gt;&lt;br&gt;&lt;h1&gt;&lt;a id="System_Setup" name="System_Setup"&gt;&lt;/a&gt;System Setup&lt;/h1&gt;&lt;div&gt;&lt;table class="zeroBorder" id="p.hx" border="0" bordercolor="#000000" cellpadding="5" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Processor&lt;br&gt;&lt;/td&gt;&lt;td&gt;Intel Pentium Dual CPU E2160 @ 1.80GHz&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Motherboard&lt;/td&gt;&lt;td&gt;MSI (MS-7514) P43 Neo3-F&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;td&gt;North Bridge: Intel P43&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;td&gt;South Bridge: Intel ICH10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SATA Controller 1&lt;br&gt;&lt;/td&gt;&lt;td&gt;JMicron 20360/20363 AHCI Controller&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;td&gt;AHCI Mode: Enabled&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;td&gt;Ports: 6-7&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Sata Controller 2&lt;br&gt;&lt;/td&gt;&lt;td&gt;82801JI (ICH10 Family) SATA AHCI Controller&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;td&gt;Ports: 0-5&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;RAM&lt;br&gt;&lt;/td&gt;&lt;td&gt;1GB @ CL 5&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Video Card&lt;br&gt;&lt;/td&gt;&lt;td&gt;GeForce 7300 GS&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Disk sda&lt;br&gt;&lt;/td&gt;&lt;td&gt;WDC WD10EACS-00D6B1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Disk sdb&lt;br&gt;&lt;/td&gt;&lt;td&gt;WDC WD10EACS-00D6B1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Disk sdc&lt;br&gt;&lt;/td&gt;&lt;td&gt;WDC WD10EACS-00ZJB0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Disk sdd&lt;br&gt;&lt;/td&gt;&lt;td&gt;WDC WD10EADS-65L5B1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Disk sde&lt;br&gt;&lt;/td&gt;&lt;td&gt;WDC WD10EADS-65L5B1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Disk sdf&lt;br&gt;&lt;/td&gt;&lt;td&gt;MAXTOR STM31000340AS&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Disk sdg&lt;br&gt;&lt;/td&gt;&lt;td&gt;WDC WD10EACS-00ZJB0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Disk sdh&lt;br&gt;&lt;/td&gt;&lt;td&gt;WDC WD10EADS-00L5B1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Disk sdi&lt;br&gt;&lt;/td&gt;&lt;td&gt;Hitachi HDS721680PLAT80 (OS)&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Chunk size&lt;br&gt;&lt;/td&gt;&lt;td&gt;256kB&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVM: Physical Extent Size&lt;br&gt;&lt;/td&gt;&lt;td&gt;1GB&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LVM: Read ahead sectors&lt;br&gt;&lt;/td&gt;&lt;td&gt;Auto (set to 256)&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br&gt;&lt;h1&gt;&lt;a id="Speed_Test_Methods" name="Speed_Test_Methods"&gt;&lt;/a&gt;Speed Test Methods&lt;/h1&gt;A quick and easy way to run a speed test is by using a tool called &lt;a title="hdparm" href="http://en.wikipedia.org/wiki/Hdparm" id="gqjk"&gt;hdparm&lt;/a&gt; and another called &lt;a title="dd" href="http://en.wikipedia.org/wiki/Dd_%28Unix%29" id="n6h2"&gt;dd&lt;/a&gt;.&lt;br&gt;Note that these two utilities don't take the filesystem performance into account, as they read directly from the device, not a certain file. It doesn't matter in this case, as I'm about to show comparisons to show the magnitude of difference speed only, not show very exact results ;)&lt;br&gt;&lt;br&gt;&lt;h2&gt;&lt;a id="hdparm" name="hdparm"&gt;&lt;/a&gt;&lt;b&gt;hdparm&lt;/b&gt;&lt;/h2&gt;&lt;b&gt;hdparm -tT /dev/xxx&lt;/b&gt;&lt;br&gt;-t: Perform timings of device reads for benchmark and comparison purposes.&lt;br&gt;Displays&amp;nbsp; the&amp;nbsp; speed of reading through the buffer cache to the disk without any prior caching of data.&lt;br&gt;This measurement is an indication of how fast the drive can sustain sequential data reads under Linux, without any filesystem overhead.&lt;br&gt;&lt;br&gt;-T: Perform timings of cache reads for benchmark and comparison purposes.&lt;br&gt;This displays the speed of reading directly from the Linux buffer cache without disk access.&lt;br&gt;This measurement is essentially an indication of the throughput of the processor, cache, and memory of the system under test.&lt;br&gt;&lt;br&gt;&lt;h2&gt;&lt;a id="dd" name="dd"&gt;&lt;/a&gt;&lt;b&gt;dd&lt;/b&gt;&lt;/h2&gt;&lt;b&gt;dd if=/dev/xxx of=/dev/null bs=10M count=400&lt;/b&gt;&lt;br&gt;This will read from the device and dump the data to a null device (just reading). Block size=10 Megabytes (2^20).&lt;br&gt;This will read 4GB of data. I specified 4GB to make sure that it surpasses the RAM size.&lt;br&gt;&lt;br&gt;Before running dd, I flushed the read cache by entering: hdparm -f /dev/sd[a-h], which flushes the cache of all RAID disks.&lt;br&gt;&lt;br&gt;&lt;h1&gt;&lt;a id="Speed_Test_1_RAID_vs_LVM" name="Speed_Test_1_RAID_vs_LVM"&gt;&lt;/a&gt;Speed Test #1: RAID vs. LVM&lt;/h1&gt;&lt;div&gt;&lt;table class="zeroBorder" id="mxwf" border="0" bordercolor="#000000" cellpadding="3" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" align="left"&gt;LVM&lt;br&gt;&lt;/td&gt;&lt;td&gt;root@Adam:~/mdadm-3.0# dd if=/dev/mapper/arrays-storage of=/dev/null bs=10M count=400&lt;br&gt;2097152000 bytes (2.1 GB) copied, 41.1147 s, &lt;b&gt;43.0 MB/s&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;td&gt;root@Adam:~/mdadm-3.0# hdparm -tT /dev/mapper/arrays-storage&lt;br&gt;&amp;nbsp;Timing cached reads:&amp;nbsp;&amp;nbsp; 1926 MB in&amp;nbsp; 2.00 seconds = 962.65 MB/sec&lt;br&gt;&amp;nbsp;Timing buffered disk reads:&amp;nbsp; 146 MB in&amp;nbsp; 3.00 seconds =&amp;nbsp; &lt;b&gt;48.62 MB/sec&lt;/b&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;nbsp;&lt;br&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" align="left"&gt;RAID&lt;br&gt;&lt;/td&gt;&lt;td&gt;root@Adam:~/mdadm-3.0# dd if=/dev/md0 of=/dev/null bs=10M count=400&lt;br&gt;2097152000 bytes (2.1 GB) copied, 10.9341 s, &lt;b&gt;125 MB/s&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;td&gt;root@Adam:~/mdadm-3.0# hdparm -tT /dev/md0&lt;br&gt;Timing cached reads:&amp;nbsp;&amp;nbsp; 1998 MB in&amp;nbsp; 2.00 seconds = 998.73 MB/sec&lt;br&gt;Timing buffered disk reads:&amp;nbsp; 538 MB in&amp;nbsp; 3.01 seconds = &lt;b&gt;178.98 MB/sec&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br&gt;The above numbers are the average of 3 runs.&lt;br&gt;&lt;br&gt;&lt;h1&gt;&lt;a id="Speed_Test_2_Disks_Separately" name="Speed_Test_2_Disks_Separately"&gt;&lt;/a&gt;Speed Test #2: Disks Separately&lt;/h1&gt;root@Adam:~# for i in {a,b,c,d,e,f,g,h}; do dd if=/dev/sd"$i"1 of=/dev/null bs=10M count=400; done&lt;br&gt;root@Adam:~# for i in {a,b,c,d,e,f,g,h}; do hdparm -I /dev/sd"$i" | grep Firmware; done&lt;br&gt;&lt;br&gt;&lt;div&gt;&lt;table class="zeroBorder" id="uiy5" border="0" bordercolor="#000000" cellpadding="3" cellspacing="3"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Disk&lt;/b&gt;&lt;br&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Model&lt;/b&gt;&lt;br&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Firmware&lt;/b&gt;&lt;br&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Speed Test Result&lt;/b&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;sda&lt;br&gt;&lt;/td&gt;&lt;td&gt;WDC WD10EACS-00D6B1&lt;/td&gt;&lt;td&gt;01.01A01&lt;/td&gt;&lt;td&gt;46.3106 s, 90.6 MB/s&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;sdb&lt;br&gt;&lt;/td&gt;&lt;td&gt;WDC WD10EACS-00D6B1&lt;/td&gt;&lt;td&gt;01.01A01&lt;/td&gt;&lt;td&gt;48.6391 s, 86.2 MB/s&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;sdc&lt;br&gt;&lt;/td&gt;&lt;td&gt;WDC WD10EACS-00ZJB0&lt;/td&gt;&lt;td&gt;01.01B01&lt;/td&gt;&lt;td&gt;70.8184 s, 59.2 MB/s&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;sdd&lt;br&gt;&lt;/td&gt;&lt;td&gt;WDC WD10EADS-65L5B1&lt;/td&gt;&lt;td&gt;01.01A01&lt;/td&gt;&lt;td&gt;46.9733 s, 89.3 MB/s&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;sde&lt;br&gt;&lt;/td&gt;&lt;td&gt;WDC WD10EADS-65L5B1&lt;/td&gt;&lt;td&gt;01.01A01&lt;/td&gt;&lt;td&gt;44.2861 s, 94.7 MB/s&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;sdf&lt;br&gt;&lt;/td&gt;&lt;td&gt;MAXTOR STM31000340AS&lt;/td&gt;&lt;td&gt;MX15&lt;br&gt;&lt;/td&gt;&lt;td&gt;77.1797 s, 54.3 MB/s&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;sdg&lt;br&gt;&lt;/td&gt;&lt;td&gt;WDC WD10EACS-00ZJB0&lt;/td&gt;&lt;td&gt;01.01B01&lt;/td&gt;&lt;td&gt;50.5498 s, 83.0 MB/s&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;sdh&lt;br&gt;&lt;/td&gt;&lt;td&gt;WDC WD10EADS-00L5B1&lt;/td&gt;&lt;td&gt;01.01A01&lt;/td&gt;&lt;td&gt;46.747 s, 89.7 MB/s&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br&gt;As you can see, though sdc &amp;amp; sdg have the same model and firmware, their speed differs! I have no clue why and I searched in Western Digital's website for firmwares to download, but their site leads no where to any firmware download link.&lt;br&gt;&lt;br&gt;The Maxtor disk has a newer firmware released. I'll checkout its changelog before installing it. Also, as a precaution, I'll clone the Maxtor disk to sdg since it's not being used now; just in case the new firmware doesn't play nice!&lt;br&gt;&lt;br&gt;&lt;h1&gt;&lt;a id="Conclusion" name="Conclusion"&gt;&lt;/a&gt;Conclusion&lt;/h1&gt;From the above numbers, it's clear that LVM, in my setup, has crippled the performance by a huge margin (~66%). So for my next setup, I'm going to skip LVM and slap the filesystem directly on top of the RAID5 array.&lt;br&gt;&lt;br&gt;On one of my PCs (Adrenalin), I already have XFS filesystem running on top of the RAID array and LVM is not being used. I get double the speed of hard disks out of the array (140 MB/s) when tested it last year with hdparm.&lt;br&gt;&lt;br&gt;I don't claim that this is a typical problem of LVM. I did a quick search and didn't find numbers. I'm too lazy right now to find anything really. But I have the numbers on that MSI crap board (caused me so many problems with the SATA ports), and I'll skip LVM on that board. If I keep the board &amp;amp; not smash it to smithereens.&lt;br&gt;&lt;br&gt;Irrelevant note: I'm loving posting to my blog through Google Docs.&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-1234878613256703336?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/1234878613256703336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=1234878613256703336' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/1234878613256703336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/1234878613256703336'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2009/09/software-raid-vs-lvm-quick-speed-test_08.html' title='Software RAID vs. LVM: Quick Speed Test'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-8638707874062693910</id><published>2009-09-01T20:33:00.002+03:00</published><updated>2009-09-02T00:53:13.892+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='network'/><category scheme='http://www.blogger.com/atom/ns#' term='case mod'/><category scheme='http://www.blogger.com/atom/ns#' term='samba'/><category scheme='http://www.blogger.com/atom/ns#' term='nfs'/><category scheme='http://www.blogger.com/atom/ns#' term='storage'/><category scheme='http://www.blogger.com/atom/ns#' term='iscsi'/><title type='text'>Cheap Man's 40-Disk Storage Cluster</title><content type='html'>&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;p&gt;&lt;u&gt;&lt;b&gt;&lt;font size="5"&gt;Cheap Man's 40-Disk Storage Cluster&lt;/font&gt;&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;&lt;/div&gt;&lt;br&gt;&lt;b&gt;Table of Contents&lt;/b&gt;&lt;br&gt;&lt;div class="writely-toc" id="WritelyTableOfContents" toctype="decimal+decimal"&gt;&lt;ol class="writely-toc-decimal"&gt;&lt;li&gt;&lt;a target="_self" href="#Introduction_5966695360718671"&gt;Introduction&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="#Parts_and_Prices_9641833837887087"&gt;Parts and Prices&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="#Tools_5921840235647666"&gt;Tools&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="#Design_Diagram_6822058106795605"&gt;Design Diagram&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="#Assembly_22796498815199384"&gt;Assembly&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="#To_Cluster_Or_Not_To_Cluster_8107439610260819"&gt;To Cluster Or Not To Cluster&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="#Post_Assembly"&gt;Post Assembly&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a target="_self" href="#Last_Words_5067753585199051"&gt;Last Words&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br&gt;&lt;h2&gt;&lt;a id="Introduction_5966695360718671" name="Introduction_5966695360718671"&gt;&lt;/a&gt;Introduction&lt;/h2&gt;This is a computer case design that fits 40 disks, 4 motherboards, 5 power supplies, a bunch of fans and a gigabit switch.&lt;br&gt;&lt;br&gt;The main goal of this design is to use the cheapest parts with the least effort to assemble everything. So you could say this is also Poor/Lazy Man's Storage Cluster!&lt;br&gt;The area used is 60x60x50 (WxDxH) cm only.&lt;br&gt;&lt;br&gt;Keep in mind that this is a case not a whole system. I've only factored the price of the pieces used to put the case together.&lt;br&gt;&lt;h2&gt;&lt;a id="Parts_and_Prices_9641833837887087" name="Parts_and_Prices_9641833837887087"&gt;&lt;/a&gt;Parts and Prices&lt;br&gt;&lt;/h2&gt;&lt;div&gt;&lt;table class="zeroBorder" id="xvoc" width="100%" border="0" bordercolor="#ffffff" cellpadding="3" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Metal table with 2 net-like surfaces&lt;br&gt;&lt;/td&gt;&lt;td&gt;7 KD&lt;br&gt;&lt;/td&gt;&lt;td&gt;IKEA&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2x Wooden CD rack that fits 35 CDs&lt;br&gt;&lt;/td&gt;&lt;td&gt;2x3 KD&lt;br&gt;&lt;/td&gt;&lt;td&gt;IKEA&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Plastic drawer mat&lt;br&gt;&lt;/td&gt;&lt;td&gt;1.75 KD&lt;br&gt;&lt;/td&gt;&lt;td&gt;IKEA&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Rubber grooved floor mat (3mm thick)&lt;br&gt;&lt;/td&gt;&lt;td&gt;1.5 KD for 0.5 meter&lt;br&gt;&lt;/td&gt;&lt;td&gt;TrueValue&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Nylon Cable Ties (203x3.2mm)&lt;br&gt;&lt;/td&gt;&lt;td&gt;0.5 KD&lt;br&gt;&lt;/td&gt;&lt;td&gt;Family Hardware Store&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;i&gt;&lt;b&gt;Total&lt;/b&gt;&lt;/i&gt;&lt;br&gt;&lt;/td&gt;&lt;td&gt;&lt;i&gt;&lt;b&gt;16.75 KD&lt;/b&gt;&lt;/i&gt;&lt;br&gt;&lt;/td&gt;&lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br&gt;&lt;h2&gt;&lt;a id="Tools_5921840235647666" name="Tools_5921840235647666"&gt;&lt;/a&gt;Tools&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Hands&lt;/li&gt;&lt;li&gt;Foot&lt;/li&gt;&lt;li&gt;Long nose pliers&lt;/li&gt;&lt;li&gt;Scissors&lt;/li&gt;&lt;li&gt;Hammer (or anything that hammers)&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;h2&gt;&lt;a id="Design_Diagram_6822058106795605" name="Design_Diagram_6822058106795605"&gt;&lt;/a&gt;Design Diagram&lt;/h2&gt;&lt;div id="gxn1" style="text-align: left;"&gt;&lt;a href="http://docs.google.com/File?id=dfkcwsgj_2fkzwdjgq_b" target="_blank"&gt;&lt;img style="width: 640px; height: 437.379px;" src="http://docs.google.com/File?id=dfkcwsgj_2fkzwdjgq_b"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;In this diagram you see the measurements of each component and how they fit. When we put the disks inside the rack, there was an empty space of 4mm; we took care of that by using the rubber mat, which is 3mm thick on each side, totaling to 6mm, which helps holding the disks and serve as a shock absorber.&lt;br&gt;&lt;br&gt;The disk rack is made of wood and we have rubber mats inside, so you'd expect for heat to be trapped. Our work around is this:&lt;br&gt;&lt;ul&gt;&lt;li&gt;Choosing a rubber mat with grooves&lt;br&gt;&lt;/li&gt;&lt;li&gt;Inserting the disks heads down having the 2.5cm edges touching the rubber&lt;/li&gt;&lt;li&gt;Leaving space between disks&lt;br&gt;&lt;/li&gt;&lt;li&gt;Pushing the disks down till touching the metal table&lt;/li&gt;&lt;li&gt;Installing fans on the lower part of the table, blowing at the disks&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;Note that I have used Layout #1. Layout #2 was too cluttered and I didn't really think it through properly so I don't know if it's even possible. If you are able to squeeze more than 4 motherboards in that same table (or same dimensions), let me know!&lt;br&gt;&lt;br&gt;&lt;h2&gt;&lt;a id="Assembly_22796498815199384" name="Assembly_22796498815199384"&gt;&lt;/a&gt;Assembly&lt;/h2&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;Assemble lower shelf of table&lt;/b&gt;&lt;br&gt;&lt;div id="zru2" style="text-align: left;"&gt;&lt;a href="http://docs.google.com/File?id=dfkcwsgj_3dm283bhn_b" target="_blank"&gt;&lt;img style="width: 160px; height: 120px;" src="http://docs.google.com/File?id=dfkcwsgj_3dm283bhn_b"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Use foot to break back-panel of CD racks&lt;/b&gt;&lt;br&gt;&lt;div id="vlxa" style="text-align: left;"&gt;&lt;a href="http://docs.google.com/File?id=dfkcwsgj_4hgdxj7fb_b" target="_blank"&gt;&lt;img style="width: 160px; height: 213.333px;" src="http://docs.google.com/File?id=dfkcwsgj_4hgdxj7fb_b"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div id="g_fu" style="text-align: left;"&gt;&lt;a href="http://docs.google.com/File?id=dfkcwsgj_576rg2dvc_b" target="_blank"&gt;&lt;img style="width: 160px; height: 119.953px;" src="http://docs.google.com/File?id=dfkcwsgj_576rg2dvc_b"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Hammer the metal pins of the CD racks inwards&lt;/b&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Point the side that has the metal pins towards table surface (keeps wood fragments away from you)&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Tie the rack to the table using the cable ties&lt;/b&gt;&lt;br&gt;&lt;div id="gfim" style="text-align: left;"&gt;&lt;a href="http://docs.google.com/File?id=dfkcwsgj_6fx2n6pxd_b" target="_blank"&gt;&lt;img style="width: 160px; height: 213.333px;" src="http://docs.google.com/File?id=dfkcwsgj_6fx2n6pxd_b"&gt;&lt;/a&gt;&lt;/div&gt;&lt;i&gt;Note: We assembled the upper surface but worked on the lower one later and kept the upper free for future motherboards.&lt;/i&gt;&lt;br&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Cut 11 lines (in a group) of the rubber mat&lt;/b&gt;&lt;br&gt;&lt;div id="gmis" style="text-align: left;"&gt;&lt;a href="http://docs.google.com/File?id=dfkcwsgj_7gfzzm2cq_b" target="_blank"&gt;&lt;img style="width: 160px; height: 213.333px;" src="http://docs.google.com/File?id=dfkcwsgj_7gfzzm2cq_b"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div id="eu7d" style="text-align: left;"&gt;&lt;a href="http://docs.google.com/File?id=dfkcwsgj_8g23qwdgk_b" target="_blank"&gt;&lt;img style="width: 160px; height: 85.5205px;" src="http://docs.google.com/File?id=dfkcwsgj_8g23qwdgk_b"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Attach the rubber mat to a side and tie it down. Do the same for the other side&lt;/b&gt;&lt;br&gt;&lt;div id="lt9x" style="text-align: left;"&gt;&lt;a href="http://docs.google.com/File?id=dfkcwsgj_9c4c925gn_b" target="_blank"&gt;&lt;img style="width: 160px; height: 202.133px;" src="http://docs.google.com/File?id=dfkcwsgj_9c4c925gn_b"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div id="xy11" style="text-align: left;"&gt;&lt;a href="http://docs.google.com/File?id=dfkcwsgj_10hd4jqrd4_b" target="_blank"&gt;&lt;img style="width: 160px; height: 213.333px;" src="http://docs.google.com/File?id=dfkcwsgj_10hd4jqrd4_b"&gt;&lt;/a&gt;&lt;/div&gt;We have cut out the extra edges shown in the first picture to reduce heat contraption.&lt;br&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;If you want to have a separate power supply unit (PSU) for fans, attach it to the bottom of the lower surface&lt;/b&gt;&lt;br&gt;&lt;div id="mjie" style="text-align: left;"&gt;&lt;a href="http://docs.google.com/File?id=dfkcwsgj_11fpfj7kfh_b" target="_blank"&gt;&lt;img style="width: 160px; height: 120px;" src="http://docs.google.com/File?id=dfkcwsgj_11fpfj7kfh_b"&gt;&lt;/a&gt;&lt;/div&gt;&lt;i&gt;Note: I'll tell you later how to turn on the PSU without a motherboard (jump-starting).&lt;br&gt;&lt;/i&gt;If you're going to run anything at the bottom, now is the time to attach them. You won't be able to do it later on!&lt;br&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Put the power supplies in place and tie them (make sure it's touching the metal table)&lt;/b&gt;&lt;br&gt;&lt;div id="i_tj" style="text-align: left;"&gt;&lt;a href="http://docs.google.com/File?id=dfkcwsgj_12cfdgcxcj_b" target="_blank"&gt;&lt;img style="width: 160px; height: 120px;" src="http://docs.google.com/File?id=dfkcwsgj_12cfdgcxcj_b"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Cut plastic mat to fit rest of table area and tie it to the table. Use the nail to punch holes&lt;/b&gt;&lt;br&gt;&lt;div id="kaq8" style="text-align: left;"&gt;&lt;a href="http://docs.google.com/File?id=dfkcwsgj_13ft5hrsgb_b" target="_blank"&gt;&lt;img style="width: 160px; height: 120px;" src="http://docs.google.com/File?id=dfkcwsgj_13ft5hrsgb_b"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Punch extra holes for the motherboards and don't tie the motherboards too hard!&lt;/b&gt;&lt;br&gt;&lt;div id="hbfq" style="text-align: left;"&gt;&lt;a href="http://docs.google.com/File?id=dfkcwsgj_14f7xs79cc_b" target="_blank"&gt;&lt;img style="width: 160px; height: 120px;" src="http://docs.google.com/File?id=dfkcwsgj_14f7xs79cc_b"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div id="ab.i" style="text-align: left;"&gt;&lt;a href="http://docs.google.com/File?id=dfkcwsgj_15cdqw2gvp_b" target="_blank"&gt;&lt;img style="width: 160px; height: 120px;" src="http://docs.google.com/File?id=dfkcwsgj_15cdqw2gvp_b"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Tie fans below the disk rack(s) and connect them in serial to a PSU&lt;/b&gt;&lt;br&gt;&lt;div id="clb5" style="text-align: left;"&gt;&lt;a href="http://docs.google.com/File?id=dfkcwsgj_16ctq762dw_b" target="_blank"&gt;&lt;img style="width: 160px; height: 120px;" src="http://docs.google.com/File?id=dfkcwsgj_16ctq762dw_b"&gt;&lt;/a&gt;&lt;/div&gt;&lt;i&gt;Note: We made a mistake above and tied the fans in the opposite direction of the motherboard and were too lazy to reposition them.&lt;/i&gt;&lt;br&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Slap in the hard disk drives (HDDs) and hook them to the motherboard(s)&lt;/b&gt;&lt;br&gt;&lt;div id="s1my" style="text-align: left;"&gt;&lt;a href="http://docs.google.com/File?id=dfkcwsgj_17cqjw2pcz_b" target="_blank"&gt;&lt;img style="width: 160px; height: 120px;" src="http://docs.google.com/File?id=dfkcwsgj_17cqjw2pcz_b"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Powering on&lt;/b&gt;&lt;br&gt;To power on a motherboard, you could either use a power switch (or make one), or enable &lt;a title="Wake-up On LAN" href="http://en.wikipedia.org/wiki/Wake-on-LAN" id="v7vz"&gt;Wake-up On LAN&lt;/a&gt; (WOL) from the BIOS (assuming your motherboard supports it. You'd need to know the &lt;a title="MAC address" href="http://en.wikipedia.org/wiki/MAC_address" id="qw6y"&gt;MAC address&lt;/a&gt; of your LAN port.&lt;br&gt;&lt;div id="g5u8" style="text-align: left;"&gt;&lt;a href="http://docs.google.com/File?id=dfkcwsgj_18gghv5z66_b" target="_blank"&gt;&lt;img style="width: 160px; height: 120px;" src="http://docs.google.com/File?id=dfkcwsgj_18gghv5z66_b"&gt;&lt;/a&gt;&lt;/div&gt;We enabled WOL but it didn't work for some reason. Crappy MSI board.&lt;br&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;If your motherboard doesn't have a built-in video/graphics card, you'll need to bend the tip of the graphics card you're about to attach&lt;/b&gt;&lt;br&gt;&lt;div id="fbq_" style="text-align: left;"&gt;&lt;a href="http://docs.google.com/File?id=dfkcwsgj_19gcbcmwg2_b" target="_blank"&gt;&lt;img style="width: 160px; height: 120px;" src="http://docs.google.com/File?id=dfkcwsgj_19gcbcmwg2_b"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div id="giml" style="text-align: left;"&gt;&lt;a href="http://docs.google.com/File?id=dfkcwsgj_20dcr9gbcm_b" target="_blank"&gt;&lt;img style="width: 160px; height: 213.333px;" src="http://docs.google.com/File?id=dfkcwsgj_20dcr9gbcm_b"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Almost done. Attach the upper surface and make sure that the rack is facing the opposite side to the one on the lower surface, so that the fans don't hit the cables&lt;/b&gt;&lt;br&gt;&lt;div id="ko7-" style="text-align: left;"&gt;&lt;a href="http://docs.google.com/File?id=dfkcwsgj_21f5rxsrgj_b" target="_blank"&gt;&lt;img style="width: 160px; height: 120px;" src="http://docs.google.com/File?id=dfkcwsgj_21f5rxsrgj_b"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div id="os:a" style="text-align: left;"&gt;&lt;a href="http://docs.google.com/File?id=dfkcwsgj_22cdwxpmpv_b" target="_blank"&gt;&lt;img style="width: 160px; height: 120px;" src="http://docs.google.com/File?id=dfkcwsgj_22cdwxpmpv_b"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;Make sure to double check on the HDD cables after attaching the upper surface.&lt;br&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Jump-starting a PSU&lt;/b&gt;&lt;br&gt;I stripped a cable wrapper that had a metal piece inside it and stuck it in the proper pins. This way, I control the fan PSU using the ON/OFF switch at the back; no need for a separate power switch. Unfortunately we didn't take pictures of that, but here are some references:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a title="Gideon Tech" href="http://www.gideontech.com/content/articles/196/1" id="g12o"&gt;Gideon Tech&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Aph Networks" href="http://aphnetworks.com/lounge/turn_on_psu_without_motherboard_the_paperclip_trick" id="i4hn"&gt;Aph Networks&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt;&lt;br&gt;&lt;h2&gt;&lt;a id="To_Cluster_Or_Not_To_Cluster_8107439610260819" name="To_Cluster_Or_Not_To_Cluster_8107439610260819"&gt;&lt;/a&gt;To Cluster Or Not To Cluster&lt;/h2&gt;Now that you've had your motherboards all hooked up most likely to a gigabit switch, there are different ways to use all this storage capacity:&lt;br&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;Make them appear as a single storage unit&lt;/b&gt;&lt;br&gt;This can be done through the use of &lt;a title="iSCSI" href="http://en.wikipedia.org/wiki/ISCSI" id="vxwp"&gt;iSCSI&lt;/a&gt;. It allows you to expose either each single hard disk or a whole RAID array as a single storage device to another machine over Ethernet. This way you can combine all the disks/arrays under one machine and create a &lt;a title="LV" href="http://en.wikipedia.org/wiki/Logical_volume_management" id="ilwz"&gt;LV&lt;/a&gt; (Logical Volume not Louis Vuitton) then the filesystem on top of the LV.&lt;br&gt;I don't know how to do this on Windows. I can help you do this on Linux though. If you did this on Windows, drop me an email and I'll link your page.&lt;br&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Use them separately&lt;/b&gt;&lt;br&gt;Well this is a no-brainer: Just assign a different IP for each machine and expose each storage through Samba (on Linux) or share the directories on Windows.&lt;br&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;A mix between the above two&lt;/b&gt;&lt;br&gt;Using iSCSI puts a lot of risk on the data because if one motherboard, or multiple disks fail (in case of using RAID5) then you lose all your data. For good. And since we have such a good history of increasing and managing the storage smoothly (NOT!), we decided to not use iSCSI. Maybe if we had a better history, we'd gone with it.&lt;br&gt;&lt;br&gt;What we're going to do is keep the existing Samba share and move the Anime directory (2.4TB) to another machine. We then mount the other machine using NFS over the existing Anime directory. Mounting a directory over another is called shadowing.&lt;br&gt;For this to work properly, you need to create the usernames on all systems with the same IDs, otherwise you'll have a heck of a time with permissions.&lt;br&gt;&lt;br&gt;Now, the users still access the same old single IP and can still access all data, though distributed cross systems. If a machine's disks died, at least we won't lose all the data.&lt;br&gt;&lt;br&gt;We don't yet have the 2nd motherboard, so I'll write about this in detail when we get it and do the setup.&lt;br&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br&gt;&lt;h2&gt;&lt;a id="Post_Assembly" name="Post_Assembly"&gt;&lt;/a&gt;Post Assembly&lt;/h2&gt;After assembling and running the machine, it's been put under heavy load and these are the temperature readings:&lt;br&gt;/dev/sda: WDC WD10EACS-00D6B1: 27°C&lt;br&gt;/dev/sdb: WDC WD10EACS-00D6B1: 29°C&lt;br&gt;/dev/sdc: WDC WD10EACS-00ZJB0: 29°C&lt;br&gt;/dev/sdd: WDC WD10EADS-65L5B1: 28°C&lt;br&gt;/dev/sde: WDC WD10EADS-65L5B1: 29°C&lt;br&gt;/dev/sdf: MAXTOR STM31000340AS: 29°C&lt;br&gt;/dev/sdg: WDC WD10EACS-00ZJB0: 27°C&lt;br&gt;/dev/sdh: WDC WD10EADS-00L5B1: 26°C&lt;br&gt;&lt;br&gt;This is way much better than before! They used to be in the 40's range!!&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;h2&gt;&lt;a id="Last_Words_5067753585199051" name="Last_Words_5067753585199051"&gt;&lt;/a&gt;Last Words&lt;/h2&gt;&lt;/div&gt;Our baby is running fine now, and for the first time we haven't faced problems, thank God!&lt;br&gt;&lt;br&gt;If you have any questions or comments, let us know. I suggest you subscribe via email when commenting, or leave a blank comment to just subscribe to stay posted on updates when adding the 2nd motherboard.&lt;br&gt;&lt;br&gt;Good luck and don't blame us if you get electrocuted ^_^'&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-8638707874062693910?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/8638707874062693910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=8638707874062693910' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/8638707874062693910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/8638707874062693910'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2009/09/cheap-man-40-disk-storage-cluster.html' title='Cheap Man&amp;#39;s 40-Disk Storage Cluster'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-4748769394540088967</id><published>2009-08-22T11:39:00.006+03:00</published><updated>2009-08-22T14:27:39.278+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pbx'/><category scheme='http://www.blogger.com/atom/ns#' term='kuwait'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='voip'/><category scheme='http://www.blogger.com/atom/ns#' term='ip telephony'/><category scheme='http://www.blogger.com/atom/ns#' term='asterisk'/><category scheme='http://www.blogger.com/atom/ns#' term='caller id'/><title type='text'>HOWTO: Asterisk and FreePBX using PBX in a Flash</title><content type='html'>&lt;h3&gt;Table of Contents&lt;/h3&gt;&lt;pre&gt;Introduction&lt;br /&gt;0) Requirements&lt;br /&gt;1) Download the ISO file&lt;br /&gt;2) Preparing the PC&lt;br /&gt;3) Installation&lt;br /&gt;  3.1) Phase 1: From CD&lt;br /&gt;  3.2) Phase 2: From the Internet&lt;br /&gt;4) Networking&lt;br /&gt;5) Install latest patches and scripts&lt;br /&gt;6) Passwords and System Administration&lt;br /&gt;7) Prevent Being Blocked&lt;br /&gt;8) Configuring Your PCI Card(s)&lt;br /&gt;  8.1) Configure PCI cards (Asterisk 1.4 + Zapata)&lt;br /&gt;  8.2) Configure PCI cards (Asterisk 1.6 + Dahdi)&lt;br /&gt;9) Caller ID and Busy Detect Configuration&lt;br /&gt;10) Updating Asterisk and FreePBX Modules&lt;br /&gt;11) Tips and Tricks&lt;br /&gt;12) Resources and References&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Introduction&lt;/h3&gt;&lt;br /&gt;This is a guide (HOWTO) on how to install PBX in a Flash (PiaF) and do the initial hardware and software configurations required so that you could start doing your dialplans through the web-interface later on.&lt;br /&gt;&lt;br /&gt;This HOWTO will not include steps on configuring extensions, trunks and the like. That will be in another post.&lt;br /&gt;&lt;br /&gt;PiaF is a Linux distribution which makes installing and configuring Asterisk and FreePBX an easy task. It's similar to trixbox, only it has no history of security risks and trojans!&lt;br /&gt;&lt;br /&gt;It's to be noted that PiaF downloads and compiles from source code. If you have no idea what that means, you'll find out later.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: white"&gt;This is a dirty version of the guide. I couldn't get the styling to work properly.&lt;br /&gt;Better versions: &lt;a href="http://docs.google.com/View?id=dfkcwsgj_0gmhvbzg5"&gt;HTML Page&lt;/a&gt; or &lt;a href="https://docs.google.com/Doc?docid=0AbkOGqWtHc4NZGZrY3dzZ2pfMGdtaHZiemc1&amp;hl=en"&gt;Google Document&lt;/a&gt; (&lt;a href="https://docs.google.com/MiscCommands?command=save_print_settings&amp;docID=0AbkOGqWtHc4NZGZrY3dzZ2pfMGdtaHZiemc1"&gt;PDF&lt;/a&gt;)&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;0) Requirements&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;PC: 800 MHz, 256MB RAM, 10GB disk space, CD-Drive, 1x free PCI slot, 1x network port.&lt;/li&gt;&lt;li&gt;Digium's TDM PCI card if you wish to make/receive calls from a landline.&lt;/li&gt;&lt;li&gt;Internet connection (needed during installation!!!).&lt;/li&gt;&lt;li&gt;DHCP Server (Preferred): If you have an Access Point that connects you to the Internet, it has the option already.&lt;/li&gt;&lt;li&gt;1x Blank CD.&lt;/li&gt;&lt;li&gt;1x Network cable.&lt;/li&gt;&lt;li&gt;1x Switch.&lt;/li&gt;&lt;li&gt;Patience.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;1) Download the ISO file&lt;/h3&gt;&lt;br /&gt;Get the ISO from: &lt;a href="http://pbxinaflash.net/downloads/"&gt;http://pbxinaflash.net/downloads/&lt;/a&gt;&lt;br /&gt;If you have 4GB of RAM or more, grab the 64-bit ISO, otherwise stick to the 32-bit one. If you wish to venture into the 64-bit world, your processor has to be 64-bit capable.&lt;br /&gt;&lt;br /&gt;Burn the ISO image using your favorite CD writing software. Make sure you choose the option to write an image, not put the ISO file in the CD as data!!!&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;2) Preparing the PC&lt;/h3&gt;&lt;br /&gt;Boot up your PC and enter the BIOS.&lt;ul&gt;&lt;li&gt;Make sure the time is correct! If you don't know the time in Kuwait, call 113. If the time is not correct in your computer, the installation will fail!&lt;/li&gt;&lt;li&gt;Somewhere in the menus there should be an option defining boot-sequence: Make sure that the CD-Drive is before the hard disk.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;3) Installation&lt;/h3&gt;&lt;br /&gt;As mentioned before, you will need an Internet connection to proceed with the installation after installing the base packages from the CD. Also, you need a running DHCP server, so that your PBX box can obtain an IP during the installation process. If you have a router at home, chances are it has DHCP running already. It doesn't hurt to double check.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;3.1) Phase 1: From CD&lt;/h3&gt;&lt;br /&gt;Boot the CD and follow the instructions:&lt;ul&gt;&lt;li&gt;To install Asterisk 1.4, press Enter. To install Asterisk 1.4 without Logical Volume Management, type ksalt. I chose ksalt.&lt;/li&gt;&lt;li&gt;Keyboard type: us&lt;/li&gt;&lt;li&gt;Time Zone Selection:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;System clock uses UTC: No (Deselect)&lt;/li&gt;&lt;li&gt;Asia/Kuwait&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Password: This is your system's password. Make sure it's alpha-numeric and at least 10 digits. The system's administrator username is: root. (Typical on *nix Operating Systems)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;The installation process now continues for a while to install required packages from the CD. This would take about 10 minutes.&lt;br /&gt;&lt;br /&gt;When the installation is over and the PC reboots, remove the CD. The hard disk will boot.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;3.2) Phase 2: From the Internet&lt;/h3&gt;&lt;br /&gt;[if you know how to run a web-server on a normal PC, jump to the tricks section]&lt;br /&gt;&lt;br /&gt;When the PC boots from the hard disk, a screen will come up asking you what to do. You should press A, to install the latest stable release of Asterisk 1.4.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Press A; download commences (30MB): http://pbxinaflash.net/ast14/pbx_load.tar.gz&lt;br /&gt;(Asterisk 1.6: http://pbxinaflash.net/ast16/pbx_load16.tar.gz)&lt;br /&gt;MD5 checksum: ecaa6b1bc5c9bf6bca3b086d22e7e4a5  pbx_load.tar.gz&lt;br /&gt;MD5 checksum: 46d7d6bb60fd2973fe37bd50b10ae7e1  pbx_load16.tar.gz&lt;/li&gt;&lt;li&gt;Installation of the package proceeds automatically. Just sit back and read the messages on the screen. Or not.&lt;br /&gt;DO NOT PRESS THE ENTER BUTTON!   If the screen turns off when it idles, press an arrow key (right, left, up, down)&lt;br /&gt;&lt;br /&gt;Do not remove the network cable. The installation may require some extra packages during the installation.&lt;br /&gt;&lt;br /&gt;[i] It takes a long time because the file that was downloaded is the source code, and after downloading it, the installer script unpacks it then starts compiling the source to produce the binaries. Binaries are executable programs. The compilation process usually takes about 20 minutes on a Dual core CPU @ 3GHz.&lt;/li&gt;&lt;li&gt;The PC will reboot after the compilation is done.&lt;/li&gt;&lt;li&gt;After the PC has booted, you get to a login prompt, login with user: root, and the password you chose during installation.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;4) Networking&lt;/h3&gt;&lt;br /&gt;You could leave your machine on DHCP, but you have to configure your DHCP server or Access Point to always assign the same IP to this machine.&lt;br /&gt;&lt;br /&gt;I recommend that you could configure a static IP address in the machine itself by following these steps:&lt;ul&gt;&lt;li&gt;Type: netconfig&lt;/li&gt;&lt;li&gt;Would you like to set up networking? Yes&lt;/li&gt;&lt;li&gt;Deselect “Use dynamic IP” and fill in your network information.&lt;/li&gt;&lt;li&gt;Default gateway and primary name server are usually your Access Point's IP address.&lt;/li&gt;&lt;li&gt;Click OK and exit the menu.&lt;/li&gt;&lt;li&gt;Type: service network restart.&lt;/li&gt;&lt;li&gt;echo "nameserver xxx.xxx.xxx.xxx" &gt; /etc/resolv.conf   (replace the Xs with your IP)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;In my case, even when setting the name server in the netconfig menu, it didn't get written until I do it manually or run netconfig again.&lt;br /&gt;&lt;br /&gt;That's it. Now the IP is static to whatever you chose up there.&lt;br /&gt;&lt;br /&gt;Now you should be able to reach the web interface on: http://&amp;lt;ip&amp;gt; -- but don't. We need to patch the files then configure some security options and passwords!&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;5) Install latest patches and scripts&lt;/h3&gt;&lt;br /&gt;You must not skip this step. It's essential to get things working!&lt;br /&gt;&lt;ul&gt;&lt;li&gt;In the shell, type: update-scripts&lt;br /&gt;This will bring up some boring text about the code and what's being installed.&lt;br /&gt;Press Enter and you see a list of more commands to use.&lt;br /&gt;Press Enter again and then press Y. This was just an agreement page and you're back to the shell.&lt;/li&gt;&lt;li&gt;Now run update-scripts again and press Y, to download the required stuff.&lt;br /&gt;This will download the files:&lt;br /&gt;&lt;a href="http://www.pbxinaflash.org/ast14/files/securescripts.tar.gz"&gt;http://www.pbxinaflash.org/ast14/files/securescripts.tar.gz&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.pbxinaflash-scripts.com/ast14/files/pbx-scripts.tar.gz"&gt;http://www.pbxinaflash-scripts.com/ast14/files/pbx-scripts.tar.gz&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.pbxinaflash-scripts.com/ast14/files/apache-auth.conf.gz"&gt;http://www.pbxinaflash-scripts.com/ast14/files/apache-auth.conf.gz&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;97e8ccfbfd27f611e98ced4e8f791f95  securescripts.tar.gz&lt;br /&gt;52c9435c93eaa0dcadb9d83889145b2f  pbx-scripts.tar.gz&lt;br /&gt;430207ba3db9eae8c7fde495a1815731  apache-auth.conf.gz&lt;/li&gt;&lt;li&gt;After that, it will tell you to type: update-fixes. Do it.&lt;br /&gt;Press Y to continue with the script. This will apply patches and security enhancements to your setup.&lt;br /&gt;&lt;br /&gt;It asks you later to press Enter, then set a password for the ARI interface. Use the same password used for the root user.&lt;br /&gt;It may take some time (even when it says thank you), so wait for it.&lt;br /&gt;&lt;br /&gt;If you wish to see the configurations, press Y, otherwise q.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;In the future, if you want to update asterisk and related packages, type: update-source.&lt;br /&gt;&lt;br /&gt;[i] For Asterisk 1.6: As of this writing, update-source16 doesn't work yet and the script asks to check the forums for a workaround for now.&lt;br /&gt;&lt;br /&gt;[i] To see a list of all helpful commands, type: help-pbx.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;6) Passwords and System Administration&lt;/h3&gt;&lt;br /&gt;Before venturing into the web interface, you have to change the default passwords!&lt;br /&gt;Also, the main password script will ask if you would like to install Webmin, an application that allows you to administrate your Linux box through the web interface. I will not go with this option, to reduce the security risks.&lt;br /&gt;&lt;br /&gt;Type: passwd-master&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;7) Prevent Being Blocked&lt;/h3&gt;&lt;br /&gt;There's a "security" application running on PBXiaF which if you enter the wrong password 3 times, will block your IP and lock you out of the PBX!!&lt;br /&gt;&lt;br /&gt;I would suggest you disable it till you get the hang of things. Type: service fail2ban stop&lt;br /&gt;&lt;br /&gt;[i] It will be re-enabled the next time you boot.&lt;br /&gt;[i] The command disable-fail2ban may say that you don't have fail2ban installed, but when typing "status" it will show as running. This may happen on an Asterisk 1.6 setup.&lt;br /&gt;&lt;br /&gt;If you wish to disable it for good, type: chkconfig fail2ban off&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;8) Configuring Your PCI Card(s)&lt;/h3&gt;&lt;br /&gt;Depending on which version you installed, follow the proper section.&lt;br /&gt;&lt;h3&gt;8.1) Configure PCI cards (Asterisk 1.4 + Zapata)&lt;/h3&gt;&lt;br /&gt;In the shell, type:&lt;br /&gt;amportal stop&lt;br /&gt;genzaptelconf -vvvv&lt;br /&gt;&lt;br /&gt;This will generate the file /etc/asterisk/zap-channels.conf which is automatically included by /etc/asterisk/zapata.conf&lt;br /&gt;&lt;br /&gt;Now type:&lt;br /&gt;amportal start&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;8.2) Configure PCI cards (Asterisk 1.6 + Dahdi)&lt;/h3&gt;&lt;br /&gt;root@pbx:/var/log/asterisk $ dahdi_genconf -vvv&lt;br /&gt;Default parameters from /etc/dahdi/genconf_parameters&lt;br /&gt;Generating /etc/dahdi/system.conf&lt;br /&gt;Generating /etc/asterisk/dahdi-channels.conf&lt;br /&gt;root@pbx:/var/log/asterisk $ dahdi_cfg -vsfd5&lt;br /&gt;DAHDI Tools Version - 2.2.0&lt;br /&gt;Line 9: fxsks=1&lt;br /&gt;Line 10: echocanceller=mg2,1&lt;br /&gt;Line 17: loadzone = us&lt;br /&gt;Line 18: defaultzone = us&lt;br /&gt;&lt;end of="" file=""&gt;&lt;br /&gt;&lt;br /&gt;DAHDI Version: 2.2.0.2&lt;br /&gt;Echo Canceller(s):&lt;br /&gt;Configuration&lt;br /&gt;======================&lt;br /&gt;1 channels to configure.&lt;br /&gt;&lt;br /&gt;About to open Master device&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;9) Caller ID and Busy Detect Configuration&lt;/h3&gt;&lt;br /&gt;We'll need to add these lines to the file: /etc/asterisk/zapata.conf&lt;pre&gt;cidsignalling=v23 ;caller-id option&lt;br /&gt;cidstart=polarity ;caller-id option&lt;br /&gt;busydetect=yes ;busy tone detction&lt;br /&gt;busycount=5 ;disconnect after 5 busy tones&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;nano /etc/asterisk/zapata.conf&lt;br /&gt;&lt;br /&gt;Add the lines above under "hidecallerid" then to save the file: CTRL+X, Y, Enter.&lt;br /&gt;Now type: amportal restart&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;10) Updating Asterisk and FreePBX Modules&lt;/h3&gt;&lt;br /&gt;Login to the web interface by directing your browser to http://&amp;lt;ip&amp;gt;&lt;br /&gt;Slide the white bar at the bottom-left to the right and click on the admin link, then on the picture: "FreePBX Administration"&lt;br /&gt;&lt;i&gt;Username: maint&lt;br /&gt;Password: What you chose with passwd-master&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;On the left panel, click Module Admin. Then on the right page, click Update. You should update your installed modules to get the latest stable versions.&lt;br /&gt;You could after that install new modules.&lt;br /&gt;The modules I installed were:&lt;ul&gt;&lt;li&gt;Announcements 2.5.1.8&lt;/li&gt;&lt;li&gt;Asterisk CLI 2.5.0.3&lt;/li&gt;&lt;li&gt;Asterisk Info 2.5.0.2&lt;/li&gt;&lt;li&gt;Backup &amp;amp; Restore 2.5.1.7&lt;/li&gt;&lt;li&gt;Blacklist 2.5.0.5&lt;/li&gt;&lt;li&gt;Callback 2.5.0.3&lt;/li&gt;&lt;li&gt;Call Forward 2.5.0.2&lt;/li&gt;&lt;li&gt;Call Waiting 2.5.0.1&lt;/li&gt;&lt;li&gt;Conferences 2.5.1.7&lt;/li&gt;&lt;li&gt;ConfigEdit 1.0&lt;/li&gt;&lt;li&gt;Day Night Mode 2.5.0.12&lt;/li&gt;&lt;li&gt;Do-Not-Disturb (DND) 2.5.0.6&lt;/li&gt;&lt;li&gt;Follow Me 2.5.1.8&lt;/li&gt;&lt;li&gt;FreePBX ARI Framework 2.5.2.3&lt;/li&gt;&lt;li&gt;FreePBX FOP Framework 2.5.0.1&lt;/li&gt;&lt;li&gt;Asterisk Logfiles 2.5.0.1&lt;/li&gt;&lt;li&gt;Misc Applications 2.5.0.4&lt;/li&gt;&lt;li&gt;Misc Destinations 2.5.0.3&lt;/li&gt;&lt;li&gt;Paging and Intercom 2.5.0.8&lt;/li&gt;&lt;li&gt;Print Extensions 2.5.0.5&lt;/li&gt;&lt;li&gt;Queues 2.5.4.8&lt;/li&gt;&lt;li&gt;Ring Groups 2.5.1.9&lt;/li&gt;&lt;li&gt;Sys Info phpsysinfo 2.5.3&lt;/li&gt;&lt;li&gt;Time Conditions 2.5.0.9&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;11) Tips and Tricks&lt;/h3&gt;&lt;br /&gt;If you know how to run a web-server on a local machine, you can minimize the time it takes to download the files (especially that their website can be slow at times).&lt;br /&gt;&lt;br /&gt;You need to do two things:&lt;ul&gt;&lt;li&gt;Download the files mentioned above and put them in the proper location&lt;/li&gt;&lt;li&gt;Override DNS records for the domains the scripts use&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;1.In your default web-directory (/var/www) create these directories: mkdir -p /var/www/ast14/files&lt;br /&gt;Look at the links above and put them in the proper directory.&lt;/li&gt;&lt;li&gt;1.On your Asterisk box, type: nano /etc/hosts&lt;br /&gt;Add these entries:&lt;pre&gt;xxx.xxx.xxx.xxx     pbxinaflash.net&lt;br /&gt;xxx.xxx.xxx.xxx     pbxinaflash.org&lt;br /&gt;xxx.xxx.xxx.xxx     pbxinaflash-scripts.com&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Replace the Xs with your web-server's IP.&lt;br /&gt;At least now if you mess-up the installation and can save yourself the time it takes to redownload the files!&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;12) Resources and References&lt;/h3&gt;Security&lt;br /&gt;&lt;a href="http://nerdvittles.com/?p=580"&gt;http://nerdvittles.com/?p=580&lt;/a&gt;&lt;br /&gt;&lt;a href="http://secunia.com/advisories/34772/3/"&gt;http://secunia.com/advisories/34772/3/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;PBX in a Flash&lt;br /&gt;&lt;a href="http://pbxinaflash.org/docs/InstallPBXInAFlash.pdf"&gt;http://pbxinaflash.org/docs/InstallPBXInAFlash.pdf&lt;/a&gt;&lt;br /&gt;&lt;a href="http://pbxinaflash.net/docs/"&gt;http://pbxinaflash.net/docs/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://knol.google.com/k/ward-mundy/pbx-in-a-flash/3uqc77rg9tgar/2#Getting_Started_with_PBX_in_a_Flash_1%282E%294"&gt;http://knol.google.com/k/ward-mundy/pbx-in-a-flash/3uqc77rg9tgar/2#Getting_Started_with_PBX_in_a_Flash_1%282E%294&lt;/a&gt;&lt;br /&gt;&lt;a href="http://bestof.nerdvittles.com/scripts/"&gt;http://bestof.nerdvittles.com/scripts/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://pbxinaflash.net/"&gt;http://pbxinaflash.net/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://pbxinaflash.net/downloads/"&gt;http://pbxinaflash.net/downloads/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://pbxinaflash.org/piafscripts/Asterisk+1.4"&gt;http://pbxinaflash.org/piafscripts/Asterisk+1.4&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Passwords&lt;br /&gt;&lt;a href="http://www.freepbx.org/support/documentation/faq/changing-the-asterisk-manager-password"&gt;http://www.freepbx.org/support/documentation/faq/changing-the-asterisk-manager-password&lt;/a&gt;&lt;br /&gt;&lt;a href="http://pbxinaflash.org/docs/InstallPBXInAFlash.pdf"&gt;http://pbxinaflash.org/docs/InstallPBXInAFlash.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Munin Reports&lt;br /&gt;&lt;a href="http://pbxinaflash.com/forum/showthread.php?t=978"&gt;http://pbxinaflash.com/forum/showthread.php?t=978&lt;/a&gt;&lt;br /&gt;&lt;a href="http://munin.projects.linpro.no/wiki/Documentation"&gt;http://munin.projects.linpro.no/wiki/Documentation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://nerdvittles.kicks-ass.net/munin/"&gt;http://nerdvittles.kicks-ass.net/munin/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hardware Config&lt;br /&gt;&lt;a href="http://www.trixbox.org/forums/trixbox-forums/open-discussion/2-3-0-10-problem-when-installing-not-automatically-detecting-m"&gt;http://www.trixbox.org/forums/trixbox-forums/open-discussion/2-3-0-10-problem-when-installing-not-automatically-detecting-m&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Asterisk Config&lt;br /&gt;&lt;a href="http://www.voip-info.org/wiki/view/Asterisk+config+zapata.conf"&gt;http://www.voip-info.org/wiki/view/Asterisk+config+zapata.conf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;FreePBX&lt;br /&gt;&lt;a href="http://www.freepbx.org/support/documentation/administration-guide"&gt;http://www.freepbx.org/support/documentation/administration-guide&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;SIP Phone Recommendations&lt;br /&gt;&lt;a href="http://nerdvittles.com/index.php?p=207"&gt;http://nerdvittles.com/index.php?p=207&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Dahdi/Asterisk 1.6&lt;br /&gt;&lt;a href="http://bbs.openvox.cn/redirect.php?tid=788&amp;amp;goto=lastpost"&gt;http://bbs.openvox.cn/redirect.php?tid=788&amp;amp;goto=lastpost&lt;/a&gt;&lt;br /&gt;&lt;a href="http://forums.digium.com/viewtopic.php?p=122503&amp;amp;sid=dbc5a4bc9bec829d2e8d40f5d7dcea6e"&gt;http://forums.digium.com/viewtopic.php?p=122503&amp;amp;sid=dbc5a4bc9bec829d2e8d40f5d7dcea6e&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.mail-archive.com/asterisk-users@lists.digium.com/msg163600.html"&gt;http://www.mail-archive.com/asterisk-users@lists.digium.com/msg163600.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://forums.whirlpool.net.au/forum-replies-archive.cfm/529755.html"&gt;http://forums.whirlpool.net.au/forum-replies-archive.cfm/529755.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://manpages.ubuntu.com/manpages/karmic/man8/fxotune.8.html"&gt;http://manpages.ubuntu.com/manpages/karmic/man8/fxotune.8.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-4748769394540088967?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/4748769394540088967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=4748769394540088967' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/4748769394540088967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/4748769394540088967'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2009/08/howto-asterisk-and-freepbx-using-pbx-in.html' title='HOWTO: Asterisk and FreePBX using PBX in a Flash'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-3523571395567818180</id><published>2009-08-18T16:14:00.000+03:00</published><updated>2009-08-18T16:39:32.983+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ISP'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='kuwait'/><category scheme='http://www.blogger.com/atom/ns#' term='repository'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Ubuntu Mirror By QualityNet</title><content type='html'>The awesome guys &lt;a href="http://3baidsblog.wordpress.com/"&gt;3baid&lt;/a&gt;, &lt;a href="http://www.bojacob.net/"&gt;Bojacob&lt;/a&gt; and &lt;a href="http://blog.oneortheother.info/"&gt;N.&lt;/a&gt; at QualityNet have done a great deal and created a &lt;a href="https://launchpad.net/ubuntu/+mirror/ubuntu.qualitynet.net-archive"&gt;mirror for Ubuntu&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I've been using it for the past few days and let me tell you, no more crappy bandwidth!!! Click the mirror link for details on how to add it.&lt;br /&gt;&lt;br /&gt;Currently the mirror is an official mirror but not yet a mirror for Kuwait. They're working on that.&lt;br /&gt;&lt;br /&gt;Kudos to you guys for the great work.&lt;br /&gt;&lt;br /&gt;P.S.: The names are in alphabetical order.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-3523571395567818180?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/3523571395567818180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=3523571395567818180' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/3523571395567818180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/3523571395567818180'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2009/08/ubuntu-mirror-by-qualitynet.html' title='Ubuntu Mirror By QualityNet'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-1052043541411169712</id><published>2009-08-12T14:22:00.002+03:00</published><updated>2009-08-13T10:59:54.256+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pbx'/><category scheme='http://www.blogger.com/atom/ns#' term='kuwait'/><category scheme='http://www.blogger.com/atom/ns#' term='voip'/><category scheme='http://www.blogger.com/atom/ns#' term='p2p'/><category scheme='http://www.blogger.com/atom/ns#' term='phone'/><title type='text'>Peer-to-Peer Phone Network</title><content type='html'>&lt;h3&gt;Introduction&lt;/h3&gt;&lt;br /&gt;I was standing in the bathroom washing my face this morning and I got this amazing idea*; an idea to revolutionize communications and reduce the cost of phone calls!&lt;br /&gt;&lt;br /&gt;Imagine an &lt;B&gt;anonymous&lt;/B&gt; phone network where you can &lt;B&gt;create&lt;/B&gt; a number when you want, and &lt;B&gt;dump&lt;/B&gt; the number when you want.&lt;br /&gt;Imagine a phone network where you call and receive phone calls for &lt;B&gt;free&lt;/B&gt;.&lt;br /&gt;Imagine a phone network that allows you to &lt;B&gt;block numbers&lt;/B&gt; for free.&lt;br /&gt;Imagine a phone network where you have &lt;B&gt;free voicemail&lt;/B&gt; and &lt;B&gt;voicemail-to-email&lt;/B&gt; service.&lt;br /&gt;Imagine a phone network that &lt;B&gt;links all&lt;/B&gt; your numbers (p2p, GSM, landline) providing full reachability.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;This is the: Peer-to-Peer Phone Network (PPPN: Pronounced: Pippin).&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* A light-bulb didn't flash above my head, because it was morning and Tarsheed would've bludgened me to death with a bunch of old bulbs...&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;How Does It Work?&lt;/h3&gt;&lt;br /&gt;Still reading? Great! Let me explain how this works!&lt;br /&gt;&lt;br /&gt;The Pippin Network consists of two parts: Nodes and Clients.&lt;br /&gt;&lt;br /&gt;Nodes: A bunch of people buy a tiny computer that has customized free software packages on it. This PC is connected to a network that can reach the Internet. This PC is considered a node in the Pippin Network.&lt;br /&gt;&lt;br /&gt;Clients: You have a PC, laptop, or a mobile phone with an Internet subscription. You download a free program on your phone that connects to the Pippin Network. Once you login to your extension/number, you reach any extension you want by going over the Internet through the Pippin Network.&lt;br /&gt;&lt;br /&gt;That's it!&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Originality&lt;/h3&gt;&lt;br /&gt;I spent the past 7-10 days setting up a PBX at home and just today I got this idea. I searched online on the concept and turns out there is a similar idea, but the implementation method is different. That idea was to have the mobile phones act as both the node and the client. This not the case with The Pippin Network.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Dependencies&lt;/h3&gt;&lt;br /&gt;Pippin Network relies on an existing GSM network by mobile phone carriers and on people donating bandwidth for people to call each other.&lt;br /&gt;&lt;br /&gt;The reliance on the GSM network is actually good, because we mitigate the problem of having to figure out how to handle hand-offs, that is, when moving between Access Points. Since you're receiving your Internet through your carrier, your mobile is already handling hand-offs gracefully and guarantees almost zero down-time and full availability of the service.&lt;br /&gt;&lt;br /&gt;To route and connect calls between clients (people), we need nodes with Internet connection. Node-providers (not owners) are donating free bandwidth. Since upload bandwidth is typically low (up to 512kbps only), it makes it more valuable and dissuade people from becoming node-providers, but there are workarounds; continue reading.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Is It Really Free?&lt;/h3&gt;&lt;br /&gt;Not quite. You need to have the following:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Mobile phone/PC/Laptop&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Internet subscription from your carrier/ISP (Zain, Wataniya, Viva)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Enough nodes to sustain the clients calling each other (idle ones don't count)&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Legal Issues&lt;/h3&gt;&lt;br /&gt;Question: Voice-over-IP technology is banned from use in Kuwait. How will this work?!&lt;br /&gt;Answer: VoIP is banned from being used for International calls. It's perfectly legal to use it within Kuwait.&lt;br /&gt;&lt;br /&gt;Question: But calls are going over the Internet. You're providing International reach and it's illegal.&lt;br /&gt;Answer: Wrong. Pippin network is designed to be restricted to Kuwait only. (See the technical section for details)&lt;br /&gt;&lt;br /&gt;Question: What happens in cases of harassment and abuse?&lt;br /&gt;Answer: What happens if I create an email and harass you?&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Project Status&lt;/h3&gt;&lt;br /&gt;As of this writing, the project is still a draft that I'm working on. There are many of things to check and test existing software to see how to tweak it to see if it fits the project's needs.&lt;br /&gt;&lt;br /&gt;Do I need help?&lt;br /&gt;I sure can't pull this off on my own in a reasonable amount of time, if any. So I'd rather work with a team where each specializes in an aspect of the project, or at least is willing to learn about the aspect assigned.&lt;br /&gt;&lt;br /&gt;This projects taps into the following concepts and fields:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Decentralized Networks&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Telephony (Using Asterisk and SER) and VoIP&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Dynamic DNS&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Mobile Java&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;If you feel that you can aid to the project in any way (not necessarily in the above areas), contact me. If you don't hear from me with in 48-hours, post a comment here.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: white; font-weight: bold"&gt;I also recommend that you post a comment here (even an empty one) and subscribe by email, if you wish to be updated on the status of the project.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-1052043541411169712?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/1052043541411169712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=1052043541411169712' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/1052043541411169712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/1052043541411169712'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2009/08/peer-to-peer-phone-network.html' title='Peer-to-Peer Phone Network'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-8718394161140545876</id><published>2009-08-08T22:02:00.000+03:00</published><updated>2009-08-08T22:19:00.812+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pbx'/><category scheme='http://www.blogger.com/atom/ns#' term='zaptel'/><category scheme='http://www.blogger.com/atom/ns#' term='zapata'/><category scheme='http://www.blogger.com/atom/ns#' term='dahdi'/><category scheme='http://www.blogger.com/atom/ns#' term='freepbx'/><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><category scheme='http://www.blogger.com/atom/ns#' term='asterisk'/><title type='text'>Asterisk PBX: Status on Version 1.6.x</title><content type='html'>As of this writing, the latest version is 1.6.2 and Dahdi version 2.2.0, and there's a &lt;a href="https://issues.asterisk.org/view.php?id=14577"&gt;standing bug&lt;/a&gt; for all cards using the driver: wctdm24xxp.&lt;br /&gt;&lt;br /&gt;The cards using that driver are:&lt;br /&gt;Digium TDM2400P/AEX2400: up to 24 analog ports&lt;br /&gt;Digium TDM800P/AEX800: up to 8 analog ports&lt;br /&gt;Digium TDM410P/AEX410: up to 4 analog ports&lt;br /&gt;&lt;br /&gt;Bug symptoms:&lt;br /&gt;You will be unable to make outgoing phone calls, until someone rings the line from outside, or if you remove the phone cable and plug it in again.&lt;br /&gt;&lt;br /&gt;If you attempt to make an outgoing call, you'll receive an audio message from Asterisk saying: "All circuits are busy now"&lt;br /&gt;&lt;br /&gt;Bug workarounds:&lt;br /&gt;If you have compiled your own Asterisk 1.6, then you could apply the patches by the people in the link above.&lt;br /&gt;Use &lt;b&gt;jkroon&lt;/b&gt;'s patch for Asterisk version 1.6.0.x, and &lt;b&gt;tzafrir&lt;/b&gt;'s patch for Asterisk 1.6.1.x or 1.6.2.x. You'll need to apply these patches to the source code, then recompile.&lt;br /&gt;&lt;br /&gt;I will not be patching my Asterisk as I have no desire to compile Asterisk, to avoid going to fix other things (like Dahdi) in case it broke. So it's Asterisk 1.4 for me, for now.&lt;br /&gt;&lt;br /&gt;* Dahdi is the replacement of Zaptel/Zapata. These are the telephony cards' drivers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-8718394161140545876?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/8718394161140545876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=8718394161140545876' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/8718394161140545876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/8718394161140545876'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2009/08/asterisk-pbx-status-on-version-16x.html' title='Asterisk PBX: Status on Version 1.6.x'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-4384100559520471030</id><published>2009-08-05T15:46:00.000+03:00</published><updated>2009-08-05T15:58:07.899+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trixbox'/><category scheme='http://www.blogger.com/atom/ns#' term='pbx'/><category scheme='http://www.blogger.com/atom/ns#' term='vulnerability'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='asterisk'/><title type='text'>trixbox security concerns</title><content type='html'>WARNING: I want to alert everyone to NOT use trixbox due to security concerns.&lt;br /&gt;&lt;br /&gt;I've been told by some guys in asterisk-related IRC channels that trixbox has known security problems and is not fixing them.&lt;br /&gt;&lt;br /&gt;A &lt;a href="http://www.google.com/search?q=trixbox+security"&gt;quick search&lt;/a&gt; turns many results.&lt;br /&gt;&lt;br /&gt;Security concerns include (but not limited to):&lt;br /&gt;- Known security risks in their web-GUI and other packages but remain unpatched&lt;br /&gt;- trixbox sends private information to its company without prior consent of users&lt;br /&gt;- trixbox had history of installing scripts on the systems without prior notice of users&lt;br /&gt;&lt;br /&gt;There are alternatives and I will document the installation process of one of them in a later post.&lt;br /&gt;&lt;br /&gt;Alternatives are: &lt;a href="http://www.asterisknow.org/"&gt;AsteriskNow&lt;/a&gt; and &lt;a href="http://pbxinaflash.net/"&gt;PBX in a Flash&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-4384100559520471030?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/4384100559520471030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=4384100559520471030' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/4384100559520471030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/4384100559520471030'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2009/08/trixbox-security-concerns.html' title='trixbox security concerns'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-8174831946166738690</id><published>2009-07-24T18:00:00.030+03:00</published><updated>2009-08-22T11:54:12.822+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trixbox'/><category scheme='http://www.blogger.com/atom/ns#' term='pbx'/><category scheme='http://www.blogger.com/atom/ns#' term='kuwait'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='voip'/><category scheme='http://www.blogger.com/atom/ns#' term='ip telephony'/><category scheme='http://www.blogger.com/atom/ns#' term='asterisk'/><category scheme='http://www.blogger.com/atom/ns#' term='caller id'/><title type='text'>Configuring Asterisk/trixbox for Kuwait</title><content type='html'>&lt;style type="text/css"&gt;.picture { background-color: #F9F9F9; color:#000000; border: 1px solid #CCCCCC; padding: 3px; font: 11px/1.4em Arial, sans-serif; } .picture img { border: 1px solid #CCCCCC; vertical-align:middle; margin-bottom: 3px; } .right { margin: 0.5em 0pt 0.5em 0.8em; float:right; } .left { margin: 0.5em 0.8em 0.5em 0; float:left; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;p style="color: white"&gt;WARNING: I want to alert everyone to NOT use trixbox due to security concerns.&lt;br /&gt;&lt;br /&gt;I've been told by some guys in asterisk-related IRC channels that trixbox has known security problems and is not fixing them.&lt;br /&gt;&lt;br /&gt;A &lt;a href="http://www.google.com/search?q=trixbox+security"&gt;quick search&lt;/a&gt; turns many results.&lt;br /&gt;&lt;br /&gt;There are alternatives and I will document their installation process in a later post.&lt;/p&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Introduction&lt;/h3&gt;&lt;br /&gt;This post talks about how to setup a &lt;a href="http://en.wikipedia.org/wiki/Private_branch_exchange"&gt;Private Branch Exchange (PBX)&lt;/a&gt; using an open-source solution called &lt;a href="http://en.wikipedia.org/wiki/Asterisk_%28PBX%29"&gt;Asterisk&lt;/a&gt;. It's similar to solutions from &lt;a href="http://www2.panasonic.com/consumer-electronics/shop/Business-Phone-Systems/SOHO-Business-Phone-Systems.list.75072_11002_7000000000000005702"&gt;Panasonic&lt;/a&gt;, &lt;a href="http://www.cisco.com/en/US/products/ps6788/Products_Sub_Category_Home.html"&gt;Cisco&lt;/a&gt;, or &lt;a href="http://www.avaya.com/usa/product/gateways"&gt;Avaya&lt;/a&gt; for houses, offices or enterprises, only provides various features at very low cost.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;What is Asterisk?&lt;/h3&gt;&lt;br /&gt;Asterisk is a software implementation of a PBX, that is, it's an application that runs on top of an Operating System. It allows you to receive and make phone calls over your telephone landlines (analog or digital) and over the network. And yes, it's free.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Why use it?&lt;/h3&gt;&lt;br /&gt;A small PBX from Panasonic that offers 2 input phone lines and about 8 extensions, with 6 phones comes around at 170 KD. You're limited to Panasonic's phones and you can't carry your extension outside the house (or wherever you implemented the solution). If you want wireless phones, you have to buy proprietary Access Points (APs) from Panasonic and if you have Wireless Access Points in your place, it's gonna look ugly to have 2 APs next to each other!&lt;br /&gt;&lt;br /&gt;Asterisk works on standard network protocols and equipment. This means you can connect a computer, laptop, or a phone that uses the standard SIP protocol (newer mobile phone models support SIP, too!). This also means that if you have a wireless AP at home to distribute your Internet connection, you can buy a wireless phone which will work with Asterisk!&lt;br /&gt;&lt;br /&gt;Another great option is that since it's all networked together, you can connect to your extension over the Internet. Say you implement Asterisk in your house, configure your mobile phone to connect to Asterisk, then anyone who calls you at home, will have the phone call sent to you over the Internet to your mobile phone!&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;What features does it offer?&lt;/h3&gt;&lt;br /&gt;Everything a normal PBX does, and more!&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Voice mail&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Voice mail to email&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Conference calling&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Interactive Voice Response (IVR) / phone menus&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Automatic call distribution&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Fax to email&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Call queues&lt;/li&gt;&lt;br /&gt;&lt;li&gt;And more!&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Check out the list on &lt;a href="http://www.asterisk.org/support/features"&gt;Asterisk's website&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;What is trixbox?&lt;/h3&gt;&lt;br /&gt;&lt;a href="http://www.trixbox.org/"&gt;trixbox&lt;/a&gt; (all in small letters) is an Asterisk-based distribution, that combines Asterisk and a few more packages to enhance the PBX functionality and experience.&lt;br /&gt;&lt;br /&gt;I used both trixbox and AsteriskNow (another distro), but felt more comfortable with trixbox, and this post assumes the use of trixbox 2.6.2 Community Edition (CE) based on Asterisk 1.4 (1.6 exists but I haven't explored it as it seems to be still in beta).&lt;br /&gt;&lt;br /&gt;trixbox also offers a business edition, as well as the original Asterisk. Feel free to visit their websites and explore the options.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Table of Contents&lt;/h3&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Hardware Requirements and Configuration&lt;/li&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Addon Card&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Computer Specifications&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;li&gt;Download trixbox&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Installing trixbox&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Configuration&lt;/li&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Network Configuration&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Create An Extension&lt;/li&gt;&lt;br /&gt;&lt;li&gt;General Settings&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Outbound Routes&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Trunks&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Inbound Routes&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Configuring Caller ID&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;li&gt;Applying Settings&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Installing a softphone&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Configuring Ekiga&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Notes&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Sources&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Image Index&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;1. Hardware Requirements and Configuration&lt;/h3&gt;&lt;br /&gt;Below are the required hardware specifications and addon cards. Read carefully!&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;1.1 Addon Card&lt;/h3&gt;&lt;br /&gt;To connect Asterisk to an analog phone line (&lt;a href="http://en.wikipedia.org/wiki/Public_switched_telephone_network"&gt;Public Switched Telephone Network / PSTN&lt;/a&gt;, also known as &lt;a href="http://en.wikipedia.org/wiki/Plain_old_telephone_service"&gt;Plain Old Telephone Service / POTS&lt;/a&gt;), you need a PCI card that converts signals from analog to digital and vice-versa.&lt;br /&gt;&lt;br /&gt;Companies typically sell a base PCI card and pluggable modules. On &lt;a href="http://www.amazon.com/"&gt;Amazon.com&lt;/a&gt;, the base card from Digium is TDM410P and the module required to connect the machine to PSTN is called X100M.&lt;br /&gt;&lt;br /&gt;The X100M enables what is called an FXO port. FXO port is the port you connect your PSTN line to. The other type of ports is called FXS; you connect analog phones to this port.&lt;br /&gt;To easily remember these ports, follow this:&lt;br /&gt;FXS -&gt; Station -&gt; Phone device.&lt;br /&gt;FXO -&gt; Office -&gt; PSTN line.&lt;br /&gt;&lt;br /&gt;A company called &lt;a href="http://www.openvox.com.cn/"&gt;OpenVox&lt;/a&gt; offers the same base card and the FXO port for much less than &lt;a href="http://www.digium.com/en/"&gt;Digium&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;1.2 Computer Specifications&lt;/h3&gt;&lt;br /&gt;My test computer is a stretch to what I actually need for home. According to what I read online of previous implementations, each phone call requires 33MHz of CPU power. People were able to achieve 40 concurrent calls over an 800MHz processor with 256MB RAM!&lt;br /&gt;&lt;br /&gt;My PC is a Pentium D 3.0GHz with 1GB RAM. Pentium D is dual core, so I have 6GHz at my disposal!&lt;br /&gt;Initial installation takes 1.3GB only, so you could do fine with a 20GB hard disk for a home setup.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;2. Download trixbox&lt;/h3&gt;&lt;br /&gt;trixbox has known security problems. USE AT YOUR OWN RISK! Alternatives are: &lt;a href="http://www.asterisknow.org/"&gt;AsteriskNow&lt;/a&gt; and &lt;a href="http://pbxinaflash.net/"&gt;PBX in a Flash&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I will post on how to install one of those in a later post.&lt;br /&gt;&lt;br /&gt;Download trixbox CE &lt;a href="http://www.trixbox.org/downloads"&gt;here&lt;/a&gt;. Make sure to get the 2.6.x version as it's based on Asterisk 1.4.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;3. Installing trixbox&lt;/h3&gt;&lt;br /&gt;After you download the ISO file, burn it on a CD as an image using your favorite burning software. Before proceeding with the installation, make sure you have installed the module on the base card and the card is plugged properly into the PCI port. Load the CD into the PC and boot up the CD.&lt;br /&gt;&lt;br /&gt;By default, trixbox uses all disks in the computer; use "advanced" to make up your own partitioning, that is, when the CD boots, type "advanced" (without double quotes) and press enter.&lt;br /&gt;&lt;br /&gt;Proceed with defaults unless otherwise specified below.&lt;br /&gt;&lt;br /&gt;Upon reaching the partitioning stage, deselect disks that you don't want to be touched, and select: Remove all partitions &amp;amp; create default layout. (It's still safer to physically remove disks you don't want to be touched). Formatting the disk takes a long time. They use ext3 filesystem by default.&lt;br /&gt;&lt;br /&gt;The password you type during setup is used to login to the machine later for any maintenance you may need (not required for web configuration). SSH is enabled by default, with root access.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;4. Configuration&lt;/h3&gt;&lt;br /&gt;Skip section 4.1 if you have a router assigning dynamic IPs. If you wish to assign a static IP, then follow its steps.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;4.1 Network Configuration&lt;/h3&gt;&lt;br /&gt;If you don't have a DHCP server running (A router that assigns IP addresses to devices on the network), define the IP manually by logging in to the terminal, using the username "root" (case sensitive!) and the password you chose during installation.&lt;br /&gt;&lt;br /&gt;In the command prompt (shell), type: system-config-network&lt;br /&gt;Press enter to select the proper device, then go to "Use DHCP" and press the space bar to deselect it and enable the other options.&lt;br /&gt;&lt;br /&gt;Static IP: Make up an IP that is not used by any other device on the network.&lt;br /&gt;Netmask: 255.255.255.0 should be a safe bet.&lt;br /&gt;Default gateway IP: The IP of your router.&lt;br /&gt;Quite to save.&lt;br /&gt;&lt;br /&gt;When going back to the shell type: service network restart&lt;br /&gt;&lt;br /&gt;Now you should be able to login to the web interface: http://&amp;lt;static ip&amp;gt;&lt;br /&gt;&lt;br /&gt;On the top-right, click the link "switch" -- user: maint, pass: password. [&lt;a href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/SmvBG5Cq2jI/AAAAAAAAALU/TJiN5jACMxQ/s200/pic001_login_screen.png"&gt;image1&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;4.2 Create An Extension&lt;/h3&gt;&lt;br /&gt;You'll first create an extension for yourself to receive and make phone calls from using your computer.&lt;br /&gt;After you login, you'll reach the home page [&lt;a href="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/SmvBHFlg5uI/AAAAAAAAALc/-gbkjDDJP2U/s1600-h/pic002_home.png"&gt;image2&lt;/a&gt;]. Click on the PBX menu then choose "PBX Settings." Now you are at the System Status page [&lt;a href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/SmvBHavsNGI/AAAAAAAAALk/thI66j8vihg/s1600-h/pic003_system_status_PBX_settings.png"&gt;image3&lt;/a&gt;]. Click the Extensions link in the left menu, then select "Generic SIP Device" from the drop list and click "Submit" [&lt;a href="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/SmvBHky62KI/AAAAAAAAALs/x-cOKeCudh8/s1600-h/pic004_extensions.png"&gt;image4&lt;/a&gt;].&lt;br /&gt;&lt;br /&gt;SIP Device:&lt;br /&gt;* User extension: 200 (safe bet. make sure you don't use a range of existing system extensions)&lt;br /&gt;* Display name: Your name&lt;br /&gt;* Secret: &amp;lt;alphanumeric&amp;gt;&lt;br /&gt;&lt;br /&gt;* Vocie mail: Enabled&lt;br /&gt;* Voicemail password: &amp;lt;numeric&amp;gt;&lt;br /&gt;* Email: your full email address.&lt;br /&gt;* Pager: Leave it blank&lt;br /&gt;* Email attachment: Yes&lt;br /&gt;* Play CID: Yes&lt;br /&gt;[submit]&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;4.3 General Settings&lt;/h3&gt;&lt;br /&gt;* Ringtime Default: Reduced it to 5 seconds for testing&lt;br /&gt;* Find users in the company directory: First or last&lt;br /&gt;* Announce extension: Yes&lt;br /&gt;* Country: United States (Default)&lt;br /&gt;* 24-hour format: No (Changed it from Yes so that time service is said in AM/PM -- mom is not a fan of the 24 hour format)&lt;br /&gt;* Check updates: No (Not a fan of background checking &amp;amp; installation...)&lt;br /&gt;[submit]&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;4.4 Outbound Routes&lt;/h3&gt;&lt;br /&gt;This defines how you're going to call outside. The info below means that you dial 9 to get an external line, then it will dial the rest of the number.&lt;br /&gt;&lt;br /&gt;* Default auto-created route: 0 9_outside: Details:&lt;br /&gt;Password: left it blank&lt;br /&gt;Dial patterns: 9|. (Default)&lt;br /&gt;No need to submit as nothing has changed&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;4.5 Trunks&lt;/h3&gt;&lt;br /&gt;A trunk is a phone line (PSTN) in this case. In cases of using ISDN, it means having 30 lines at your disposal. The trunks page [&lt;a href="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/SmvBHplaa_I/AAAAAAAAAL0/lY5Oa8LPCQg/s1600-h/pic005_trunks.png"&gt;image5&lt;/a&gt;] shows the available trunking options.&lt;br /&gt;&lt;br /&gt;Auto created trunk: Trunk ZAP:&lt;br /&gt;* Outbound Caller ID: Your phone number&lt;br /&gt;* Never override: Checked&lt;br /&gt;* Max channels: 1 (Since it's a phone line, it can make only one phone call at a time)&lt;br /&gt;[submit]&lt;br /&gt;Note that the above are not required, but recommended.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;4.6 Inbound Routes&lt;/h3&gt;&lt;br /&gt;Where and how should incoming calls be treated. Remember, these are just basics to get things started.&lt;br /&gt;&lt;br /&gt;I created a general rule for all phone numbers [&lt;a href="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/SmvFvf87kFI/AAAAAAAAAM0/lq5Fcf7Y0II/s1600-h/pic006_inbound_routes.png"&gt;image6&lt;/a&gt;]: Leave all fields blank &amp;amp; scroll down to "Set Destination"&lt;br /&gt;* Select "Extension" and choose your extension (should be the only one for now)&lt;br /&gt;[submit]&lt;br /&gt;This will redirect all phone calls to your extension (for now)&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;4.7 Getting Caller ID to work&lt;/h3&gt;&lt;br /&gt;It doesn't work out of the box, and it requires that you have Caller ID (CID) service enabled by the Ministry of Communication!&lt;br /&gt;&lt;br /&gt;I figured that since we had telephone lines way back, it's most likely similar to the British system, and what do you know, I was right! :D&lt;br /&gt;&lt;br /&gt;PBX menu -&gt; Config File Editor -&gt; zapata.conf [&lt;a href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/SmvFvHP1_JI/AAAAAAAAAMs/hvBp4WAQVCE/s1600-h/pic007_config_file_editor.png"&gt;image7&lt;/a&gt;]&lt;br /&gt;Add these lines below threewaycalling&lt;br /&gt;&lt;br /&gt;cidsignalling=v23 ;added manually: valid values: bell, v23, dtmf&lt;br /&gt;cidstart=polarity ;added manually: valid values: usehist, ring, polarity&lt;br /&gt;&lt;br /&gt;[Update]&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;5. Applying Settings&lt;/h3&gt;&lt;br /&gt;After you've done all this, there's an orange link at the top [&lt;a href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/SmvFvFzl0xI/AAAAAAAAAMk/TuKh_sb4J_Y/s1600-h/pic008_apply_settings.png"&gt;image8&lt;/a&gt;], just below the menus, click it to save the new settings [&lt;a href="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/SmvFu6AMs8I/AAAAAAAAAMc/wK-7D2zwEmU/s1600-h/pic009_confirm_applying_settings.png"&gt;image9&lt;/a&gt;] and then go to System menu -&gt; System Maint -&gt; Reset Now [&lt;a href=""&gt;image10&lt;/a&gt;] and [&lt;a href="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/SmvGkePWJwI/AAAAAAAAAM8/2KIY5hjgy2U/s1600-h/pic011_restarting_asterisk_service.png"&gt;image11&lt;/a&gt;]. This will restart the Asterisk service and activate the new settings.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;6. Installing a softphone&lt;/h3&gt;&lt;br /&gt;Now you just need to test it out with a softphone (software on a PC/laptop). I used Ekiga for my tests. You can &lt;a href="http://wiki.ekiga.org/index.php/Main_Page"&gt;download it for free here&lt;/a&gt;.&lt;br /&gt;How can you not use this client, when they advertise their client with a picture of a cute girl?! ;p&lt;br /&gt;Feel free to use any softphone you find suitable. The settings below should apply to any.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;7. Configuring Ekiga&lt;/h3&gt;&lt;br /&gt;When you first run Ekiga, ignore/skip the initial account creation stuff. When the main window appears, go to Edit -&gt; Accounts, then click on Account menu and add a SIP account:&lt;br /&gt;&lt;br /&gt;Name: Display name&lt;br /&gt;Registrar: The static IP you chose for trixbox&lt;br /&gt;User: Your extension number&lt;br /&gt;Authentication user: Your extension number&lt;br /&gt;Password: the "secret: you chose while creating your extension&lt;br /&gt;Timeout: Leave it at its default value.&lt;br /&gt;&lt;br /&gt;If everything is fine, it will say that your account has been registered. Go to the web interface and click on PBX -&gt; PBX Settings, and you'll see that you have 1 phone online.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;8. Notes&lt;/h3&gt;&lt;br /&gt;* trixbox runs on CentOS, which is a RedHat Enterprise spin-off. RPMs will work fine with it.&lt;br /&gt;* trixbox runs smartd and it did detect bad sectors on one of the disks!&lt;br /&gt;* When the system boots, before using the web interface, memory usage is: 70MB. After doing the configurations over the web: 120MB.&lt;br /&gt;* During a call from my laptop to my mobile over a landline, the CPU is 2% utilized. Memory usage didn't change.&lt;br /&gt;* Asterisk writes a lot of data into its log files and they grow quite fast. Keep an eye at /var/log/asterisk/full&lt;br /&gt;* In theory, each phone call requires 30-33MHz of CPU power, so a 3GHz CPU can handle 90 concurrent calls using G711 encoded audio. If you use A-law codec, you can achieve about 310 concurrent calls.&lt;br /&gt;There are reports that have tested 700 concurrent calls on a Pentium4 2.5GHz + 2GB RAM machine. See Asterisk Dimensioning link below.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;9. Sources and References&lt;/h3&gt;&lt;br /&gt;&lt;a href="http://asteriskathome.sourceforge.net/handbook/#Section_5.2%20"&gt;http://asteriskathome.sourceforge.net/handbook/#Section_5.2&lt;/a&gt;&lt;br /&gt;&lt;a href="http://forums.digium.com/viewtopic.php?t=75&amp;amp;sid=774813d31e64cb58ab179fe5b01de953%20"&gt;http://forums.digium.com/viewtopic.php?t=75&amp;amp;sid=774813d31e64cb58ab179fe5b01de953&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.voip-info.org/wiki/view/Asterisk+and+UK+Caller+ID%20"&gt;http://www.voip-info.org/wiki/view/Asterisk+and+UK+Caller+ID&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ainslie.org.uk/callerid/cli_faq.htm#Q_6%20"&gt;http://www.ainslie.org.uk/callerid/cli_faq.htm#Q_6&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.voip-info.org/wiki/view/Asterisk+dimensioning%20"&gt;http://www.voip-info.org/wiki/view/Asterisk+dimensioning&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.labnol.org/internet/design/add-text-captions-align-images-html-css/2309/"&gt;http://www.labnol.org/internet/design/add-text-captions-align-images-html-css/2309/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;10. Image Index&lt;/h3&gt;&lt;br /&gt;&lt;div class="picture left" style="width:210px;"&gt;&lt;a href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/SmvBG5Cq2jI/AAAAAAAAALU/TJiN5jACMxQ/s1600-h/pic001_login_screen.png"&gt;&lt;img style="cursor: pointer; width: 200px; height: 125px;" src="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/SmvBG5Cq2jI/AAAAAAAAALU/TJiN5jACMxQ/s200/pic001_login_screen.png" alt="" id="BLOGGER_PHOTO_ID_5362592105450101298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Image 1: Login Screen&lt;/div&gt;&lt;div class="picture left" style="width:210px;"&gt;&lt;a href="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/SmvBHFlg5uI/AAAAAAAAALc/-gbkjDDJP2U/s1600-h/pic002_home.png"&gt;&lt;img style="cursor: pointer; width: 200px; height: 125px;" src="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/SmvBHFlg5uI/AAAAAAAAALc/-gbkjDDJP2U/s200/pic002_home.png" alt="" id="BLOGGER_PHOTO_ID_5362592108817475298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Image 2: Home&lt;/div&gt;&lt;div class="picture left" style="width:210px;"&gt;&lt;a href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/SmvBHavsNGI/AAAAAAAAALk/thI66j8vihg/s1600-h/pic003_system_status_PBX_settings.png"&gt;&lt;img style="cursor: pointer; width: 200px; height: 125px;" src="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/SmvBHavsNGI/AAAAAAAAALk/thI66j8vihg/s200/pic003_system_status_PBX_settings.png" alt="" id="BLOGGER_PHOTO_ID_5362592114497303650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Image 3: System Status and PBX Settings&lt;/div&gt;&lt;div class="picture left" style="width:210px;"&gt;&lt;a href="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/SmvBHky62KI/AAAAAAAAALs/x-cOKeCudh8/s1600-h/pic004_extensions.png"&gt;&lt;img style="cursor: pointer; width: 200px; height: 125px;" src="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/SmvBHky62KI/AAAAAAAAALs/x-cOKeCudh8/s200/pic004_extensions.png" alt="" id="BLOGGER_PHOTO_ID_5362592117195200674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Image 4: Extensions&lt;/div&gt;&lt;div class="picture left" style="width:210px;"&gt;&lt;a href="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/SmvBHplaa_I/AAAAAAAAAL0/lY5Oa8LPCQg/s1600-h/pic005_trunks.png"&gt;&lt;img style="cursor: pointer; width: 200px; height: 125px;" src="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/SmvBHplaa_I/AAAAAAAAAL0/lY5Oa8LPCQg/s200/pic005_trunks.png" alt="" id="BLOGGER_PHOTO_ID_5362592118480727026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Image 5: Trunks&lt;/div&gt;&lt;div class="picture left" style="width:210px;"&gt;&lt;a href="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/SmvFvf87kFI/AAAAAAAAAM0/lq5Fcf7Y0II/s1600-h/pic006_inbound_routes.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 125px;" src="http://2.bp.blogspot.com/_9_Sv3ZsvT4I/SmvFvf87kFI/AAAAAAAAAM0/lq5Fcf7Y0II/s200/pic006_inbound_routes.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5362597201136291922" /&gt;&lt;/a&gt;&lt;br /&gt;Image 6: Inbound Routes&lt;/div&gt;&lt;div class="picture left" style="width:210px;"&gt;&lt;a href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/SmvFvHP1_JI/AAAAAAAAAMs/hvBp4WAQVCE/s1600-h/pic007_config_file_editor.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 125px;" src="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/SmvFvHP1_JI/AAAAAAAAAMs/hvBp4WAQVCE/s200/pic007_config_file_editor.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5362597194504731794" /&gt;&lt;/a&gt;&lt;br /&gt;Image 7: Config File Editor&lt;/div&gt;&lt;div class="picture left" style="width:210px;"&gt;&lt;a href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/SmvFvFzl0xI/AAAAAAAAAMk/TuKh_sb4J_Y/s1600-h/pic008_apply_settings.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 125px;" src="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/SmvFvFzl0xI/AAAAAAAAAMk/TuKh_sb4J_Y/s200/pic008_apply_settings.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5362597194117796626" /&gt;&lt;/a&gt;&lt;br /&gt;Image 8: Apply Settings&lt;/div&gt;&lt;div class="picture left" style="width:210px;"&gt;&lt;a href="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/SmvFu6AMs8I/AAAAAAAAAMc/wK-7D2zwEmU/s1600-h/pic009_confirm_applying_settings.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 125px;" src="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/SmvFu6AMs8I/AAAAAAAAAMc/wK-7D2zwEmU/s200/pic009_confirm_applying_settings.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5362597190949450690" /&gt;&lt;/a&gt;&lt;br /&gt;Image 9: Confirm Applying Settings&lt;/div&gt;&lt;div class="picture left" style="width:210px;"&gt;&lt;a href="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/SmvFupSRs-I/AAAAAAAAAMU/PgpktmiH5ec/s1600-h/pic010_system_maint.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 125px;" src="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/SmvFupSRs-I/AAAAAAAAAMU/PgpktmiH5ec/s200/pic010_system_maint.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5362597186461873122" /&gt;&lt;/a&gt;&lt;br /&gt;Image 10: System Maintenance&lt;/div&gt;&lt;div class="picture left" style="width:210px;"&gt;&lt;a href="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/SmvGkePWJwI/AAAAAAAAAM8/2KIY5hjgy2U/s1600-h/pic011_restarting_asterisk_service.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 125px;" src="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/SmvGkePWJwI/AAAAAAAAAM8/2KIY5hjgy2U/s200/pic011_restarting_asterisk_service.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5362598111209727746" /&gt;&lt;/a&gt;&lt;br /&gt;Image 11: Restarting Asterisk Service&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-8174831946166738690?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/8174831946166738690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=8174831946166738690' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/8174831946166738690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/8174831946166738690'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2009/07/configuring-asterisktrixbox-for-kuwait.html' title='Configuring Asterisk/trixbox for Kuwait'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_9_Sv3ZsvT4I/SmvBG5Cq2jI/AAAAAAAAALU/TJiN5jACMxQ/s72-c/pic001_login_screen.png' height='72' width='72'/><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-6906764667903741474</id><published>2009-05-20T13:03:00.007+03:00</published><updated>2009-05-29T13:11:29.287+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='volume group'/><category scheme='http://www.blogger.com/atom/ns#' term='filesystem'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='erp'/><category scheme='http://www.blogger.com/atom/ns#' term='storage'/><category scheme='http://www.blogger.com/atom/ns#' term='ibm'/><category scheme='http://www.blogger.com/atom/ns#' term='aix'/><title type='text'>DB2 Container Rebalancing: Choosing the right filesystems</title><content type='html'>Our ERP software's database spans over multiple filesystems for better load balancing, but mixing high-load and low-load database tables on the same filesystem. Also, filesystem are grouped in volume groups that reside on different physical disks.&lt;br /&gt;&lt;br /&gt;To better understand this, here's how our production SAN is devised:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/Sg_6e3WDFhI/AAAAAAAAAKQ/XNC5j6XA6hE/s1600-h/ctrlA.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/Sg_6e3WDFhI/AAAAAAAAAKQ/XNC5j6XA6hE/s200/ctrlA.PNG" alt="" id="BLOGGER_PHOTO_ID_5336759491616773650" border="0" /&gt;&lt;/a&gt;Array 2 is one of two database data arrays, and is created over 6 hard disks in RAID level 5.&lt;br /&gt;Array 2 contains two Logical Drives: SAPappShared and SAPdataDrv2. These will be mapped to the operating system (OS) as physical disks.&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/Sg_7lL7qgGI/AAAAAAAAAKY/fe5UljtNd0I/s1600-h/ctrlB.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/Sg_7lL7qgGI/AAAAAAAAAKY/fe5UljtNd0I/s200/ctrlB.png" alt="" id="BLOGGER_PHOTO_ID_5336760699734098018" border="0" /&gt;&lt;/a&gt;Here you can see that the 3rd array spans over different disks. This is to optimize data load times when requesting data from the database.&lt;br /&gt;The two red/white disks are hot-spares that will substitute any failed disk immediately.&lt;br /&gt;You can also see that this array reside on a different controller (B), while the previous is on (A). The controller handles I/O requests from the OS.&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/Sg_8230KJDI/AAAAAAAAAKg/OdZqS4icW2E/s1600-h/ctrlLog.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://3.bp.blogspot.com/_9_Sv3ZsvT4I/Sg_8230KJDI/AAAAAAAAAKg/OdZqS4icW2E/s200/ctrlLog.PNG" alt="" id="BLOGGER_PHOTO_ID_5336762103083181106" border="0" /&gt;&lt;/a&gt;Database logs are written to a RAID level 1 array spanned over 2 disks. Logs are written always so it's better to keep them away from data to not hamper the performance.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;From what you saw above, you can count 6 Logical Drives that relate to the database. The database uses only 4 of them: Log, Data1-1, Data1-2 and Data2. The Heartbeat drives are used by the cluster services of the OS.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now, moving to the OS: IBM's AIX. We run version 5.3L.&lt;br /&gt;&lt;br /&gt;On AIX, you cannot create a filesystem on a physical disk directly. The physical disk has to belong to a Volume Group. A volume group can house multiple physical disks, whether internal disks or attached through storage or network. A volume group can contain multiple filesystems. This all falls under the topic of the Logical Voume Manager, which I will not talk about here.&lt;br /&gt;&lt;br /&gt;Back to our setup above, from AIX's point of view, the Logical Drives are shown as physical disks:&lt;br /&gt;&lt;pre&gt;# lspv&lt;br /&gt;hdisk0          00c3b3f0feb38826                    rootvg          active&lt;br /&gt;hdisk1          00c3b3f0d832abbc                    rootvg          active&lt;br /&gt;hdisk2          00c3b3e0fbad39e6                    hrtvg1&lt;br /&gt;hdisk3          00c3b3e0fbb076c8                    saplogsvg       active&lt;br /&gt;hdisk4          00c3b3e0fbef90aa                    sapdatavg1      active&lt;br /&gt;hdisk5          00c3b3e0fbf2e9bf                    sapdatavg2      active&lt;br /&gt;hdisk6          00c3b3f0168bedbb                    sapdatavg3      active&lt;/pre&gt;&lt;br /&gt;You can see from the list above that each Logical Drive is a physical disk and moreover, each has been put to a separate volume group.&lt;br /&gt;&lt;br /&gt;These are filesystems spanned over the volume group on hdisk4:&lt;br /&gt;&lt;pre&gt;# lspv -l hdisk4&lt;br /&gt;hdisk4:&lt;br /&gt;LV NAME               LPs   PPs   DISTRIBUTION          MOUNT POINT&lt;br /&gt;db2lv                 2     2     00..02..00..00..00    /db2/EHP/db2ehp&lt;br /&gt;db2dumplv             24    24    00..01..00..00..23    /db2/EHP/db2dump&lt;br /&gt;sapdata6lv            280   280   123..00..00..135..22  /db2/EHP/sapdata6&lt;br /&gt;sapdata3lv            340   340   13..132..135..00..60  /db2/EHP/sapdata3&lt;br /&gt;loglv2                1     1     00..01..00..00..00    N/A&lt;/pre&gt;&lt;br /&gt;Before continuing, let's talk about database usage, to be able to justify the next moves.&lt;br /&gt;&lt;br /&gt;Since the database tables have been split over multiple filesystems, some of the filesystems have high growth rate. Our database (IBM's DB2) can span the contents of a table over multiple filesystems; a load balancing technique. It does this through its concept of rebalancing containers. (In DB2, tables reside in Tablespaces and a tablespace consists of one or more containers).&lt;br /&gt;&lt;br /&gt;So, if we create a second container of a high growth table, it will take half of it and dump it over the new container and in the future, it will write to both in a load balancing form.&lt;br /&gt;&lt;br /&gt;Now, to be able to achieve a true sense of load balancing, in filesystem utilization and database performance, ideally these two filesystems (that house the high growth table) should be on different controllers, so that data requested residing on both filesystems can be served in parallel by the controllers.&lt;br /&gt;&lt;br /&gt;If you're doing the rebalancing after going live with the system (which is the case mostly), then you'd need to know which physical disk on the OS goes to which controller.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/ShCYjKdSiKI/AAAAAAAAAKo/yK05Z4zHztw/s1600-h/ctrlMapping.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://1.bp.blogspot.com/_9_Sv3ZsvT4I/ShCYjKdSiKI/AAAAAAAAAKo/yK05Z4zHztw/s200/ctrlMapping.PNG" alt="" id="BLOGGER_PHOTO_ID_5336933288304085154" border="0" /&gt;&lt;/a&gt;Here, you see that each Logical Drive has a unique identifier called Logical Unit Number (LUN).&lt;br /&gt;&lt;br /&gt;The LUN is represented as a hex value on AIX.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;From the shell, type "lspv" to list the physical volumes, then "lsattr -El &lt;diskname&gt;" to list the attributes of one of the disks. The value "lun_id" is what you want. See the output below.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;# lspv&lt;br /&gt;hdisk0          00c3b3f0feb38826                    rootvg          active&lt;br /&gt;hdisk1          00c3b3f0d832abbc                    rootvg          active&lt;br /&gt;hdisk2          00c3b3e0fbad39e6                    hrtvg1&lt;br /&gt;hdisk3          00c3b3e0fbb076c8                    saplogsvg       active&lt;br /&gt;hdisk4          00c3b3e0fbef90aa                    sapdatavg1      active&lt;br /&gt;hdisk5          00c3b3e0fbf2e9bf                    sapdatavg2      active&lt;br /&gt;hdisk6          00c3b3f0168bedbb                    sapdatavg3      active&lt;br /&gt;&lt;br /&gt;# lsattr -El hdisk4&lt;br /&gt;PR_key_value   none                             Persistant Reserve Key Value           True&lt;br /&gt;cache_method   fast_write                       Write Caching method                   False&lt;br /&gt;ieee_volname   600A0B80003260360000A92E472997CA IEEE Unique volume name                False&lt;br /&gt;&lt;b&gt;lun_id         0x0005000000000000&lt;/b&gt;               Logical Unit Number                    False&lt;br /&gt;max_transfer   0x100000                         Maximum TRANSFER Size                  True&lt;br /&gt;prefetch_mult  1                                Multiple of blocks to prefetch on read False&lt;br /&gt;pvid           00c3b3e0fbef90aa0000000000000000 Physical volume identifier             False&lt;br /&gt;q_type         simple                           Queuing Type                           False&lt;br /&gt;queue_depth    10                               Queue Depth                            True&lt;br /&gt;raid_level     5                                RAID Level                             False&lt;br /&gt;reassign_to    120                              Reassign Timeout value                 True&lt;br /&gt;reserve_policy single_path                      Reserve Policy                         True&lt;br /&gt;rw_timeout     30                               Read/Write Timeout value               True&lt;br /&gt;scsi_id        0x10400                          SCSI ID                                False&lt;br /&gt;size           173670                           Size in Mbytes                         False&lt;br /&gt;write_cache    yes                              Write Caching enabled                  False&lt;br /&gt;&lt;br /&gt;# lsattr -El hdisk6&lt;br /&gt;PR_key_value   none                             Persistant Reserve Key Value           True&lt;br /&gt;cache_method   fast_write                       Write Caching method                   False&lt;br /&gt;ieee_volname   600A0B80003260360000A9AA472EA49C IEEE Unique volume name                False&lt;br /&gt;&lt;b&gt;lun_id         0x000c000000000000&lt;/b&gt;               Logical Unit Number                    False&lt;br /&gt;max_transfer   0x100000                         Maximum TRANSFER Size                  True&lt;br /&gt;prefetch_mult  1                                Multiple of blocks to prefetch on read False&lt;br /&gt;pvid           00c3b3f0168bedbb0000000000000000 Physical volume identifier             False&lt;br /&gt;q_type         simple                           Queuing Type                           False&lt;br /&gt;queue_depth    10                               Queue Depth                            True&lt;br /&gt;raid_level     5                                RAID Level                             False&lt;br /&gt;reassign_to    120                              Reassign Timeout value                 True&lt;br /&gt;reserve_policy single_path                      Reserve Policy                         True&lt;br /&gt;rw_timeout     30                               Read/Write Timeout value               True&lt;br /&gt;scsi_id        0x10500                          SCSI ID                                False&lt;br /&gt;size           294225                           Size in Mbytes                         False&lt;br /&gt;write_cache    yes                              Write Caching enabled                  False&lt;/pre&gt;&lt;br /&gt;Using the above commands, finding which disk belongs to which controller on a SAN on AIX becomes like baby steps ;)&lt;br /&gt;&lt;br /&gt;We did a rebalance on one of the containers today. The container's size was about 50GB and it took about an hour on an IBM DS4800 SAN hooked with fiber to the database node residing on an IBM pSeries (570) machine: 4 POWER5 processors allocated and 30GB of RAM.&lt;br /&gt;&lt;br /&gt;I tried looking up time estimation for rebalancing containers on DB2 on Google, but didn't find anything useful. Luckily, things went on smoothly.&lt;br /&gt;The error file "db2diag.log" had the following with regards to rebalancing:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;2009-05-18-01.05.59.552039+180 E106271503A342     LEVEL: Warning&lt;br /&gt;PID     : 799110               TID  : 1           PROC : db2rebal 0&lt;br /&gt;INSTANCE: db2ehp               NODE : 000&lt;br /&gt;FUNCTION: DB2 UDB, buffer pool services, sqlb_rebalance, probe:2876&lt;br /&gt;MESSAGE : ADM6062I  Rebalance for table space "EHP#BTABD" (ID "17") has been&lt;br /&gt; completed.&lt;br /&gt;&lt;br /&gt;2009-05-18-01.05.59.552281+180 I106271846A295     LEVEL: Warning&lt;br /&gt;PID     : 799110               TID  : 1           PROC : db2rebal 0&lt;br /&gt;INSTANCE: db2ehp               NODE : 000&lt;br /&gt;FUNCTION: DB2 UDB, buffer pool services, sqlb_rebalance, probe:2876&lt;br /&gt;MESSAGE : PoolID 17: Last extent moved was #1866949&lt;/pre&gt;&lt;br /&gt;During the rebalancing period, the container being worked on was not showing in the list on the ERP software (SAP) and threw some errors. It was working fine on the database level however. After the process completed, SAP reported the new containers properly.&lt;br /&gt;&lt;/diskname&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-6906764667903741474?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/6906764667903741474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=6906764667903741474' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/6906764667903741474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/6906764667903741474'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2009/05/db2-container-rebalancing-choosing.html' title='DB2 Container Rebalancing: Choosing the right filesystems'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_9_Sv3ZsvT4I/Sg_6e3WDFhI/AAAAAAAAAKQ/XNC5j6XA6hE/s72-c/ctrlA.PNG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-2603408414685532277</id><published>2009-05-19T23:56:00.003+03:00</published><updated>2009-05-20T00:13:18.527+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='social networking'/><category scheme='http://www.blogger.com/atom/ns#' term='social engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><title type='text'>Zombie Twitter Tweets</title><content type='html'>According to &lt;a href="http://www.theregister.co.uk/2009/05/19/deleted_tweets_live_on/"&gt;this&lt;/a&gt; piece of news, &lt;a href="http://tweleted.com/"&gt;Tweleted&lt;/a&gt; is a website that hosts &lt;span style="font-weight: bold;"&gt;deleted&lt;/span&gt; Twitter posts.&lt;br /&gt;&lt;br /&gt;Did you make a boo-boo and posted your private email? Your password? Your girlfriend's phone number?&lt;br /&gt;Too bad! Someone else has most likely got hold of it already! HAHA!&lt;br /&gt;&lt;br /&gt;In my opinion, Twitter is quite intrusive to one's personal life, even when it's by choice. You make it quite easy for "Big Brother" or anyone eyeing your account to collect data.&lt;br /&gt;&lt;br /&gt;If you're too lazy to read the article above, I'll summarize an important section: Hijackers present games to encourage people to share information; like name of your pet and first name of your favorite teacher.&lt;br /&gt;&lt;br /&gt;Looking at the new measure that NBK took in Kuwait, these can be used wildly!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-2603408414685532277?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/2603408414685532277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=2603408414685532277' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/2603408414685532277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/2603408414685532277'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2009/05/zombie-twitter-tweets.html' title='Zombie Twitter Tweets'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-5800490449192335266</id><published>2009-04-17T18:18:00.011+03:00</published><updated>2009-04-18T10:36:39.803+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='support'/><category scheme='http://www.blogger.com/atom/ns#' term='story'/><category scheme='http://www.blogger.com/atom/ns#' term='erp'/><category scheme='http://www.blogger.com/atom/ns#' term='administration'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><title type='text'>TPSA: When Everything Goes Right</title><content type='html'>I was going to write about a networking story, but what happened yesterday registered as a day to never be forgotten, hence this write-up.&lt;br /&gt;&lt;br /&gt;TPSA: The Perils of System Administration -- A series of true stories about system administration. The first story is &lt;a href="http://mbhtech.blogspot.com/2009/04/perils-of-system-administration.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Yesterday, Thursday April 16&lt;sup&gt;th&lt;/sup&gt;, we had a scheduled maintenance job on our production servers. The cluster wasn't functioning as it should and yesterday's tasks were aimed at rectifying the problems once &amp; for all, and update the software installed.&lt;br /&gt;&lt;br /&gt;This was our time-plan for each task on the list:&lt;table width="90%" border="0" cellspacing="3" cellpadding="3"&gt;&lt;tr&gt;&lt;td width="15%"&gt;1400 to 1410&lt;/td&gt;&lt;td&gt;Shutdown SAP on DB and APP Server&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1410 to 1440&lt;/td&gt;&lt;td&gt;Take a database backup&lt;br&gt;Shutdown database&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1440 to 1500&lt;/td&gt;&lt;td&gt;Take a Filesystem backup (All Filesystems on both nodes)&lt;br&gt;Changing mointpoints for High Availability&lt;br&gt;Cluster switchover testing&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1500 to 1700&lt;/td&gt;&lt;td&gt;Shutdown SAP and database&lt;br&gt;Perform Kernel Upgrade on SAP CI&lt;br&gt;Start the database and SAP on the CI Instance ONLY (Not the APPS)&lt;br&gt;Perform technical testing on CI&lt;br&gt;Check the mountpoints exe&lt;br&gt;Start SAP on APPS&lt;br&gt;Perform technical testing on APPS&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1700 to 1730&lt;/td&gt;&lt;td&gt;Import the ST-A/PI Patch 01L_ECC600&lt;br&gt;Change SAP Parameters based on the document&lt;br&gt;Review the parameters on CI and APPS (Memory and Work Processes)&lt;br&gt;Restart the SAP CI and APPS&lt;br&gt;Perform technical testing on CI and APPS&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;All tasks were easy and planned out with all members of this properly set:&lt;br /&gt;- ERP software consultant (joined by his colleague later)&lt;br /&gt;- ERP offshore support consultant&lt;br /&gt;- AIX Unix consultant from IBM Kuwait&lt;br /&gt;- Myself&lt;br /&gt;&lt;br /&gt;We grabbed lunch around 1230 and some snacks and headed to the Head Office (H.O.).&lt;br /&gt;&lt;br /&gt;@1401: ERP Applications were stopped&lt;br /&gt;&lt;br /&gt;@1406: We started a full offline backup of the production database&lt;br /&gt;&lt;br /&gt;@1437: The backup reached its final stage, then threw an error, stopped, and gladly deleted the backup&lt;br /&gt;&lt;br /&gt;*NO!! THIS IS NOT THE TIME!! PLEASE!*&lt;br /&gt;&lt;br /&gt;After being stunned and depressed for 2 minutes, I thought of stopping the database and starting again, using the user db2ehp I did that and when I tried to start the database again, it threw an error!&lt;br /&gt;&lt;br /&gt;*JAWS DROPPED -- LAAAAAAAAA!!*&lt;br /&gt;&lt;br /&gt;We faced the same error a few days back due to some user profile changes, so we had to run the command "/usr/opt/db2_08_01/instance/db2iupdt db2ehp" -- I ran that command and it puked an error ...&lt;br /&gt;&lt;br /&gt;*NOOOO!! WHY WHY!! IT WAS FINE WHY NOW!! I HATE YOU!!*&lt;br /&gt;&lt;br /&gt;I navigate around and go to the home directory of the user db2ehp to check the environment variables and profiles, only to find out that these files have been corrupted and turned to binary garbage&lt;br /&gt;&lt;br /&gt;*SHOCKED*&lt;br /&gt;*EYE TWITCHES*&lt;br /&gt;&lt;br /&gt;I ftp to the secondary database node, looked for similar files, then decided to copy the whole directory and renamed the files to match the host name of the primary node.&lt;br /&gt;&lt;br /&gt;It didn't work for some reason, even though all the environment variable scripts had proper values...&lt;br /&gt;&lt;br /&gt;I called the company responsible for the support on our backup software (TSM) and in about half an hour their consultant provided me with a command line to recover a certain directory to a specific location.&lt;br /&gt;&lt;br /&gt;Then we restored from our backup software that whole directory: "/usr/tivoli/tsm/client/ba/bin/dsmc restore /home/db2ehp/ -subdir=yes /bkfs2/restoreyaman/"&lt;br /&gt;&lt;br /&gt;@1620: All files were recovered, and now were able to switch to the user db2ehp properly.&lt;br /&gt;I run the comman "/usr/opt/db2_08_01/instance/db2iupdt db2ehp" and then start the database and it worked!&lt;br /&gt;&lt;br /&gt;*YESSS!!*&lt;br /&gt;&lt;br /&gt;Database backup started again and we waited till it finished.&lt;br /&gt;&lt;br /&gt;DB backup finished and we wanted to take a backup of the filesystems through TSM. Going back &amp; forth, we eventually invoked it manually through TSM, but it timed out &amp; didn't work. Error in communication through TCP/IP, it said!&lt;br /&gt;&lt;br /&gt;*THE IP IS WORKING! I CAN PING AND LOGIN WHY CANT YOU!!???? BLOODY $##^%^@*&lt;br /&gt;&lt;br /&gt;@1743: The IBM engineer arrived and suggested that since the directory to be changed is very small, then just copy the directory somewhere else. We copied the directory we were going to change with "cp -pR &lt;src&gt; &lt;dst&gt;" to preserve permissions, to a remote filesystem.&lt;br /&gt;&lt;br /&gt;Now that everything is ready to be changed, the offshore support was contacted and their consultant logged in to our server through VPN and did the required changes.&lt;br /&gt;The changes were simple: One of the filesystems was part of the cluster resources and its mount point was incorrect. We simply had to change the mount point from "/db2/db2EHP to /db2/EHP/db2ehp"&lt;br /&gt;&lt;br /&gt;After that step was done, the IBM dude synchronized the changes between the cluster nodes on the IBM AIX Unix cluster. That was half the work -- now we just needed to make sure that we can failover back &amp; forth, then we will proceed with patching the ERP software to the latest version.&lt;br /&gt;&lt;br /&gt;@1805: We crashed the primary node, to simulate a failover from the primary DB node to the secondary, tested our ERP software, and it was working.&lt;br /&gt;Upon crashing the primary node, it was booted up again from the management console and left to come up. Meanwhile, we were checking that the DB was working properly on the 2nd node and that the ERP software was able to communicate with the DB and everything was fine.&lt;br /&gt;&lt;br /&gt;@1815: The primary DB node didn't come up yet. Fishy. Upon checking on it, it seemed to be stuck, so we restarted it again.&lt;br /&gt;&lt;br /&gt;@1825: The machine didn't come up after 10 minutes, which was very suspicious... after checking the management console, it was stuck at code: "0557" -- Some Googling away and to our luck, the message meant problems with the filesystem....&lt;br /&gt;&lt;br /&gt;The system couldn't boot because from what it seems, the root filesystem (/) is corrupted, hence the operating system can't load.&lt;br /&gt;&lt;br /&gt;*EYE TWITCHES*&lt;br /&gt;*WHY ???? WHYYYYY??? WHY NOW? WHY ME? *&lt;br /&gt;&lt;br /&gt;&lt;i&gt;I'm quite disappointed, since I have never expected to face such an issue with AIX and on a p5 series machine. Even the IBM dude was shocked.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;The IBM engineer said he can proceed with the procedure we found here:&lt;br /&gt;http://www.docstoc.com/docs/2801670/AIX-BOOTING-PROBLEM -- page 5&lt;br /&gt;&lt;br /&gt;But he said that since his job isn't support, it would be better for us to call IBM's support line and log the call, and whatever instructions they give, he'll execute them.&lt;br /&gt;&lt;br /&gt;I call IBM's branch in Kuwait and dial the extension which usually takes me to their support in UAE. No one answered... I called 2 more times, without avail.&lt;br /&gt;&lt;br /&gt;The IBM dude called a colleague and he gave him another extension for off-hours support. We called that extension and someone picked up! (OH JOY)&lt;br /&gt;&lt;br /&gt;I told the support dude my company's name &amp; that we're from Kuwait and he asked me what was the problem &amp; to log an issue by sending an email. I sent the email.&lt;br /&gt;&lt;br /&gt;@1953: I received an email from him asking for my company's name, again.&lt;br /&gt;&lt;br /&gt;I reply to it and wait for another 10 minutes. Then I call the extension again and ask him what is going on, he said that our support contract had expired in 2005.&lt;br /&gt;&lt;br /&gt;*HUH?!*&lt;br /&gt;&lt;br /&gt;I tell him that we bought the hardware in November 2007!! And that the support contract for that didn't expire yet!! He insisted that there was no data on their end to support my claim and we argued for a good 10 minutes.&lt;br /&gt;The IBM dude with us interfered and said that my claims are correct and that he was present during the purchase and commissioning of these boxes, but the dude at UAE said if their database doesn't show such a thing, there's nothing he can do.&lt;br /&gt;&lt;br /&gt;@2024: He emails me with instructions to contact IBM Europe, and that if they are to help us, they will charge $360 an hour for a minimum of two hours!&lt;br /&gt;&lt;br /&gt;According to all the links we found on Google, the error code points at a corrupt filesystem, so we know what's the problem exactly, and there was no point in contacting or paying for IBM Europe.&lt;br /&gt;&lt;br /&gt;@2035: we proceed with loading the first DVD of AIX and boot from it to recovery mode on he primary node, and follow instructions in the document above.&lt;br /&gt;&lt;br /&gt;All filesystems we corrupted. ALL of them.&lt;br /&gt;&lt;br /&gt;*I looked at the IBM dude and said: I'm this close to sit in a corner and cry*&lt;br /&gt;&lt;br /&gt;The AIX guru started fixing them one by one, and all got repaired (including root filesystem), except one: /home, which contains the startup and environment scripts for the database...&lt;br /&gt;&lt;br /&gt;*CRAP! but at least the root filesystem is sane!*&lt;br /&gt;&lt;br /&gt;We reboot the machine and enter the recovery mode again and run fsck (ilesystem check) again to make sure all the filesystems are fine now .. all were, except /home -- it's a goner. Can't be recovered anymore. The &lt;a href="http://en.wikipedia.org/wiki/Logical_volume_management"&gt;LVM&lt;/a&gt; partition was corrupt beyond recognition.&lt;br /&gt;&lt;br /&gt;The IBM engineer proceeds to make sure that the root filesystem is bootable, on both disks, by issuing the respective commands to write the Master Boot Records to them, and other information.&lt;br /&gt;&lt;br /&gt;We exit the recovery mode, for the machine to boot in normal mode and we look anxiously at the error code display... as soon as it passed and the system started to come up, we jumped in joy and hugged.&lt;br /&gt;&lt;br /&gt;@2050: Now that we have most of the filesystems working, we decide to back them all up on a DVD (sysback).&lt;br /&gt;&lt;br /&gt;@2105: The backup to the DVD failed. Apparently the unix box only likes DVD-RAM media. Luckily, there was an option to take a backup over the LAN to TSM.&lt;br /&gt;&lt;br /&gt;@2115: We then proceeded to destroy the corrupt filesystem and its evil logical volume, then create a fresh one and import the /home directory contents to it from TSM: "/usr/tivoli/tsm/client/ba/bin/dsmc restore /home/ -subdir=yes /home/"&lt;br /&gt;&lt;br /&gt;@2135: After restoration was done, we took another full backup of the root volume group (which includes the new /home filesystem).&lt;br /&gt;&lt;br /&gt;Then we rebooted the primary node, to make sure that the filesystems persisted. It didn't come up after 5 minutes... When checking, the IBM dude had forgotten to abort booting from CD, at which the screen was stuck at. Exiting from that menu, the machine booted normally.&lt;br /&gt;&lt;br /&gt;@2145: We rebooted one more time, just to be sure, and everything went fine. At this point, we no longer needed the offshore support nor the IBM engineer since their job was done. The offshore support logged off &amp; the IBM unix guru left, with many warm thanks from me.&lt;br /&gt;&lt;br /&gt;Then we proceeded to patch the ERP software; basically, it's just a compressed file with the new binaries and an installer script. We already had the stuff uncompressed on a remote filesystem (NFS), so we just mounted that, renamed the old directory (exe) to "exe_old", then copied the files to the proper location.&lt;br /&gt;&lt;br /&gt;It should be noted that the filesystem which we applied the patch to, is exported as a network filesystem (NFS) to other nodes.&lt;br /&gt;&lt;br /&gt;As the ERP software came up on the primary node, we started it on the 2nd node, but it crashed...&lt;br /&gt;&lt;br /&gt;The ERP dudes tinkered around and found out that all nodes except the primary ERP one are using the old files (pre-patch) !!!&lt;br /&gt;&lt;br /&gt;*EYE TWITCHES*&lt;br /&gt;*WHAT THE!!*&lt;br /&gt;&lt;br /&gt;We found out a few minutes later that for some reason, the NFS mount is still pointing at the old directory, which we renamed! So, it seemed like even if you rename the directory, NFS would keep track of that!! (Maybe we should've stopped NFS before doing the renaming?)&lt;br /&gt;&lt;br /&gt;I proceed to re-export the NFS directories, in an attempt to refresh any links to the directories. It didn't work, and now other nodes are getting an error for this particular NFS mount:&lt;br /&gt;"df: /sapmnt/EHP/exe: A file, file system or message queue is no longer available."&lt;br /&gt;&lt;br /&gt;*EYE TWITCHES*&lt;br /&gt;*NO MORE PROBLEMS, PLEASE!!! LET US FINISH AND GO HOME!!*&lt;br /&gt;&lt;br /&gt;I stopped the NFS service &amp; started it again. No use. Deleted the old exported directory settings from NFS, and add it again, then restart NFS. No use.&lt;br /&gt;&lt;br /&gt;At the end, we decided to try moving out the files from the old directory to a temporary one, putting the new files in the renamed dirctory "exe_old" then renaming it back to "exe"&lt;br /&gt;&lt;br /&gt;It worked!!!!! And I laughed hysterically, not believing what happened and the "solution"&lt;br /&gt;&lt;br /&gt;During all this, we had to take down the cluster resources before modifying anything, since all nodes point at the shared NFS filesystem, even though it's not part of the cluster resources!!!&lt;br /&gt;&lt;br /&gt;We had to shut &amp; start the cluster services about 5 times, till we figured out the solution above.&lt;br /&gt;&lt;br /&gt;We brought up all the systems and the ERP guys applied application-level patches &amp; plugins (yes, more of them...)&lt;br /&gt;&lt;br /&gt;@0057: I took the ERP dudes to their hotel and I went home.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-5800490449192335266?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/5800490449192335266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=5800490449192335266' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/5800490449192335266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/5800490449192335266'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2009/04/tpsa-when-everything-goes-right.html' title='TPSA: When Everything Goes Right'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-1041493138852800229</id><published>2009-04-14T13:07:00.004+03:00</published><updated>2009-04-15T09:40:54.832+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='support'/><category scheme='http://www.blogger.com/atom/ns#' term='story'/><category scheme='http://www.blogger.com/atom/ns#' term='erp'/><category scheme='http://www.blogger.com/atom/ns#' term='administration'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><title type='text'>The Perils of System Administration</title><content type='html'>Whenever you join a company, visit the IT department and you'll find a group of guys calling themselves Systems Administrators, or Systems Engineers (depending on their rank).&lt;br /&gt;These are the guys that keep your IT services running, and even if you see them slacking, playing chess, hide-and-seek, making fun of users, or sleeping on the desk, you can almost always count on them when one of the servers go down; they will stay at work and use toothpicks to keep their eyes open, until your &lt;a href="http://en.wikipedia.org/wiki/Gollum"&gt;precious(ssss)&lt;/a&gt; services are up &amp; running.&lt;br /&gt;&lt;br /&gt;I have come across two kinds of admins: Those who have ethics and those who don't. In time of crisis, you can tell which is which, in case the unethical was a cunning fox during the casual days of duty.&lt;br /&gt;&lt;br /&gt;Ethics dictate that you state clearly what you know &amp; what you don't, take responsibility for your actions, be loyal to your employer, don't abuse your power, and do your job as you should.&lt;br /&gt;&lt;br /&gt;I'll share a couple of stories here to further show the dedication, demand and abuse that IT administrators are subjected to.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Sleepless Nights: Data? What Data?&lt;/h3&gt;&lt;br /&gt;Three weeks ago we had a scheduled maintenance task starting at Thursday 1400 hours (2 PM) till 1800 (6 PM). The scope of this task was to fix our Database Server cluster where our Enterprise Resource Planning (&lt;a href="http://en.wikipedia.org/wiki/Enterprise_resource_planning"&gt;ERP&lt;/a&gt;) software works. This means HR, Finance, Warehouses, and Sales are all dependent on it.&lt;br /&gt;&lt;br /&gt;We stopped the system at 1405, took an offline full backup of the database before working, then we proceeded to verify the backup to make sure it's consistent.&lt;br /&gt;&lt;br /&gt;At 1435, the backup was done, and we proceed with the offshore support of the ERP system to fix the cluster problems on the secondary/standby node.&lt;br /&gt;&lt;br /&gt;One thing lead to another, and we ended up staying till 2200 (10 PM) and planned to continue working on Friday starting at 0800, hoping to finish before lunch time.&lt;br /&gt;The offshore guys were still logged in through &lt;a href="http://en.wikipedia.org/wiki/Virtual_private_network"&gt;VPN&lt;/a&gt; from India and continue to dig around for a few more hours.&lt;br /&gt;&lt;br /&gt;On Friday I was at the Head Office (HO) at 0750, contacted the offshore support and we picked up from where we left. Around 1100, we got both nodes to work, and we did 2 failover tests and the database worked fine, until we switched back to the primary node.&lt;br /&gt;&lt;br /&gt;Everything just went down the hill from there...&lt;br /&gt;&lt;br /&gt;The database entered an infinite loop and entered recovery mode. What is recovery mode, you say?&lt;br /&gt;Well, it crashes, then comes up again trying to start, then crashes, and so on.&lt;br /&gt;These continuous cycles caused the error dump filesystem to fill up, which caused another crash at a higher level, stopping the recovery cycle and ending with a non-working database server.&lt;br /&gt;&lt;br /&gt;Around 1600, we were still trying to bring the database up after investigating many error logs of the database and the operating system.&lt;br /&gt;&lt;br /&gt;A few more futile attempts were made to run the database, after increasing the size of the error dump filesystem.&lt;br /&gt;&lt;br /&gt;Around 2100, we realized that our database has been corrupted. No more data. No more business.&lt;br /&gt;&lt;br /&gt;Enter panic mode.&lt;br /&gt;&lt;br /&gt;We knew we had a safe full backup after the business closed, so we won't be losing any changes. Now, it was all about recovering the database, make sure the ERP software is working, then we could sleep.&lt;br /&gt;&lt;br /&gt;I forgot to mention that since we couldn't leave the place, I had a friend of mine bring us lunch to work, and that was the only meal we had that day. THANKS HISHAM!!!&lt;br /&gt;&lt;br /&gt;Anyway, we raised a support ticket to the ERP software vendor (SAP) with the highest priority possible and they called me within 30 minutes from Germany. They verified that it is indeed a top priority problem and they assigned one of their elite support guys to help us.&lt;br /&gt;&lt;br /&gt;Around 0200, Saturday, we decided to dump the existing now corrupted database, and import the backup.&lt;br /&gt;&lt;br /&gt;At 0300 Saturday, we had wrapped up the unfinished work of the cluster failover task, and were just happy that the data and the systems are up &amp; running for the business to use, since my company works on Saturdays.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;More stories to come...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-1041493138852800229?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/1041493138852800229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=1041493138852800229' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/1041493138852800229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/1041493138852800229'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2009/04/perils-of-system-administration.html' title='The Perils of System Administration'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-7865790352473084853</id><published>2009-04-13T05:04:00.005+03:00</published><updated>2009-04-13T05:51:25.157+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='brainstorm'/><category scheme='http://www.blogger.com/atom/ns#' term='desktop'/><category scheme='http://www.blogger.com/atom/ns#' term='gui'/><title type='text'>BumpTop: The New Desktop Experience!</title><content type='html'>I got this through the &lt;a href="http://www.oskw.org/index.php?option=com_wrapper&amp;Itemid=27"&gt;maillist&lt;/a&gt; and I have to admit that even though I'm not a graphical interface kind of person, the idea is awesome!&lt;br /&gt;&lt;br /&gt;It's a new concept of having a "desktop" where you treat it like you treat your own desk: Have stuff laying around, stuff pinned to the wall, stuff piled up, ...etc.&lt;br /&gt;&lt;br /&gt;If you're a person who liked graphical effects and like to interact with your computer, I think this fits you quite well! (It even has &lt;a href="http://bumptop.com/support/theme_install.php"&gt;themes&lt;/a&gt;!)&lt;br /&gt;&lt;br /&gt;The original video of the idea is &lt;a href="http://www.ted.com/talks/view/id/131"&gt;here&lt;/a&gt;. It explains the idea &amp; its origin.&lt;br /&gt;&lt;br /&gt;Software: &lt;a href="http://bumptop.com/"&gt;http://bumptop.com/&lt;/a&gt; -- Currently Windows only, but you can vote for Linux &amp;/| Mac.&lt;br /&gt;&lt;br /&gt;If you run this software, kindly leave your feed back here, or link back to me with your own review of it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-7865790352473084853?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/7865790352473084853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=7865790352473084853' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/7865790352473084853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/7865790352473084853'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2009/04/bumptop-new-desktop-experience.html' title='BumpTop: The New Desktop Experience!'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-1438329381714776298</id><published>2009-04-07T14:25:00.003+03:00</published><updated>2009-04-07T14:36:39.526+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kuwait'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='zain'/><title type='text'>Zain e-Go: Show me MY Usage before you charge me!</title><content type='html'>I have this Zain e-Go device (&lt;a href="http://www.huawei.com/mobileweb/en/products/view.do?id=282"&gt;Huawei E220&lt;/a&gt;) and on 3 occasions I had to pay more than the subscription fees and got my bandwidth capped at 16 kB/s because I went over the 30 GB/month limit.&lt;br /&gt;&lt;br /&gt;What I don't understand is since Zain knows how much I'm downloading, why doesn't it show me the bandwidth usage per day?&lt;br /&gt;&lt;br /&gt;I don't mind paying when exceeding, but Zain/MTC has a history of mis-billing and now I can't tell why I'm paying extra, unlike the case with calls &amp; SMS.&lt;br /&gt;&lt;br /&gt;I'm not the only device user, so it doesn't help to install a program on my own machine and log the traffic.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-1438329381714776298?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/1438329381714776298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=1438329381714776298' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/1438329381714776298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/1438329381714776298'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2009/04/zain-e-go-show-me-my-usage-before-you.html' title='Zain e-Go: Show me MY Usage before you charge me!'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-807479886020733172</id><published>2009-04-07T11:33:00.003+03:00</published><updated>2009-04-07T11:41:05.936+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ISP'/><category scheme='http://www.blogger.com/atom/ns#' term='kuwait'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><title type='text'>A Request to ISPs: Consider The Users when Going Fiber</title><content type='html'>Since Kuwait is moving to the Fiber connectivity infrastructure (hopefully within 2 years...), I wish that local ISPs can do the following:&lt;br /&gt;&lt;br /&gt;When users subscribe for an Internet connection, the ISP would provide a standard link capacity of 5-10Mbps, but cap the Internet bandwidth to the subscribed value.&lt;br /&gt;&lt;br /&gt;This would allow us, users, to reach local websites quite fast (newspapers, stock market, online banking, e-government) and would also allow us to form online games locally in Kuwait and enjoy the low lag &amp; fast connectivity.&lt;br /&gt;&lt;br /&gt;Heck, we can help ISPs reduce the total Internet bandwidth coming from the Internet by running local torrent trackers and serve the weekly common things like TV shows' episodes, anime and whatnot.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-807479886020733172?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/807479886020733172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=807479886020733172' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/807479886020733172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/807479886020733172'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2009/04/request-to-isps-consider-users-when.html' title='A Request to ISPs: Consider The Users when Going Fiber'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-2848246460182045706</id><published>2009-03-31T01:59:00.003+03:00</published><updated>2009-03-31T13:00:25.675+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='black ops'/><category scheme='http://www.blogger.com/atom/ns#' term='social engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='snooping'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>Black Ops</title><content type='html'>&lt;a href="http://en.wikipedia.org/wiki/Black_operation"&gt;Black Ops&lt;/a&gt;: "A Black Operation or Black Op is a covert operation typically involving activities that are highly secret."&lt;br /&gt;&lt;br /&gt;I know it's something we're not supposed to talk about and we should all be under cover (is this fight-club?!), but it's so much fun and there are so many areas to tap into to just keep it hush-hush!&lt;br /&gt;&lt;br /&gt;Depending on the employee's seniority and job title, orders can come from multiple people/departments:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Company Owners&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Audit Department&lt;/li&gt;&lt;br /&gt;&lt;li&gt;General Managers&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Department Manager&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;My company has been unfortunate to have had multiple naughty employees and managers in which high management had to resort back to us, Black Ops, to uncover/retrieve a piece of evidence and in other cases erase records of an error one of the higher ups made so it wouldn't expose sensitive information.&lt;br /&gt;&lt;br /&gt;At one time, highest management asked to stalk someone's corporate email and sniff news of certain criteria, along with gathering information from that employee's machine that may indicate incriminating behavior.&lt;br /&gt;At that time, only 3 people knew about the operation: The top manager and the 2 Black Ops involved, and it remained that way until that employee was fired (even though we stopped looking for info a bit before that).&lt;br /&gt;&lt;br /&gt;The fun of having such a job is that it doesn't rely on technical skills only, but on social engineering ones as well. You'd have to create an undeniable and convincing diversion at the right time for the right people to be able to achieve total stealth.&lt;br /&gt;&lt;br /&gt;My company doesn't have VoIP deployed, yet, so we're still not required to snoop on phone calls as well (which would be quite annoying to us), but I guess it's inevitable. I hope someone comes up with a decent sound-processing software that can look for certain words in voice files before we're asked to fish for voice packets!&lt;br /&gt;&lt;br /&gt;You can't tell whether it's an actual problem, or if it's us putting on our black hats and chuckling at your private chats with many guys pretending to be girls. Why not? Simply because our diversion is either a common problem, or we create such issues once in a while just in case we needed a diversion one day. By the time you, a naughty employee, sense a snooping act, it would be too late.&lt;br /&gt;&lt;br /&gt;A tiny network outage, a printer driver reinstallation, sudden Operating System freezes, stealth installation of a piece of software or a background job, a quick computer restart, ...etc.&lt;br /&gt;&lt;br /&gt;Rogue Black Ops are a bigger problem to companies than dirty &amp;amp; naughty employees themselves. This kind either sniffs data for fun, blackmailing or a dirty/naughty employee had bribed them to erase records of evidence (of which they keep a copy to blackmail the dumb employee later).&lt;br /&gt;&lt;br /&gt;The only way to fight rogue Black Ops is by enforcing tight auditing on all IT infrastructure: VPN Access times, over-time claims, assigning an entry-level administrator to handle the VPN server (to make sure he doesn't have the experience to cover evidence nor having formed a relation with existing staff).&lt;br /&gt;Ironically, the above may also interfere with investigating a rogue audit employee!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;The company owns the data&lt;br /&gt;We pwn you&lt;br /&gt;Weep, threat, cry and fret&lt;br /&gt;We pity the fool&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Got stories to share? Kindly post as &lt;b&gt;Anonymous&lt;/b&gt; ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-2848246460182045706?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/2848246460182045706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=2848246460182045706' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/2848246460182045706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/2848246460182045706'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2009/03/black-ops.html' title='Black Ops'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-6505442499722231465</id><published>2009-03-09T08:38:00.004+03:00</published><updated>2009-03-09T12:21:42.457+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='traffic'/><category scheme='http://www.blogger.com/atom/ns#' term='kuwait'/><title type='text'>Traffic Monitoring and Prediction</title><content type='html'>&lt;h3&gt;Idea 1: Zero-based Configuration - Carrier Based&lt;/h3&gt;&lt;br /&gt;Any mobile phone would have to register to a cell tower that is in range. So any carrier would be able to see the people (mobiles) in range and provide an estimate of congestion in certain areas at certain times. The result is an approximation of the person's location because towers cover a radius. (more on this below)&lt;br /&gt;&lt;br /&gt;The beauty of this is that there no additions or modifications to be done to carrier's systems. They already have this info and it's just a matter of saving the data periodically and then the data is plotted over a map of Kuwait.&lt;br /&gt;&lt;br /&gt;Further fine-tuning on the location of people can be done through the usage of &lt;a href="http://en.wikipedia.org/wiki/Triangulation"&gt;triangulation&lt;/a&gt; methods. A cell tower sees a mobile even if it's not registered with it, thus if you have multiple towers one can approximate the user's location based on the distance from each tower.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Idea 2: Image-processing Method&lt;/h3&gt;&lt;br /&gt;Most if not all traffic lights have a live-feed camera on top of them. Capturing an image just before the traffic light becomes green would give the most number of cars waiting. Using image-processing methods, a program could identify the number of cars.&lt;br /&gt;&lt;br /&gt;If images are processed properly, the result is more accurate than the one in &lt;b&gt;Idea 1&lt;/b&gt;, and it would indicate which streets are congested at what times.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Prediction&lt;/h3&gt;&lt;br /&gt;Once you have data for a whole year, or two, you can tell during a certain month or during special occasions which streets are mostly congested, how people react and which are the best alternative routes to take.&lt;br /&gt;&lt;br /&gt;The data can be plugged into simulation software and government can simulate training sessions for traffic police, special forces, army, ambulances, building new streets and highways, ...etc.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Public Availability&lt;/h3&gt;&lt;br /&gt;The point of these systems isn't only for the government to know where congestions are. They already know this. If these were available to the public, then people could avoid congestions and effectively reduce its cumulative effect.&lt;br /&gt;&lt;br /&gt;I have addressed traffic monitoring in a previous &lt;a href="http://mbhtech.blogspot.com/2008/09/mesh-networks-and-traffic-jams-double.html"&gt;post&lt;/a&gt; using a different method, which provides Internet access as well as providing congestion info.&lt;br /&gt;&lt;br /&gt;People can login to basic website and show a map with congested areas (possibly suggest an alternative route) using their mobile phones, or other means.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-6505442499722231465?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/6505442499722231465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=6505442499722231465' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/6505442499722231465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/6505442499722231465'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2009/03/traffic-monitoring-and-prediction.html' title='Traffic Monitoring and Prediction'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-7962611179114583159</id><published>2009-03-05T01:40:00.005+03:00</published><updated>2009-03-05T15:50:47.389+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='hotmail'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>HotZift: A Sprinkle of Free Frustration</title><content type='html'>Microzift (Microsoft - soft + garbage) just can't have enough frustrated people using its products. I think Bill Gate's cash is generated by selling anti-depressants and assigning its hell-desk (help desk) drones to Suicide Hot Lines!!!&lt;br /&gt;&lt;br /&gt;I was subscribed to some groups without my consent. I emailed Google about this last week and got no response while still being spammed at my old Hotmail account. So I read Google's help pages again and saw that if you email the &lt;groupname&gt;+unsubscribe@googlegroups.com you get unsubscribed automatically!&lt;br /&gt;&lt;br /&gt;So click on one of the spam emails to see the address of the sender and then copy the email: groupname@googlegroups.com, then I paste it in the To field.&lt;br /&gt;&lt;br /&gt;When I tried to click after the group's name to add '+unsubscribe' I couldn't!!! The email I already entered got highlighted and is no longer modifiable!&lt;br /&gt;&lt;br /&gt;WHY???? GIVE ME ONE GOOD LOGICAL FREAKIN REASON!!!!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/Sa8FKEpasZI/AAAAAAAAAIo/oCzsp9iHQk0/s1600-h/hotzift.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 48px;" src="http://4.bp.blogspot.com/_9_Sv3ZsvT4I/Sa8FKEpasZI/AAAAAAAAAIo/oCzsp9iHQk0/s200/hotzift.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5309468156297392530" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(Before you comment on why I keep using the dreadful hotzift: I keep this 10 year old account because most of my old buddies can only be reached through MSN and they don't login much and even if I email them my new email they're unlikely to open the email. So shut up.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-7962611179114583159?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/7962611179114583159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=7962611179114583159' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/7962611179114583159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/7962611179114583159'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2009/03/hotzift-sprinkle-of-free-frsutration.html' title='HotZift: A Sprinkle of Free Frustration'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_9_Sv3ZsvT4I/Sa8FKEpasZI/AAAAAAAAAIo/oCzsp9iHQk0/s72-c/hotzift.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-4241894594465614632</id><published>2009-03-04T13:52:00.001+03:00</published><updated>2009-03-04T16:39:22.842+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ISP'/><category scheme='http://www.blogger.com/atom/ns#' term='kuwait'/><category scheme='http://www.blogger.com/atom/ns#' term='qualitynet'/><title type='text'>QualityNet DNS Servers</title><content type='html'>We've had an semi-full outage of Internet in the company. After some investigation it turned out to be that QualityNet is having problems with their DNS servers along with some routing issues.&lt;br /&gt;&lt;br /&gt;They have advised us to change the DNS servers to new ones.&lt;br /&gt;&lt;br /&gt;Old DNS Servers:&lt;br /&gt;195.226.224.72&lt;br /&gt;195.226.224.74&lt;br /&gt;&lt;br /&gt;New DNS Servers:&lt;br /&gt;195.226.228.72&lt;br /&gt;195.226.228.74&lt;br /&gt;&lt;br /&gt;These changes are permanent.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-4241894594465614632?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/4241894594465614632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=4241894594465614632' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/4241894594465614632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/4241894594465614632'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2009/03/qualitynet-dns-servers.html' title='QualityNet DNS Servers'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-5307941294288828599</id><published>2009-02-09T08:35:00.008+03:00</published><updated>2009-02-09T09:50:44.266+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='storage'/><category scheme='http://www.blogger.com/atom/ns#' term='memory'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='RAM'/><category scheme='http://www.blogger.com/atom/ns#' term='system cache'/><title type='text'>Fine-tuning Windows System Cache To Free Memory</title><content type='html'>&lt;b&gt;Note: If you want the technical part only, go to the end of the post&lt;/b&gt;&lt;br /&gt;&lt;h3&gt;Boring Intro&lt;/h3&gt;&lt;br /&gt;Our retail software is built on top of Visual Basic (yuck!) and main server replicates with 7 other servers that hold sub-databases.&lt;br /&gt;&lt;br /&gt;The main server is a quad-core &lt;a href="http://www-03.ibm.com/systems/x/hardware/tower/x3400/specs.html"&gt;IBM X3400&lt;/a&gt; with 6GB of RAM running Windows Server 2003 Enterprise x64. This is a new system that replaced an old server that crashed a while back. The old server ran on Windows 2000 Server with 4GB of RAM, but the data was stored on a Storage Area Network (SAN).&lt;br /&gt;&lt;br /&gt;After moving to the new box, the dude "administrating" it kept restarting it on a daily basis saying that the server was "too slow" and that it didn't have enough memory (!!!). Later on, one of the people at the implementing company said that the server wasn't good.&lt;br /&gt;&lt;br /&gt;I could let you live if you say a server that I built is slow, but saying it isn't good ... you just dug your own grave dude... I emailed one angry email at both the administrator and the no-good fella, CCed to my manager, accusing them of meaningless restarts and claiming that my server isn't good and that it's hardware fault, without ANY proof.&lt;br /&gt;&lt;br /&gt;Of course, because I'm right, none of them replied, but sneakily they purchased extra RAM (2GB) behind my back, which is another big no-no. They didn't install the RAMs and were looking for someone (other than me) to do it for them.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Technical Part&lt;/h3&gt;&lt;br /&gt;It took me 5 minutes to identify the problem: During replication or at times were many files are open on the server, Windows caches these open files in the RAM (System Cache's responsibility).&lt;br /&gt;According to the Help of Windows Task Manager: &lt;b&gt;The System Cache shows the current physical memory used to map pages of open files.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Of course, Windows being itself, there's no direct way to tweak this properly, and after some search I &lt;a href="http://windowsitpro.com/article/articleid/83317/jsi-tip-9200-how-should-i-tune-the-system-cache-in-windows-xp.html"&gt;found&lt;/a&gt; a registry key which can balance the usage of the System Cache and free up some RAM.&lt;br /&gt;&lt;br /&gt;Go to &lt;b&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters&lt;/b&gt; and look for a REG-WORD data type named &lt;b&gt;Size&lt;/b&gt;, which can have the following settings:&lt;br /&gt;&lt;br /&gt;1 = Minimize Memory Used.&lt;br /&gt;2 = Balance.&lt;br /&gt;3 = Maximize Throughput for File Sharing and Maximize Throughput for Network Applications.&lt;br /&gt;&lt;br /&gt;The default, as you might have guessed, is 3. I changed it to 2 but nothing changed until a server restart (typical).&lt;br /&gt;&lt;br /&gt;I fired another email saying that I fixed the problem with a registry key, and went there and took the 2GB RAM for another server.&lt;br /&gt;&lt;br /&gt;Why this didn't happen to the old server? I'm guessing that the SAN's cache was handling it properly and/or Windows 2000 Server was configured from the start to be a database host, which the new 2003 box apparently haven't.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-5307941294288828599?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/5307941294288828599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=5307941294288828599' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/5307941294288828599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/5307941294288828599'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2009/02/fine-tuning-windows-system-cache-to.html' title='Fine-tuning Windows System Cache To Free Memory'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-996724565935793630</id><published>2009-02-07T12:54:00.004+03:00</published><updated>2009-02-07T13:17:11.528+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NSF'/><category scheme='http://www.blogger.com/atom/ns#' term='lotus notes'/><category scheme='http://www.blogger.com/atom/ns#' term='export'/><category scheme='http://www.blogger.com/atom/ns#' term='ibm'/><title type='text'>Export Unicode Data from Lotus Notes NSF Files</title><content type='html'>A colleague was tasked to rebuild a program was developed on top of an ancient version of &lt;a href="http://www.google.com/url?sa=U&amp;start=1&amp;q=http://www.ibm.com/software/lotus"&gt;IBM Lotus Notes&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I've been searching with her for programs to export the data from the NSF file that also support Arabic. We didn't know which encoding the NSF was using either. She contacted the authors and companies of many programs and all said that it depends on the computer you're executing the program on. Well, we tested them on computers which already have Arabic installed and everything set properly but still failed to export the data properly.&lt;br /&gt;&lt;br /&gt;Eventually, I thought of trying to export the data from the latest Lotus Notes software available (8.5 stable), and it worked! I had to open the view which contained the listed data and then export and make sure I selected &lt;a href="http://en.wikipedia.org/wiki/UTF-8"&gt;UTF-8&lt;/a&gt; or &lt;a href="http://en.wikipedia.org/wiki/Unicode"&gt;Unicode&lt;/a&gt; (No clue what's the difference!).&lt;br /&gt;&lt;br /&gt;Lotus Notes 8.5 allows to export in Comma Separated Value format (CSV), Structured Text, tabular Format and ASCII. To obtain full information on each record I had to export the data in Structured Text format. CSV only exported the visible data in the current view; if you double click a record you'd get the rest of the data in the view.&lt;br /&gt;&lt;br /&gt;Structured Text for now, unless I find a way to export the full data in CSV. (I'm feeling lazy now that the data is exported in Structured Text already .. it requires some parsing but its there!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8353696605063426251-996724565935793630?l=mbhtech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbhtech.blogspot.com/feeds/996724565935793630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8353696605063426251&amp;postID=996724565935793630' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/996724565935793630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8353696605063426251/posts/default/996724565935793630'/><link rel='alternate' type='text/html' href='http://mbhtech.blogspot.com/2009/02/export-unicode-data-from-lotus-notes.html' title='Export Unicode Data from Lotus Notes NSF Files'/><author><name>MBH</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8353696605063426251.post-2640824635007432784</id><published>2009-02-06T16:25:00.006+03:00</published><updated>2009-02-06T17:17:25.371+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hell desk'/><category scheme='http://www.blogger.com/atom/ns#' term='confusion'/><category scheme='http://www.blogger.com/atom/ns#' term='help desk'/><category scheme='http://www.blogger.com/atom/ns#' term='bank'/><category scheme='http://www.blogger.com/atom/ns#' term='kuwait'/><category scheme='http://www.blogger.com/atom/ns#' term='sticky-note'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='nb
