<?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>Le Blog de SckyzO &#187; Développement</title>
	<atom:link href="http://blog.sckyzo.com/category/developpement/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.sckyzo.com</link>
	<description></description>
	<lastBuildDate>Sat, 28 Jul 2012 16:27:08 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=257</generator>
		<item>
		<title>[BASH] Script pour générer des mots de passe</title>
		<link>http://blog.sckyzo.com/bash-script-pour-generer-des-mots-de-passe/</link>
		<comments>http://blog.sckyzo.com/bash-script-pour-generer-des-mots-de-passe/#comments</comments>
		<pubDate>Wed, 20 Apr 2011 16:26:11 +0000</pubDate>
		<dc:creator>SckyzO</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet-Libre]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[generator]]></category>
		<category><![CDATA[generer]]></category>
		<category><![CDATA[mot de passe]]></category>
		<category><![CDATA[passwd]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[ramdom]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://blog.sckyzo.com/?p=1415</guid>
		<description><![CDATA[Voici un petit script fait pour ceux qui doivent maintenir des serveurs et créer des mots de passe rapidement : #!/bin/bash # random password generator # Sets the maximum size of the password the script will generate MAXSIZE=40  # &#60;&#60;&#8212;&#8212;- You can change value array1=(&#8216;a&#8217; &#8216;b&#8217; &#8216;c&#8217; &#8216;d&#8217; &#8216;e&#8217; &#8216;f&#8217; &#8216;g&#8217; &#8216;h&#8217; &#8216;i&#8217; &#8216;j&#8217; &#8216;k&#8217; &#8216;l&#8217; &#8216;m&#8217; &#8216;n&#8217; &#8216;o&#8217; &#8216;p&#8217; &#8216;q&#8217; &#8216;r&#8217; &#8216;s&#8217; &#8216;t&#8217; &#8216;u&#8217; &#8216;v&#8217; &#8216;w&#8217; &#8216;x&#8217; &#8216;y&#8217; &#8216;z&#8217; &#8217;0&#8242; &#8217;1&#8242; &#8217;2&#8242; &#8217;3&#8242; &#8217;4&#8242; [...]]]></description>
				<content:encoded><![CDATA[<p>Voici un petit script fait pour ceux qui doivent maintenir des serveurs et créer des mots de passe rapidement :</p>
<blockquote><p>#!/bin/bash<br />
# random password generator</p>
<p># Sets the maximum size of the password the script will generate<br />
MAXSIZE=40  # &lt;&lt;&#8212;&#8212;- You can change value</p>
<p>array1=(&lsquo;a&rsquo; &lsquo;b&rsquo; &lsquo;c&rsquo; &lsquo;d&rsquo; &lsquo;e&rsquo; &lsquo;f&rsquo; &lsquo;g&rsquo; &lsquo;h&rsquo; &lsquo;i&rsquo; &lsquo;j&rsquo; &lsquo;k&rsquo; &lsquo;l&rsquo; &lsquo;m&rsquo; &lsquo;n&rsquo; &lsquo;o&rsquo; &lsquo;p&rsquo; &lsquo;q&rsquo; &lsquo;r&rsquo; &lsquo;s&rsquo; &lsquo;t&rsquo; &lsquo;u&rsquo; &lsquo;v&rsquo; &lsquo;w&rsquo; &lsquo;x&rsquo; &lsquo;y&rsquo; &lsquo;z&rsquo; &rsquo;0&prime; &rsquo;1&prime; &rsquo;2&prime; &rsquo;3&prime; &rsquo;4&prime; &rsquo;5&prime; &rsquo;6&prime; &rsquo;7&prime; &rsquo;8&prime; &rsquo;9&prime; &rsquo;0&prime; &lsquo;A&rsquo; &lsquo;B&rsquo; &lsquo;C&rsquo; &lsquo;D&rsquo; &lsquo;E&rsquo; &lsquo;F&rsquo; &lsquo;G&rsquo; &lsquo;H&rsquo; &lsquo;I&rsquo; &lsquo;J&rsquo; &lsquo;K&rsquo; &lsquo;L&rsquo; &lsquo;M&rsquo; &lsquo;N&rsquo; &lsquo;O&rsquo; &lsquo;P&rsquo; &lsquo;Q&rsquo; &lsquo;R&rsquo; &lsquo;S&rsquo; &lsquo;T&rsquo; &lsquo;U&rsquo; &lsquo;V&rsquo; &lsquo;W&rsquo; &lsquo;X&rsquo; &lsquo;Y&rsquo; &lsquo;Z&rsquo; &lsquo;!&rsquo; &lsquo;£&rsquo; &lsquo;$&rsquo; &lsquo;%&rsquo; &lsquo;&amp;&rsquo; &lsquo;=&rsquo; &lsquo;.&rsquo; &lsquo;,&rsquo; &lsquo;;&rsquo; &lsquo;:&rsquo; &lsquo;-&rsquo; &lsquo;_&rsquo;)</p>
<p># Used in conjunction with modulus to keep random numbers in range of the array size<br />
MODNUM=${#array1[*]}</p>
<p># Keeps track of the number characters in the password we have generated<br />
pwd_len=0</p>
<p># Bash&rsquo;s command substitution syntax to store the results of the tput command<br />
term_clear=$(tput clear)</p>
<p># Stores the number of lines or rows on the terminal display<br />
max_lines=$(tput lines)</p>
<p># Stores the number of columns on the terminal display<br />
max_cols=$(tput cols)</p>
<p># Finds the appropriate spot to indent for horizontally centered output<br />
indent=$(( ((max_cols / 2)) &#8211; ((MAXSIZE / 2)) ))</p>
<p># Finds the vertical center of the terminal.<br />
line_num=$(( max_lines / 2 ))</p>
<p># Clear the screen<br />
echo $term_clear</p>
<p># The outer while loop starts at 0 and loops till MAXSIZE, creating a passwd char each iteration.<br />
# The shells $RANDOM variable creates a semi-random unsigned number. This is our entropy. =x<br />
# x simply holds some random unsigned int that will be used to make the character scramble.<br />
# 500 was choosen for speed and nothing else. Leave out the mod 500 if you want or change it.<br />
# The inner loop displays the password characters. Tput keeps the cursor in the proper position.<br />
# Mod MODNUM keeps the random number inside the size of the array so it doesnt over index.<br />
while [ $pwd_len -lt $MAXSIZE ]<br />
do<br />
x=$(($RANDOM%500))<br />
y=0<br />
while [ $y -lt $x ]<br />
do<br />
((y++))<br />
index=$(($RANDOM%$MODNUM))<br />
tput cup $line_num $(( indent + pwd_len ))<br />
echo -n &laquo;&nbsp;${array1[$index]}&nbsp;&raquo;<br />
done<br />
((pwd_len++))<br />
done</p>
<p># Place the cursor at the bottom of the screen &#8211;where is usually at.<br />
tput cup $max_lines 0</p>
<p>exit 0</p></blockquote>
<p>En espérant qu&rsquo;il serve <img src='http://blog.sckyzo.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sckyzo.com/bash-script-pour-generer-des-mots-de-passe/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>L&#8217;évolution d&#8217;un programmeur</title>
		<link>http://blog.sckyzo.com/levolution-dun-programmeur-2/</link>
		<comments>http://blog.sckyzo.com/levolution-dun-programmeur-2/#comments</comments>
		<pubDate>Fri, 07 Jan 2011 16:28:53 +0000</pubDate>
		<dc:creator>SckyzO</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Développement]]></category>

		<guid isPermaLink="false">http://blog.sckyzo.com/?p=1290</guid>
		<description><![CDATA[High School/Junior High 10 PRINT &#171;&#160;HELLO WORLD&#160;&#187; 20 END First year in College program Hello(input, output) begin writeln(&#8216;Hello World&#8217;) end. Senior year in College (defun hello (print (cons &#8216;Hello (list &#8216;World)))) New professional #include void main(void) { char *message[] = {&#171;&#160;Hello &#171;&#160;, &#171;&#160;World&#160;&#187;}; int i; for(i = 0; i &#60; 2; ++i) printf(&#171;&#160;%s&#160;&#187;, message[i]); printf(&#171;&#160;\n&#160;&#187;); } Seasoned professional #include #include class string { private: int size; char *ptr; public: string() : size(0), ptr(new char(&#8216;\0&#8242;)) {} [...]]]></description>
				<content:encoded><![CDATA[<h3>High School/Junior High</h3>
<blockquote><p>10 PRINT &laquo;&nbsp;HELLO WORLD&nbsp;&raquo;<br />
20 END</p></blockquote>
<h3>First year in College</h3>
<blockquote><p>program Hello(input, output)<br />
begin<br />
writeln(&lsquo;Hello World&rsquo;)<br />
end.</p></blockquote>
<h3>Senior year in College</h3>
<blockquote><p>(defun hello<br />
(print<br />
(cons &lsquo;Hello (list &lsquo;World))))</p></blockquote>
<h3>New professional</h3>
<blockquote><p>#include<br />
void main(void)<br />
{<br />
char *message[] = {&laquo;&nbsp;Hello &laquo;&nbsp;, &laquo;&nbsp;World&nbsp;&raquo;};<br />
int i;</p>
<p>for(i = 0; i &lt; 2; ++i)<br />
printf(&laquo;&nbsp;%s&nbsp;&raquo;, message[i]);<br />
printf(&laquo;&nbsp;\n&nbsp;&raquo;);<br />
}</p></blockquote>
<h3>Seasoned professional</h3>
<blockquote><p>#include<br />
#include</p>
<p>class string<br />
{<br />
private:<br />
int size;<br />
char *ptr;</p>
<p>public:<br />
string() : size(0), ptr(new char(&lsquo;\0&prime;)) {}</p>
<p>string(const string &amp;s) : size(s.size)<br />
{<br />
ptr = new char[size + 1];<br />
strcpy(ptr, s.ptr);<br />
}</p>
<p>~string()<br />
{<br />
delete [] ptr;<br />
}</p>
<p>friend ostream &amp;operator &lt;&lt;(ostream &amp;, const string &amp;);<br />
string &amp;operator=(const char *);<br />
};</p>
<p>ostream &amp;operator&lt;&lt;(ostream &amp;stream, const string &amp;s)<br />
{<br />
return(stream &lt;&lt; s.ptr);<br />
}</p>
<p>string &amp;string::operator=(const char *chrs)<br />
{<br />
if (this != &amp;chrs)<br />
{<br />
delete [] ptr;<br />
size = strlen(chrs);<br />
ptr = new char[size + 1];<br />
strcpy(ptr, chrs);<br />
}<br />
return(*this);<br />
}</p>
<p>int main()<br />
{<br />
string str;</p>
<p>str = &laquo;&nbsp;Hello World&nbsp;&raquo;;<br />
cout &lt;&lt; str &lt;&lt; endl;</p>
<p>return(0);<br />
}</p></blockquote>
<h3>Master Programmer</h3>
<blockquote><p>[<br />
uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820)<br />
]<br />
library LHello<br />
{<br />
// bring in the master library<br />
importlib(&laquo;&nbsp;actimp.tlb&nbsp;&raquo;);<br />
importlib(&laquo;&nbsp;actexp.tlb&nbsp;&raquo;);</p>
<p>// bring in my interfaces<br />
#include &laquo;&nbsp;pshlo.idl&nbsp;&raquo;</p>
<p>[<br />
uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820)<br />
]<br />
cotype THello<br />
{<br />
interface IHello;<br />
interface IPersistFile;<br />
};<br />
};</p>
<p>[<br />
exe,<br />
uuid(2573F890-CFEE-101A-9A9F-00AA00342820)<br />
]<br />
module CHelloLib<br />
{</p>
<p>// some code related header files<br />
importheader();<br />
importheader();<br />
importheader();<br />
importheader(&laquo;&nbsp;pshlo.h&nbsp;&raquo;);<br />
importheader(&laquo;&nbsp;shlo.hxx&nbsp;&raquo;);<br />
importheader(&laquo;&nbsp;mycls.hxx&nbsp;&raquo;);</p>
<p>// needed typelibs<br />
importlib(&laquo;&nbsp;actimp.tlb&nbsp;&raquo;);<br />
importlib(&laquo;&nbsp;actexp.tlb&nbsp;&raquo;);<br />
importlib(&laquo;&nbsp;thlo.tlb&nbsp;&raquo;);</p>
<p>[<br />
uuid(2573F891-CFEE-101A-9A9F-00AA00342820),<br />
aggregatable<br />
]<br />
coclass CHello<br />
{<br />
cotype THello;<br />
};<br />
};</p>
<p>#include &laquo;&nbsp;ipfix.hxx&nbsp;&raquo;</p>
<p>extern HANDLE hEvent;</p>
<p>class CHello : public CHelloBase<br />
{<br />
public:<br />
IPFIX(CLSID_CHello);</p>
<p>CHello(IUnknown *pUnk);<br />
~CHello();</p>
<p>HRESULT  __stdcall PrintSz(LPWSTR pwszString);</p>
<p>private:<br />
static int cObjRef;<br />
};</p>
<p>#include<br />
#include<br />
#include<br />
#include<br />
#include &laquo;&nbsp;thlo.h&nbsp;&raquo;<br />
#include &laquo;&nbsp;pshlo.h&nbsp;&raquo;<br />
#include &laquo;&nbsp;shlo.hxx&nbsp;&raquo;<br />
#include &laquo;&nbsp;mycls.hxx&nbsp;&raquo;</p>
<p>int CHello::cObjRef = 0;</p>
<p>CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk)<br />
{<br />
cObjRef++;<br />
return;<br />
}</p>
<p>HRESULT  __stdcall  CHello::PrintSz(LPWSTR pwszString)<br />
{<br />
printf(&laquo;&nbsp;%ws\n&nbsp;&raquo;, pwszString);<br />
return(ResultFromScode(S_OK));<br />
}</p>
<p>CHello::~CHello(void)<br />
{</p>
<p>// when the object count goes to zero, stop the server<br />
cObjRef&#8211;;<br />
if( cObjRef == 0 )<br />
PulseEvent(hEvent);</p>
<p>return;<br />
}</p>
<p>#include<br />
#include<br />
#include &laquo;&nbsp;pshlo.h&nbsp;&raquo;<br />
#include &laquo;&nbsp;shlo.hxx&nbsp;&raquo;<br />
#include &laquo;&nbsp;mycls.hxx&nbsp;&raquo;</p>
<p>HANDLE hEvent;</p>
<p>int _cdecl main(<br />
int argc,<br />
char * argv[]<br />
) {<br />
ULONG ulRef;<br />
DWORD dwRegistration;<br />
CHelloCF *pCF = new CHelloCF();</p>
<p>hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);</p>
<p>// Initialize the OLE libraries<br />
CoInitializeEx(NULL, COINIT_MULTITHREADED);</p>
<p>CoRegisterClassObject(CLSID_CHello, pCF, CLSCTX_LOCAL_SERVER,<br />
REGCLS_MULTIPLEUSE, &amp;dwRegistration);</p>
<p>// wait on an event to stop<br />
WaitForSingleObject(hEvent, INFINITE);</p>
<p>// revoke and release the class object<br />
CoRevokeClassObject(dwRegistration);<br />
ulRef = pCF-&gt;Release();</p>
<p>// Tell OLE we are going away.<br />
CoUninitialize();</p>
<p>return(0); }</p>
<p>extern CLSID CLSID_CHello;<br />
extern UUID LIBID_CHelloLib;</p>
<p>CLSID CLSID_CHello = { /* 2573F891-CFEE-101A-9A9F-00AA00342820 */<br />
0x2573F891,<br />
0xCFEE,<br />
0x101A,<br />
{ 0x9A, 0x9F, 0&#215;00, 0xAA, 0&#215;00, 0&#215;34, 0&#215;28, 0&#215;20 }<br />
};</p>
<p>UUID LIBID_CHelloLib = { /* 2573F890-CFEE-101A-9A9F-00AA00342820 */<br />
0x2573F890,<br />
0xCFEE,<br />
0x101A,<br />
{ 0x9A, 0x9F, 0&#215;00, 0xAA, 0&#215;00, 0&#215;34, 0&#215;28, 0&#215;20 }<br />
};</p>
<p>#include<br />
#include<br />
#include<br />
#include<br />
#include<br />
#include &laquo;&nbsp;pshlo.h&nbsp;&raquo;<br />
#include &laquo;&nbsp;shlo.hxx&nbsp;&raquo;<br />
#include &laquo;&nbsp;clsid.h&nbsp;&raquo;</p>
<p>int _cdecl main(<br />
int argc,<br />
char * argv[]<br />
) {<br />
HRESULT  hRslt;<br />
IHello        *pHello;<br />
ULONG  ulCnt;<br />
IMoniker * pmk;<br />
WCHAR  wcsT[_MAX_PATH];<br />
WCHAR  wcsPath[2 * _MAX_PATH];</p>
<p>// get object path<br />
wcsPath[0] = &lsquo;\0&prime;;<br />
wcsT[0] = &lsquo;\0&prime;;<br />
if( argc &gt; 1) {<br />
mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1);<br />
wcsupr(wcsPath);<br />
}<br />
else {<br />
fprintf(stderr, &laquo;&nbsp;Object path must be specified\n&nbsp;&raquo;);<br />
return(1);<br />
}</p>
<p>// get print string<br />
if(argc &gt; 2)<br />
mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1);<br />
else<br />
wcscpy(wcsT, L&nbsp;&raquo;Hello World&nbsp;&raquo;);</p>
<p>printf(&laquo;&nbsp;Linking to object %ws\n&nbsp;&raquo;, wcsPath);<br />
printf(&laquo;&nbsp;Text String %ws\n&nbsp;&raquo;, wcsT);</p>
<p>// Initialize the OLE libraries<br />
hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED);</p>
<p>if(SUCCEEDED(hRslt)) {</p>
<p>hRslt = CreateFileMoniker(wcsPath, &amp;pmk);<br />
if(SUCCEEDED(hRslt))<br />
hRslt = BindMoniker(pmk, 0, IID_IHello, (void **)&amp;pHello);</p>
<p>if(SUCCEEDED(hRslt)) {</p>
<p>// print a string out<br />
pHello-&gt;PrintSz(wcsT);</p>
<p>Sleep(2000);<br />
ulCnt = pHello-&gt;Release();<br />
}<br />
else<br />
printf(&laquo;&nbsp;Failure to connect, status: %lx&nbsp;&raquo;, hRslt);</p>
<p>// Tell OLE we are going away.<br />
CoUninitialize();<br />
}</p>
<p>return(0);<br />
}</p></blockquote>
<h3>Apprentice Hacker</h3>
<blockquote><p>#!/usr/local/bin/perl<br />
$msg=&nbsp;&raquo;Hello, world.\n&nbsp;&raquo;;<br />
if ($#ARGV &gt;= 0) {<br />
while(defined($arg=shift(@ARGV))) {<br />
$outfilename = $arg;<br />
open(FILE, &laquo;&nbsp;&gt;&nbsp;&raquo; . $outfilename) || die &laquo;&nbsp;Can&rsquo;t write $arg: $!\n&nbsp;&raquo;;<br />
print (FILE $msg);<br />
close(FILE) || die &laquo;&nbsp;Can&rsquo;t close $arg: $!\n&nbsp;&raquo;;<br />
}<br />
} else {<br />
print ($msg);<br />
}<br />
1;</p></blockquote>
<h3>Experienced Hacker</h3>
<blockquote><p>#include<br />
#define S &laquo;&nbsp;Hello, World\n&nbsp;&raquo;<br />
main(){exit(printf(S) == strlen(S) ? 0 : 1);}</p></blockquote>
<h3>Seasoned Hacker</h3>
<blockquote><p>% cc -o a.out ~/src/misc/hw/hw.c<br />
% a.out</p></blockquote>
<h3>Guru Hacker</h3>
<blockquote><p>% cat<br />
Hello, world.<br />
^D</p></blockquote>
<h3>New Manager</h3>
<blockquote><p>10 PRINT &laquo;&nbsp;HELLO WORLD&nbsp;&raquo;<br />
20 END</p></blockquote>
<h3>Middle Manager</h3>
<blockquote><p>mail -s &laquo;&nbsp;Hello, world.&nbsp;&raquo; bob@b12<br />
Bob, could you please write me a program that prints &laquo;&nbsp;Hello,<br />
world.&nbsp;&raquo;?<br />
I need it by tomorrow.<br />
^D</p></blockquote>
<h3>Senior Manager</h3>
<blockquote><p>% zmail jim<br />
I need a &laquo;&nbsp;Hello, world.&nbsp;&raquo; program by this afternoon.</p>
<p>Chief Executive</p>
<p>% letter<br />
letter: Command not found.<br />
% mail<br />
To: ^X ^F ^C<br />
% help mail<br />
help: Command not found.<br />
% damn!<br />
!: Event unrecognized<br />
% logout</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.sckyzo.com/levolution-dun-programmeur-2/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Sortie de BilboPlanet 0.3.2 : faites votre Planet en quelques clics</title>
		<link>http://blog.sckyzo.com/sortie-de-bilboplanet-0-3-2-faite-votre-planet-en-quelques-clics/</link>
		<comments>http://blog.sckyzo.com/sortie-de-bilboplanet-0-3-2-faite-votre-planet-en-quelques-clics/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 17:14:44 +0000</pubDate>
		<dc:creator>SckyzO</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Logiciel Libre]]></category>
		<category><![CDATA[BilboPlanet]]></category>

		<guid isPermaLink="false">http://blog.sckyzo.com/?p=812</guid>
		<description><![CDATA[C&#8217;est grâce à votre feedback et vos commentaires sur le forum que nous avons décidé de nous lancer dans une 3ième mouture de la branche 0.3. Cette nouvelle version numérotée 0.3.2 regroupe un ensemble de corrections de bugs que vous nous avez fait remarquer, ainsi que quelques nouveautés. Suivant la roadmap mise en place, c&#8217;est donc sans jour de retard que nous vous livrons le package Concrètement, nous pouvons affirmer que maintenant, le BilboPlanet commence [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://bilboplanet.com/blog/wp-content/uploads/2010/03/logo.png"><img class="size-full style= alignleft" title=" mce_style=" src="http://bilboplanet.com/blog/wp-content/uploads/2010/03/logo.png" alt="" width="74" height="99" /></a>C&rsquo;est grâce à votre feedback et vos commentaires sur le <a href="http://www.bilboplanet.com/forum">forum</a> que nous avons décidé de nous lancer dans une 3ième mouture de la branche 0.3. Cette nouvelle version numérotée 0.3.2 regroupe un ensemble de corrections de bugs que vous nous avez fait remarquer, ainsi que quelques nouveautés.<br />
Suivant la <a href="http://projets.developpez.com/projects/bilboplanet/roadmap">roadmap</a> mise en place, c&rsquo;est donc sans jour de retard que nous vous livrons le package <img src='http://blog.sckyzo.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Concrètement, nous pouvons affirmer que maintenant, le <strong>BilboPlanet </strong><strong>commence à concurrencer sérieusement les autres Planets existant comme planet-planet</strong>, un Planet écrit en Python. L&rsquo;avantage du bilboPlanet est qu&rsquo;il nécessite uniquement un serveur avec Apache (ou tout autres serveurs Web), MySQL et PHP.<br />
Notons de plus l&rsquo;utilisation du BilboPlanet par les communautés Jquery-Fr et prochainement Frugalware-Fr.</p>
<p>Je profite aussi de cette actualité pour vous faire pars de la venu d&rsquo;un nouveau dans le groupe des développeurs du BilboPlanet : <strong>Guillaume Oña</strong>. Merci à lui et bienvenue <img src='http://blog.sckyzo.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>C&rsquo;est donc grâce à toutes vos remarques et vos retours que cette nouvelle version fait son apparition. Nous espérons sincèrement qu&rsquo;elle vous plaira. Néanmoins, même si on a surtout mis le paquet sur la correction de bugs et la stabilité du programme, je vous invite quand même à lire la liste suivante des fonctionnalités sur lesquelles nous avons travaillés :</p>
<ul>
<li>Ne plus demander de mettre ou non le &laquo;&nbsp;/&nbsp;&raquo; à la fin d&rsquo;une url, c&rsquo;est maintenant automatique,</li>
<li>Mise en place d&rsquo;un nouveau thème lors de l&rsquo;installation du bilboplanet,</li>
<li>Explications plus précises de la signification des champs lors de l&rsquo;installation,</li>
<li>Mise à jour du Tableau de Bord : ajout d&rsquo;information à propos du serveur sur le dashboard, ajout de news sur le dashboard</li>
<li>Mise à jour de la librairie simplepie vers la 1.2,</li>
<li>Mise en place d&rsquo;un bouton &laquo;&nbsp;A propos&nbsp;&raquo; ou qui vous permettra de vous rendre sur le site, d&rsquo;avoir un accès rapide à la documentation, etc,</li>
<li>Nouveau système d&rsquo;import/export optimisé pour les migrations,</li>
<li>Ajout de clarté dans l&rsquo;interface d&rsquo;admin au niveau des choix de certain textes</li>
<li>Ainsi que divers bugs</li>
</ul>
<p>Dans un soucis de compatibilité future, j&rsquo;invite toutes les personnes ayant installés la version 0.3.1 ou des version antérieures dans un environnement de production de faire une mise à jour vers cette version ci. La raison est que la prochaine version 0.4 comportera beaucoup de changements et ne permettra pas de migrer facilement vers cette version (nouvelle structure de base de donnée). C&rsquo;est pour ça que la version 0.3.2 inclus une interface d&rsquo;export des données qui sera supportée dans la version 0.4 pour vous permettre de facilement migrer votre planet !</p>
<p><span style="text-decoration: underline;"><strong>Mise à jour du bilboPlanet</strong></span></p>
<p>Pour la mise à jour à partir d&rsquo;une ancienne version.</p>
<p>Gardez une copie des fichiers :</p>
<pre>	.protected
	.htaccess
	admin/.htaccess
	inc/config.php</pre>
<p><strong>Pour les versions 0.1 et 0.2 vers 0.3, mettez à jour la base de  données :</strong></p>
<pre>	ALTER TABLE `flux` ADD `last_updated` INT NOT NULL DEFAULT '0';
	ALTER TABLE `flux` ADD `status_flux` INT(1) NOT NULL DEFAULT '1'
	CREATE FULLTEXT INDEX fulltext_index_article_titre ON article (article_titre,article_content);</pre>
<p><span style="text-decoration: underline;"><strong>Quelques Screenshots:</strong></span></p>
<p><a rel="lightbox" href="http://bilboplanet.com/blog/wp-content/uploads/2010/03/install_02.png"><img class="alignnone size-medium wp-image-99" title="install_02" src="http://bilboplanet.com/blog/wp-content/uploads/2010/03/install_02-300x214.png" alt="" width="300" height="214" /></a> <a rel="lightbox" href="http://bilboplanet.com/blog/wp-content/uploads/2010/03/admin-dashboard.png"><img class="alignnone size-medium wp-image-100" title="admin-dashboard" src="http://bilboplanet.com/blog/wp-content/uploads/2010/03/admin-dashboard-300x214.png" alt="" width="300" height="214" /></a><br />
<a rel="lightbox" href="http://bilboplanet.com/blog/wp-content/uploads/2010/03/admin-feed.png"><img class="alignnone size-medium wp-image-101" title="admin-feed" src="http://bilboplanet.com/blog/wp-content/uploads/2010/03/admin-feed-300x214.png" alt="" width="300" height="214" /></a> <a rel="lightbox" href="http://bilboplanet.com/blog/wp-content/uploads/2010/03/admin-update.png"><img class="alignnone size-medium wp-image-102" title="admin-update" src="http://bilboplanet.com/blog/wp-content/uploads/2010/03/admin-update-300x214.png" alt="" width="300" height="214" /></a><br />
<a rel="lightbox" href="http://bilboplanet.com/blog/wp-content/uploads/2010/03/planet-homepage.png"><img class="alignnone size-medium wp-image-103" title="planet-homepage" src="http://bilboplanet.com/blog/wp-content/uploads/2010/03/planet-homepage-300x214.png" alt="" width="300" height="214" /></a></p>
<p><span style="text-decoration: underline;"><strong>Liens utiles : </strong></span><br />
Le bilboPlanet sur le Launchpad : <a href="https://launchpad.net/bilboplanet">https://launchpad.net/bilboplanet</a> (permet de nous envoyer des patchs et de nous envoyer des bugs)<br />
Le forum du BilboPlanet : <a href="http://www.bilboplanet.com/forum">http://www.bilboplanet.com/forum</a> (faites nous vos retour sur le programme et les bugs rencontrés)<br />
Lire la documentation d&rsquo;installation et de migration : <a href="http://www.bilboplanet.com/documentation.php">http://www.bilboplanet.com/documentation.php<br />
</a>Se rendre sur la page Téléchargement : <a href="http://www.bilboplanet.com/download.php">http://www.bilboplanet.com/download.php</a></p>
<p><span style="text-decoration: underline;"><strong>Téléchargement :</strong></span></p>
<p>Télécharger la dernière version du BilboPlanet<br />
<a title="Téléchargez BilboPlanet 0.3.2" href="http://www.bilboplanet.com/downloads/bilboplanet-0.3.2.tar.gz"><img class="alignnone size-full wp-image-105" title="Download" src="http://bilboplanet.com/blog/wp-content/uploads/2010/03/Download-128.png" alt="Téléchargez BilboPlanet 0.3.2" width="128" height="128" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sckyzo.com/sortie-de-bilboplanet-0-3-2-faite-votre-planet-en-quelques-clics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>L&#8217;évolution d&#8217;un Programmeur</title>
		<link>http://blog.sckyzo.com/levolution-dun-programmeur/</link>
		<comments>http://blog.sckyzo.com/levolution-dun-programmeur/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 15:00:41 +0000</pubDate>
		<dc:creator>SckyzO</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Développer]]></category>
		<category><![CDATA[Développeur]]></category>
		<category><![CDATA[Hello World]]></category>

		<guid isPermaLink="false">http://blog.sckyzo.com/?p=337</guid>
		<description><![CDATA[High School/Junior High 10 PRINT &#171;&#160;HELLO WORLD&#160;&#187; 20 END First year in College program Hello(input, output) begin writeln(&#8216;Hello World&#8217;) end. Senior year in College (defun hello (print (cons &#8216;Hello (list &#8216;World)))) New professional #include void main(void) { char *message[] = {&#171;&#160;Hello &#171;&#160;, &#171;&#160;World&#160;&#187;}; int i; for(i = 0; i &#60; 2; ++i) printf(&#171;&#160;%s&#160;&#187;, message[i]); printf(&#171;&#160;\n&#160;&#187;); } Seasoned professional #include #include class string { private: int size; char *ptr; public: string() : size(0), ptr(new char(&#8216;\0&#8242;)) {} [...]]]></description>
				<content:encoded><![CDATA[<h3>High School/Junior High</h3>
<blockquote><p>10 PRINT &laquo;&nbsp;HELLO WORLD&nbsp;&raquo;<br />
20 END</p></blockquote>
<h3>First year in College</h3>
<blockquote><p>program Hello(input, output)<br />
begin<br />
writeln(&lsquo;Hello World&rsquo;)<br />
end.</p></blockquote>
<h3>Senior year in College</h3>
<blockquote><p>(defun hello<br />
(print<br />
(cons &lsquo;Hello (list &lsquo;World))))</p></blockquote>
<h3>New professional</h3>
<blockquote><p>#include<br />
void main(void)<br />
{<br />
char *message[] = {&laquo;&nbsp;Hello &laquo;&nbsp;, &laquo;&nbsp;World&nbsp;&raquo;};<br />
int i;</p>
<p>for(i = 0; i &lt; 2; ++i)<br />
printf(&laquo;&nbsp;%s&nbsp;&raquo;, message[i]);<br />
printf(&laquo;&nbsp;\n&nbsp;&raquo;);<br />
}</p></blockquote>
<h3>Seasoned professional</h3>
<blockquote><p>#include<br />
#include</p>
<p>class string<br />
{<br />
private:<br />
int size;<br />
char *ptr;</p>
<p>public:<br />
string() : size(0), ptr(new char(&lsquo;\0&prime;)) {}</p>
<p>string(const string &amp;s) : size(s.size)<br />
{<br />
ptr = new char[size + 1];<br />
strcpy(ptr, s.ptr);<br />
}</p>
<p>~string()<br />
{<br />
delete [] ptr;<br />
}</p>
<p>friend ostream &amp;operator &lt;&lt;(ostream &amp;, const string &amp;);<br />
string &amp;operator=(const char *);<br />
};</p>
<p>ostream &amp;operator&lt;&lt;(ostream &amp;stream, const string &amp;s)<br />
{<br />
return(stream &lt;&lt; s.ptr);<br />
}</p>
<p>string &amp;string::operator=(const char *chrs)<br />
{<br />
if (this != &amp;chrs)<br />
{<br />
delete [] ptr;<br />
size = strlen(chrs);<br />
ptr = new char[size + 1];<br />
strcpy(ptr, chrs);<br />
}<br />
return(*this);<br />
}</p>
<p>int main()<br />
{<br />
string str;</p>
<p>str = &laquo;&nbsp;Hello World&nbsp;&raquo;;<br />
cout &lt;&lt; str &lt;&lt; endl;</p>
<p>return(0);<br />
}</p></blockquote>
<h3>Master Programmer</h3>
<blockquote><p>[<br />
uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820)<br />
]<br />
library LHello<br />
{<br />
// bring in the master library<br />
importlib(&laquo;&nbsp;actimp.tlb&nbsp;&raquo;);<br />
importlib(&laquo;&nbsp;actexp.tlb&nbsp;&raquo;);</p>
<p>// bring in my interfaces<br />
#include &laquo;&nbsp;pshlo.idl&nbsp;&raquo;</p>
<p>[<br />
uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820)<br />
]<br />
cotype THello<br />
{<br />
interface IHello;<br />
interface IPersistFile;<br />
};<br />
};</p>
<p>[<br />
exe,<br />
uuid(2573F890-CFEE-101A-9A9F-00AA00342820)<br />
]<br />
module CHelloLib<br />
{</p>
<p>// some code related header files<br />
importheader();<br />
importheader();<br />
importheader();<br />
importheader(&laquo;&nbsp;pshlo.h&nbsp;&raquo;);<br />
importheader(&laquo;&nbsp;shlo.hxx&nbsp;&raquo;);<br />
importheader(&laquo;&nbsp;mycls.hxx&nbsp;&raquo;);</p>
<p>// needed typelibs<br />
importlib(&laquo;&nbsp;actimp.tlb&nbsp;&raquo;);<br />
importlib(&laquo;&nbsp;actexp.tlb&nbsp;&raquo;);<br />
importlib(&laquo;&nbsp;thlo.tlb&nbsp;&raquo;);</p>
<p>[<br />
uuid(2573F891-CFEE-101A-9A9F-00AA00342820),<br />
aggregatable<br />
]<br />
coclass CHello<br />
{<br />
cotype THello;<br />
};<br />
};</p>
<p>#include &laquo;&nbsp;ipfix.hxx&nbsp;&raquo;</p>
<p>extern HANDLE hEvent;</p>
<p>class CHello : public CHelloBase<br />
{<br />
public:<br />
IPFIX(CLSID_CHello);</p>
<p>CHello(IUnknown *pUnk);<br />
~CHello();</p>
<p>HRESULT  __stdcall PrintSz(LPWSTR pwszString);</p>
<p>private:<br />
static int cObjRef;<br />
};</p>
<p>#include<br />
#include<br />
#include<br />
#include<br />
#include &laquo;&nbsp;thlo.h&nbsp;&raquo;<br />
#include &laquo;&nbsp;pshlo.h&nbsp;&raquo;<br />
#include &laquo;&nbsp;shlo.hxx&nbsp;&raquo;<br />
#include &laquo;&nbsp;mycls.hxx&nbsp;&raquo;</p>
<p>int CHello::cObjRef = 0;</p>
<p>CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk)<br />
{<br />
cObjRef++;<br />
return;<br />
}</p>
<p>HRESULT  __stdcall  CHello::PrintSz(LPWSTR pwszString)<br />
{<br />
printf(&laquo;&nbsp;%ws\n&nbsp;&raquo;, pwszString);<br />
return(ResultFromScode(S_OK));<br />
}</p>
<p>CHello::~CHello(void)<br />
{</p>
<p>// when the object count goes to zero, stop the server<br />
cObjRef&#8211;;<br />
if( cObjRef == 0 )<br />
PulseEvent(hEvent);</p>
<p>return;<br />
}</p>
<p>#include<br />
#include<br />
#include &laquo;&nbsp;pshlo.h&nbsp;&raquo;<br />
#include &laquo;&nbsp;shlo.hxx&nbsp;&raquo;<br />
#include &laquo;&nbsp;mycls.hxx&nbsp;&raquo;</p>
<p>HANDLE hEvent;</p>
<p>int _cdecl main(<br />
int argc,<br />
char * argv[]<br />
) {<br />
ULONG ulRef;<br />
DWORD dwRegistration;<br />
CHelloCF *pCF = new CHelloCF();</p>
<p>hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);</p>
<p>// Initialize the OLE libraries<br />
CoInitializeEx(NULL, COINIT_MULTITHREADED);</p>
<p>CoRegisterClassObject(CLSID_CHello, pCF, CLSCTX_LOCAL_SERVER,<br />
REGCLS_MULTIPLEUSE, &amp;dwRegistration);</p>
<p>// wait on an event to stop<br />
WaitForSingleObject(hEvent, INFINITE);</p>
<p>// revoke and release the class object<br />
CoRevokeClassObject(dwRegistration);<br />
ulRef = pCF-&gt;Release();</p>
<p>// Tell OLE we are going away.<br />
CoUninitialize();</p>
<p>return(0); }</p>
<p>extern CLSID CLSID_CHello;<br />
extern UUID LIBID_CHelloLib;</p>
<p>CLSID CLSID_CHello = { /* 2573F891-CFEE-101A-9A9F-00AA00342820 */<br />
0x2573F891,<br />
0xCFEE,<br />
0x101A,<br />
{ 0x9A, 0x9F, 0&#215;00, 0xAA, 0&#215;00, 0&#215;34, 0&#215;28, 0&#215;20 }<br />
};</p>
<p>UUID LIBID_CHelloLib = { /* 2573F890-CFEE-101A-9A9F-00AA00342820 */<br />
0x2573F890,<br />
0xCFEE,<br />
0x101A,<br />
{ 0x9A, 0x9F, 0&#215;00, 0xAA, 0&#215;00, 0&#215;34, 0&#215;28, 0&#215;20 }<br />
};</p>
<p>#include<br />
#include<br />
#include<br />
#include<br />
#include<br />
#include &laquo;&nbsp;pshlo.h&nbsp;&raquo;<br />
#include &laquo;&nbsp;shlo.hxx&nbsp;&raquo;<br />
#include &laquo;&nbsp;clsid.h&nbsp;&raquo;</p>
<p>int _cdecl main(<br />
int argc,<br />
char * argv[]<br />
) {<br />
HRESULT  hRslt;<br />
IHello        *pHello;<br />
ULONG  ulCnt;<br />
IMoniker * pmk;<br />
WCHAR  wcsT[_MAX_PATH];<br />
WCHAR  wcsPath[2 * _MAX_PATH];</p>
<p>// get object path<br />
wcsPath[0] = &lsquo;\0&prime;;<br />
wcsT[0] = &lsquo;\0&prime;;<br />
if( argc &gt; 1) {<br />
mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1);<br />
wcsupr(wcsPath);<br />
}<br />
else {<br />
fprintf(stderr, &laquo;&nbsp;Object path must be specified\n&nbsp;&raquo;);<br />
return(1);<br />
}</p>
<p>// get print string<br />
if(argc &gt; 2)<br />
mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1);<br />
else<br />
wcscpy(wcsT, L&nbsp;&raquo;Hello World&nbsp;&raquo;);</p>
<p>printf(&laquo;&nbsp;Linking to object %ws\n&nbsp;&raquo;, wcsPath);<br />
printf(&laquo;&nbsp;Text String %ws\n&nbsp;&raquo;, wcsT);</p>
<p>// Initialize the OLE libraries<br />
hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED);</p>
<p>if(SUCCEEDED(hRslt)) {</p>
<p>hRslt = CreateFileMoniker(wcsPath, &amp;pmk);<br />
if(SUCCEEDED(hRslt))<br />
hRslt = BindMoniker(pmk, 0, IID_IHello, (void **)&amp;pHello);</p>
<p>if(SUCCEEDED(hRslt)) {</p>
<p>// print a string out<br />
pHello-&gt;PrintSz(wcsT);</p>
<p>Sleep(2000);<br />
ulCnt = pHello-&gt;Release();<br />
}<br />
else<br />
printf(&laquo;&nbsp;Failure to connect, status: %lx&nbsp;&raquo;, hRslt);</p>
<p>// Tell OLE we are going away.<br />
CoUninitialize();<br />
}</p>
<p>return(0);<br />
}</p></blockquote>
<h3>Apprentice Hacker</h3>
<blockquote><p>#!/usr/local/bin/perl<br />
$msg=&nbsp;&raquo;Hello, world.\n&nbsp;&raquo;;<br />
if ($#ARGV &gt;= 0) {<br />
while(defined($arg=shift(@ARGV))) {<br />
$outfilename = $arg;<br />
open(FILE, &laquo;&nbsp;&gt;&nbsp;&raquo; . $outfilename) || die &laquo;&nbsp;Can&rsquo;t write $arg: $!\n&nbsp;&raquo;;<br />
print (FILE $msg);<br />
close(FILE) || die &laquo;&nbsp;Can&rsquo;t close $arg: $!\n&nbsp;&raquo;;<br />
}<br />
} else {<br />
print ($msg);<br />
}<br />
1;</p></blockquote>
<h3>Experienced Hacker</h3>
<blockquote><p>#include<br />
#define S &laquo;&nbsp;Hello, World\n&nbsp;&raquo;<br />
main(){exit(printf(S) == strlen(S) ? 0 : 1);}</p></blockquote>
<h3>Seasoned Hacker</h3>
<blockquote><p>% cc -o a.out ~/src/misc/hw/hw.c<br />
% a.out</p></blockquote>
<h3>Guru Hacker</h3>
<blockquote><p>% cat<br />
Hello, world.<br />
^D</p></blockquote>
<h3>New Manager</h3>
<blockquote><p>10 PRINT &laquo;&nbsp;HELLO WORLD&nbsp;&raquo;<br />
20 END</p></blockquote>
<h3>Middle Manager</h3>
<blockquote><p>mail -s &laquo;&nbsp;Hello, world.&nbsp;&raquo; bob@b12<br />
Bob, could you please write me a program that prints &laquo;&nbsp;Hello,<br />
world.&nbsp;&raquo;?<br />
I need it by tomorrow.<br />
^D</p></blockquote>
<h3>Senior Manager</h3>
<blockquote><p>% zmail jim<br />
I need a &laquo;&nbsp;Hello, world.&nbsp;&raquo; program by this afternoon.</p>
<p>Chief Executive</p>
<p>% letter<br />
letter: Command not found.<br />
% mail<br />
To: ^X ^F ^C<br />
% help mail<br />
help: Command not found.<br />
% damn!<br />
!: Event unrecognized<br />
% logout</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.sckyzo.com/levolution-dun-programmeur/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
