<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Zen-Dreams [dot] com &#187; Tutorial</title>
	<atom:link href="http://blog.zen-dreams.com/blog-en/tag/tutorial/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.zen-dreams.com/blog-en</link>
	<description>Blog&#039;s Archives</description>
	<lastBuildDate>Fri, 20 Aug 2010 07:25:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Integrate tinyMCE into your wordpress plugins</title>
		<link>http://blog.zen-dreams.com/blog-en/2009/06/30/integrate-tinymce-into-your-wordpress-plugins/</link>
		<comments>http://blog.zen-dreams.com/blog-en/2009/06/30/integrate-tinymce-into-your-wordpress-plugins/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 01:11:59 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://blog.zen-dreams.com/en/?p=609</guid>
		<description><![CDATA[You might remember that I wrote a previous article about the integration of tinyMCE into your wordpress plugins for version 2.5 to 2.7.1. Following some of your requests and due to the fact that I had to look in order to make ZdMultilang work with the latest WordPress, Here is the updated article with explanation [...]]]></description>
			<content:encoded><![CDATA[<p>You might remember that I wrote a previous article about the <a href="http://blog.zen-dreams.com/en/2008/11/06/how-to-include-tinymce-in-your-wp-plugin/" target="_blank">integration of tinyMCE</a> into your <strong>wordpress plugins</strong> for version 2.5 to 2.7.1.</p>
<p>Following some of your requests and due to the fact that I had to look in order to make <a href="http://blog.zen-dreams.com/en/wordpress/zdmultilang/" target="_blank"><strong>ZdMultilang</strong></a> work with the latest <strong>WordPress</strong>, Here is the updated article with explanation of how to integrate <strong>tinyMCE into your wordpress plugins</strong>.<span id="more-609"></span></p>
<p>So here is the code you need to include.</p>
<pre>add_filter('admin_head','ShowTinyMCE');
function ShowTinyMCE() {
	// conditions here
	wp_enqueue_script( 'common' );
	wp_enqueue_script( 'jquery-color' );
	wp_print_scripts('editor');
	if (function_exists('add_thickbox')) add_thickbox();
	wp_print_scripts('media-upload');
	if (function_exists('wp_tiny_mce')) wp_tiny_mce();
	wp_admin_css();
	wp_enqueue_script('utils');
	do_action("admin_print_styles-post-php");
	do_action('admin_print_styles');
}</pre>
<p>Don&#8217;t ask me to explain everything, I just found all these details while browsing the admin pages related to posts.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zen-dreams.com/blog-en/2009/06/30/integrate-tinymce-into-your-wordpress-plugins/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>High Availability</title>
		<link>http://blog.zen-dreams.com/blog-en/2008/09/26/la-haute-disponibilite/</link>
		<comments>http://blog.zen-dreams.com/blog-en/2008/09/26/la-haute-disponibilite/#comments</comments>
		<pubDate>Sat, 27 Sep 2008 05:20:20 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Information Technologies]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[High Availability]]></category>
		<category><![CDATA[Systems]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://zen-dreams.com/fr/2008/03/18/la-haute-disponibilite/</guid>
		<description><![CDATA[First, before to talk about the definition of High Availability, I&#8217;d like to introduce the notion of availability. A system is considered unavailable when it becomes unusable or even usable but with too limited functions. There are many reasons for this and some of these are commonly called Single Point of Failure (SPOF), others are [...]]]></description>
			<content:encoded><![CDATA[<p>First, before to talk about the definition of <strong>High Availability</strong>, I&#8217;d like to introduce the notion of availability. A system is considered <span style="text-decoration: underline">unavailable</span> when it becomes unusable or even usable but with too limited functions.<br />
There are many reasons for this and some of these are commonly called Single Point of Failure (<strong>SPOF</strong>), others are most of the time due to bad operations, or <a href="http://en.wikipedia.org/wiki/Murphy's_law">Murphy&#8217;s Law</a></p>
<p><strong>High Availability</strong> is a global concept used to make the system globally available as much as possible, i.e., with the fewest downtimes possible. Prior to think your system architecture, you must define your <strong>Service Level Agreement (SLA)</strong>. The SLA is the document where you define the availability of your system, may it be planned or unplanned, but also response times, and monitoring to be performed so that preventive actions can be taken.<br />
<span id="more-80"></span><br />
Availability is often expressed in <strong>percentage</strong> of the time the system must work. This percentage is calculated on a year average then re-processed in a monthly rate giving the amount of time the system can be down each month.</p>
<blockquote><p><em>For example, if you want your system to be up five nine (99.999%) this means it will be up <span style="text-decoration: underline">525594.744</span> minutes a year. According to this calculation, you are allowed to have 5.25 minutes of service disruption each year, i.e. <strong>44 seconds each month</strong>.</em></p></blockquote>
<p>Once you decided your <strong>availability rate</strong>, you can design, or improve, your architecture. To do so, you should identify any SPOF and make it a non-SPOF component.</p>
<p>They can be, but <span style="text-decoration: underline">not limited to</span>, Database servers, Network components (such as load-balancer, switch, router, firewall, etc&#8230;), Application servers, Filers, Disks, Authentication servers.<br />
Having identified those SPOF will allow you to decide the <strong>gain vs. cost</strong> of having them redundant.</p>
<blockquote><p><img src="http://zen-dreams.com/Images/HA.png" alt="highavailability.png" /><br />
Here is an example of what could be an Highly Available architecture</p></blockquote>
<h3>Management</h3>
<p>High Availability is not only a concept for the architecture of your system, but also includes <strong>best-practices on management</strong>. This management part is as important as the architecture, because you may have the best architecture design ever, if you don&#8217;t make continuous improvement and monitoring on each element, you will never be able to do preventive actions.</p>
<p>As I mentioned before your SLA is here to help you define what has to be monitored, triggers on critical/non-critical events and various <strong>Key Performance Indicator</strong> (KPI) to ensure your system is going well.</p>
<p>Of course, the SLA is not enough to ensure availability, you have to make sure your Operation Manuals are well documented and <strong>always</strong> up-to-date, your <strong>Disaster Recovery Plan</strong> is existing, tested at least each year and also well documented, and finally, <strong>backups</strong> stored in a safe place, duplicated and always correct. Finally, have your operational teams, very well trained and available 24&#215;7.</p>
<p>Remember that having your systems redundant is not sufficient; make also sure to have a great data-replication policy, even more when using RDBS to avoid data corruption on all your Database nodes.</p>
<h3>Tools and Techniques</h3>
<p>Some of the commonly used Tools include <a href="http://www-03.ibm.com/systems/p/software/hacmp/index.html">AIX HA-CMP</a>, <a href="http://www.sun.com/software/solaris/cluster/index.xml">Sun Cluster</a>, <a href="http://www.linux-ha.org">Heartbeat (Open Source)</a>, Cisco Load Balancers, EMC<sup>2</sup> filers, Network Appliance, and so on&#8230;</p>
<p>Some of the techniques used to make a system Highly Available are:</p>
<ul>
<li>Load Balancing</li>
<li>Reverse Proxy</li>
<li>Clustering</li>
<li>Virtualization</li>
<li>Failover</li>
</ul>
<p>I will not enter into the details of each techniques and tools in this post, but stay tuned as I&#8217;ll write on these in a near future.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zen-dreams.com/blog-en/2008/09/26/la-haute-disponibilite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Write your own plugin for WordPress [Chapter 4]</title>
		<link>http://blog.zen-dreams.com/blog-en/2008/09/04/write-your-own-plugin-for-wordpress-chapter-4/</link>
		<comments>http://blog.zen-dreams.com/blog-en/2008/09/04/write-your-own-plugin-for-wordpress-chapter-4/#comments</comments>
		<pubDate>Thu, 04 Sep 2008 08:38:04 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.zen-dreams.com/en/?p=430</guid>
		<description><![CDATA[As a reminder, this article is the fourth of a series called Write your own plugin for WordPress Introduction to plugins Plugin’s skeletton Activation, Hooks &#38; Filters Widgets Definition 1. Widgets definition A widget is, in fact, a plugin that will allow users to display a block on their sidebar. That being said, there are [...]]]></description>
			<content:encoded><![CDATA[<p>As a reminder, this article is the fourth of a series called <strong>Write your own plugin for WordPress</strong></p>
<ol></ol>
<ol>
<li><a href="../en/2008/06/24/creer-son-plug-in-pour-wordpress-partie-1/" target="_blank">Introduction to plugins</a></li>
<li><a href="../en/2008/07/03/creer-son-plug-in-pour-wordpress-partie-2/">Plugin’s skeletton</a></li>
<li><a href="http://blog.zen-dreams.com/en/2008/07/22/creer-son-plug-in-pour-wordpress-partie-3/">Activation, Hooks &amp; Filters</a></li>
<li><a href="http://blog.zen-dreams.com/en/2008/09/04/write-your-own-plugin-for-wordpress-chapter-4/" target="_self">Widgets Definition</a></li>
</ol>
<ol></ol>
<h3><span style="text-decoration: underline"><strong>1. Widgets</strong> definition</span></h3>
<p>A widget is, in fact, a plugin that will allow users to display a block on their sidebar. That being said, there are only one action to use in order to create a Widget.</p>
<p>This action is called <em><strong>widgets_init</strong></em> &#8211; therefore you can call it like this : <em>add_action(&#8216;widgets_init&#8217;, function_name);</em></p>
<p>Once you have done this, you will have to register two other functions inside this <em>function_name</em> function only if sidebars are available with your wordpress install.</p>
<p>Here is some code that can do the trick :<br />
<span id="more-430"></span></p>
<pre>function <em>function_name</em>() {
	if ( !function_exists('register_sidebar_widget') || !function_exists('register_widget_control') )
		return;
	register_sidebar_widget(string $name,callback $function);
	// register_sidebar_widget takes the name of the widget and the function that will be used to display it.
	register_widget_control(string $name, callback $function2);
	// register_widget_control takes the name of the widget and the function that will be used to to change options (in the design panel).
}</pre>
<p>That&#8217;s pretty all you need to know for Widgets. All the rest is non widget specific (options, actions and filters, api calls)</p>
<h3><span style="text-decoration: underline">2. Sample Widget</span></h3>
<p>Here below you will find a sample widget in written in fully object oriented php &#8211; not there is no option tab. This widget will only display a Simple <strong>Hello World</strong> with widget title customisable.</p>
<pre>/*
Plugin Name: ZenDreams_Sample_Widget
Plugin URI: http://blog.zen-dreams.com/
Description: Sample Widget
Version: 1.0
Author: Anthony PETITBOIS
Author URI: http://blog.zen-dreams.com/
*/
class myWidget {

	function myWidget() {
		add_action('widgets_init', array(&amp;amp; $this, 'init_widget'));
	}

	function init_widget() {
		if ( !function_exists('register_sidebar_widget') || !function_exists('register_widget_control') )
			return;
		register_sidebar_widget(array('myWidget','widgets'),array(&amp;amp; $this, 'widget'));
		register_widget_control(array('myWidget', 'widgets'), array(&amp;amp; $this, 'widget_options'));
	}

	function widget($args) {
		global $wpdb;

		$WidgetTitle=get_option('mywidget_options');
		extract($args);

		echo $before_widget.$before_title.$WidgetTitle.$after_title;
		echo 'Hello World !';
		echo $after_widget;
	}

	function widget_options() {
		if ($_POST['mywidget_options']) {
			$option=$_POST['mywidget_options'];
			update_option('mywidget_options',$option);
		}
		$option=get_option('mywidget_options');
		echo '&lt;label for="mywidget_options"&gt;Title : &lt;input id="mywidget_options" name="mywidget_options" type="text" value="'.$option.'" /&gt;&lt;/label&gt;';
	}
}
$myWidgetVariable= new myWidget ();</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.zen-dreams.com/blog-en/2008/09/04/write-your-own-plugin-for-wordpress-chapter-4/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>How to find anything using google</title>
		<link>http://blog.zen-dreams.com/blog-en/2008/08/05/how-to-find-anything-using-google/</link>
		<comments>http://blog.zen-dreams.com/blog-en/2008/08/05/how-to-find-anything-using-google/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 14:00:50 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Information Technologies]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.zen-dreams.com/en/?p=371</guid>
		<description><![CDATA[I know this tip has been known for ages, but I wanted not only to explain how to do it, but also how and why it works. This little search query will return you servers with mp3 files : `-inurl:htm -inurl:html intitle:&#8221;index of&#8221; &#8220;Last modified&#8221; mp3` Let&#8217;s analyse this query: -inurl:htm -inurl:html =&#62; will not [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-370" src="http://blog.zen-dreams.com/wp-content/uploads/2008/08/arts.png" alt="" width="128" height="128" />I know this tip has been known for ages, but I wanted not only to explain how to do it, but also how and why it works.</p>
<p>This little search query will return you servers with mp3 files :<br />
`<a href="http://www.google.com/search?q=-inurl:htm -inurl:html intitle:&quot;index of&quot; &quot;Last modified&quot; mp3" target="_blank">-inurl:htm -inurl:html intitle:&#8221;index of&#8221; &#8220;Last modified&#8221; mp3</a>`</p>
<p>Let&#8217;s analyse this query:</p>
<ul>
<li><strong>-inurl:htm -inurl:html</strong> =&gt; will not return results with &#8220;<strong>htm</strong>&#8221; or &#8220;<strong>html</strong>&#8221; in the url (no html page)</li>
<li><strong>intitle:&#8221;index of&#8221;</strong> =&gt; will look for &#8220;index of&#8221; in the title tag of the page.</li>
<li><strong>&#8220;Last modified&#8221;</strong> =&gt; will look for that string in the resulting page, this is due to the fact that most webserver software will display this when displaying a directory listing</li>
<li><strong>mp3 </strong>=&gt; just because you are looking for mp3 files</li>
</ul>
<p>So if you want to extend this query, you can replace mp3 by anything (let&#8217;s say pdf for example) and even add a title or group, or album in the search, for example by adding : &#8220;Placebo&#8221;.</p>
<p>For example if you want to download ebooks, you can replace mp3 by &#8220;<strong>pdf ebooks</strong>&#8220;.</p>
<p>Of course,<span style="color: #ff0000"><strong> downloading stuff you don&#8217;t own legally if strictly forbidden !</strong></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zen-dreams.com/blog-en/2008/08/05/how-to-find-anything-using-google/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Integrate a Flickr gallery on your website</title>
		<link>http://blog.zen-dreams.com/blog-en/2008/07/16/integrer-une-gallerie-flickr-sur-votre-site/</link>
		<comments>http://blog.zen-dreams.com/blog-en/2008/07/16/integrer-une-gallerie-flickr-sur-votre-site/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 08:57:18 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.zen-dreams.com/fr/?p=197</guid>
		<description><![CDATA[You own a flickr account and would love to integrate a gallery on your website, might it be into the sidebar or directly into a page. Here is a tutorial to show you how to proceed. First, you must connect to your Flickr account, and then go to this address (I can&#8217;t remember the complete [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com" target="_blank"><img class="alignleft" src="http://l.yimg.com/g/images/flickr_logo_gamma.gif.v35314.14" border="0" alt="Flickr" /></a>You own a <strong>flickr account</strong> and would love to <strong>integrate a gallery on your website</strong>, might it be into the <strong>sidebar </strong>or directly into a page. Here is a <strong>tutorial </strong>to show you how to proceed.</p>
<p>First, you must connect to your <strong>Flickr </strong>account, and then go to <strong><a href="http://www.flickr.com/badge.gne">this address</a></strong> (I can&#8217;t remember the complete path to go there).</p>
<p>Then, <strong>Flickr </strong>will give you two options for the generated module. The first one is a pure <strong>HTML</strong> one, which will allow you to share your pictures to <span style="text-decoration: underline">anyone</span>. The second module is Flash based and will give you users a <strong>better visual experience</strong> but <span style="text-decoration: underline">may not be compatible</span> with everybody&#8217;s browser (for exemple, <strong>iPhone still doesn&#8217;t support Flash</strong>).</p>
<p style="text-align: center"><img class="size-full wp-image-198 aligncenter" src="../../wp-content/uploads/2008/07/flickr1.jpg" alt="" width="435" height="396" /></p>
<p><span id="more-197"></span>Once you choose the module type, you are given the opportunity to <strong>define the content displayed</strong>. Your pictures, depending on an album/set/tag or not (meaning that any of <strong>your</strong> public photo will be displayed), <strong>a group</strong> you are member of (selection via tag or not) or even <strong>any public photo</strong> (tagged or not).</p>
<p style="text-align: center"><img class="size-full wp-image-199 aligncenter" src="../../wp-content/uploads/2008/07/flickr2.jpg" alt="" width="500" height="360" /></p>
<p>After you choose this, you will be asked to <strong>define the way your &#8220;badge&#8221; will be displayed</strong>. I&#8217;ll show HTML options as there are more choices:</p>
<p style="text-align: center"><img class="size-full wp-image-202 aligncenter" src="../../wp-content/uploads/2008/07/flickr3.jpg" alt="" width="500" height="570" /></p>
<p>And finally, you will set another group of options then you&#8217;ll be able to grab the code to insert into your sidebar/page.</p>
<p>This should look like this:</p>
<pre>&lt;!-- Start of Flickr Badge --&gt;
&lt;style type="text/css"&gt;
#flickr_badge_source_txt {padding:0; font: 11px Arial, Helvetica, Sans serif; color:#666666;}
#flickr_badge_icon {display:block !important; margin:0 !important; border: 1px solid rgb(0, 0, 0) !important;}
#flickr_icon_td {padding:0 5px 0 0 !important;}
.flickr_badge_image {text-align:center !important;}
.flickr_badge_image img {border: 1px solid black !important;}
#flickr_badge_uber_wrapper {width:150px;}
#flickr_www {display:block; text-align:center; padding:0 10px 0 10px !important; font: 11px Arial, Helvetica, Sans serif !important; color:#3993ff !important;}
#flickr_badge_uber_wrapper a:hover,
#flickr_badge_uber_wrapper a:link,
#flickr_badge_uber_wrapper a:active,
#flickr_badge_uber_wrapper a:visited {text-decoration:none !important; background:inherit !important;color:#0063dc;}
#flickr_badge_wrapper {}
#flickr_badge_source {padding:0 !important; font: 11px Arial, Helvetica, Sans serif !important; color:#666666 !important;}
&lt;/style&gt;
&lt;table id="flickr_badge_uber_wrapper" cellpadding="0" cellspacing="10" border="0"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://www.flickr.com" id="flickr_www"&gt;www.&lt;strong style="color:#3993ff"&gt;flick&lt;span style="color:#ff1c92"&gt;r&lt;/span&gt;&lt;/strong&gt;.com&lt;/a&gt;&lt;table cellpadding="0" cellspacing="10" border="0" id="flickr_badge_wrapper"&gt;
&lt;script type="text/javascript" src="http://www.flickr.com/badge_code_v2.gne?show_name=1&amp;count=3&amp;display=latest&amp;size=t&amp;layout=v&amp;source=user_set&amp;user=27703312%40N07&amp;set=72157606024367814&amp;context=in%2Fset-72157606024367814%2F"&gt;&lt;/script&gt;
&lt;tr&gt;
&lt;td id="flickr_badge_source" valign="center" align="center"&gt;
&lt;table cellpadding="0" cellspacing="0" border="0"&gt;&lt;tr&gt;
&lt;td width="10" id="flickr_icon_td"&gt;&lt;a href="http://www.flickr.com/photos/zen-dreams/sets/72157606024367814/"&gt;&lt;img id="flickr_badge_icon" alt="zen.dreams Food photoset" src="http://farm4.static.flickr.com/3051/buddyicons/27703312@N07.jpg?1215421268#27703312@N07" align="left" width="48" height="48"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td id="flickr_badge_source_txt"&gt;zen.dreams &lt;a href="http://www.flickr.com/photos/zen-dreams/sets/72157606024367814/"&gt;Food&lt;/a&gt; photoset&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;!-- End of Flickr Badge --&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.zen-dreams.com/blog-en/2008/07/16/integrer-une-gallerie-flickr-sur-votre-site/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to install safari under GNU/Linux</title>
		<link>http://blog.zen-dreams.com/blog-en/2008/03/27/comment-faire-fonctionner-safari-sous-linux/</link>
		<comments>http://blog.zen-dreams.com/blog-en/2008/03/27/comment-faire-fonctionner-safari-sous-linux/#comments</comments>
		<pubDate>Thu, 27 Mar 2008 07:00:03 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Information Technologies]]></category>
		<category><![CDATA[Planet-Libre]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://zen-dreams.com/fr/2008/03/27/comment-faire-fonctionner-safari-sous-linux/</guid>
		<description><![CDATA[Safari is a web-browser developped by Apple. At this time, it&#8217;s only available under Mac OSX and MS Winsows. Here is a short tutorial on how-to install it under GNU/Linux using Wine. The first step is to setup wine, to do so, tou must run the following command : winecfg This opens a configuration window. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Safari </strong>is a web-browser developped by <strong>Apple</strong>. At this time, it&#8217;s only available under Mac OSX and MS Winsows. Here is a short tutorial on how-to  <strong>install it under GNU/Linux</strong> using Wine.</p>
<p>The first step is to setup wine, to do so, tou must run the following command :</p>
<pre>winecfg</pre>
<p>This opens a configuration window. In the application tab, select <strong>Windows XP</strong> compatibility mode.</p>
<p><img src="http://zen-dreams.com/wp-content/uploads/2008/03/winecfg.png" alt="winecfg.png" />Next step is to make sure you have Arial &amp; Times_New_Roman fonts installed, Ubuntu you can execute this command (which will install the fonts)</p>
<pre>sudo apt-get install msttcorefonts</pre>
<p>Then you have to install them into your <strong>Winedows</strong> directory</p>
<pre>cp /usr/share/fonts/truetype/msttcorefonts/Arial*.ttf ~/.wine/drive_c/windows/fonts/
cp /usr/share/fonts/truetype/msttcorefonts/Times_New_Roman*.ttf ~/.wine/drive_c/windows/fonts/</pre>
<p>You will also need to have MS VC++ runtimes, to install them, you may use winetricks:</p>
<pre>wget http://www.kegel.com/wine/winetricks
chmod +x winetricks
winetricks vcrun2005</pre>
<p>Now all you have to do is to setup Safari, previously downloaded via  <a href="http://www.apple.com/safari/download/">Apple&#8217;s Website</a></p>
<pre>wine &lt;command.exe&gt;</pre>
<p><img src="http://zen-dreams.com/wp-content/uploads/2008/03/safari01-thumb.png" alt="safari01-thumb.png" /><br />
Select Next, Then accept license.<br />
Note : do not install additional software/services as shown below.</p>
<p><img src="http://zen-dreams.com/wp-content/uploads/2008/03/safari03-thumb.png" alt="safari03-thumb.png" /><br />
And voila, you now have a perfectly working Safari under linux :</p>
<pre>wine ~/.wine/drive_c/Program Files/Safari/Safari.exe</pre>
<p><img src="http://zen-dreams.com/wp-content/uploads/2008/03/capture.png" alt="capture.png" /><br />
<a href="http://phorolinux.com/how-to-run-safari-in-linux-using-wine.html">Source</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zen-dreams.com/blog-en/2008/03/27/comment-faire-fonctionner-safari-sous-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

