<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2enclosuresfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>AbuSofiane's blog</title><link>http://laouini.blogspot.com/</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/sofiane" /><description>The (occasionally coherent) ramblings of a geek ...</description><language>en</language><managingEditor>noreply@blogger.com (sofiane)</managingEditor><lastBuildDate>Wed, 08 Feb 2012 20:18:25 PST</lastBuildDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">82</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">25</openSearch:itemsPerPage><feedburner:info uri="sofiane" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><media:category scheme="http://www.itunes.com/dtds/podcast-1.0.dtd">Technology/Tech News</media:category><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><itunes:explicit>no</itunes:explicit><itunes:subtitle>The (occasionally coherent) ramblings of a geek ...</itunes:subtitle><itunes:category text="Technology"><itunes:category text="Tech News" /></itunes:category><item><title>All Hail Selenium Grid 2</title><link>http://feedproxy.google.com/~r/sofiane/~3/pmeVna5sstE/all-hail-selenium-grid-2.html</link><author>noreply@blogger.com (sofiane)</author><pubDate>Wed, 01 Feb 2012 07:24:24 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-34318330.post-138369021465965950</guid><description>&lt;div class="info"&gt;
&lt;b&gt;NOTE:&lt;/b&gt; this post is based on the selenium-server-standalone-2.16.1 release.&lt;/div&gt;
&lt;div class="info"&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://c512911.r11.cf3.rackcdn.com/SeleniumXPath/selenium.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://c512911.r11.cf3.rackcdn.com/SeleniumXPath/selenium.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
So we finally have &lt;a href="http://code.google.com/p/selenium/wiki/Grid2"&gt;Grid 2&lt;/a&gt;, Grid 2 is a complete re-write of Selenium Grid and brings us the following features:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Support for Selenium-Webdriver (Selenium 2)&lt;/li&gt;
&lt;li&gt;Full backwards compatibility with Selenium-RC (Selenium 1)&lt;/li&gt;
&lt;li&gt;Significant optimisations both in terms of efficiency and 
functionality, the headline being you no longer need a 1:1 mapping 
betweeen RC instances and browsers which meant huge memory consumption. 
Now a single node server can support all browsers for that node.&lt;/li&gt;
&lt;/ol&gt;
If you have never heard of Selenium Grid i am talking about the 
ability to run distributed parallel Selenium tests across multiple 
machines, physical or virtual and all the administrative functionality 
that you would expect to need to support that.&lt;br /&gt;
I have only just started looking at Grid 2 so this is going to be a 
very brief overview. Hopefuly as I explore its functionality further 
i’ll do some more involved posts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pretty much everything you need to get started is on the &lt;a href="http://code.google.com/p/selenium/wiki/Grid2"&gt;Wiki&lt;/a&gt; page but below are a few things that might be useful to clarify in order to get the ‘out of the box’ behaviour working.&lt;br /&gt;
&lt;br /&gt;
start a hub server :&lt;br /&gt;
java -jar selenium-server-standalone-2.16.1.jar -firefoxProfileTemplate /home/slaouini/tools/selenium-server/web&lt;br /&gt;
&lt;br /&gt;
start a node server :&lt;br /&gt;
java -jar selenium-server-standalone-2.16.1.jar -role node -hub http://127.0.0.1:4444/grid/register -nodeConfig myconfig.json -firefoxProfileTemplate /home/slaouini/tools/selenium-server/web&lt;br /&gt;
&lt;br /&gt;
By default the grid will start with a default set of browsers, 5 
Firefox, 5 Chrome, 1 IE - you can change this configuration by supplying
 command line options when you start the node server, see the &lt;a href="http://code.google.com/p/selenium/wiki/Grid2"&gt;Selenium Wiki&lt;/a&gt; for more details.

