<?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>Ninetynine.be</title>
	<atom:link href="http://ninetynine.be/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://ninetynine.be/blog</link>
	<description>Just another blog with no useful content on it at all.</description>
	<lastBuildDate>Sun, 08 Jan 2012 10:39:54 +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>Setting up OpenCV 2.3.1 and Netbeans 7.1 on Ubuntu Oneiric 11.10</title>
		<link>http://ninetynine.be/blog/2012/01/setting-up-opencv-2-3-1-and-netbeans-7-1-on-ubuntu-oneiric-11-10/</link>
		<comments>http://ninetynine.be/blog/2012/01/setting-up-opencv-2-3-1-and-netbeans-7-1-on-ubuntu-oneiric-11-10/#comments</comments>
		<pubDate>Sat, 07 Jan 2012 22:05:25 +0000</pubDate>
		<dc:creator>ruben</dc:creator>
				<category><![CDATA[Netbeans]]></category>
		<category><![CDATA[OpenCV]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://ninetynine.be/blog/?p=839</guid>
		<description><![CDATA[A tutorial for installing OpenCV 2.3.1 on Ubuntu 11.10 using Gijs Molenaar (Gijzelaar) PPA. The tutorial shows how to configure Netbeans 7.1 and show a small example in C++.]]></description>
			<content:encoded><![CDATA[<p>Hi there,</p>
<blockquote><p><em>This is a follow-up of my previous post: <a href="http://ninetynine.be/blog/2011/11/setting-up-opencv-2-3-and-netbeans-7-0-on-ubuntu-oneiric-11-10/" title="Setting up OpenCV 2.3 and Netbeans 7.0 on Ubuntu Oneiric 11.10" target="_blank">Setting up OpenCV 2.3 and Netbeans 7.0 on Ubuntu Oneiric 11.10</a>. A couple of days ago Gijzelaar&#8217;s PPA for OpenCV has updated from 2.3 to version 2.3.1. So I thought I&#8217;d share this with you guys. I also think this is a slightly better approach</em></p>
<p>OpenCV (Open Source Computer Vision Library) is a library of programming functions mainly aimed at real time computer vision, developed by Intel and now supported by Willow Garage. It is free for use under the open source BSD license. The library is cross-platform. It focuses mainly on real-time image processing. (<a href="http://en.wikipedia.org/wiki/OpenCV" title="Wikipedia" target="_blank">Wikipedia</a>)</p></blockquote>
<p>The upgrade did leave my machine with some broken packages, so be cautious! I managed to fix the broken packages, but that&#8217;s another story and it probably was a rare case.</p>
<p>Okay, so here is a quick guide:</p>
<h2>1. Installation of OpenCV 2.3.1</h2>
<p>Launch a terminal and execute these commands. This adds the PPA of our friend <a href="https://launchpad.net/~gijzelaar/+archive/opencv2.3" title="Gijzelaar PPA" target="_blank">Gijs Molenaar</a>, which now contains OpenCV 2.3.1.</p>
<p><code></p>

<div class="wp_syntax"><div class="code"><pre class="default" style="font-family:monospace;">$ sudo add-apt-repository ppa:gijzelaar/cuda
$ sudo add-apt-repository ppa:gijzelaar/opencv2.3
$ sudo apt-get update
$ sudo apt-get install libopencv-dev</pre></div></div>

<p></code></p>
<h2>2. Installation of Netbeans 7.1</h2>
<p>Ubuntu 11.10 also comes with Netbeans 6.9, just download the Netbeans 7.1 from the <a href="http://netbeans.org" title="Netbeans Homepage" target="_blank">Netbeans Homepage</a> and you’re all set. Be sure you download the version with C/C++ support.</p>
<p><span id="more-839"></span></p>
<h2>3. Set the project properties</h2>
<p>Create a new C/C++ project in Netbeans 7.1. First, set the project properties correctly. These settings worked for me.</p>
<p>In the <em>C++ Compiler dialog</em> add “/usr/locale/opencv2″ to the “Include Directories” field. </p>
<p>In the <em>Linker Dialog</em>, Click on the &#8220;&#8230;&#8221; button for <em>Libraries</em>, a new Dialog appears, choose &#8220;Add PkgConfig Library&#8230;&#8221;. Search for &#8220;opencv&#8221; and add it.</p>
<p>This should add the following library expression <code></p>

<div class="wp_syntax"><div class="code"><pre class="default" style="font-family:monospace;">`pkg-config --libs opencv`</pre></div></div>

<p></code> (Note that this is a better solution than in my previous post)</p>

<a href='http://ninetynine.be/blog/2012/01/setting-up-opencv-2-3-1-and-netbeans-7-1-on-ubuntu-oneiric-11-10/compiler_dialog/' title='compiler_dialog'><img width="150" height="150" src="http://ninetynine.be/blog/wp-content/uploads/2012/01/compiler_dialog-150x150.png" class="attachment-thumbnail" alt="compiler_dialog" title="compiler_dialog" /></a>
<a href='http://ninetynine.be/blog/2012/01/setting-up-opencv-2-3-1-and-netbeans-7-1-on-ubuntu-oneiric-11-10/linker_dialog/' title='linker_dialog'><img width="150" height="150" src="http://ninetynine.be/blog/wp-content/uploads/2012/01/linker_dialog-150x150.png" class="attachment-thumbnail" alt="linker_dialog" title="linker_dialog" /></a>

<h2>4. Set the includes</h2>
<p>Note: this has also changed since my previous post!</p>
<p><code></p>

<div class="wp_syntax"><div class="code"><pre class="default" style="font-family:monospace;">#include &quot;opencv2/highgui/highgui.hpp&quot;
#include &quot;opencv2/core/core.hpp&quot; 
#include &quot;opencv2/imgproc/imgproc.hpp&quot;</pre></div></div>

<p></code></p>
<p>I find it easy to work with the cv and std namespace by default, so I don’t have to type “cv::” before every function.</p>
<p><code></p>

<div class="wp_syntax"><div class="code"><pre class="default" style="font-family:monospace;">using namespace cv;
using namespace std;</pre></div></div>

<p></code></p>
<p>And if we re-use our previous example (yea, I&#8217;m lazy), a little program that shows an image, you have something like this:</p>
<p><code></p>

<div class="wp_syntax"><div class="code"><pre class="default" style="font-family:monospace;">#include &quot;opencv2/highgui/highgui.hpp&quot;
#include &quot;opencv2/core/core.hpp&quot; 
#include &quot;opencv2/imgproc/imgproc.hpp&quot;
#include &lt;iostream&gt;
using namespace cv;
using namespace std;
&nbsp;
int main(int argc, char *argv[]) {
&nbsp;
    Mat image;
    image = imread(argv[1], CV_LOAD_IMAGE_COLOR);
&nbsp;
    if (!image.data) // Check for invalid input
    {
        cout &lt;&lt; &quot;Could not open or find the image&quot; &lt;&lt; endl;
        return -1;
    }
&nbsp;
    namedWindow(&quot;Display window&quot;, CV_WINDOW_AUTOSIZE); // Create a window for display.
    imshow(&quot;Display window&quot;, image);
&nbsp;
    return 0;
}</pre></div></div>

<p></code></p>
<p>OpenCV has really poor/decentralized documentation, which makes these simple things over-complicated. I hope this helps some people struggling with getting OpenCV to work. Let me know if it works!</p>
<p>Cheers!<br />
Ruben Verhack</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://ninetynine.be/blog/2012/01/setting-up-opencv-2-3-1-and-netbeans-7-1-on-ubuntu-oneiric-11-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setting up OpenCV 2.3 and Netbeans 7.0 on Ubuntu Oneiric 11.10</title>
		<link>http://ninetynine.be/blog/2011/11/setting-up-opencv-2-3-and-netbeans-7-0-on-ubuntu-oneiric-11-10/</link>
		<comments>http://ninetynine.be/blog/2011/11/setting-up-opencv-2-3-and-netbeans-7-0-on-ubuntu-oneiric-11-10/#comments</comments>
		<pubDate>Sat, 26 Nov 2011 11:47:18 +0000</pubDate>
		<dc:creator>ruben</dc:creator>
				<category><![CDATA[Netbeans]]></category>
		<category><![CDATA[OpenCV]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://ninetynine.be/blog/?p=795</guid>
		<description><![CDATA[I don&#8217;t like Eclipse. There, I said it. However, in the past Netbeans and C/C++ didn&#8217;t play along. Since I upgraded to Ubuntu 11.10, I decided to give it another go, and the results are pleasing! As there was no install guide available online for my situation, I decided to summarize the steps I used in order [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://ninetynine.be/blog/wp-content/uploads/2011/11/netbeans-logo.png" rel="lightbox[795]" title="netbeans-logo"><img src="http://ninetynine.be/blog/wp-content/uploads/2011/11/netbeans-logo.png" alt="" title="netbeans-logo" width="224" height="224" class="alignleft size-full wp-image-835" /></a><br />
<address>I don&#8217;t like Eclipse. There, I said it. However, in the past Netbeans and C/C++ didn&#8217;t play along. Since I upgraded to Ubuntu 11.10, I decided to give it another go, and the results are pleasing! As there was no install guide available online for my situation, I decided to summarize the steps I used in order to get things running.</address>
<address> </address>
<p>OpenCV (Open Source Computer Vision Library) is a library of programming functions mainly aimed at real time computer vision, developed by Intel and now supported by Willow Garage. It is free for use under the open source BSD license. The library is cross-platform. It focuses mainly on real-time image processing.</p>
<p>&nbsp;</p>
<h2>1. Installation of OpenCV 2.3</h2>
<p>First of all, Ubuntu 11.10 comes with OpenCV 2.1, and I wanted 2.3. Luckely our friend <a href="https://launchpad.net/~gijzelaar/+archive/opencv2.3">Gijs Molenaar provides us with a PPA for OpenCV 2.3</a>.</p>

<div class="wp_syntax"><div class="code"><pre class="default" style="font-family:monospace;">$ sudo add-apt-repository ppa:gijzelaar/cuda
$ sudo add-apt-repository ppa:gijzelaar/opencv2.3
$ sudo apt-get update
$ sudo apt-get install libopencv-dev</pre></div></div>

<p>(Little notice: the package that comes with Ubuntu 11.10 is called libcv-dev, however in the PPA of Gijs the package is called libopencv-dev)</p>
<p>You might also want to install other packages related to OpenCV, just search for them in the Ubuntu Software Center. However, libopencv-dev will do.</p>
<h2>2. Installation of Netbeans 7.0</h2>
<p>Ubuntu 11.10 also comes with Netbeans 6.9, just download the new version from <a href="http://netbeans.org">http://netbeans.org</a> and you&#8217;re all set. Be sure you download the version with C/C++ support.</p>
<h2>3. Set the project properties</h2>
<p>Then create a new C/C++ project in Netbeans 7.0. First, set the project properties correctly. These settings worked for me.</p>
<p>In the C++ Compiler dialog add &#8220;/usr/locale/opencv2&#8243; to the &#8220;Include Directories&#8221; field, also do this in the Linker dialog. In the Linker Dialog, also add the libraries opencv_core and opencv_highgui. You can find these libraries directly under &#8220;/usr/lib/&#8221;.</p>

<a href='http://ninetynine.be/blog/2011/11/setting-up-opencv-2-3-and-netbeans-7-0-on-ubuntu-oneiric-11-10/schermafdruk-op-2011-11-26-120551/' title='C++ Compiler Config'><img width="150" height="150" src="http://ninetynine.be/blog/wp-content/uploads/2011/11/Schermafdruk-op-2011-11-26-120551-150x150.png" class="attachment-thumbnail" alt="C++ Compiler Config" title="C++ Compiler Config" /></a>
<a href='http://ninetynine.be/blog/2011/11/setting-up-opencv-2-3-and-netbeans-7-0-on-ubuntu-oneiric-11-10/schermafdruk-op-2011-11-26-120533/' title='Linker Config'><img width="150" height="150" src="http://ninetynine.be/blog/wp-content/uploads/2011/11/Schermafdruk-op-2011-11-26-120533-150x150.png" class="attachment-thumbnail" alt="Linker Config" title="Linker Config" /></a>
<a href='http://ninetynine.be/blog/2011/11/setting-up-opencv-2-3-and-netbeans-7-0-on-ubuntu-oneiric-11-10/netbeans-logo/' title='netbeans-logo'><img width="150" height="150" src="http://ninetynine.be/blog/wp-content/uploads/2011/11/netbeans-logo-150x150.png" class="attachment-thumbnail" alt="netbeans-logo" title="netbeans-logo" /></a>

<h2>4. Set the includes</h2>

<div class="wp_syntax"><div class="code"><pre class="default" style="font-family:monospace;">#include &lt;opencv2/core/core.hpp&gt;
#include &lt;opencv2/highgui/highgui.hpp&gt;</pre></div></div>

<p>I find it easy to work with the cv and std namespace by default, so I don&#8217;t have to type &#8220;cv::&#8221; before every function.</p>

<div class="wp_syntax"><div class="code"><pre class="default" style="font-family:monospace;">using namespace cv;
using namespace std;</pre></div></div>

<p>And if we put this all together in to a little program that shows an image, you have something like this:</p>

<div class="wp_syntax"><div class="code"><pre class="default" style="font-family:monospace;">#include &lt;opencv2/core/core.hpp&gt;
#include &lt;opencv2/highgui/highgui.hpp&gt;
#include &lt;iostream&gt;
using namespace cv;
using namespace std;
&nbsp;
int main(int argc, char *argv[]) {
&nbsp;
    Mat image;
    image = imread(argv[1], CV_LOAD_IMAGE_COLOR);
&nbsp;
    if (!image.data) // Check for invalid input
    {
        cout &amp;lt;&amp;lt; &quot;Could not open or find the image&quot; &amp;lt;&amp;lt; endl;
        return -1;
    }
&nbsp;
    namedWindow(&quot;Display window&quot;, CV_WINDOW_AUTOSIZE); // Create a window for display.
    imshow(&quot;Display window&quot;, image);
&nbsp;
    return 0;
}</pre></div></div>

<p>There we go: Our first OpenCV program in Netbeans! I hope this will work for you too <img src='http://ninetynine.be/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://ninetynine.be/blog/2011/11/setting-up-opencv-2-3-and-netbeans-7-0-on-ubuntu-oneiric-11-10/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Analyzing Malicious SSH Login Attempts</title>
		<link>http://ninetynine.be/blog/2011/08/analyzing-malicious-ssh-login-attempts/</link>
		<comments>http://ninetynine.be/blog/2011/08/analyzing-malicious-ssh-login-attempts/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 22:37:39 +0000</pubDate>
		<dc:creator>michiel</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://ninetynine.be/blog/?p=633</guid>
		<description><![CDATA[While I was upgrading openssh to 5.x (to make it easier to setup chroot jails for users), I came across the ssh login attempts from bots. grep -ir 'invalid user' /var/log/* Example output /var/log/auth.log.0:Aug 15 18:14:40 sshd[20296]: Invalid user production from 85.214.40.85 /var/log/auth.log.0:Aug 15 18:14:42 sshd[20296]: Failed password for invalid user production from 85.214.40.85 port [...]]]></description>
			<content:encoded><![CDATA[<p>While I was upgrading openssh to 5.x (to make it easier to setup chroot jails for users),<br />
I came across the ssh login attempts from bots.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #660033;">-ir</span> <span style="color: #ff0000;">'invalid user'</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/*</span></pre></div></div>

<p>Example output</p>

<div class="wp_syntax"><div class="code"><pre class="txt" style="font-family:monospace;">/var/log/auth.log.0:Aug 15 18:14:40 sshd[20296]: Invalid user production from 85.214.40.85
/var/log/auth.log.0:Aug 15 18:14:42 sshd[20296]: Failed password for invalid user production from 85.214.40.85 port 54327 ssh2</pre></div></div>

<p>That&#8217;s when I noticed usernames like </p>
<blockquote><p>minecraft, eggbreaker2 ,batman ,sir , queen, elmo, frenzy, christmas, idiot, birdseed, einstein123, breast, knight, cookie, eminem, asshole123, googol, denied</p></blockquote>
<p> and decided to make some graphs with the data.<br />
Using perl I extracted the information from the log files.<br />
This is what I got from <strong>~20.000 failed attempts (spread over couple days) </strong></p>
<h2>Popular usernames</h2>
<h3>Existing usernames</h3>
<div style='padding-right:30px;'>

<div id="easyChartDiv25db8001" style='width:100%;'  style='text-align:center;' align='center'>
<!-- Easy Chart Builder by dyerware -->
<img id="easyChartDiv25db8001_img" style='text-align:center;float:center;' alt='Existing usernames top 20' title=''  align='center' border='0' />

</div>
<script type="text/javascript">
//<![CDATA[
wpEasyChart.wpNewChart("easyChartDiv25db8001", {"type":"horizbar","width":"600","height":"250","title":"Existing usernames top 20","minaxis":"","groupnames":"Percentage of all attempts with existing user","groupcolors":"F0F013,FFFF00,DF420D,44AEF5,A3A3A3,007070,00FFFF,CC7000,00CC70,CC0070,7000CC,A370CC","valuenames":"root,postgres,ftp,bin,mysql,proxy,uucp,mail,news,postfix,daemon,backup,nobody,lp,list,gnats,man,irc,sys,games","group1values":"73.81,14.15,1.22,1.15,0.87,0.77,0.77,0.73,0.73,0.61,0.56,0.54,0.49,0.49,0.42,0.4,0.4,0.18,0.18,0.18","group2values":"0,0,0","group3values":"0,0,0","group4values":"0,0,0","group5values":"0,0,0","group6values":"0,0,0","group7values":"0,0,0","group8values":"0,0,0","group9values":"0,0,0","group10values":"0,0,0","group11values":"0,0,0","group12values":"0,0,0","group1markers":"","group2markers":"","group3markers":"","group4markers":"","group5markers":"","group6markers":"","group7markers":"","group8markers":"","group9markers":"","group10markers":"","group11markers":"","group12markers":"","markercolor":"FFFF00","imagealtattr":"Existing usernames top 20","imagetitleattr":"","hidechartdata":true,"chartcolor":"FFFFFF","chartfadecolor":"DDDDDD","datatablecss":"hentry easyChartDataTable","imgstyle":"text-align:center;float:center;","watermark":"","watermarkvert":"","watermarkcolor":"A0BAE9","currency":"%","precision":"","grid":false,"axis":"both"});
//]]&gt;
</script>
</div>
<p><span id="more-633"></span></p>
<h3>Invalid usernames</h3>
<p>Bots tried ~5500 invalid usernames in ~15500 attempts  </p>
<div style='padding-right:30px;'>

<div id="easyChartDiv53898002" style='width:100%;'  style='text-align:center;' align='center'>
<!-- Easy Chart Builder by dyerware -->
<img id="easyChartDiv53898002_img" style='text-align:center;float:center;' alt='Invalid usernames top 50' title=''  align='center' border='0' />

</div>
<script type="text/javascript">
//<![CDATA[
wpEasyChart.wpNewChart("easyChartDiv53898002", {"type":"horizbar","width":"600","height":"650","title":"Invalid usernames top 50","minaxis":"","groupnames":"Percentage of all attempts with invalid user","groupcolors":"F0F013,FFFF00,DF420D,44AEF5,A3A3A3,007070,00FFFF,CC7000,00CC70,CC0070,7000CC,A370CC","valuenames":"oracle,a,test,admin,guest,ts,teamspeak2,teamspeak,ts3,teamspeak3,minecraft,tss,ts2,cs,user,css,nagios,tss3,webmaster,apache,ts1,student,cs2,robert,alex,temp,richard,mike,adm,sarah,david,john,office,public,info,peter,web,mailtest,sales,wwwrun,ftpuser,susan,administrator,tester,brian,lisa,tony,matt,scott,paul","group1values":"4.44,4.34,1.63,1.4,1.24,0.99,0.97,0.9,0.89,0.89,0.74,0.74,0.72,0.49,0.48,0.45,0.43,0.39,0.37,0.33,0.3,0.29,0.27,0.24,0.23,0.21,0.21,0.21,0.2,0.2,0.19,0.19,0.19,0.19,0.19,0.18,0.18,0.18,0.18,0.18,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17","group2values":"0,0,0","group3values":"0,0,0","group4values":"0,0,0","group5values":"0,0,0","group6values":"0,0,0","group7values":"0,0,0","group8values":"0,0,0","group9values":"0,0,0","group10values":"0,0,0","group11values":"0,0,0","group12values":"0,0,0","group1markers":"","group2markers":"","group3markers":"","group4markers":"","group5markers":"","group6markers":"","group7markers":"","group8markers":"","group9markers":"","group10markers":"","group11markers":"","group12markers":"","markercolor":"FFFF00","imagealtattr":"Invalid usernames top 50","imagetitleattr":"","hidechartdata":true,"chartcolor":"FFFFFF","chartfadecolor":"DDDDDD","datatablecss":"hentry easyChartDataTable","imgstyle":"text-align:center;float:center;","watermark":"","watermarkvert":"","watermarkcolor":"A0BAE9","currency":"%","precision":"","grid":false,"axis":"both"});
//]]&gt;
</script>
</div>
<h2>Invalid vs. existing usernames</h2>
<div style='padding-right:30px;'>

<div id="easyChartDiv56e78003" style='width:100%;'  style='text-align:center;' align='center'>
<!-- Easy Chart Builder by dyerware -->
<img id="easyChartDiv56e78003_img" style='text-align:center;float:center;' alt='dyerware' title=''  align='center' border='0' />

</div>
<script type="text/javascript">
//<![CDATA[
wpEasyChart.wpNewChart("easyChartDiv56e78003", {"type":"pie","width":"600","height":"650","title":"","minaxis":"","groupnames":",,Existing users (23%),Invalid users (77%)","groupcolors":"F0F013,FFFF00,DF420D,44AEF5,A3A3A3,007070,00FFFF,CC7000,00CC70,CC0070,7000CC,A370CC","valuenames":"root,oracle","group1values":"0,0,0","group2values":"0,0,0","group3values":"23","group4values":"77","group5values":"0,0,0","group6values":"0,0,0","group7values":"0,0,0","group8values":"0,0,0","group9values":"0,0,0","group10values":"0,0,0","group11values":"0,0,0","group12values":"0,0,0","group1markers":"","group2markers":"","group3markers":"","group4markers":"","group5markers":"","group6markers":"","group7markers":"","group8markers":"","group9markers":"","group10markers":"","group11markers":"","group12markers":"","markercolor":"FFFF00","imagealtattr":"dyerware","imagetitleattr":"","hidechartdata":true,"chartcolor":"FFFFFF","chartfadecolor":"FFFFFF","datatablecss":"hentry easyChartDataTable","imgstyle":"text-align:center;float:center;","watermark":"","watermarkvert":"","watermarkcolor":"A0BAE9","currency":"%","precision":"","grid":false,"axis":"both"});
//]]&gt;
</script>
</div>
<h2>Overall</h2>
<p>It&#8217;s not surprising &#8216;root&#8217; came out on top, it was used in 18.8% off all attempts.<br />
That doesn&#8217;t seem much but it is, since the bots tried that many different usernames.</p>
<p>You can disable root login by opening sshd_config and changing the &#8216;PermitRootLogin&#8217; setting to &#8216;no&#8217;.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Authentication:</span>
PermitRootLogin no</pre></div></div>

<p><a href="#restart_sshd" class="line"><br />
Don&#8217;t forget to restart the SSH daemon.</a><br />
P.S. don&#8217;t lock yourself out by forgetting you other administrator users passwords <img src='http://ninetynine.be/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h2>SSH Recommendations</h2>
<p>Found out <a class='line' href="http://www.symantec.com/connect/articles/analyzing-malicious-ssh-login-attempts">Symantec did the same thing a year ago</a>, you can check their findings and recommendations if you want to protect against these attacks.</p>
<h2>Setup a chroot jail</h2>
<p>We have no FTP running on our server, users need to connect through SFTP.<br />
Everyone gets a unix user and home folder on the server, to hide the server structure and<br />
limit the users to their home folder we had to setup chroot. It also blocks those user to login<br />
with SSH, SFTP is the only allowed service.</p>
<p>Creating a chroot jail is fairly easy providing you use <strong>openssh 5.x</strong>.<br />
This explanations is only valid for those versions, and I assume openssh is correctly installed.<br />
If you need to install openssh I suggest you visit <a href="http://adamsworld.name/chrootjailv5.php">http://adamsworld.name/chrootjailv5.php</a></p>
<h3>Modify sshd_config</h3>
<p>Mine is located at /etc/ssh/sshd_config (depending on your installation)<br />
Comment all lines starting with &#8216;Subsystem&#8217; and add &#8216;Subsystem sftp internal-sftp&#8217;.<br />
Add the 4 lines containing the match block at the end of the file.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"># Subsystem sftp /usr/lib/openssh/sftp-server
# Setting up chroot jail
Subsystem sftp internal-sftp    
&nbsp;
Match group users
       ChrootDirectory /home/%u
       ForceCommand internal-sftp
       AllowTcpForwarding no</pre></div></div>

<p>This jails all users in the group &#8216;users&#8217; to their home folder. You can also jail induviduals with another match rule : &#8216;Match user username&#8217;.</p>
<h3>Change ownership &#038; rights</h3>
<p>Create the group &#8216;users&#8217;, and add the persons you want to jail to the group.<br />
The jail needs to be owned by the root user, so lets say you want to jail &#8216;john&#8217; (homefolder : /home/john.com)</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">755</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>john.com
<span style="color: #c20cb9; font-weight: bold;">chown</span> root:root <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>john.com</pre></div></div>

<h3 id="restart_sshd">Restart SSH daemon</h3>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Debian, Ubuntu</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">ssh</span> restart
&nbsp;
<span style="color: #666666; font-style: italic;">#Fedora, CentOS</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>sshd restart</pre></div></div>

<p>And you&#8217;re done!<br />
The files and directories inside the home-folder can have whatever rights and owner you please.</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://ninetynine.be/blog/2011/08/analyzing-malicious-ssh-login-attempts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick workaround for missing &#8220;switch-display&#8221;-key or &#8220;lcd/crt&#8221;-key</title>
		<link>http://ninetynine.be/blog/2010/05/quick-workaround-for-missing-switch-display-key-or-lcdcrt-key-on-ubuntu/</link>
		<comments>http://ninetynine.be/blog/2010/05/quick-workaround-for-missing-switch-display-key-or-lcdcrt-key-on-ubuntu/#comments</comments>
		<pubDate>Fri, 21 May 2010 19:53:52 +0000</pubDate>
		<dc:creator>ruben</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Dell]]></category>
		<category><![CDATA[switch displays]]></category>

		<guid isPermaLink="false">http://ninetynine.be/blog/?p=599</guid>
		<description><![CDATA[What a wonderful day it is, sir It&#8217;s been a while since I wrote something, but I liked to share this with you all. I bought a new Dell Studio 1558 and all the fn-keys were working except the one to switch the displays&#8230; I enjoy switching between dual-screen, using only my external 22&#8243; or [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://ninetynine.be/blog/wp-content/uploads/2010/05/Schermafdruk-Sneltoetsen.png" rel="lightbox[599]" title="gnome-keybinding-properties"><img class="size-medium wp-image-603 alignright" title="gnome-keybinding-properties" src="http://ninetynine.be/blog/wp-content/uploads/2010/05/Schermafdruk-Sneltoetsen-300x141.png" alt="gnome-keybinding-properties" width="300" height="141" /></a><strong>What a wonderful day it is, sir</strong></p>
<p>It&#8217;s been a while since I wrote something, but I liked to share this with you all. I bought a new Dell Studio 1558 and all the fn-keys were working except the one to switch the displays&#8230;</p>
<p>I enjoy switching between dual-screen, using only my external 22&#8243; or using only my laptop, when I&#8217;m on the road. So I was looking for a workaround.</p>
<p>This laptop, is my first machine with Ubuntu that uses an ATI graphics chip, so this was all quite new to me. But I have to say; I&#8217;m very very pleased with it.</p>
<p>Ok, so what do you have to do to get things working?</p>
<p><strong>1. Create the script</strong><br />
Create the script, I called it toggleDisplay.sh and this is how it looks in my case:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #666666; font-style: italic;"># Script to toggle display configuration on Dell Studio 1558</span>
<span style="color: #666666; font-style: italic;"># author: Ruben Verhack</span>
&nbsp;
<span style="color: #007800;">config</span>=<span style="color: #ff0000;">&quot;/tmp/display.conf&quot;</span>
<span style="color: #007800;">current</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #007800;">$config</span><span style="color: #000000; font-weight: bold;">`</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Check if config exists</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #000000; font-weight: bold;">!</span> <span style="color: #660033;">-a</span> <span style="color: #007800;">$config</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">then</span>
   <span style="color: #666666; font-style: italic;"># Empty file executes default</span>
   <span style="color: #c20cb9; font-weight: bold;">touch</span> <span style="color: #007800;">$config</span>;
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Check if CRT2 is connected</span>
<span style="color: #000000; font-weight: bold;">if</span> xrandr <span style="color: #660033;">-q</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #ff0000;">&quot;CRT2 connected&quot;</span>
<span style="color: #000000; font-weight: bold;">then</span>
   <span style="color: #666666; font-style: italic;"># Toggle between states</span>
   <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$current</span>&quot;</span> <span style="color: #000000; font-weight: bold;">in</span>
   <span style="color: #ff0000;">''</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
      <span style="color: #666666; font-style: italic;"># default</span>
      xrandr <span style="color: #660033;">--output</span> LVDS <span style="color: #660033;">--auto</span> <span style="color: #660033;">--output</span> CRT2 <span style="color: #660033;">--left-of</span> LVDS <span style="color: #660033;">--output</span> CRT2 <span style="color: #660033;">--auto</span>
      <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;dual&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #007800;">$config</span>
      <span style="color: #000000; font-weight: bold;">;;</span>
   <span style="color: #ff0000;">'dual'</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
      <span style="color: #666666; font-style: italic;"># was dual, now external only</span>
      xrandr <span style="color: #660033;">--output</span> LVDS <span style="color: #660033;">--off</span> <span style="color: #660033;">--output</span> CRT2 <span style="color: #660033;">--auto</span>
      <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;external&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #007800;">$config</span>
      <span style="color: #000000; font-weight: bold;">;;</span>
   <span style="color: #ff0000;">'external'</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
      <span style="color: #666666; font-style: italic;"># was external, now laptop only</span>
      xrandr <span style="color: #660033;">--output</span> LVDS <span style="color: #660033;">--auto</span> <span style="color: #660033;">--output</span> CRT2 <span style="color: #660033;">--off</span>
      <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;laptop&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #007800;">$config</span>
      <span style="color: #000000; font-weight: bold;">;;</span>
   <span style="color: #ff0000;">'laptop'</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
      <span style="color: #666666; font-style: italic;"># was laptop, now both</span>
      xrandr <span style="color: #660033;">--output</span> LVDS <span style="color: #660033;">--auto</span> <span style="color: #660033;">--output</span> CRT2 <span style="color: #660033;">--left-of</span> LVDS <span style="color: #660033;">--output</span> CRT2 <span style="color: #660033;">--auto</span>
      <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;dual&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #007800;">$config</span>
      <span style="color: #000000; font-weight: bold;">;;</span>
   <span style="color: #000000; font-weight: bold;">esac</span>
<span style="color: #000000; font-weight: bold;">else</span>
   xrandr <span style="color: #660033;">--output</span> LVDS <span style="color: #660033;">--auto</span>
<span style="color: #000000; font-weight: bold;">fi</span></pre></div></div>

<p>This toggles your displays from dual screen to external only to laptop only, and from there to dual screen again. Note that my monitors were called LVDS and CRT2, you can easily check how your monitors are called by executing:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">xrandr <span style="color: #660033;">-q</span></pre></div></div>

<p><span id="more-599"></span><br />
It&#8217;s pretty easy, huh?</p>
<p><strong>2. Bind the key to the script</strong><br />
Make sure you given the script rights to be executed, let&#8217;s assume you&#8217;ve put the shell script in your home-folder.<br />
<code>chmod +x ~/toggleDisplay.sh</code></p>
<p>Next launch Gnome Keybinding by launching System &gt; Preferences &gt; Keybindings .</p>
<p>Add a custom action:<br />
- Name: Toggle Displays<br />
- Action: sh ~/toggleDisplay.sh</p>
<p>Select it, click on the shortcut and press the key you want to bind to this action and presto!</p>
<p>I hope this helped someone!</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://ninetynine.be/blog/2010/05/quick-workaround-for-missing-switch-display-key-or-lcdcrt-key-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Doc? v3.0 BETA released</title>
		<link>http://ninetynine.be/blog/2009/12/doc-v3-0-beta-released/</link>
		<comments>http://ninetynine.be/blog/2009/12/doc-v3-0-beta-released/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 10:43:21 +0000</pubDate>
		<dc:creator>michiel</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Doc?]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://ninetynine.be/blog/?p=585</guid>
		<description><![CDATA[Yesterday we&#8217;ve released a public beta from the new Doc? (v3.0) Go and check it out at www.airdoc.be! Here are some of the most important new features : Minimize/Close to tray (WINDOWS) Local Books Online Books Download Inline Search Performance Upgrade (SQLITE) Custom tree icons Complete design makeover Take a look on our website to [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday we&#8217;ve released a public beta from the new Doc? (v3.0)<br />
Go and check it out at <a href="http://www.airdoc.be/">www.airdoc.be</a>!</p>
<p><a href="http://www.airdoc.be/"><img src="http://ninetynine.be/blog/wp-content/uploads/2009/12/feature_doc.png" alt="Doc? Air Local Livedocs" title="Doc? Air Local Livedocs" width="515" height="340" class="aligncenter size-full wp-image-586" /></a></p>
<p>Here are some of the most important new features :</p>
<ul style="list-style-type: square;">
<li> 	Minimize/Close to tray (WINDOWS)</li>
<li> 	Local Books</li>
<li> Online Books Download</li>
<li> 	Inline Search</li>
<li> Performance Upgrade (SQLITE)</li>
<li> 	Custom tree icons</li>
<li> Complete design makeover</li>
</ul>
<p>Take a look on our website to learn more &#8230;</p>
<p><br/></p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://ninetynine.be/blog/2009/12/doc-v3-0-beta-released/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Flex: TabNavigator Label Jump (Quick Fix)</title>
		<link>http://ninetynine.be/blog/2009/12/flex-tabnavigator-label-jump-quick-fix/</link>
		<comments>http://ninetynine.be/blog/2009/12/flex-tabnavigator-label-jump-quick-fix/#comments</comments>
		<pubDate>Sun, 20 Dec 2009 11:38:03 +0000</pubDate>
		<dc:creator>michiel</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://ninetynine.be/blog/?p=543</guid>
		<description><![CDATA[Hey, Somethings been bugging me while skinning a flex application : The label from the selected tab from the TabNavigator component is 1px lower than the other tabs. As you can see in the example. (It has something to to with the bottom border I&#8217;m guessing). This can help as a visual support you are [...]]]></description>
			<content:encoded><![CDATA[<p>Hey,</p>
<p>Somethings been bugging me while skinning a flex application :</p>
<p>The label from the selected tab from the <a href="http://livedocs.adobe.com/flex/3/langref/mx/containers/TabNavigator.html">TabNavigator</a> component is 1px lower than the other tabs. As you can see in the example.<br />
(It has something to to with the bottom border I&#8217;m guessing).</p>
<p> This can help as a visual support you are on a different tab, but I found it rather annoying, so here is my fix for it.<br />
A quick fix by changing the &#8220;<em>paddingTop</em>&#8221; property.</p>
<p><br/><br />
View source is enabled so can download the example there.<br />
<a href="http://ninetynine.be/blog/wp-content/uploads/2009/12/srcview/index.html">http://ninetynine.be/blog/wp-content/uploads/2009/12/srcview/index.html</a><br />

<object width="500" height="100">
<param name="movie" value="http://ninetynine.be/blog/wp-content/uploads/2009/12/TabNavFix.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#FFFFFF"></param>
<embed type="application/x-shockwave-flash" width="500" height="100" src="http://ninetynine.be/blog/wp-content/uploads/2009/12/TabNavFix.swf" quality="high" bgcolor="#FFFFFF" wmode="window" menu="false" ></embed>
</object>
<br />
Code after the jump.<br/><br/></p>
<p><span id="more-543"></span><br/></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
</pre></td><td class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">events</span>.<span style="color: #006600;">IndexChangedEvent</span>;
<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">events</span>.<span style="color: #006600;">FlexEvent</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">/*
*	@author: Michiel Vancoillie
*	http://www.ninetynine.be
*/</span>
&nbsp;
<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> init<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
&nbsp;
	<span style="color: #808080; font-style: italic;">//fix the first selected tab</span>
	fixedTabNav.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ADDED_TO_STAGE</span>,onTabNavCreated<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #808080; font-style: italic;">//fix the newly selected tab</span>
	fixedTabNav.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>IndexChangedEvent.<span style="color: #006600;">CHANGE</span>,onTabNavChanged<span style="color: #66cc66;">&#41;</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">//JUST ADD THE SAME EVENTLISTENERS TO ALL TABNAVIGATORS YOU WANT FIXED</span>
	<span style="color: #808080; font-style: italic;">//notfixedTabNav.addEventListener(Event.ADDED_TO_STAGE,onTabNavCreated);</span>
	<span style="color: #808080; font-style: italic;">//notfixedTabNav.addEventListener(IndexChangedEvent.CHANGE,onTabNavChanged);</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onTabNavCreated<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">var</span> tabNav:TabNavigator = <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">target</span> as TabNavigator;
	tabNav.<span style="color: #006600;">getTabAt</span><span style="color: #66cc66;">&#40;</span>tabNav.<span style="color: #006600;">selectedIndex</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #0066CC;">setStyle</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'paddingTop'</span>,-<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> onTabNavChanged<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:IndexChangedEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">var</span> tabNav:TabNavigator = <span style="color: #0066CC;">e</span>.<span style="color: #0066CC;">target</span> as TabNavigator;
	<span style="color: #808080; font-style: italic;">//reset the old tab</span>
	tabNav.<span style="color: #006600;">getTabAt</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>.<span style="color: #006600;">oldIndex</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #0066CC;">setStyle</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'paddingTop'</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #808080; font-style: italic;">//fix the new tab</span>
	tabNav.<span style="color: #006600;">getTabAt</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>.<span style="color: #006600;">newIndex</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #0066CC;">setStyle</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'paddingTop'</span>,-<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://ninetynine.be/blog/2009/12/flex-tabnavigator-label-jump-quick-fix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MamppControl : Xampp/Mampp Tray Launcher</title>
		<link>http://ninetynine.be/blog/2009/05/mamppcontrol-xampp-tray-launcher/</link>
		<comments>http://ninetynine.be/blog/2009/05/mamppcontrol-xampp-tray-launcher/#comments</comments>
		<pubDate>Sun, 24 May 2009 14:21:42 +0000</pubDate>
		<dc:creator>michiel</dc:creator>
				<category><![CDATA[Mac OSX]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Xampp]]></category>

		<guid isPermaLink="false">http://ninetynine.be/blog/?p=207</guid>
		<description><![CDATA[Hey, Yesterday I had some spare time, so I decided to take a look at the Cocoa collection of frameworks, APIs, and accompanying runtimes that make up the development layer of Mac OS X. I&#8217;ve created this first application with XCode in Objective-C and named it MamppControl. It allows you to start, stop, reload Mampp [...]]]></description>
			<content:encoded><![CDATA[<p><br/><div id="attachment_218" class="wp-caption aligncenter" style="width: 560px"><img src="http://ninetynine.be/blog/wp-content/uploads/2009/05/mamppcontrol.jpg" alt="MamppControl" title="MamppControl" width="550" height="165" class="size-full wp-image-218" /><p class="wp-caption-text">MamppControl</p></div><br/></p>
<p>Hey,</p>
<p>Yesterday I had some spare time, so I decided to take a look at the <a href="http://developer.apple.com/cocoa/">Cocoa</a> collection of frameworks, APIs, and accompanying runtimes that make up the development layer of Mac OS X.<br />
I&#8217;ve created this first application with XCode in <a href="http://nl.wikipedia.org/wiki/Objective_C">Objective-C</a> and named it MamppControl. </p>
<p>It allows you to start, stop, reload Mampp from the tray, with a handy tray icon &amp; menu.<br />
Mampp is the other name for Xampp on Mac. </p>
<blockquote><p>XAMPP is an easy to install Apache distribution containing MySQL, PHP and Perl. XAMPP is really very easy to install and to use &#8211; just download, extract and start.</p></blockquote>
<p>More information about Xampp <a href="http://www.apachefriends.org/en/xampp.html">here</a>.</p>
<p>I know that there is a launcher includes in the xampp package, but it has no tray icon and stay&#8217;s visible in the dock.</p>
<p><br/><span id="more-207"></span></p>
<p><div id="attachment_227" class="wp-caption aligncenter" style="width: 560px"><img src="http://ninetynine.be/blog/wp-content/uploads/2009/05/xampp-control-panel.jpg" alt="Default Xampp Control Panel" title="Xampp Control Panel" width="550" height="500" class="size-full wp-image-227" /><p class="wp-caption-text">Default Xampp Control Panel</p></div><br />
<br/><br />
<strong>Notes</strong><br />
<br/></p>
<p>At the moment Mampp supports only the basic commands (start, stop, reload). If there is need for the other start/stop settings, contact me through the contact page on this blog or shout it here in the comments. </p>
<p>Mampp needs root access to start the xampp, that&#8217;s why you get the security login at start.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>Applications<span style="color: #000000; font-weight: bold;">/</span>xampp<span style="color: #000000; font-weight: bold;">/</span>xamppfiles<span style="color: #000000; font-weight: bold;">/</span>mampp start</pre></td></tr></table></div>

<p>You only have to do this once for the lifetime of the process. And when you change the path setting.</p>
<p>Also keep in mind that there could be some delay when starting or stopping Xampp, since ProFTPD usually takes a few seconds to launch (at least on my laptop it does <img src='http://ninetynine.be/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ).</p>
<p>MamppControl checks if Xampp is already running on startup, and behaves appropriately with that knowledge &#8230; </p>
<p><br/><br />
<strong>Screenshots</strong></p>
<p><a rel="lightbox[MamppControl]" href="http://ninetynine.be/blog/wp-content/uploads/2009/05/mamppcontrol-quicksilver.jpg" title="MamppControl Quicksilver Thumb"><div id="attachment_213" class="wp-caption alignleft" style="width: 110px">&nbsp;<img src="http://ninetynine.be/blog/wp-content/uploads/2009/05/mamppcontrol-quicksilver-thumb.jpg" alt="MamppControl Quicksilver" title="MamppControl Quicksilver Thumb" width="100" height="100" class="size-full wp-image-213" /><p class="wp-caption-text">&nbsp;Quicksilver</p></div></a><a href="http://ninetynine.be/blog/wp-content/uploads/2009/05/mamppcontrol-security.jpg" rel="lightbox[MamppControl]" title="MamppControl Security Thumb"><div id="attachment_215" class="wp-caption alignleft" style="width: 110px">&nbsp;<img src="http://ninetynine.be/blog/wp-content/uploads/2009/05/mamppcontrol-security-thumb.jpg" alt="MamppControl Security" title="MamppControl Security Thumb" width="100" height="100" class="size-full wp-image-215" /><p class="wp-caption-text">&nbsp;Security&nbsp;login</p></div></a><a rel="lightbox[MamppControl]" href="http://ninetynine.be/blog/wp-content/uploads/2009/05/mamppcontrol-icon.jpg" title="MamppControl Icon Thumb"><div id="attachment_209" class="wp-caption alignleft" style="width: 110px">&nbsp;<img src="http://ninetynine.be/blog/wp-content/uploads/2009/05/mamppcontrol-icon-thumb.jpg" alt="MamppControl Icon" title="MamppControl Icon Thumb" width="100" height="100" class="size-full wp-image-209" /><p class="wp-caption-text">&nbsp;Tray&nbsp;Icon</p></div></a><a href="http://ninetynine.be/blog/wp-content/uploads/2009/05/mamppcontrol-menu.jpg" rel="lightbox[MamppControl]" title="MamppControl Menu Thumb" ><div id="attachment_211" class="wp-caption alignleft" style="width: 110px">&nbsp;<img src="http://ninetynine.be/blog/wp-content/uploads/2009/05/mamppcontrol-menu-thumb.jpg" alt="MamppControl Menu" title="MamppControl Menu Thumb" width="100" height="100" class="size-medium wp-image-211" /><p class="wp-caption-text">&nbsp;Tray&nbsp;Menu</p></div></a></p>
<p><br style="clear:left;"/><br />
<strong>Download</strong></p>
<p>MamppControl is licensed under the MIT license.</p>
<blockquote><p>Copyright (c) 2009 Ninetynine.be</p>
<p>Permission is hereby granted, free of charge, to any person<br />
obtaining a copy of this software and associated documentation<br />
files (the &#8220;Software&#8221;), to deal in the Software without<br />
restriction, including without limitation the rights to use,<br />
copy, modify, merge, publish, distribute, sublicense, and/or sell<br />
copies of the Software, and to permit persons to whom the<br />
Software is furnished to do so, subject to the following<br />
conditions:</p>
<p>The above copyright notice and this permission notice shall be<br />
included in all copies or substantial portions of the Software.</p>
<p>THE SOFTWARE IS PROVIDED &#8220;AS IS&#8221;, WITHOUT WARRANTY OF ANY KIND,<br />
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES<br />
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND<br />
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT<br />
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,<br />
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING<br />
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR<br />
OTHER DEALINGS IN THE SOFTWARE.
</p></blockquote>
<p><br/><br />
<b>Download : </b><a href="http://ninetynine.be/blog/wp-content/plugins/download-monitor/download.php?id=1" title="Download MamppControl">MamppControl</a> - 116.76 kB<br />
<br/><br />
Current version: 2.0<br />
Requirements:<br/><br />
&nbsp;&nbsp;&nbsp;&#8226; Mac OS X 10.5 or higher.<br />
&nbsp;&nbsp;&nbsp;&#8226; Xampp installation @( /Applications/xampp/xamppfiles/mampp )</p>
<p><br/><br />
<b>Version History</b> </p>
<p><em>v1.0</em></p>
<ul>
<li>First public release</li>
</ul>
<p><em>v2.0</em></p>
<ul>
<li>Added support for latest Xampp for Mac OSX (1.0.1)</li>
<li>Added option to choose path to &#8220;xampp&#8221; executable</li>
<li>Added complete events for starting &#038; stopping &#038; reloading</li>
<li>Some minor changes internally</li>
</ul>
<p><br/></p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://ninetynine.be/blog/2009/05/mamppcontrol-xampp-tray-launcher/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Use CodeIgniter on localhost with Ubuntu Jaunty</title>
		<link>http://ninetynine.be/blog/2009/05/use-codeigniter-on-localhost-with-ubuntu-jaunty/</link>
		<comments>http://ninetynine.be/blog/2009/05/use-codeigniter-on-localhost-with-ubuntu-jaunty/#comments</comments>
		<pubDate>Sat, 02 May 2009 11:22:55 +0000</pubDate>
		<dc:creator>ruben</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Xampp]]></category>
		<category><![CDATA[CodeIgniter]]></category>

		<guid isPermaLink="false">http://ninetynine.be/blog/?p=195</guid>
		<description><![CDATA[Hi, As a PHP developer it comes in handy to run your websites without having to upload them to your server. You can run them on your own computer if you want to, there isn&#8217;t much to it. I also like using the CodeIgniter framework for my projects, this is a really speeds up the [...]]]></description>
			<content:encoded><![CDATA[<p>Hi,</p>
<p>As a PHP developer it comes in handy to run your websites without having to upload them to your server. You can run them on your own computer if you want to, there isn&#8217;t much to it. I also like using the <a href="http://www.codeigniter.com">CodeIgniter framework</a> for my projects, this is a really speeds up the whole process!</p>
<p>I will take you through the basic steps to set up your localhost to get CodeIgniter running.<br />
<strong><br />
1) Use Synaptic package manager to install &#8220;apache2&#8243;, &#8220;php5&#8243; and &#8220;mysql-server&#8221;.</strong></p>
<p>During the installation you will be asked to enter the password for the root user for your mysql-server.</p>
<p><strong>2) Create a symbolic link, so that when you go to localhost in your browser, you get the website you want.</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-r</span> www<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">/</span>path<span style="color: #000000; font-weight: bold;">/</span>to<span style="color: #000000; font-weight: bold;">/</span>website www</pre></div></div>

<p>Always look before you delete something with &#8220;rm -r&#8221;, normally there should only be a index.html file in your www/ folder.</p>
<p>I prefer creating a link to my website that I put somewhere in my home directory, as this is being back-upped frequently, and is on another partition.<br />
<br/><span id="more-195"></span><br />
<strong><br />
3) Install the package &#8220;phpmyadmin&#8221; through synaptic.</strong></p>
<p>It is important that you wait to install phpmyadmin until you have installed the other packages and created the symbolic link. Otherwise it can be a mess to get things running.</p>
<p><strong>4) To allow mod-rewrite, to get the clean CodeIgniter URL&#8217;s, you need to do the following.</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> a2enmod rewrite
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">nano</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/</span>sites-available<span style="color: #000000; font-weight: bold;">/</span>default</pre></div></div>

<p>You will see something like this:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">        DocumentRoot <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www
        <span style="color: #000000; font-weight: bold;">&lt;</span>Directory <span style="color: #000000; font-weight: bold;">/&gt;</span>
                Options FollowSymLinks
                AllowOverride None
        <span style="color: #000000; font-weight: bold;">&lt;/</span>Directory<span style="color: #000000; font-weight: bold;">&gt;</span>
        <span style="color: #000000; font-weight: bold;">&lt;</span>Directory <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/&gt;</span>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        <span style="color: #000000; font-weight: bold;">&lt;/</span>Directory<span style="color: #000000; font-weight: bold;">&gt;</span></pre></div></div>

<p>Change the AllowOverride&#8217;s to All.</p>
<p><strong>5) Restart Apache</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>apache2 restart</pre></div></div>

<p>This wasn&#8217;t so hard, and it really makes life easier!</p>
<p>Note: You can&#8217;t use the function mail() or CodeIgniter&#8217;s mail-class without further configuration. I won&#8217;t go into details about this.</p>
<p>Also note that there are many ways to tackle this, this is only one easy suggestion. If you need to switch a lot between different websites, then changing the symbolic link each time is too much work. You can check out <a href="http://www.debian-administration.org/articles/412">this article here</a>.</p>
<p>Happy coding!</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://ninetynine.be/blog/2009/05/use-codeigniter-on-localhost-with-ubuntu-jaunty/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Photoshop CS4 on Ubuntu 9.04</title>
		<link>http://ninetynine.be/blog/2009/04/photoshop-cs4-on-ubuntu-904/</link>
		<comments>http://ninetynine.be/blog/2009/04/photoshop-cs4-on-ubuntu-904/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 20:08:07 +0000</pubDate>
		<dc:creator>ruben</dc:creator>
				<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://ninetynine.be/blog/?p=181</guid>
		<description><![CDATA[Yes, it is possible! To my own suprise, I was able to install Photoshop CS4 on Ubuntu. I did it on a fresh install of Ubuntu 9.04 RC. It has known to work on Ubuntu 8.10, but it gave me a segmentation fault, probably because I had been messing around . I tested it with [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://ninetynine.be/blog/wp-content/uploads/2009/04/pscs4ubuntu9042-300x177.png" alt="Photoshop 9.04 on Ubuntu" title="Photoshop 9.04 on Ubuntu" width="300" height="177" class="alignleft size-medium wp-image-193" />Yes, it is possible! To my own suprise, I was able to install Photoshop CS4 on Ubuntu.</p>
<p>I did it on a fresh install of Ubuntu 9.04 RC. It has known to work on Ubuntu 8.10, but it gave me a segmentation fault, probably because I had been messing around <img src='http://ninetynine.be/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . I tested it with the trial version downloaded from <a href="http://adobe.com">adobe.com</a>.</p>
<p>To do so, you need <a href="http://www.winehq.org/">Wine</a>. I will take you through the steps that I&#8217;ve taken:<br />
<br/><span id="more-181"></span></p>
<p>1. If you have used wine before, please start of with a clean .wine folder. Or bottle you Photoshop by doing every action with a specific wineprefix.<br />
2. Install Wine 1.1.16 from <a href="http://wine.budgetdedicated.com/archive/index.html">here</a>.<br />
3. Download winetricks and install necessary libraries. Also make sure you have a decent driver for your graphics card installed.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>www.kegel.com<span style="color: #000000; font-weight: bold;">/</span>wine<span style="color: #000000; font-weight: bold;">/</span>winetricks
<span style="color: #c20cb9; font-weight: bold;">sh</span> winetricks msxml6 gdiplus gecko vcrun2005
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> msttcorefonts</pre></div></div>

<p>3. If you have a non-english Ubuntu installed please put LANG=C before the following command like this:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">LANG</span>=C wine Setup.exe</pre></div></div>

<p>4. Install Wine 1.1.19 from <a href="http://wine.budgetdedicated.com/archive/index.html">here</a>, to fix the menu bar bug.<br />
5. To fix the text-layer bug, put atmlib.dll in &#8220;~/.wine/drive_c/windows/system 32&#8243;. You can download it from several places if you search it on google.<br />
6. Run it!</p>
<p>It was tested on an amd64 and i386.</p>
<p>The reason why you have to set the &#8220;LANG&#8221; variable, is that Photoshop searches for files in &#8220;Program files&#8221;, if you don&#8217;t set it, wine installs it into a local translation of Program files.</p>
<p>Very happy that Wine made such a big progress over the last years. But there are a lot of regressions in the last versions. That is the reason you sometimes have to try other versions of wine for the installer. But 1.1.16 and 1.1.19 are not stable versions, so I forgive them. Last version that was declared stable till today was 1.0.1.</p>
<p>I also got Ableton 7 and MS Office Excel, Word and Powerpoint 2007 working with wine!</p>
<p>Big thanks to Quitte for helping me out.</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://ninetynine.be/blog/2009/04/photoshop-cs4-on-ubuntu-904/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Flex: Runtime font embedding using compiled CSS with loader</title>
		<link>http://ninetynine.be/blog/2009/04/flex-runtime-font-embedding-using-compiled-css-with-loader/</link>
		<comments>http://ninetynine.be/blog/2009/04/flex-runtime-font-embedding-using-compiled-css-with-loader/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 19:57:52 +0000</pubDate>
		<dc:creator>michiel</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://ninetynine.be/blog/?p=118</guid>
		<description><![CDATA[A missing feature in Flex is the ability to load fonts at runtime. &#8216;Why is this useful?&#8217;, you could ask. Well one situation is you&#8217;re creating an online rich text editor, and you want to add a font to the font list. You would only have to edit the css and upload the new swf [...]]]></description>
			<content:encoded><![CDATA[<p>A missing feature in Flex is the ability to load fonts at runtime. </p>
<p>&#8216;Why is this useful?&#8217;, you could ask. Well one situation is you&#8217;re creating an online rich text editor, and you want to add a font<br />
to the font list. You would only have to edit the css and upload the new swf instead of the whole application. Or you want a client<br />
to be able to add fonts without him having the source code from the application.</p>
<p><br/>Luckily it&#8217;s possible in Flex to load runtime CSS compiled as an SWF with the StyleManager class.<br />
<a href="http://livedocs.adobe.com/flex/gumbo/langref/mx/styles/StyleManager.html">StyleManager on LiveDocs</a></p>
<p>Fonts.css Example :</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #a1a100;">@font-face {</span>
    src<span style="color: #00AA00;">:</span><span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">&quot;fonts/Arial.ttf&quot;</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
    fontFamily<span style="color: #00AA00;">:</span><span style="color: #ff0000;">&quot;Arial&quot;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p><strong>How to compile the CSS to SWF?</strong><br/><br />
<span id="more-118"></span><br />
<img src="http://ninetynine.be/blog/wp-content/uploads/2009/04/compile-css-to-swf.png" alt="Flex Builder Compile CSS to SWF" title="Flex Builder Compile CSS to SWF" width="216" height="59" class="alignleft size-full wp-image-131"   style="border:1px solid #C0C0C0"/><br />
In Flex Builder you can right click any CSS inside your source and check the &#8220;compile CSS to SWF&#8221; option.<br />
<br/><br />
An alternative way to compile the CSS to SWF is using the command line :</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">mxmlc Fonts.css</pre></td></tr></table></div>

<p><br/><br />
<strong>Loading the compiled stylesheet</strong></p>
<p>For the example where we just compiled the Fonts.css to Fonts.swf</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">styles</span>.<span style="color: #006600;">StyleManager</span>;
&nbsp;
StyleManager.<span style="color: #006600;">loadStyleDeclarations</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Fonts.swf&quot;</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<p>It&#8217;s as simple as that&#8230;  you can now start using the font.<br />
The nice thing about this is you can now load your fonts visually using an intermediate loader or animation.<br />
<br/><br />
<strong>Loading the stylesheet visually with intermediate loader</strong></p>
<p>First thing we do is create a custom titlewindow with a preloader in it to show the loading.<br />
We can catch the <strong>StyleEvent.COMPLETE</strong> with an <strong>IEventDispatcher</strong>.<br />
Right click the example for the source code.</p>
<p>
<object width="500" height="100">
<param name="movie" value="http://ninetynine.be/blog/wp-content/uploads/2009/04/fontEmbedding.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#FFFFFF"></param>
<embed type="application/x-shockwave-flash" width="500" height="100" src="http://ninetynine.be/blog/wp-content/uploads/2009/04/fontEmbedding.swf" quality="high" bgcolor="#FFFFFF" wmode="window" menu="false" ></embed>
</object>
</p>
<p><br/><br />
You can use this to &#8216;preload&#8217; any stylesheet.</p>
<p>Compiling CSS to SWF and loading it runtime is also used for application with theme support.<br />
You can read more about that and view an example here : <a href="http://onflash.org/ted/2007/01/flex-201-understand-runtime-css.php">Understanding runtime CSS</a><br />
<br/></p>
<p>Happy coding!</p>
<!-- PHP 5.x -->]]></content:encoded>
			<wfw:commentRss>http://ninetynine.be/blog/2009/04/flex-runtime-font-embedding-using-compiled-css-with-loader/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

