<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:iweb="http://www.apple.com/iweb" version="2.0">
  <channel>
    <title>Computer Science &amp;amp; programming</title>
    <link>http://www.yannesposito.com/YBlog/Computer/Computer.html</link>
    <description>This my blog where I’ll speak about programming and sometimes computer science.</description>
    <generator>iWeb 3.0.1</generator>
    <image>
      <url>http://www.yannesposito.com/YBlog/Computer/Computer_files/droppedImage-filtered.png</url>
      <title>Computer Science &amp;amp; programming</title>
      <link>http://www.yannesposito.com/YBlog/Computer/Computer.html</link>
    </image>
    <item>
      <title>Why WOLFRAMALPHA has given me a good first impression</title>
      <link>http://www.yannesposito.com/YBlog/Computer/Entr%C3%A9es/2009/5/18_Why_WOLFRAMALPHA_has_given_me_a_good_first_impression.html</link>
      <guid isPermaLink="false">ed5bfe13-ae86-46fb-84bb-2c18bc14cde5</guid>
      <pubDate>Mon, 18 May 2009 20:39:30 +0200</pubDate>
      <description>&lt;a href=&quot;http://www.yannesposito.com/YBlog/Computer/Entr%C3%A9es/2009/5/18_Why_WOLFRAMALPHA_has_given_me_a_good_first_impression_files/Picture%201_1.jpg&quot;&gt;&lt;img src=&quot;http://www.yannesposito.com/YBlog/Computer/Media/object000.png&quot; style=&quot;float:left; padding-right:10px; padding-bottom:10px; width:217px; height:103px;&quot;/&gt;&lt;/a&gt;I’m not particularly into the Wolfram is a genius kind. I know he made many fundamental error into it’s book about cellular automata. &lt;br/&gt;&lt;br/&gt;But the first question I ask to wolframalpha was : “meaning of life” here is a screenshot of the result.&lt;br/&gt;&lt;br/&gt;</description>
      <enclosure url="http://www.yannesposito.com/YBlog/Computer/Entr%C3%A9es/2009/5/18_Why_WOLFRAMALPHA_has_given_me_a_good_first_impression_files/Picture%201_1.jpg" length="75369" type="image/jpeg"/>
    </item>
    <item>
      <title>Be able to change your password</title>
      <link>http://www.yannesposito.com/YBlog/Computer/Entr%C3%A9es/2009/4/11_Be_able_to_change_your_password.html</link>
      <guid isPermaLink="false">ada68fca-ecf2-4e2b-9512-caaaea6072e2</guid>
      <pubDate>Sat, 11 Apr 2009 23:25:21 +0200</pubDate>
      <description>&lt;a href=&quot;http://www.yannesposito.com/YBlog/Computer/Entr%C3%A9es/2009/4/11_Be_able_to_change_your_password_files/Picture%201.jpg&quot;&gt;&lt;img src=&quot;http://www.yannesposito.com/YBlog/Computer/Media/object071_1.png&quot; style=&quot;float:left; padding-right:10px; padding-bottom:10px; width:217px; height:103px;&quot;/&gt;&lt;/a&gt;My password was compromised because of a simple copy/paste problem. My password was released only base64 encrypted (that means really bad encrypted) on the Internet. Argh... I needed to change it.&lt;br/&gt;Unfortunately, YPassword was not designed to do that. This is why I implement the new feature in YPassword 1.5. &lt;br/&gt;&lt;br/&gt;Here is how I modify my password :&lt;br/&gt;(1) hash(‘passworddomainname’)&lt;br/&gt;(2) hash(‘password1domainname’)&lt;br/&gt;(3) hash(‘password2domainname’)&lt;br/&gt;...&lt;br/&gt;&lt;br/&gt;each time I need to modify it I simply increment a number after my password and I’ve got a new one with the same security. In my knowledge it is has hard to retrieve your password knowing (1) than to retrieve (2) knowing (1). Therefore, here is my solution.&lt;br/&gt;&lt;br/&gt;And here is how to retrieve your password from anywhere :&lt;br/&gt;    simply use sha1 website provider (using javascript) like &lt;a href=&quot;http://pajhome.org.uk/crypt/md5/&quot;&gt;Here&lt;/a&gt;&lt;br/&gt;    or my online version of the widget (really early alpha actually &lt;a href=&quot;http:///YPassword/YPassword.html&quot;&gt;Here&lt;/a&gt;)&lt;br/&gt;&lt;br/&gt;Just a tip to convert from hexadecimal representation to base64 one the python script to do that:&lt;br/&gt;&lt;br/&gt;    #!/usr/bin/env python&lt;br/&gt;# -*- encoding: utf-8 -*-&lt;br/&gt;### hex2b64.py ###&lt;br/&gt;&lt;br/&gt;import binascii&lt;br/&gt;import sys&lt;br/&gt;import re&lt;br/&gt;&lt;br/&gt;hex=sys.stdin.read()&lt;br/&gt;m=re.search('([a-f0-9][a-f0-9])*',hex)&lt;br/&gt;print binascii.b2a_base64( binascii.a2b_hex( m.group(0) ))&lt;br/&gt;&lt;br/&gt;Now, you can simply use in a shell script:&lt;br/&gt;&lt;br/&gt;echo -n “passwordNumberDomain” | openssl sha1 | hex2b64.py&lt;br/&gt;</description>
      <enclosure url="http://www.yannesposito.com/YBlog/Computer/Entr%C3%A9es/2009/4/11_Be_able_to_change_your_password_files/Picture%201.jpg" length="25324" type="image/jpeg"/>
    </item>
    <item>
      <title>Shorter Password with the same efficiency</title>
      <link>http://www.yannesposito.com/YBlog/Computer/Entr%C3%A9es/2009/3/15_Shorter_Password_with_the_same_efficiency.html</link>
      <guid isPermaLink="false">d28b7528-0596-41a9-8b17-ceb52e4600c7</guid>
      <pubDate>Sun, 15 Mar 2009 10:12:22 +0100</pubDate>
      <description>&lt;a href=&quot;http://www.yannesposito.com/YBlog/Computer/Entr%C3%A9es/2009/3/15_Shorter_Password_with_the_same_efficiency_files/Picture%201.jpg&quot;&gt;&lt;img src=&quot;http://www.yannesposito.com/YBlog/Computer/Media/object072_1.png&quot; style=&quot;float:left; padding-right:10px; padding-bottom:10px; width:217px; height:103px;&quot;/&gt;&lt;/a&gt;I hardly learnt how it could be bad to enter password on an iPod touch. The problem of strong password is the length of them. Even if you use a password manager, like &lt;a href=&quot;../YPassword.html&quot;&gt;YPassword&lt;/a&gt;. As you cannot copy/paste on iPod touch, you have to type manually the password. And this is a pain.&lt;br/&gt;&lt;br/&gt;This is why I modified &lt;a href=&quot;../YPassword.html&quot;&gt;YPassword&lt;/a&gt; to provide not only hexadecimal password but also ‘base64’ password. That mean use not only numbers and letters from ‘a’ to ‘f’. But all alphabet (case sensitive), all numbers and only 2 additionnal. The result is I use 64 differents symbols agains only 16.&lt;br/&gt;&lt;br/&gt;As 64=26 and 16=24, password are now 4/6 = 2/3 as long as before. Therefore you pass from 40 letters to 27 letters. And what is the most important you don’t lose the password complexity in shortening it.&lt;br/&gt;&lt;br/&gt;As I used this password manager kind at work (I don’t work on Mac :-( ). I made a python script in order to transform password from hex to the kind I prefer.&lt;br/&gt;I also tried to make strong password à la Mac Keychain. The result was quite surprising. Passwords of the form &amp;lt;word&gt;&amp;lt;number&gt;&amp;lt;specialChar&gt;&amp;lt;word&gt; are really not so strong!&lt;br/&gt;&lt;br/&gt;Here the proof.&lt;br/&gt;YiMac% ./password.py a94a8fe5ccb19ba61c4c0873d391e987982fbbd3&lt;br/&gt;int    (48):    966482230667555116936258103322711973649032657875&lt;br/&gt;hex    (41):    a94a8fe5ccb19ba61c4c0873d391e987982fbbd3&lt;br/&gt;ascii  (30):    R@UDCKE5FI6KGASIN=Z2GN93H;S154&lt;br/&gt;cascii (25):    ^JU|N)FC*-@HN;8pOL8N?K*:%&lt;br/&gt;base64 (27):    Tv7LYeY6RO9cIwEHmuZsMX+jKlK&lt;br/&gt;rememb (82):    palynological38.antimoniate97.idolize61.effleurage27.Zaporozhe's26.demagnetized26.&lt;br/&gt;&lt;br/&gt;In order to make the last kind of password I used a word list containing: 1239113 words!&lt;br/&gt;And even with such many words, the password to be as strong as a 160 bit long password need to contain 6 words and 6 numbers (inferior to 100). Which mean approximatively 80 letter long! &lt;br/&gt;Personnaly I cannot remember this kind of password. &lt;br/&gt;&lt;br/&gt;I tried other kind of transformation, the integer (48 letters long), the best in my humble opinion was the base64.&lt;br/&gt;&lt;br/&gt;To understand here is the source code of my script (it is very simple to understand):&lt;br/&gt;#!/usr/bin/python&lt;br/&gt;# -*- encoding: utf-8 -*-&lt;br/&gt;import sys&lt;br/&gt;if len(sys.argv) &amp;lt;= 1:&lt;br/&gt;    print &amp;quot;usage password.py hash&amp;quot;&lt;br/&gt;    exit(1)&lt;br/&gt;# recup the hash from command line&lt;br/&gt;hash=int(sys.argv[1],16);&lt;br/&gt;&lt;br/&gt;def tranformPass(hash, liste):&lt;br/&gt;    diviseur=len(liste)&lt;br/&gt;    password=&amp;quot;&amp;quot;&lt;br/&gt;    while (hash):&lt;br/&gt;        password=password+liste[ hash % diviseur ]&lt;br/&gt;        hash=hash/diviseur&lt;br/&gt;    return password&lt;br/&gt;&lt;br/&gt;# all kind&lt;br/&gt;val=str(hash); print &amp;quot;int    (&amp;quot;+str(len(val))+&amp;quot;):    &amp;quot;+val&lt;br/&gt;val=hex(hash)[2:-1] ; print &amp;quot;hex    (&amp;quot;+str(len(val))+&amp;quot;):    &amp;quot;+val&lt;br/&gt;val=tranformPass(hash,[chr(i) for i in range(48,91)]) ;print &amp;quot;ascii  (&amp;quot;+str(len(val))+&amp;quot;):    &amp;quot;+val&lt;br/&gt;val=tranformPass(hash,[chr(i) for i in range(33,127)]); print &amp;quot;cascii (&amp;quot;+str(len(val))+&amp;quot;):    &amp;quot;+val&lt;br/&gt;&lt;br/&gt;# base64&lt;br/&gt;base64List=&amp;quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&amp;quot;&lt;br/&gt;val=tranformPass(hash,base64List); print &amp;quot;base64 (&amp;quot;+str(len(val))+&amp;quot;):    &amp;quot;+val&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;# for word list&lt;br/&gt;def tranformPassWord(hash, liste):&lt;br/&gt;    diviseur=len(liste)&lt;br/&gt;    password=&amp;quot;&amp;quot;&lt;br/&gt;    while (hash):&lt;br/&gt;        password=password+liste[ hash % diviseur ]&lt;br/&gt;        hash=hash/diviseur&lt;br/&gt;        password=password+str( hash % 100 )+'.'&lt;br/&gt;        hash=hash/100&lt;br/&gt;    return password&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;# Word list&lt;br/&gt;# recup the list of words (got it from &lt;a href=&quot;http://wordlist.sourceforge.net/&quot;&gt;http://wordlist.sourceforge.net&lt;/a&gt; )&lt;br/&gt;f=open(&amp;quot;totalListe&amp;quot;,&amp;quot;r&amp;quot;);&lt;br/&gt;liste=f.read().split();&lt;br/&gt;val=tranformPassWord(hash,liste); print &amp;quot;rememb (&amp;quot;+str(len(val))+&amp;quot;):    &amp;quot;+val&lt;br/&gt;&lt;br/&gt;In conclusion, I’ll plan to make quickly a website to manage all that. Accessible from normal web and mobiles. The most portable and efficient possible.</description>
      <enclosure url="http://www.yannesposito.com/YBlog/Computer/Entr%C3%A9es/2009/3/15_Shorter_Password_with_the_same_efficiency_files/Picture%201.jpg" length="52001" type="image/jpeg"/>
    </item>
    <item>
      <title>Why I changed my mind from fluid to fixed layout</title>
      <link>http://www.yannesposito.com/YBlog/Computer/Entr%C3%A9es/2009/3/13_Why_I_changed_my_mind_from_fluid_to_fixed_layout.html</link>
      <guid isPermaLink="false">5988b855-28f9-48ba-9290-e76af3f843a7</guid>
      <pubDate>Fri, 13 Mar 2009 22:49:01 +0100</pubDate>
      <description>&lt;a href=&quot;http://www.yannesposito.com/YBlog/Computer/Entr%C3%A9es/2009/3/13_Why_I_changed_my_mind_from_fluid_to_fixed_layout_files/Picture%201.jpg&quot;&gt;&lt;img src=&quot;http://www.yannesposito.com/YBlog/Computer/Media/object073.png&quot; style=&quot;float:left; padding-right:10px; padding-bottom:10px; width:217px; height:103px;&quot;/&gt;&lt;/a&gt;Recently, I decided, in order to have the most possible portable website and also the most readable one to change my website. Not the one created with iWeb you’re reading right now. One I’m doing from scratch writing code with Vim.&lt;br/&gt;&lt;br/&gt;In a first time, I believed the only reason to prefer fixed layout was the technical easiness. But after passing long time to surf, here my conclusions.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;I now am annoyed by all wrong stuff (animations, images, ads, tags, twitter activities, rss link, facebook link, linked in link...). The image on the right is a recent example of hideous blog I really hard tried to read.&lt;br/&gt;The content was really interresting but the presentation was so bad, I had to switch to lynx to read it.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Most of time, when I go on a blog, I want to focus first on the content, then if the content was good enough, I sometime feel ok to know more about the guy who written it. This is why I started (again) to surf using text-only browser such as &lt;a href=&quot;http://lynx.isc.org/&quot;&gt;lynx&lt;/a&gt; and &lt;a href=&quot;http://w3m.sourceforge.net/&quot;&gt;w3m&lt;/a&gt;. Of course, today, the omnipresence of javascript limits the usability of these browsers. But when I’ve target a blog, I first try with lynx. It is easier to read and concentrate only on the content. &lt;br/&gt;&lt;br/&gt;Last week was also released &lt;a href=&quot;http://lab.arc90.com/experiments/readability/&quot;&gt;readability&lt;/a&gt;. The idea is pretty good in my opinion. This is a simple javascript which try to focus only on the content and delete everything except the content and modify the style in order to be easier to read.&lt;br/&gt;&lt;br/&gt;This is exactly what I don’t want my visitor need to do. My site should give this readability naturally. This is why, after verifying the assumption that fixed layout is easier to read than fluid one. I made some radical changes in my design. The most radical one was to completely change my mind about fluid vs fixed layout.&lt;br/&gt;&lt;br/&gt;The two radical changes were:&lt;br/&gt;	-	pass from fluid to fixed. Because, it is clearly easier to read fixed sized text (normally a width between 50 and 70 em). &lt;br/&gt;	-	make my font size bigger. From 1 to 1.2 or 1.4 (not decided yet). &lt;br/&gt;&lt;br/&gt;Now, when you see my website. You separate naturally the navigation zone (the head) from the content zone. And that’s all. Yes. Just two zones. No more. No twitter widget, no “add my site to delicious”, no “click here in order to add me in facebook”... And of course “no ad”.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;My conclusion to this is, if your goal is to catch user attention and help him to focus, you should do the most to transform your website in an experience that should be close to the one of books. If it is written to little, you don’t read. If there is too much ads, flashing images, you don’t read. &lt;br/&gt;The better way to focus, is to have a fixed (or almost fixed width: between 50 and 70 em) and to have very few zones and external informations.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Now I tried my best in order to give my visitor the sensation to read a book when reading on my website.&lt;br/&gt;&lt;br/&gt;Here is a screenshot of my not terminated yet design:&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;The concepts of my website:&lt;br/&gt;    color: Black, White and Red (NO MORE)&lt;br/&gt;    parts: Head (title, subtitle, navigation), Content (should be many paragraphs)&lt;br/&gt;&lt;br/&gt;I didn’t decided yet:&lt;br/&gt;	-	if links should be red or simply bold. And let red be the color for highlighted stuff...&lt;br/&gt;	-	if there is enough white space&lt;br/&gt;	-	if the title and subtitle should be in the head or separated in the content&lt;br/&gt;	-	if I’ll try to make my design work at least not completely bad on IE6 (for now it is XHTML 1.0 Strict and CSS 2.0 valid, and therefore not IE compliant)... If you try to accede my web site with IE you began in a javascript nightmare asking you to change your browser.&lt;br/&gt;&lt;br/&gt;For now I found there is too much red, but this is because of my example text. It shouldn’t have so much red with real content. I didn’t want a total minimalist website (no background image, white or black background...). Too minimalist is sometimes difficult to make. I don’t have this talent I believe. I made some very subtle radial gradient on each part, in order to give an impression of a finished design.&lt;br/&gt;&lt;br/&gt;If you have some remark, I’ll be pleased to listen to them.&lt;br/&gt;</description>
      <enclosure url="http://www.yannesposito.com/YBlog/Computer/Entr%C3%A9es/2009/3/13_Why_I_changed_my_mind_from_fluid_to_fixed_layout_files/Picture%201.jpg" length="73530" type="image/jpeg"/>
    </item>
    <item>
      <title>How to copy &amp; Paste even when it’s forbidden</title>
      <link>http://www.yannesposito.com/YBlog/Computer/Entr%C3%A9es/2009/3/6_How_to_copy_%26_Paste_even_when_it%E2%80%99s_forbidden.html</link>
      <guid isPermaLink="false">c6c5d42b-2070-450f-bdd2-e56f64ff5f76</guid>
      <pubDate>Fri, 6 Mar 2009 03:48:57 +0100</pubDate>
      <description>&lt;a href=&quot;http://www.yannesposito.com/YBlog/Computer/Entr%C3%A9es/2009/3/6_How_to_copy_%26_Paste_even_when_it%E2%80%99s_forbidden_files/Picture%202-filtered.jpg&quot;&gt;&lt;img src=&quot;http://www.yannesposito.com/YBlog/Computer/Media/object074.png&quot; style=&quot;float:left; padding-right:10px; padding-bottom:10px; width:217px; height:103px;&quot;/&gt;&lt;/a&gt;Just create the following Applescript in automator:&lt;br/&gt;&lt;br/&gt;on run {input, parameters}&lt;br/&gt;&lt;br/&gt;	delay 3&lt;br/&gt;&lt;br/&gt;	try&lt;br/&gt;		set clip to the clipboard&lt;br/&gt;		tell application &amp;quot;System Events&amp;quot; to keystroke clip&lt;br/&gt;	on error e&lt;br/&gt;		display dialog e buttons {&amp;quot;OK&amp;quot;} default button 1 with icon 0&lt;br/&gt;	end try&lt;br/&gt;&lt;br/&gt;	return input&lt;br/&gt;end run&lt;br/&gt;&lt;br/&gt;And save it as an application: &lt;a href=&quot;Entr%C3%A9es/2009/3/6_How_to_copy_%26_Paste_even_when_it%E2%80%99s_forbidden_files/forcePaste.app.zip&quot;&gt;forcePaste&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Now I copy my password, I click on the forcePaste and I’ve got 3 seconds to position my cursor on the good field. Then all is going as if I typed myself on my keyboard the content of the clipboard.&lt;br/&gt;&lt;br/&gt;That’s all folks. </description>
      <enclosure url="http://www.yannesposito.com/YBlog/Computer/Entr%C3%A9es/2009/3/6_How_to_copy_%26_Paste_even_when_it%E2%80%99s_forbidden_files/Picture%202-filtered.jpg" length="24396" type="image/jpeg"/>
    </item>
  </channel>
</rss>