&lt;br /&gt;
Alternatively you can supply a config file in json format e.g.&lt;br /&gt;
&lt;br /&gt;
our json config file :&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; "class":"org.openqa.grid.common.RegistrationRequest",&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; "capabilities":&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "seleniumProtocol":"Selenium",&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "browserName":"*firefox",&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "maxInstances":20},&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "seleniumProtocol":"Selenium",&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "browserName":"*googlechrome",&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "maxInstances":20&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "seleniumProtocol":"Selenium",&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "browserName":"*iexplore",&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "maxInstances":10&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "seleniumProtocol":"WebDriver",&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "browserName":"firefox",&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "maxInstances":20&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "seleniumProtocol":"WebDriver",&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "browserName":"chrome",&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "maxInstances":20&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "seleniumProtocol":"WebDriver",&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "browserName":"internet explorer",&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "maxInstances":10&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ],&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; "configuration":&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "port":5555,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "host":"10.222.9.127",&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "hubHost":"127.0.0.1",&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "registerCycle":5000,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "hub":"http://127.0.0.1:4444/grid/register",&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "url":"http://10.222.9.127:5555",&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "remoteHost":"http://10.222.9.127:5555",&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "register":true,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "proxy":"org.openqa.grid.selenium.proxy.DefaultRemoteProxy",&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "firefoxProfileTemplate":"/home/slaouini/tools/selenium-server/web",&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "maxSession":20,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "role":"node",&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "hubPort":4444&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Parallelism on the Client&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
If you are using testng to drive your tests this is most easily done using either the testng xml test suite file.&lt;br /&gt;
Essentially it allow you to run either 
parallel across cores and/or threads. Obviously the choice will be 
determined by your execution environment e.g. if running in a CI queue 
your job may only have a single core therefore you are better to go for 
multiple threading also when all we are doing is feeding some code to a 
remote server that is going to run the tests then having multiple 
threads may seem more sensible.&lt;br /&gt;
&lt;br /&gt;
our testng file :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;suite name="SeleniumTests" parallel="tests" thread-count="10" verbose="10"&amp;gt;&lt;br /&gt;
&amp;lt;test name="TEST01" &amp;gt;&lt;br /&gt;
&amp;lt;parameter name="webSite" value="http://10.222.4.109:8080/admin-console/"/&amp;gt;&lt;br /&gt;
&amp;lt;parameter name="seleniumHost" value="127.0.0.1"/&amp;gt;&lt;br /&gt;
&amp;lt;parameter name="seleniumPort" value="4444"/&amp;gt;&lt;br /&gt;
&amp;lt;parameter name="browser" value="*firefox"/&amp;gt;&lt;br /&gt;
&amp;lt;parameter name="timeout" value="10000"/&amp;gt;&lt;br /&gt;
&amp;lt;classes&amp;gt;&lt;br /&gt;
&amp;lt;class name="com.test.selenium.TEST01" /&amp;gt;&lt;br /&gt;
&amp;lt;/classes&amp;gt;&lt;br /&gt;
&amp;lt;/test&amp;gt;&lt;br /&gt;
....&lt;br /&gt;
&amp;lt;test name="TESTN" &amp;gt;&lt;br /&gt;
&amp;lt;parameter name="webSite" value="http://10.222.4.109:8080/admin-console/"/&amp;gt;&lt;br /&gt;
&amp;lt;parameter name="seleniumHost" value="127.0.0.1"/&amp;gt;&lt;br /&gt;
&amp;lt;parameter name="seleniumPort" value="4444"/&amp;gt;&lt;br /&gt;
&amp;lt;parameter name="browser" value="*chrome"/&amp;gt;&lt;br /&gt;
&amp;lt;parameter name="timeout" value="10000"/&amp;gt;&lt;br /&gt;
&amp;lt;classes&amp;gt;&lt;br /&gt;
&amp;lt;class name="com.test.selenium.TESTN" /&amp;gt;&lt;br /&gt;
&amp;lt;/classes&amp;gt;&lt;br /&gt;
&amp;lt;/test&amp;gt;&lt;br /&gt;
&amp;lt;/suite&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Conclusions&lt;/b&gt;&lt;br /&gt;
So there you have it…I have barely scratched the surface of what I 
believe Grid 2 can offer, from listening to the presentation by the 
authors there is mouch more to discover.&lt;br /&gt;
&lt;br /&gt;
That's all folks, take care :) &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/34318330-138369021465965950?l=laouini.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-01T16:24:24.762+01:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://laouini.blogspot.com/2012/01/all-hail-selenium-grid-2.html</feedburner:origLink></item><item><title>Git Cheatsheet</title><link>http://feedproxy.google.com/~r/sofiane/~3/Om_PoG2BCa4/git-cheatsheet.html</link><author>noreply@blogger.com (sofiane)</author><pubDate>Mon, 03 Oct 2011 03:59:58 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-34318330.post-4078811273573052319</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-vSGr--mdn-s/TomVDfEGJWI/AAAAAAAAAck/XKX-Fnpm5EQ/s1600/git.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="308" src="http://3.bp.blogspot.com/-vSGr--mdn-s/TomVDfEGJWI/AAAAAAAAAck/XKX-Fnpm5EQ/s400/git.png" width="400" /&gt;&lt;/a&gt;&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/34318330-4078811273573052319?l=laouini.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-03T12:59:58.315+02:00</app:edited><media:thumbnail url="http://3.bp.blogspot.com/-vSGr--mdn-s/TomVDfEGJWI/AAAAAAAAAck/XKX-Fnpm5EQ/s72-c/git.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://laouini.blogspot.com/2011/10/git-cheatsheet.html</feedburner:origLink></item><item><title>Drop that Sh*t ! Use Hudson</title><link>http://feedproxy.google.com/~r/sofiane/~3/ROK0EIJztsM/drop-that-sht-use-hudson.html</link><author>noreply@blogger.com (sofiane)</author><pubDate>Sat, 12 Feb 2011 18:35:10 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-34318330.post-7260011803284016307</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-vTJUINUM0zE/TVdC_ktM2OI/AAAAAAAAAbM/6uDKkEJA5uM/s1600/Hudson-CI.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-vTJUINUM0zE/TVdC_ktM2OI/AAAAAAAAAbM/6uDKkEJA5uM/s1600/Hudson-CI.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;Holla folks &lt;/div&gt;&lt;div style="text-align: justify;"&gt;I was evolved in the development of a private cloud plateforme since a couple month and since that i implemented things that worked fine and still going ahead to achieve that goal, So I’ve decided to write this up for everyone :) &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;First, I have the burden of explaining why and how i use hudson in my project. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;While it is important to get your build server building your software, it is even more important to get your build server to let people know when it can't do so. &lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;In all cases, i needed a server that must let the right people know about any new issues, and it must be able to do so fast. This is what we call Notification.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I needed olso a cron like system but To be honest, I don’t think cron is even a “good enough” solution for most of today’s systems&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;So i decided to use this wonderfull tool called "hudson" to do some of the feature i needed for my project, my experience with hudson make me fall in love with it, Here’s why:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Among the myriad ways Hudson can measure success of a “build,” it can verify a zero return status from each “execute shell” build step. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;If a job simply returns anything but zero, Hudson considers the build a failure and can notify you however you like. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;It can email you (on first failure only or every time), you can subscribe to build feeds via RSS, or you can simply use the Hudson interface as a dashboard that shows failures in a convenient, summarized way.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Hudson logs the output of “execute shell” build steps. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;Success or failure, Hudson archives the build output without filling your inbox or local disk. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;If the console output isn’t enough, Hudson can archive per-run “build artifacts,” which are files on disk matching a defined pattern. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;There’s also no-hassle “log rotation” by specifying a cap on the number of builds or a set number of days to keep results; this is configurable per-job. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;If a particular run had output (say, for troubleshooting) you want to keep around, you can tell Hudson to “keep this build” indefinitely.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Hudson runs each build on “build executors,” which are effectively process slots. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;Any system can have any number, but it puts a cap on how much Hudson tries to do, systemwide. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;This mean 50 jobs can get scheduled to run every hour with four “build executors,” and Hudson will queue them all every hour and run four at once until they’ve all finished.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;If a job is still running when the “periodic build” time comes around, Hudson can either run the job immediately (like cron) or queue the job to run when the one in progress finishes.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Hudson isn’t limited to time-based scheduling. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;Sometimes, it’s useful to take a job that used to run periodically (say, a database refresh) &lt;/div&gt;&lt;div style="text-align: justify;"&gt;and make it only available for manual kickoff. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;Of course, as a CI tool, Hudson can kick off jobs based on polling a version-control system.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;For remote jobs, Hudson can sign onto systems with SSH, copy over its own runtime, and run whatever you’d like on the remote system. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;This means that, no matter how many servers in a cluster need scheduled jobs, Hudson can schedule, run, and log them from one server. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;Hudson can distribute the jobs dynamically based on which machines are already busy, or it can bind jobs to specific boxes.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Hudson has a solid web interface that can integrate with your Unix shadow file, LDAP, or other authentication methods. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;For people who prefer operating from the command line, Hudson has a CLI.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Every job’s running time is logged. Hudson even provides estimates for how long it will take the system to get to any particular job when there’s a queue.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Voila The next pot shot will be more precise and i will share the architechture of the project as i implemented it and i will show how exactly hudson&amp;nbsp;is used and how our private cloud is build using other great tools and frameworks ...&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Peace out.&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/34318330-7260011803284016307?l=laouini.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-13T03:35:10.195+01:00</app:edited><media:thumbnail url="http://3.bp.blogspot.com/-vTJUINUM0zE/TVdC_ktM2OI/AAAAAAAAAbM/6uDKkEJA5uM/s72-c/Hudson-CI.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://laouini.blogspot.com/2011/02/drop-that-sht-use-hudson.html</feedburner:origLink></item><item><title>So many tools, So little time !</title><link>http://feedproxy.google.com/~r/sofiane/~3/AQgcaux-J2M/so-many-tools-so-little-time.html</link><author>noreply@blogger.com (sofiane)</author><pubDate>Tue, 08 Mar 2011 01:39:52 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-34318330.post-3493588393164322574</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;There are many choices to be made when starting a new project. I was wondering what i will choose to develop a web application needed to generate some artifacts. In the end I ended up choosing between :&lt;/div&gt;&lt;br /&gt;
Ruby + Rails&lt;br /&gt;
Python + Django&lt;br /&gt;
Scala + Lift&lt;br /&gt;
Java + Play&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Despite the success of Rails in the past few years, it never really clicked with me. Granted I haven’t used it for more than a few weeks, but it never really felt natural. Some of my freinds witch are ruby developer, tried to convince me but no success!&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Same with Django. I’ve used python on several occasions for scripting tasks since i'm using it to do some automation work in WebSphere Application Server, but never really for webapps. i think python is a great and powerful language, but this time i'm attracted to try some thing new.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I'm curious. and i wanted some thing new to satisfy my curiosity and get my brain busy for a while, sorry java no play for now :p &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;So I ended up with Scala and Lift. I looked briefly at Scala in 2007, liking what I saw, but didn't use it for anything serious since i was in some fucking trouble in that time. Any ways, In the end, what made the difference was:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Well known development and deployment platform,&amp;nbsp;Java interop, both for use of existing libraries but also as a fallback plan if everything failed. Lift’s clean templating. We didn’t really need any of the advanced features like comet support in Lift, although the Ajax support looked nice.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;So here we are, How has it been?&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;In short: Not bad. I have a platform up and running :)&amp;nbsp;When compared with Java code, my Scala/Lift code is not very verbose.&amp;nbsp;I will not tell you what's the pro and the cons of my little experience with scala or lift ... it's not the aim of this blog post, but i'm really happy trying it out and really encourage you to do so :)&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Overall, I liked the Lift framework and how it utilizes the Scala language. The fundamental approach to request handling seem very well thought out and makes it easy to handle both traditional web apps, Ajax, REST APIs etc. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;The focus on Lift seems to get things done, not so much to create the perfect web framework abstraction that has all corner cases covered. This means most code has been battle tested, but sometimes you’ll wander along strange things will happen. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Here are some links to start programming in scala like a beast :p&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://www.scala-lang.org/"&gt;scala-lang&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://liftweb.net/"&gt;lift web framework&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://www.artima.com/scalazine/articles/steps.html"&gt;scala firt steps&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://matt.might.net/articles/learning-scala-in-small-bites/"&gt;matt's scala tuto&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/34318330-3493588393164322574?l=laouini.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-08T10:39:52.889+01:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://laouini.blogspot.com/2010/04/so-many-tools-so-little-time.html</feedburner:origLink></item><item><title>Important Travel Rules and Tips</title><link>http://feedproxy.google.com/~r/sofiane/~3/4NM8R0pQDFs/important-travel-rules-and-tips.html</link><author>noreply@blogger.com (sofiane)</author><pubDate>Wed, 30 Dec 2009 04:48:00 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-34318330.post-586125069481077991</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_ZFrVNZ5xNes/SzqVUJQhe3I/AAAAAAAAAXE/U8aPZoO9uD4/s1600-h/borathitchhiking.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_ZFrVNZ5xNes/SzqVUJQhe3I/AAAAAAAAAXE/U8aPZoO9uD4/s200/borathitchhiking.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;Hey dudes :)&lt;br /&gt;
Here are some rules for travel that everyone should know and I wish I had known when I started:&lt;br /&gt;
&lt;br /&gt;
1- Learn Some Local Phrases- You don’t need to master the language but learning a few phrases will show some interest. bring a smile to a locals face, and get you a much friendlier response.&lt;br /&gt;
&lt;br /&gt;
2- Sometimes it can be insulting if you leave money.&lt;br /&gt;
&lt;br /&gt;
3- Don’t Claim to be an Expert- No matter how many times you’ve been to Paris, unless you’ve lived there for a long time, you are not an expert. You just know more than others.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4- Travel Alone- Traveling alone is something everyone should do once. You’ll learn more about yourself in than any other time in your life.&lt;br /&gt;
&lt;br /&gt;
5- If not Alone Travel with your freinds, only crazy one, Girls are not welcome, they are boring.&lt;br /&gt;
&lt;br /&gt;
6- Act like you know what you are doing and where you are going at all times, even if you don't.&lt;br /&gt;
&lt;br /&gt;
7- Take Cash- Credit cards are not accepted everywhere and, in many parts of the world. Don’t get too tied to the plastic.&lt;br /&gt;
&lt;br /&gt;
8- Always Visit Tourist Information Centers- These offices know all the information in the city, know what is going on, and usually have some discounts available. Don’t skip them.&lt;br /&gt;
&lt;br /&gt;
9- Don’t Live by Your Guidebook- Take the information in guidebooks with a grain of salt. &lt;br /&gt;
&lt;br /&gt;
10- Locals are Happy to Help- Don’t be afraid to ask strangers for help. &lt;br /&gt;
&lt;br /&gt;
11- Learn about the places to avoid (from other travelers or friendly locals), Don't end up in the wrong place.&lt;br /&gt;
&lt;br /&gt;
12- Respect has great importance, Educate yourself on the local dress codes, Religion and Customs. You may find yourself either offending the locals...or really turning them on. Watch up.&lt;br /&gt;
&lt;br /&gt;
13- Don't be a Stupid fool !! (The most important one)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34318330-586125069481077991?l=laouini.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-30T13:48:00.435+01:00</app:edited><media:thumbnail url="http://2.bp.blogspot.com/_ZFrVNZ5xNes/SzqVUJQhe3I/AAAAAAAAAXE/U8aPZoO9uD4/s72-c/borathitchhiking.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://laouini.blogspot.com/2009/12/important-travel-rules-and-tips.html</feedburner:origLink></item><item><title>Remembering Gaza</title><link>http://feedproxy.google.com/~r/sofiane/~3/aZxiAhMqDdQ/remembering-gaza.html</link><author>noreply@blogger.com (sofiane)</author><pubDate>Sun, 27 Dec 2009 13:56:38 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-34318330.post-6022576309053950566</guid><description>&lt;object height="340" width="560"&gt;&lt;param name="movie" value="http://www.youtube.com/v/9hjyq2FzRBo&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/9hjyq2FzRBo&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
A year ago to this date, a brutal Israeli offensive on Gaza took place. This tiny strip of land had been besieged for many months already and its people were already denied the very basic amenities of life. Yet, a year ago Israel launched a brutal and bloody attack on Gaza that killed at least 1400 people. This savage attack did not distinguish between civilians and militants, and people generally agree that the Israeli response to the termination of the cease fire was at least disproportionate.&lt;br /&gt;
&lt;br /&gt;
The Israeli-given reason for this attack was to fend off the Hamas make-shift rockets that were fired onto southern Israel, which have escalated after the end of the cease-fire. However, this is hardly the case. The Hamas rockets are very primitive and make-shift. They are literally composed of gun powder in pipes that fly. Thus there was no infrastructure for Israel to take out. Plus, the Israeli attack did not stop the Hamas mortars even after it finished.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, it seemed that this attack was little more than a political move to help a candidate win an election. At the start of the offensive, the ruling Israeli party (Kadima) headed by Tzipi Livni were losing in the primary polls against pro-war hardliners and right-wingerssuch as Benjamin Netanyahu. This full-scale attack (without the interference of George Bush in has days in office) boosted Livni’s poll numbers and made the elections closer. Unfortunately, besides the large Palestinian death toll, this was the only outcome of this campaign on the Israeli side.&lt;br /&gt;
&lt;br /&gt;
The Israeli attack didn’t distinguish between militants and civilians, and very little was done to minimize civilian casualties. Israel continued to justify that their mass bombing was because Hamas militants were hiding behind women and children. However, it seemed like Israel was using that as a ready excuse to justify anything (and little proof of that was provided in many cases). For example, &lt;a href="http://en.wikipedia.org/wiki/Al-Fakhura_school_incident"&gt;Israel bombed a U.N. school&lt;/a&gt; that was temporarily housing refugee families which resulted in killing at least 40 people all of which were civilians. Israel also ignored international conventions and weapons that were banned internationally to be used against civilians. For example, white phosphorus was used in civilian locations which is banned internationally. To make matters worse, Israel prevented international news reporters from entering Gaza so as to limit the amount of information getting out.&lt;br /&gt;
&lt;br /&gt;
Much has been said about this offensive. A &lt;a href="http://www2.ohchr.org/english/bodies/hrcouncil/specialsession/9/FactFindingMission.htm"&gt;U.N. fact-finding investigation&lt;/a&gt; of this conflict (what is sometimes called the “Goldstone Report”) concluded that both Hamas and Israel were to blame for the conflict, and concluded that Israel committed war crimes and and possible crimes against humanities.&lt;br /&gt;
&lt;br /&gt;
Regardless of your political views you have to acknowledge that what Israel did in killing more than 1400 people, at least 1000 of whom were unarmed civilians, and at least 300 were children was extremely wrong and inhumane. Today, Israel is still denying basic amenities and even cement from entering Gaza to rebuild the destroyed homes.&lt;br /&gt;
&lt;br /&gt;
On this day, it is worth giving a moment to think and reflect.&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/_ZFrVNZ5xNes/SzfWH52nvyI/AAAAAAAAAW8/pRhHaTCm5fQ/s1600-h/gaza_black_ribbon1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_ZFrVNZ5xNes/SzfWH52nvyI/AAAAAAAAAW8/pRhHaTCm5fQ/s320/gaza_black_ribbon1.png" /&gt;&lt;/a&gt;&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/34318330-6022576309053950566?l=laouini.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-27T22:56:38.495+01:00</app:edited><media:thumbnail url="http://4.bp.blogspot.com/_ZFrVNZ5xNes/SzfWH52nvyI/AAAAAAAAAW8/pRhHaTCm5fQ/s72-c/gaza_black_ribbon1.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><enclosure url="http://www.youtube.com/v/9hjyq2FzRBo&amp;hl=en_US&amp;fs=1&amp;" length="1045" type="application/x-shockwave-flash" /><media:content url="http://www.youtube.com/v/9hjyq2FzRBo&amp;hl=en_US&amp;fs=1&amp;" fileSize="1045" type="application/x-shockwave-flash" /><itunes:explicit>no</itunes:explicit><itunes:subtitle> A year ago to this date, a brutal Israeli offensive on Gaza took place. This tiny strip of land had been besieged for many months already and its people were already denied the very basic amenities of life. Yet, a year ago Israel launched a brutal and bl</itunes:subtitle><itunes:author>noreply@blogger.com (sofiane)</itunes:author><itunes:summary> A year ago to this date, a brutal Israeli offensive on Gaza took place. This tiny strip of land had been besieged for many months already and its people were already denied the very basic amenities of life. Yet, a year ago Israel launched a brutal and bloody attack on Gaza that killed at least 1400 people. This savage attack did not distinguish between civilians and militants, and people generally agree that the Israeli response to the termination of the cease fire was at least disproportionate. The Israeli-given reason for this attack was to fend off the Hamas make-shift rockets that were fired onto southern Israel, which have escalated after the end of the cease-fire. However, this is hardly the case. The Hamas rockets are very primitive and make-shift. They are literally composed of gun powder in pipes that fly. Thus there was no infrastructure for Israel to take out. Plus, the Israeli attack did not stop the Hamas mortars even after it finished. Unfortunately, it seemed that this attack was little more than a political move to help a candidate win an election. At the start of the offensive, the ruling Israeli party (Kadima) headed by Tzipi Livni were losing in the primary polls against pro-war hardliners and right-wingerssuch as Benjamin Netanyahu. This full-scale attack (without the interference of George Bush in has days in office) boosted Livni’s poll numbers and made the elections closer. Unfortunately, besides the large Palestinian death toll, this was the only outcome of this campaign on the Israeli side. The Israeli attack didn’t distinguish between militants and civilians, and very little was done to minimize civilian casualties. Israel continued to justify that their mass bombing was because Hamas militants were hiding behind women and children. However, it seemed like Israel was using that as a ready excuse to justify anything (and little proof of that was provided in many cases). For example, Israel bombed a U.N. school that was temporarily housing refugee families which resulted in killing at least 40 people all of which were civilians. Israel also ignored international conventions and weapons that were banned internationally to be used against civilians. For example, white phosphorus was used in civilian locations which is banned internationally. To make matters worse, Israel prevented international news reporters from entering Gaza so as to limit the amount of information getting out. Much has been said about this offensive. A U.N. fact-finding investigation of this conflict (what is sometimes called the “Goldstone Report”) concluded that both Hamas and Israel were to blame for the conflict, and concluded that Israel committed war crimes and and possible crimes against humanities. Regardless of your political views you have to acknowledge that what Israel did in killing more than 1400 people, at least 1000 of whom were unarmed civilians, and at least 300 were children was extremely wrong and inhumane. Today, Israel is still denying basic amenities and even cement from entering Gaza to rebuild the destroyed homes. On this day, it is worth giving a moment to think and reflect. </itunes:summary><feedburner:origLink>http://laouini.blogspot.com/2009/12/remembering-gaza.html</feedburner:origLink></item><item><title>Funny Life Lessons</title><link>http://feedproxy.google.com/~r/sofiane/~3/V2dX7uruZZc/funny-life-lessons.html</link><author>noreply@blogger.com (sofiane)</author><pubDate>Mon, 14 Dec 2009 10:51:09 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-34318330.post-8998626466217522289</guid><description>Below are very funny and true life lessons to be learned send to me by a friend of mine by email. Jokes aside, the insight gained is valuable to everyone and I somehow don’t think you’ll regret reading them. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Lesson 1&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
A sales rep, an administration clerk, and the manager are walking to lunch when they find an antique oil lamp. They rub it and a Genie comes out. The Genie says, “I’ll give each of you just one wish” “Me first! Me first!” says the admin. clerk. “I want to be in the Bahamas, driving a speedboat, without a care in the world.” Poof! She’s gone. “Me next! Me next!” says the sales rep. “I want to be in Hawaii,relaxing on the beach with my personal masseuse, an endless supply of Pina Coladas and the love of my life.” Poof! He’s gone. “OK, you’re up,” the Genie says to the manager. The manager says, “I want those two back in the office after lunch.”&lt;br /&gt;
&lt;br /&gt;
Moral of the story: Always let your boss have the first say.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Lesson 2&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
A crow was sitting on a tree, doing nothing all day. A rabbit asked him,”Can I also sit like you and do nothing all day long?” The crow answered: “Sure, why not.” So, the rabbit sat on the ground below the crow, and rested.&lt;br /&gt;
A fox jumped on the rabbit and ate it.&lt;br /&gt;
&lt;br /&gt;
Moral of the story: To be sitting and doing nothing, you must be sitting very high up.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Lesson 3&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
A turkey was chatting with a bull “I would love to be able to get to the top of that tree,” sighed the turkey, but I haven’t got the energy.” “Well, why don’t you nibble on my droppings?” replied the bull. “They’re packed with nutrients.” The turkey pecked at a lump of dung and found that it gave him enough strength to reach the lowest branch of the tree. The next day, after eating some more dung, he reached the second branch. Finally after a fourth night, there he was proudly perched at the top of the tree. Soon he was spotted by a farmer, who shot the turkey out of the tree.&lt;br /&gt;
&lt;br /&gt;
Moral of the story: Bullshit might get you to the top, but it wont keep you there.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Lesson 4&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
A little bird was flying south for the winter. It was so cold the bird froze and fell to the ground into a large field. While he was lying there, a cow came by and dropped some dung on him. As the frozen bird lay there in the pile of cow dung, he began to realize how warm he was. The dung was actually thawing him out! He lay there all warm and happy, and soon began to sing for joy. A passing cat heard the bird singing and came to investigate. Following the sound, the cat discovered the bird under the pile of cow dung, and promptly dug him out and ate him.&lt;br /&gt;
&lt;br /&gt;
Moral of the story:&lt;br /&gt;
1. Not everyone who shits on you is your enemy&lt;br /&gt;
2. Not everyone who gets you out of shit is your friend&lt;br /&gt;
3. And when you’re in deep shit, it’s best to keep your mouth shut!&lt;br /&gt;
&lt;br /&gt;
[source:&lt;a href="http://www.carlpei.com/"&gt;Carl&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34318330-8998626466217522289?l=laouini.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-14T19:51:09.076+01:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://laouini.blogspot.com/2009/12/funny-life-lessons.html</feedburner:origLink></item><item><title>Jython Scripting Language</title><link>http://feedproxy.google.com/~r/sofiane/~3/rDeN9rcks0I/jython-scripting-language.html</link><author>noreply@blogger.com (sofiane)</author><pubDate>Wed, 11 Jan 2012 06:04:47 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-34318330.post-3412902026359350272</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.jython.org/css/jython.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://www.jython.org/css/jython.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;Hi folks :)&lt;br /&gt;
how was going for you ? hope it's fine ;) ... for me, i'm really in a big dung those days :p and in this post i'm not really going to speak about that crappy shit but actually about Jython Scripting language under the Websphere Application server :)&lt;br /&gt;
Lets take a deep look into this J2EE application server, and view the command and tools given by IBM and developped in Jython to do the tricky work of server administration.&lt;br /&gt;
&lt;br /&gt;
There are numerous alternative languages implemented for the Java VM. The following features help to separate Jython from the rest:&lt;br /&gt;
- Dynamic compilation to Java bytecodes - leads to highest possible performance without sacrificing interactivity.&lt;br /&gt;
- Ability to extend existing Java classes in Jython - allows effective use of abstract classes.&lt;br /&gt;
- Optional static compilation - allows creation of applets, servlets, beans, ...&lt;br /&gt;
- Bean Properties - make use of Java packages much easier.&lt;br /&gt;
- Python Language - combines remarkable power with very clear syntax. It also supports a full object-oriented programming model which makes it a natural fit for Java's OO design.&lt;br /&gt;
&lt;br /&gt;
you can read further about jython &lt;a href="http://www.jython.org/"&gt;here&lt;/a&gt; and &lt;a href="http://www.ibm.com/developerworks/java/library/j-jython.html"&gt;here&lt;/a&gt; :) okey, let's talk about serious things now : &lt;br /&gt;
The wsadmin tool uses Jython V2.1 and can be divided up into four based groups or objects if you like :) AdminApp, AdminConfig, AdminControl, AdminTask, and Help&lt;br /&gt;
&lt;br /&gt;
lets talk about each one in detail :) &lt;br /&gt;
+ The First one, AdminApp is a set of commands used to install, modify, and administer applications. The AdminApp object interacts with the WebSphere Application Server management and configuration services to make application inquiries and changes. This interaction includes installing and uninstalling applications, listing modules, exporting, and so on.&lt;br /&gt;
+ The second one is AdminConfig, and it's a set of commands used to invoke configuration commands and to create or change elements of the WebSphere AS configuration.&lt;br /&gt;
+ The AdminControl is used to invoke operational commands that manage objects for the application server.&lt;br /&gt;
Many of the AdminControl commands have multiple signatures so that they can either invoke in a raw mode using parameters that are specified by Java Management Extensions (JMX), or by using strings for parameters. In addition to operational commands, the AdminControl object supports some utility commands for tracing, reconnecting with a server, and converting data types.&lt;br /&gt;
+ AdminTask is used to run administrative commands with the wsadmin tool. Administrative commands are discovered dynamically when you start the wsadmin tool. The administrative commands that are available for you to use, and what you can do with them, depends on the edition of WebSphere Application Server that you have.&lt;br /&gt;
&lt;br /&gt;
Now let's take a look at few examples that might prove useful.&lt;br /&gt;
&lt;br /&gt;
the example above is simply getting all the servers in a node :) GO&lt;br /&gt;
&lt;br /&gt;
import sys
n1 = sys.argv[0]
plist = "[-serverType APPLICATION_SERVER -nodeName " + n1 + "]"
print plist
slist = AdminTask.listServers(plist).split("\n")
for s in slist:
  print s
continue
&lt;br /&gt;
another example for getting all the app in the server :&lt;br /&gt;
&lt;br /&gt;
applist = AdminApp.list().split("\n")
for a in applist:
  print a
continue
&lt;br /&gt;
this one is complicated and will change the heap size of the jvm on the server :&lt;br /&gt;
&lt;br /&gt;
import sys
# ./wsadmin.sh -lang jython -javaoption -Dscript.encoding=IBM-1047\
# -user userid -password password -f /scriptingpath/heapadjust.py servername initheap maxheap
#
def printHelp():
print "This script sets the jvm init and max heap sizes for a server"
print "Format is heapadjust.py servername initheapsize maxheapsize"
#
if(len(sys.argv) &gt; 2):
# get server name, initialheapsize, and maxheapsize from the command line
 s1 = sys.argv[0]
 ih = sys.argv[1]
 mh = sys.argv[2]
else:
 printHelp()
sys.exit() 
ihc = 'initialHeapSize'
mhc = 'maximumHeapSize'
#
#   get the id of the server
#
srv = "/Server:" + s1 + "/"
srvid = AdminConfig.getid(srv)
s1pdefs = AdminConfig.list('ProcessDef', srvid).split("\n")
for pd in s1pdefs:
  if AdminConfig.showAttribute(pd, 'processType') == 'Servant':
   jvms = AdminConfig.list('JavaVirtualMachine', pd).split("\n")
continue
#  we now have the correct jvm
for jvm in jvms:
  AdminConfig.modify(jvm, [[ihc, ih]])
  AdminConfig.modify(jvm, [[mhc, mh]])
continue
#
#   Save the Config
#
AdminConfig.save()
#
#   Synchronize with the nodes...
#
nl = AdminConfig.list('Node').split("\n")
print "Beginning node synchronization"
for n in nl:
  nn = AdminConfig.showAttribute(n, 'name')
  objn = "type=NodeSync,node=" + nn + ",*"
  Syncl = AdminControl.completeObjectName(objn)
  if Syncl != "":
    AdminControl.invoke(Syncl, 'sync')
    print "Done with node " + nn
  else:
    print "Skipping node " + nn
continue
#  All Done.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34318330-3412902026359350272?l=laouini.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-11T15:04:47.542+01:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://laouini.blogspot.com/2009/11/jython-scripting-language.html</feedburner:origLink></item><item><title>Eye Witness Reports From Gaza</title><link>http://feedproxy.google.com/~r/sofiane/~3/tT44r8gAHv0/eye-witness-reports-from-gaza.html</link><author>noreply@blogger.com (sofiane)</author><pubDate>Wed, 11 Nov 2009 03:33:45 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-34318330.post-1844991995114205651</guid><description>Ewa Jasiewicz, Free Gaza Coordinator in Gaza, talks in Berlin, Germany about what she witnessed during the 22-day massacre of civilians in Gaza. Her on-the-ground reporting of what she and seven others saw during that time is heart-wrenching. Israel deliberately murdered 16 medics trying to do their job of rescuing other injured Palestinians, targeting them directly. Ewa and the other volunteers from Free Gaza and the International Solidarity Movement accompanied these ambulances, horrified at what they saw.&lt;br /&gt;
&lt;br /&gt;
&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/nHa-CzNCF3c&amp;hl=en&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/nHa-CzNCF3c&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
source [sabbah.biz]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34318330-1844991995114205651?l=laouini.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-11T12:33:45.084+01:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><enclosure url="http://www.youtube.com/v/nHa-CzNCF3c&amp;hl=en&amp;fs=1&amp;" length="1043" type="application/x-shockwave-flash" /><media:content url="http://www.youtube.com/v/nHa-CzNCF3c&amp;hl=en&amp;fs=1&amp;" fileSize="1043" type="application/x-shockwave-flash" /><itunes:explicit>no</itunes:explicit><itunes:subtitle>Ewa Jasiewicz, Free Gaza Coordinator in Gaza, talks in Berlin, Germany about what she witnessed during the 22-day massacre of civilians in Gaza. Her on-the-ground reporting of what she and seven others saw during that time is heart-wrenching. Israel delib</itunes:subtitle><itunes:author>noreply@blogger.com (sofiane)</itunes:author><itunes:summary>Ewa Jasiewicz, Free Gaza Coordinator in Gaza, talks in Berlin, Germany about what she witnessed during the 22-day massacre of civilians in Gaza. Her on-the-ground reporting of what she and seven others saw during that time is heart-wrenching. Israel deliberately murdered 16 medics trying to do their job of rescuing other injured Palestinians, targeting them directly. Ewa and the other volunteers from Free Gaza and the International Solidarity Movement accompanied these ambulances, horrified at what they saw. source [sabbah.biz]</itunes:summary><feedburner:origLink>http://laouini.blogspot.com/2009/11/eye-witness-reports-from-gaza.html</feedburner:origLink></item><item><title>WTF is the difference between an XA and non-XA Transaction ?</title><link>http://feedproxy.google.com/~r/sofiane/~3/AKTcHN_hCsc/wtf-is-difference-between-xa-and-non-xa.html</link><author>noreply@blogger.com (sofiane)</author><pubDate>Fri, 09 Oct 2009 05:59:01 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-34318330.post-5976909018974922181</guid><description>hey dudes :)&lt;br /&gt;
&lt;br /&gt;
in this post i will explain an XA and non-XA Transaction. GO&lt;br /&gt;
&lt;br /&gt;
An XA transaction, in the most general terms, is a "global transaction" that may span multiple resources. A non-XA transaction always involves just one resource. &lt;br /&gt;
&lt;br /&gt;
An XA transaction involves a coordinating transaction manager, with one or more databases (or other resources, like JMS) all involved in a single global transaction. Non-XA transactions have no transaction coordinator, and a single resource is doing all its transaction work itself (this is sometimes called local transactions). &lt;br /&gt;
&lt;br /&gt;
XA transactions come from the X/Open group specification on distributed, global transactions. JTA includes the X/Open XA spec, in modified form. &lt;br /&gt;
&lt;br /&gt;
Most stuff in the world is non-XA - a Servlet or EJB or plain old JDBC in a Java application talking to a single database. XA gets involved when you want to work with multiple resources - 2 or more databases, a database and a JMS connection, all of those plus maybe a JCA resource - all in a single transaction. In this scenario, you'll have an app server like Websphere or Weblogic or JBoss acting as the Transaction Manager, and your various resources (Oracle, Sybase, IBM MQ JMS, SAP, whatever) acting as transaction resources. Your code can then update/delete/publish/whatever across the many resources. When you say "commit", the results are commited across all of the resources. When you say "rollback", _everything_ is rolled back across all resources. &lt;br /&gt;
&lt;br /&gt;
The Transaction Manager coordinates all of this through a protocol called Two Phase Commit (2PC). This protocol also has to be supported by the individual resources. &lt;br /&gt;
&lt;br /&gt;
In terms of datasources, an XA datasource is a data source that can participate in an XA global transaction. A non-XA datasource generally can't participate in a global transaction (sort of - some people implement what's called a "last participant" optimization that can let you do this for exactly one non-XA item). &lt;br /&gt;
&lt;br /&gt;
For more details - see the JTA pages on &lt;a href="http://java.sun.com/javaee/technologies/jta/index.jsp"&gt;java.sun.com&lt;/a&gt;. Look at the XAResource and Xid interfaces in JTA. See the X/Open XA Distributed Transaction specification. grok for "Java JTA XA transaction" in google :)&lt;br /&gt;
&lt;br /&gt;
Enjoy &amp; Peace out !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34318330-5976909018974922181?l=laouini.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-09T14:59:01.834+02:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://laouini.blogspot.com/2009/10/wtf-is-difference-between-xa-and-non-xa.html</feedburner:origLink></item><item><title>Metro’s dirty secrets</title><link>http://feedproxy.google.com/~r/sofiane/~3/2ZKzkpgYDfs/metros-dirty-secrets.html</link><author>noreply@blogger.com (sofiane)</author><pubDate>Fri, 25 Sep 2009 02:18:01 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-34318330.post-3024064814661463709</guid><description>Other than some of the obvious gross and dirty things one finds in the Parisian metro, I’m talking about the dirty spots. those area along the Parisian metro’s platform [usual painted white] which has become discolored as a result of passengers getting off and on at this location.&lt;br /&gt;
&lt;br /&gt;
Nowadays on a few lines of the metro, the spots where the doors will open along the platform have been painted with indications so people know where to line up. Even though a lot of passengers still just try to get right in without letting people off first, these new painted lines will show you were to line up. If you are on a line that doesn’t have the painted indications, look for the dirty spots! They may be difficult to notice when you are right on top of one (as the entire things looks pretty dirty in general), but look down the quai “platform”, and you should be able to see them. I took a picture to help you out ...&lt;br /&gt;
Peace out :°)&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_ZFrVNZ5xNes/SryI_m7o-cI/AAAAAAAAAV0/W106suz4mIg/s1600-h/dirtysecret.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_ZFrVNZ5xNes/SryI_m7o-cI/AAAAAAAAAV0/W106suz4mIg/s320/dirtysecret.jpg" /&gt;&lt;/a&gt;&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/34318330-3024064814661463709?l=laouini.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-25T11:18:01.582+02:00</app:edited><media:thumbnail url="http://1.bp.blogspot.com/_ZFrVNZ5xNes/SryI_m7o-cI/AAAAAAAAAV0/W106suz4mIg/s72-c/dirtysecret.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://laouini.blogspot.com/2009/09/metros-dirty-secrets.html</feedburner:origLink></item><item><title>Recompiling Geronimo :)</title><link>http://feedproxy.google.com/~r/sofiane/~3/2hQLYnUTrTk/recompiling-geronimo.html</link><author>noreply@blogger.com (sofiane)</author><pubDate>Fri, 25 Sep 2009 02:37:35 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-34318330.post-6796996841395992511</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://geronimo.apache.org/images/glogo-med.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://geronimo.apache.org/images/glogo-med.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
I was playing those days with the apache &lt;a href="http://geronimo.apache.org/"&gt;Geronimo &lt;/a&gt;application server ... for some strange reasons i got to modify the code to do some tricky things for my client.&lt;br /&gt;
anyway, Geronimo is a very interesting appliscation server and it is open source software. Because it is open, it enjoys broad stand-alone adoption, &lt;br /&gt;
plus it has been incorporated as part of many other products like IBM websphere community edition (&lt;a href="http://www.ibm.com/developerworks/downloads/ws/wasce/"&gt;WASCE&lt;/a&gt;) ... &lt;br /&gt;
&lt;br /&gt;
Sometimes, developers go overboard. They somehow end up with the notion that because they have the source code, and because it’s open source, and because many Bothans died to bring us this information, that they should always rebuild the components from source code. &lt;br /&gt;
This made a little sense back when the open source code was C code that either didn’t run on Linux unless it was recompiled, or didn’t run fast because the binaries were only compiled for i386 and not for i686. &lt;br /&gt;
We got in the habit of recompiling from source just to get the platform specific binaries we needed. At the extreme, some of us got pulled so far into this thinking that they cannot be happy without recompiling literally everything specifically for the machine they’re running it on, in an effort to squeeze out every last drop of hardware performance.&lt;br /&gt;
&lt;br /&gt;
To me, this does not apply to Java software. Compiled Java bytecode is multi-platform, so there is no need for anyone to recompile it only to run it on another CPU model nor even on a completely different platform. And, it’s the Java VM that optimizes it at runtime, so recompiling Java software for performance reasons is also out.&lt;br /&gt;
&lt;br /&gt;
If the Apache Software Foundation (ASF) already provides an official binary of each Geronimo release, then why would developers or sysadmins want to recompile it from source when they’re not developing it’s code?&amp;nbsp; &lt;br /&gt;
Currently, Geronimo’s source tree contains a significantly large codebase. And, if we’re not careful, there are things that can go wrong when we compile it.&lt;br /&gt;
&lt;br /&gt;
Here are some gotchas:&lt;br /&gt;
&lt;br /&gt;
Most people will pull the geronimo trunk source tree instead of a tagged release’s source. The first link that the official web documentation gives is this Subversion URL:&lt;br /&gt;
&lt;br /&gt;
https://svn.apache.org/repos/asf/geronimo/server/&lt;br /&gt;
&lt;br /&gt;
. . . which causes many people to pull that path, only to find that they’re receiving all branches, tags, and trunk for Geronimo, which is a huge set they don’t need. Then, on the next try, many will choose to download the trunk source, which is relatively stable, but under development and not necessarily tested. If you download and compile the trunk source tree, it may not even build because new changes are being made to that very copy in Subversion. If it happens to build, you got lucky, but the resulting binaries are probably unstable because you have not pulled and built a stable release tag’s source tree.&lt;br /&gt;
&lt;br /&gt;
For those who are patient, they’ll at least see that it is suggested you pull a “version or branch,” but that doesn’t specifically suggest checking out a release tag’s source. Checking out any source tree from the ASF Subversion repository other than a release tag is significantly more likely to result in runtime bugs that are only discovered down the road in production.&lt;br /&gt;
&lt;br /&gt;
Instead, i will suggest pulling a tag, such as:&lt;br /&gt;
&lt;br /&gt;
https://svn.apache.org/repos/asf/geronimo/server/tags/2.1.1/&lt;br /&gt;
&lt;br /&gt;
. . . unless a developer wants to work on the latest (unstable) code of Geronimo.&lt;br /&gt;
&lt;br /&gt;
Before getting started, you have to intall the following software:&lt;br /&gt;
+ Eclipse but my favorite IDE is &lt;a href="http://www.netbeans.org/"&gt;Netbeans &lt;/a&gt;wich i use for my personal projects :)&lt;br /&gt;
+ &lt;a href="http://maven.apache.org/"&gt;Maven &lt;/a&gt;2.0.9 or above.&lt;br /&gt;
+ &lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt;.&lt;br /&gt;
+ Install the Maven Plugin for Eclipse. You can install this plugin from Maven Integration for Eclipse update site.&lt;br /&gt;
+ if Netbeans is used it's already bundled.&lt;br /&gt;
&lt;br /&gt;
set up your environment variables :&lt;br /&gt;
$JAVA_HOME /path/to/your/jdk/installation/dir&lt;br /&gt;
$M2_HOME /path/to/apache/maven&lt;br /&gt;
$MAVEN_OPTS -Xmx1024m -Xms1024m -XX:MaxPermSize=256m&lt;br /&gt;
&lt;br /&gt;
configure you settings.xml file for apache maven:&lt;br /&gt;
edit your repository path : &lt;localrepository&gt;/path/to/your/locale/maven/repo/.m2&lt;/localrepository&gt;&lt;br /&gt;
execute in the src directory: mvn clean install&lt;br /&gt;
&lt;br /&gt;
the compilation of all the projects into the repository of Geronimo will take nearly 40 min and then generate an application server in a zip or a tar file wich will run on any plateforms.&lt;br /&gt;
enjoy&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34318330-6796996841395992511?l=laouini.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-25T11:37:35.940+02:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://laouini.blogspot.com/2009/09/recompiling-geronimo.html</feedburner:origLink></item><item><title>Happy Eid! Eid Mubarak!</title><link>http://feedproxy.google.com/~r/sofiane/~3/I7yyjtvXKXw/happy-eid-eid-mubarak.html</link><author>noreply@blogger.com (sofiane)</author><pubDate>Sun, 20 Sep 2009 06:58:19 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-34318330.post-4194018733285604656</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_ZFrVNZ5xNes/SrY0r2o9VwI/AAAAAAAAAVs/iieO4l3wwtk/s1600-h/eid.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_ZFrVNZ5xNes/SrY0r2o9VwI/AAAAAAAAAVs/iieO4l3wwtk/s400/eid.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;a href="http://farm3.static.flickr.com/2251/1552701362_f1ac151c85.jpg"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34318330-4194018733285604656?l=laouini.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-20T15:58:19.819+02:00</app:edited><media:thumbnail url="http://1.bp.blogspot.com/_ZFrVNZ5xNes/SrY0r2o9VwI/AAAAAAAAAVs/iieO4l3wwtk/s72-c/eid.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://laouini.blogspot.com/2009/09/happy-eid-eid-mubarak.html</feedburner:origLink></item><item><title>Disappearing again</title><link>http://feedproxy.google.com/~r/sofiane/~3/Dcl8EJaniXc/disappearing-again.html</link><author>noreply@blogger.com (sofiane)</author><pubDate>Tue, 18 Aug 2009 16:27:38 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-34318330.post-8526325115939485723</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ZFrVNZ5xNes/Sos4qD-wFvI/AAAAAAAAATE/YhCkk-4dCj0/s1600-h/P1000345.JPG"&gt;&lt;img style="float:none; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_ZFrVNZ5xNes/Sos4qD-wFvI/AAAAAAAAATE/YhCkk-4dCj0/s320/P1000345.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5371449275843614450" /&gt;&lt;/a&gt;&lt;br /&gt;hi folks&lt;br /&gt;i was not blogging for a while since actually i was in a vacation mode :d&lt;br /&gt;time is going so fast those days ... it's almost over :'(&lt;br /&gt;As much fun as I had, I’m glad to be home. It was killing me being away from my blog for so long! i will be back for an ultra boring job next week :D&lt;br /&gt;Either way, I'm going to be absent because ramadhane is comming soon and i will be busy for a while ... it's a hard come back for my brain :d hope every things will be okey any way, i'm missing already my family and my freinds .. my trip in south of tunisia (matmata hamma ..) was great and amazing specially &lt;a href="http://www.atmazret.info/"&gt;Tamezret&lt;/a&gt; wich is a wonderful place, really, complete with charm, mystery, surprises and laughter you can fit into your minds eye. &lt;br /&gt;I can’t wait to return. I took tons of pictures of my trip, nchallah i will share it soon ..so, hope you my freinds enjoys your life and good luck for your adventures&lt;br /&gt;take care, See ya in a couple months.&lt;br /&gt;Until next time, رمضان مبارك&lt;br /&gt;Peace Out !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34318330-8526325115939485723?l=laouini.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-19T01:27:38.682+02:00</app:edited><media:thumbnail url="http://2.bp.blogspot.com/_ZFrVNZ5xNes/Sos4qD-wFvI/AAAAAAAAATE/YhCkk-4dCj0/s72-c/P1000345.JPG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://laouini.blogspot.com/2009/08/disappearing-again.html</feedburner:origLink></item><item><title>hourrey les vacances !!</title><link>http://feedproxy.google.com/~r/sofiane/~3/3tEXSPV7k60/hourrey-les-vacances.html</link><author>noreply@blogger.com (sofiane)</author><pubDate>Wed, 22 Jul 2009 03:44:32 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-34318330.post-1658146798754133809</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ZFrVNZ5xNes/SmbsziM0dFI/AAAAAAAAASg/7i_X6yXeOX0/s1600-h/49df9e73ww2lo0_frame_0013.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 96px; height: 96px;" src="http://3.bp.blogspot.com/_ZFrVNZ5xNes/SmbsziM0dFI/AAAAAAAAASg/7i_X6yXeOX0/s320/49df9e73ww2lo0_frame_0013.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5361232776529212498" /&gt;&lt;/a&gt;&lt;br /&gt;J’ai atterri hier soir wal7amdou lelleh sur le sol de la tunisie apres 3h30 de vol qui aurait dus prendre que 2h30, coup de malchance ou de la poisse qui me poursuit depuis un moment ? &lt;br /&gt;oO en tout cas après quelque turbulences dans l'avion, le café qui s'est déversé sur ma gueule, un repas pourris, une vielle dame qui m'a fait chier pendant tout le long du trajet, les portes de l'avion qui veulent pas s'ouvrir après l'atterrissage, j'étais le dernier à récupérer mes bagages ... &lt;br /&gt;à minuit je me retrouve enfin chez moi ^^ je suis content tout de même :) j'ai trouvé un bon couscous bel 3alouch qui n'attendait que moi et que j'avais commandé avant mon départ :p ... je retrouve la belle vie p’tit à p’tit, ma chambre n'a pas changé depuis la dernière fois, mon lit lui reste intacte, j'ai l'impression que je les ai quitté il y a quelque jours :'( le temps passe tellement vite ... &lt;br /&gt;bref aujourd’hui je commence à kiffer ses vacances que j'attendais depuis un moment, je vais voir toutes les tranches de tarés que j'ai pas vus depuis des lustres :) , enfin ceux qui on survécue à la rafle du siècle :d , à savoir : kallala, zeblinski, far 7abs, nabtaa, beldi ... &lt;br /&gt;houuurrreyyy here we GO&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34318330-1658146798754133809?l=laouini.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-22T12:44:32.457+02:00</app:edited><media:thumbnail url="http://3.bp.blogspot.com/_ZFrVNZ5xNes/SmbsziM0dFI/AAAAAAAAASg/7i_X6yXeOX0/s72-c/49df9e73ww2lo0_frame_0013.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://laouini.blogspot.com/2009/07/hourrey-les-vacances.html</feedburner:origLink></item><item><title>Killing a Veiled Pregnant Muslim Mother in Germany</title><link>http://feedproxy.google.com/~r/sofiane/~3/VIOOxYdwptU/killing-veiled-pregnant-muslim-mother.html</link><author>noreply@blogger.com (sofiane)</author><pubDate>Mon, 06 Jul 2009 11:34:31 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-34318330.post-1002131730565675959</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ZFrVNZ5xNes/SlJBvJyX7JI/AAAAAAAAASY/yajBPix8eg4/s1600-h/marwa.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 230px; height: 186px;" src="http://4.bp.blogspot.com/_ZFrVNZ5xNes/SlJBvJyX7JI/AAAAAAAAASY/yajBPix8eg4/s320/marwa.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5355415185233800338" /&gt;&lt;/a&gt;&lt;br /&gt;A veiled Muslim mother was savagely murdered in Dresden courtroom, Germany. The murderer is the same attacker who was in court appealing the €780 fine for his insult to the victim's Islamic headscarf.&lt;br /&gt;&lt;br /&gt;Marwa Al-Sherbini, a 32-year-old Egyptian based in Germany, was stabbed several deadly times under the court ceiling and with the presence of the German police.  She has been living in Germany for years with her husband, the Egyptian academic Elwi Ali-Okaz, who is studying for his post graduate studies in Germany.&lt;br /&gt;&lt;br /&gt;The three-month pregnant mother was not the only victim but Okaz, her husband, was also hurt in his attempts to protect her from the criminal's knife and he is currently in a critical condition at Dresden College hospital.&lt;br /&gt;&lt;br /&gt; Germans on the Alert for Anti-Muslims The stabbing happened on July 1, just before Al-Sherbini was to give her evidence on a recent discriminatory attitude took by the criminal towards her hijab. During the struggle, other bystanders were also injured and police fired a shot. The killer, identified only as Alex W., is now subject to the German police forces' investigations.&lt;br /&gt;&lt;br /&gt;While some officials insist on not to relate this criminal act to the fact that Mrs. Al-Sherbini is a veiled Muslim woman in the German secular society assuming that it has nothing to do with persecution against Muslims in Germany, others say that this incident shows a sample of open hostility towards foreigners and Muslims in Germany.&lt;br /&gt;&lt;br /&gt;It is worth mentioning that this incident came days after the German Interior Minister Wolfgang Schaeuble sought understanding for Germany’s integration policies in a speech he gave at Egypt’s Cairo University, stating that anti-democratic ideas in Muslim communities must be combated&lt;br /&gt;&lt;br /&gt;My deepest condolence to her family. It is a great lost for the Muslims. I have searched the Internet, and found no coverage in any Western media. The German authority would not release the full last name of the vicious killer ‘Alex W’. Had it been a person with a Muslim name, there would have released the whole genealogic tree of the perpetrator. For weeks and even months news would break in every TV station and another opportunity for them to produce ‘special editions’ around the world, in every newspaper there is and every web site news editors who cannot wait to spit their venom at the Muslim community. Marwa truly has been martyred just to be a veiled Muslim mother .. "allah yar7amha wa yoskinha aljannah"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34318330-1002131730565675959?l=laouini.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-06T20:34:31.796+02:00</app:edited><media:thumbnail url="http://4.bp.blogspot.com/_ZFrVNZ5xNes/SlJBvJyX7JI/AAAAAAAAASY/yajBPix8eg4/s72-c/marwa.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://laouini.blogspot.com/2009/07/killing-veiled-pregnant-muslim-mother.html</feedburner:origLink></item><item><title>stupid obama vs the fly !</title><link>http://feedproxy.google.com/~r/sofiane/~3/zJ_vi7krd8Y/stupid-obama-vs-fly.html</link><author>noreply@blogger.com (sofiane)</author><pubDate>Wed, 17 Jun 2009 15:41:08 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-34318330.post-5452387026427524490</guid><description>&lt;div&gt;&lt;object type="application/x-shockwave-flash" data="http://www.wat.tv/swf2/842072D1YAqnJ2650073" width="470" height="312" id="wat_2650073"&gt;&lt;param name="movie" value="http://www.wat.tv/swf2/496452ZHmNpSk2650073" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;Veuillez installer Flash Player pour lire la vidéo&lt;/object&gt;&lt;/div&gt;&lt;div class="watlinks" style="width:470px;font-size:11px; background:#CCCCCC; padding:2px 0 4px 0; text-align: center;"&gt;&lt;a target="_blank" class="waturl" href="http://www.wat.tv/video/mouche-mise-o-par-barack-obama-1kst5_1ezx5_.html"&gt;&lt;strong&gt;Une mouche mise K.O par Barack Obama&lt;/strong&gt;&lt;/a&gt; sélectionné dans &lt;a href="http://www.wat.tv/guide/actualite-info" class="waturl alttheme" title="Actualité"&gt;Actualité&lt;/a&gt; et &lt;a href="http://www.wat.tv/guide/info-actualite-france" class="waturl altrubrique" title="Actu France"&gt;Actu France&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;no comment !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34318330-5452387026427524490?l=laouini.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-18T00:41:08.674+02:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><enclosure url="http://www.wat.tv/swf2/842072D1YAqnJ2650073" length="845" type="application/x-shockwave-flash" /><media:content url="http://www.wat.tv/swf2/842072D1YAqnJ2650073" fileSize="845" type="application/x-shockwave-flash" /><itunes:explicit>no</itunes:explicit><itunes:subtitle>Veuillez installer Flash Player pour lire la vidéoUne mouche mise K.O par Barack Obama sélectionné dans Actualité et Actu France no comment !!</itunes:subtitle><itunes:author>noreply@blogger.com (sofiane)</itunes:author><itunes:summary>Veuillez installer Flash Player pour lire la vidéoUne mouche mise K.O par Barack Obama sélectionné dans Actualité et Actu France no comment !!</itunes:summary><feedburner:origLink>http://laouini.blogspot.com/2009/06/stupid-obama-vs-fly.html</feedburner:origLink></item><item><title>Google’s Profits: $210k per Employee!</title><link>http://feedproxy.google.com/~r/sofiane/~3/_A1vtOTlU3M/googles-profits-210k-per-employee.html</link><author>noreply@blogger.com (sofiane)</author><pubDate>Fri, 29 May 2009 02:15:20 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-34318330.post-2080843342466487802</guid><description>hi folks,&lt;br /&gt;This is pretty interesting, Google had $209,624 in profit per employee last year beating companies like Microsoft, HP and Apple.&lt;br/&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ZFrVNZ5xNes/Sh-mXo2j6wI/AAAAAAAAARg/x317cWfHL1Q/s1600-h/GoogTable1.gif"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 165px;" src="http://3.bp.blogspot.com/_ZFrVNZ5xNes/Sh-mXo2j6wI/AAAAAAAAARg/x317cWfHL1Q/s320/GoogTable1.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5341170608118164226" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;I’m not sure how accurate these figures are, but the report suggests that Google has 20,164 employees, which makes Google’s profit more than $4 billions, I though it’s much more than that. Google was followed by Microsoft, scoring $194,297 in profit per employee, which makes their profit more than $17 billion! I wonder if Google had 91,000 employees just like Microsoft, or even 398,455 employees like IBM, that would make their profits more than $83 billion!&lt;br/&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ZFrVNZ5xNes/Sh-m0nBxlaI/AAAAAAAAARo/Spn4TEMi2fQ/s1600-h/GoogTable2.gif"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 238px;" src="http://1.bp.blogspot.com/_ZFrVNZ5xNes/Sh-m0nBxlaI/AAAAAAAAARo/Spn4TEMi2fQ/s320/GoogTable2.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5341171105844532642" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;these numbers are giving me some headach :( &lt;br /&gt;until next post, take care of yourself Peace out dudes !! Y&lt;br /&gt;&lt;a href="http://royal.pingdom.com/2009/05/14/congratulations-google-staff-210k-in-profit-per-head-in-2008/"&gt;source&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34318330-2080843342466487802?l=laouini.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-29T11:15:20.432+02:00</app:edited><media:thumbnail url="http://3.bp.blogspot.com/_ZFrVNZ5xNes/Sh-mXo2j6wI/AAAAAAAAARg/x317cWfHL1Q/s72-c/GoogTable1.gif" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://laouini.blogspot.com/2009/05/googles-profits-210k-per-employee.html</feedburner:origLink></item><item><title>Closed Zone Gaza</title><link>http://feedproxy.google.com/~r/sofiane/~3/-ZiczjPyUpA/closed-zone-gaza.html</link><author>noreply@blogger.com (sofiane)</author><pubDate>Sat, 09 May 2009 11:31:27 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-34318330.post-3588612076293762810</guid><description>Just to remember what happened in Gaza.&lt;br/&gt; &lt;br /&gt;&lt;object width="450" height="300"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Hzqw7oBZT8k&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Hzqw7oBZT8k&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="450" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34318330-3588612076293762810?l=laouini.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-09T20:31:27.665+02:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><enclosure url="http://www.youtube.com/v/Hzqw7oBZT8k&amp;hl=en&amp;fs=1" length="1009" type="application/x-shockwave-flash" /><media:content url="http://www.youtube.com/v/Hzqw7oBZT8k&amp;hl=en&amp;fs=1" fileSize="1009" type="application/x-shockwave-flash" /><itunes:explicit>no</itunes:explicit><itunes:subtitle>Just to remember what happened in Gaza. </itunes:subtitle><itunes:author>noreply@blogger.com (sofiane)</itunes:author><itunes:summary>Just to remember what happened in Gaza. </itunes:summary><feedburner:origLink>http://laouini.blogspot.com/2009/05/closed-zone-gaza.html</feedburner:origLink></item><item><title>MS Offers Secure Windows … But Only to Gov !!</title><link>http://feedproxy.google.com/~r/sofiane/~3/BgA5z4RNgiU/ms-offers-secure-windows-but-only-to.html</link><author>noreply@blogger.com (sofiane)</author><pubDate>Thu, 07 May 2009 08:23:38 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-34318330.post-6036612678863037787</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ZFrVNZ5xNes/Sf4SYuemsBI/AAAAAAAAAQY/at06EXHJzz4/s1600-h/49df9e73ww2lo0_frame_0023.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 96px; height: 96px;" src="http://1.bp.blogspot.com/_ZFrVNZ5xNes/Sf4SYuemsBI/AAAAAAAAAQY/at06EXHJzz4/s320/49df9e73ww2lo0_frame_0023.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5331719224855801874" /&gt;&lt;/a&gt;&lt;br /&gt;Microsoft will offers secure Windows only to the government because only the government is stupid enough to believe that any Microsoft software is “secure.” !!!&lt;br /&gt;I must start by saying that &lt;a href="http://www.wired.com/threatlevel/2009/04/air-force-windows/"&gt;this article&lt;/a&gt; is horrible. It makes it sound like Microsoft is giving the government a different version of the software to the Air Force. &lt;br /&gt;&lt;br /&gt;I’ll bet that every one of those settings is derived straight from the DISA guidelines (as they have to get audited by them per DIACAP). &lt;br /&gt;All of those settings and guidelines are available &lt;a href="http://iase.disa.mil/stigs/checklist/index.html"&gt;here&lt;/a&gt; !!&lt;br /&gt;&lt;br /&gt;Peace out Y&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34318330-6036612678863037787?l=laouini.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-07T17:23:38.514+02:00</app:edited><media:thumbnail url="http://1.bp.blogspot.com/_ZFrVNZ5xNes/Sf4SYuemsBI/AAAAAAAAAQY/at06EXHJzz4/s72-c/49df9e73ww2lo0_frame_0023.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://laouini.blogspot.com/2009/05/ms-offers-secure-windows-but-only-to.html</feedburner:origLink></item><item><title>This Animation Will Blow Your Mind!</title><link>http://feedproxy.google.com/~r/sofiane/~3/Zrfp8L1PPUs/this-animation-will-blow-your-mind.html</link><author>noreply@blogger.com (sofiane)</author><pubDate>Wed, 22 Apr 2009 15:29:54 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-34318330.post-6576314839689040421</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ZFrVNZ5xNes/Se-aTjQVV_I/AAAAAAAAAQQ/Dw9c2J8UPuc/s1600-h/49df9e73ww2lo0_frame_0022.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 96px; height: 96px;" src="http://1.bp.blogspot.com/_ZFrVNZ5xNes/Se-aTjQVV_I/AAAAAAAAAQQ/Dw9c2J8UPuc/s320/49df9e73ww2lo0_frame_0022.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327646544874526706" /&gt;&lt;/a&gt;&lt;br /&gt;What you are about to see is a wholly computer generated animation.&lt;br /&gt;Emily (the girl in the video below) is Not Real!&lt;br /&gt;Emily was produced using a new modelling technology that enables the most minute details of a facial expression to be captured and recreated.&lt;br /&gt;She is considered to be one of the first animations to have overleapt a long-standing barrier known as ‘uncanny valley’ - which refers to the perception that animation looks less realistic as it approaches human likeness.&lt;br /&gt;‘Emily’ will set a new precedent for photo-realistic characters in video games and films, says her creator, Image Metrics&lt;br /&gt;More information and full story at &lt;a href="http://technology.timesonline.co.uk/tol/news/tech_and_web/article4557935.ece"&gt;Times Online&lt;/a&gt;.&lt;br /&gt;Peace out !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34318330-6576314839689040421?l=laouini.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-23T00:29:54.505+02:00</app:edited><media:thumbnail url="http://1.bp.blogspot.com/_ZFrVNZ5xNes/Se-aTjQVV_I/AAAAAAAAAQQ/Dw9c2J8UPuc/s72-c/49df9e73ww2lo0_frame_0022.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://laouini.blogspot.com/2009/04/this-animation-will-blow-your-mind.html</feedburner:origLink></item><item><title>Gaza war crimes</title><link>http://feedproxy.google.com/~r/sofiane/~3/pVUxudRvHXk/gaza-war-crimes.html</link><author>noreply@blogger.com (sofiane)</author><pubDate>Wed, 22 Apr 2009 08:17:38 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-34318330.post-8718501322369513247</guid><description>This video was posted in sbabah's blog and shows the real gaza war events and&lt;br /&gt;not the lies and propaganda shown in most of TV channels ...&lt;br /&gt;&lt;br&gt;&lt;embed src="http://blip.tv/play/3y_12Rf6Bw%2Em4v" type="application/x-shockwave-flash" width="480" height="295" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34318330-8718501322369513247?l=laouini.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-22T17:17:38.705+02:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://laouini.blogspot.com/2009/04/gaza-war-crimes.html</feedburner:origLink></item><item><title>HTML Validation: Does It Matter?</title><link>http://feedproxy.google.com/~r/sofiane/~3/plmdYrNE4vI/html-validation-does-it-matter.html</link><author>noreply@blogger.com (sofiane)</author><pubDate>Tue, 31 Mar 2009 03:49:59 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-34318330.post-3310429122906606390</guid><description>Just validated my blog using this tool : &lt;a href="http://validator.w3.org/"&gt;W3C validator&lt;/a&gt; and got over 260 errors and about 20 warning !!!&lt;br /&gt;ok my blog has not the worst score :) check out this list :&lt;br /&gt;&lt;br /&gt;FAIL - http://www.slashdot.org - 167 errors as HTML 4.01 Strict&lt;br /&gt;FAIL - http://www.digg.com - 32 errors as XHTML 1.0 Transitional&lt;br /&gt;FAIL - http://www.microsoft.com - 193 errors as XHTML 1.0 Transitional&lt;br /&gt;FAIL - http://www.google.com - 58 errors as HTML 4.01 Transitional&lt;br /&gt;FAIL - http://www.flickr.com - 34 errors as HTML 4.01 Transitional&lt;br /&gt;FAIL - http://ca.yahoo.com - 276 errors as HTML 4.01 Strict&lt;br /&gt;FAIL - http://www.sourceforge.net - 65 errors as XHTML 1.0 Transitional&lt;br /&gt;FAIL - http://www.joelonsoftware.com - 33 errors as XHTML 1.0 Strict&lt;br /&gt;FAIL - http://www.stackoverflow.com - 58 errors as HTML 4.01 Strict&lt;br /&gt;FAIL - http://www.dzone.com - 165 errors as XHTML 1.0 Transitional&lt;br /&gt;PASS - http://www.w3c.org - no errors as XHTML 1.0 Strict&lt;br /&gt;PASS - http://www.linux.com - no errors as XHTML 1.0 Strict&lt;br /&gt;PASS - http://www.wordpress.com - no errors as XHTML 1.0 Transitional&lt;br /&gt;&lt;br /&gt;This confirm what Jeff Atwood are saying about web :&lt;br /&gt;&lt;blockquote&gt;The web is, to put it charitably, a rather forgiving place. You can feed web browsers almost any sort of HTML markup or JavaScript code and they'll gamely try to make sense of what you've provided, and render it the best they can. In comparison, most programming languages are almost cruelly unforgiving. If there's a single character out of place, your program probably won't compile, much less run. This makes the HTML + JavaScript environment a rather unique -- and often frustrating -- software development platform.&lt;/blockquote&gt;&lt;br /&gt;Playing with this validator underscores how deep that forgiveness by default policy has permeated the greater web.&lt;br /&gt;But seems that nobody cares if your code is valid except you. It doesn't really matter at the end of the day, but it's lazy and could confuse/give extra work to the reader (browser) :/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34318330-3310429122906606390?l=laouini.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-31T12:49:59.132+02:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://laouini.blogspot.com/2009/03/html-validation-does-it-matter.html</feedburner:origLink></item><item><title>Flying under cover</title><link>http://feedproxy.google.com/~r/sofiane/~3/fMh0_b4s3Hc/flying-under-cover.html</link><author>noreply@blogger.com (sofiane)</author><pubDate>Thu, 26 Mar 2009 02:41:24 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-34318330.post-5256347744833237722</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ZFrVNZ5xNes/ScqxUsHtjsI/AAAAAAAAAQI/oLxWUq_JhyM/s1600-h/adorable.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 205px; height: 320px;" src="http://4.bp.blogspot.com/_ZFrVNZ5xNes/ScqxUsHtjsI/AAAAAAAAAQI/oLxWUq_JhyM/s320/adorable.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5317257279063297730" /&gt;&lt;/a&gt;&lt;br /&gt;The story of a Muslim women get my attention while reading the &lt;a href="http://www.iht.com/articles/2009/03/18/opinion/edhamid.php"&gt;article&lt;/a&gt; published in the International Herald Tribune journal.&lt;br /&gt;Her name is Mehati Abdul Hamid, and she's a harvard graduated student and tells us her story while being a muslim women under cover and what's happens to her while traveling ...&lt;br /&gt;what i read show me the the idiosyncrasies of most people and their ignorance about islam and muslims. in general we fear something that we don't know and instead of trying to know the how and the why of things we repulse people that are not like we are and this is very wrong and insane attitude.&lt;br /&gt;some of you might ask : Why do women cover's their bodies from head to toe, while they wearing good clothes and why they hide their beauty that God gave them? It's wasting for time &amp; money!!&lt;br /&gt;&lt;br /&gt;NO, it's not, In Islam, woman's dignity is asserted and one way to obtain it is to protect her from any harm. One way to ensure that the dignity of women is partly done by the woman her self. Women are asked to wear respectful dresses that covers her beauty. The form of the dress is varied in some countries, ... The style it self is not important, what matters is that it should cover the whole body.&lt;br /&gt;&lt;br /&gt;In Islam the responsibility is moral for both men &amp; women. While men are asked not to abuse women in any way , women on the other hand are asked to cover their beauty. &lt;br /&gt;Because women's body is not commodity or something of a low degree. It is kept away from the eyes of intruders who have no right to see any woman except their wives.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sisters.islamway.com/index.php"&gt;here&lt;/a&gt; you can find a lot if information about women in Islam, and remember : Ignorance is only bliss, until it bites you!&lt;br /&gt;&lt;br /&gt;Peace out!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34318330-5256347744833237722?l=laouini.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-26T10:41:24.759+01:00</app:edited><media:thumbnail url="http://4.bp.blogspot.com/_ZFrVNZ5xNes/ScqxUsHtjsI/AAAAAAAAAQI/oLxWUq_JhyM/s72-c/adorable.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://laouini.blogspot.com/2009/03/flying-under-cover.html</feedburner:origLink></item><item><title>Look Ma, it's my cool tools list !</title><link>http://feedproxy.google.com/~r/sofiane/~3/BH28cPJfPC0/look-ma-its-my-cool-tools-list.html</link><author>noreply@blogger.com (sofiane)</author><pubDate>Wed, 22 Apr 2009 03:02:34 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-34318330.post-7276239522931019989</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ZFrVNZ5xNes/SbPtdWHgUCI/AAAAAAAAAQA/kh2fYbgR-Yk/s1600-h/49df9e73ww2lo0_frame_0026.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 96px; height: 96px;" src="http://3.bp.blogspot.com/_ZFrVNZ5xNes/SbPtdWHgUCI/AAAAAAAAAQA/kh2fYbgR-Yk/s320/49df9e73ww2lo0_frame_0026.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5310849474008993826" /&gt;&lt;/a&gt;&lt;br /&gt;hi folks :) &lt;br&gt;it's been a while since my last post :d here we go, this time i will list some of my favorite tools that I'm using in my every day work or at my personal projects ... &lt;br&gt;GO :&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;a href="http://www.netbeans.org/"&gt;NetBeans&lt;/a&gt;&lt;/span&gt; : My favorite IDE, sorry eclipse :d cant stop using this wonderful tool :), I'd say my favorite feature, on top of all the other cool features, are those related to the website—it has been redesigned completely, there are integrated Learning Trails for all the areas of the IDE, there's now the super cool movie-oriented http://www.netbeans.tv/ and the brand new social networking http://my.netbeans.org/ site. WOVA netbeans rocks !!&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;a href="http://checkstyle.sourceforge.net/"&gt;Checkstyle&lt;/a&gt;&lt;/span&gt; : Plug-in NetBeans (or eclipse) that help programmers write Java code that adheres to a coding standard.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;a href="http://getfirebug.com/"&gt;Firebug&lt;/a&gt;&lt;/span&gt; : Add-on for firefox for debugging JavaScript and HTML, ...&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;a href="http://www.editplus.com/"&gt;Edit plus&lt;/a&gt;&lt;/span&gt; : just a light text editor that contains just what i need for text file manipulation, no fluff :) just the basic.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;a href="http://www.microsoft.com/france/technet/sysinternals/networking/TcpView.mspx"&gt;TCPView&lt;/a&gt;&lt;/span&gt; : is a program that will show you detailed listings of all TCP and UDP endpoints on your system, including the local and remote addresses and state of TCP connections ... &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;a href="http://www.codeproject.com/KB/applications/todolist2.aspx"&gt;Todo list&lt;/a&gt;&lt;/span&gt; : a small tool for managing your tasks ... very rich and easy to use :)&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;a href="http://www.soapui.org/"&gt;soapUI&lt;/a&gt;&lt;/span&gt; : Plug-in NetBeans (or eclipse) provides full environment for working with web-services.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;a href="https://glassfish.dev.java.net/"&gt;Glassfish&lt;/a&gt;&lt;/span&gt; : My favorites JEE app server, provided with an full web administration console. support many cool feature like OSGI, Comet, EJB3 etc ...&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;a href="http://erlang.org/"&gt;Erlang&lt;/a&gt;&lt;/span&gt; : i'm discovering this tools and enjoying play with the erlang language since i'm interested in functional language and concurrent programming ... amazing :)&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;a href="http://www.apple.com/safari/"&gt;Safari 4&lt;/a&gt;&lt;/span&gt; : i'm using safari 4 since it's more fast than chrome and opera :) for me it's the winner in the browser war ... still watching this scene, lot of changes will happens ...may i change my mind :d&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;a href="http://na.blackberry.com/eng/developers/javaappdev/devtools.jsp"&gt;BlackBerry JDE&lt;/a&gt;&lt;/span&gt; : Plug-in for developing cool java application for my blackberry smart phone :) really nice tool for developers and the must have peace of software for  blackberry owner. &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;a href="http://www.toadsoft.com/"&gt;TOAD&lt;/a&gt;&lt;/span&gt; : the best oracle client i know for now :) and i really like the frog :d&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;a href="http://www.freebsd.org/"&gt;freeBSD&lt;/a&gt;&lt;/span&gt; : is the unix os i'm using at home for experimenting new things and testing my scripts ... &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;a href="http://www.7-zip.org/"&gt;7-zip&lt;/a&gt;&lt;/span&gt; : my favorite tool for managing zip and rar files and it's open source :) the fastest and the best compression tool for me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34318330-7276239522931019989?l=laouini.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-22T12:02:34.524+02:00</app:edited><media:thumbnail url="http://3.bp.blogspot.com/_ZFrVNZ5xNes/SbPtdWHgUCI/AAAAAAAAAQA/kh2fYbgR-Yk/s72-c/49df9e73ww2lo0_frame_0026.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://laouini.blogspot.com/2009/03/look-ma-its-my-cool-tools-list.html</feedburner:origLink></item><media:rating>nonadult</media:rating></channel></rss>

