<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2457676170019672871</id><updated>2011-07-28T12:23:40.832-07:00</updated><category term='linux'/><category term='py2exe'/><category term='os'/><category term='as3'/><category term='.Net'/><category term='gis'/><category term='blogger flex'/><category term='files'/><category term='wii'/><category term='callback'/><category term='geo'/><category term='OSX'/><category term='IDE'/><category term='google-earth'/><category term='multimedia'/><category term='flex'/><category term='gps'/><category term='firefox'/><category term='desktop'/><category term='osm'/><category term='python'/><category term='flickr'/><category term='command-line'/><category term='windows'/><category term='unicode'/><category term='vim'/><category term='IronPython'/><category term='ftp'/><category term='hardware'/><category term='utilities'/><title type='text'>'Memo pad' : tech stuff</title><subtitle type='html'>Part of the externalization of my cognitive functions ... &lt;a href="http://techkr.blogspot.com/2006/12/what-heck-is-this-blog.html"&gt;what ?&lt;/a&gt; &lt;br&gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>30</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-2836951565171059591</id><published>2010-08-17T06:25:00.000-07:00</published><updated>2010-08-17T06:33:06.764-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='py2exe'/><title type='text'>Py2xe: how to hide your GUI application error box "See the logfile for details"</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://farm5.static.flickr.com/4096/4900740263_788b0f3ed2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="86" src="http://farm5.static.flickr.com/4096/4900740263_788b0f3ed2.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;If for some reasons you need to hide that box while still logging the errors in myapp.exe.log, the following is a quick and dirty solution:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1) Find the file "boot_common.py" in your py2exe module (exemple: c:\python2x\Lib\site-packages\py2exe\boot_common.py) and make a backup copy in case of.&lt;br /&gt;&lt;br /&gt;2) find the "def write" method and add a show_dialog parmeter this way:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;def write(self, text, alert=sys._MessageBox, fname=sys.executable + '.log'&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;, show_dialog=False&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;):&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;3) modify the following "else" block this way:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="color:#999999;"&gt;if show_dialog==True:&lt;br /&gt;   import atexit&lt;br /&gt;   atexit.register(alert, 0,"See the logfile '%s' for details" % fname,"Errors occurred")&lt;br /&gt;else:&lt;br /&gt;   pass&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;To come back to the original behavior change to "show_dialog=True" in 2).&lt;br /&gt;&lt;br /&gt;More informations on Py2exe error handling &lt;a href="http://www.py2exe.org/index.cgi/StderrLog"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-2836951565171059591?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/2836951565171059591/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=2836951565171059591' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/2836951565171059591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/2836951565171059591'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2010/08/py2xe-how-to-hide-your-gui-application.html' title='Py2xe: how to hide your GUI application error box &quot;See the logfile for details&quot;'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm5.static.flickr.com/4096/4900740263_788b0f3ed2_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-4356494397773480270</id><published>2008-06-22T06:54:00.000-07:00</published><updated>2008-06-22T07:30:26.763-07:00</updated><title type='text'>[french] Visualisation des séismes du RENASS via KML(s)</title><content type='html'>&lt;p id="r3gx" style="text-align: center;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b id="r3gx0"&gt;(à partir des données du &lt;a title="RENASS, Résau National de Surveillance Sismique" href="http://renass.u-strasbg.fr/" id="lte."&gt;RENASS, Résau National de Surveillance Sismique&lt;/a&gt; )&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="r3gx" style="text-align: center;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;Ce post est un "Google docs export" =&gt; &lt;a href="http://docs.google.com/View?docid=dgqhgsgm_204dmkzqvgz"&gt;page orginale à jour ici&lt;/a&gt;&lt;/span&gt;&lt;b id="r3gx0"&gt;,  &lt;/b&gt;&lt;a href="http://www.fxfoo.com/renass/"&gt;&lt;span style="font-style: italic;"&gt;dossier&lt;/span&gt;&lt;b style="font-style: italic;" id="r3gx0"&gt; &lt;/b&gt;&lt;span style="font-style: italic;"&gt;KML(s)&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="r3gx" style="text-align: center;"&gt;&lt;/p&gt;&lt;div id="yc3s0"&gt;&lt;table id="kti8" border="0" cellpadding="3" cellspacing="0" width="100%"&gt;&lt;tbody id="yc3s1"&gt;&lt;tr id="yc3s2" height="70%"&gt;&lt;td style="text-align: left;" id="yc3s3" valign="top" width="70%"&gt;&amp;gt; &lt;a title="KML des derniers tremblements de terre" href="http://www.fxfoo.com/renass/last-quakes-RENASS.kml" id="fgyb"&gt;KML des derniers tremblements de Terre&lt;/a&gt;  &lt;ul id="c.7y"&gt;&lt;li id="c.7y0"&gt;visualisez le KML (lien ci-dessus) dans Google Earth, World Wind, Virtual Earth, etc&lt;/li&gt;&lt;li id="c.7y1"&gt;derniers tremblements de Terre en premier dans la liste  &lt;/li&gt;&lt;/ul&gt;&amp;gt; Visualisation dans Google Maps Search:  &lt;ul id="peze0"&gt;&lt;li id="peze1"&gt;&lt;a title="Centré France, rendu &amp;quot;Terrain&amp;quot;" href="http://maps.google.com/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=http://www.fxfoo.com/renass/last-quakes-RENASS.kml&amp;amp;ie=UTF8&amp;amp;ll=47.694974,1.625977&amp;amp;spn=14.348915,38.496094&amp;amp;t=p&amp;amp;z=5&amp;amp;mid=1213520644" id="kr4v"&gt;Centré France, rendu "Terrain"&lt;/a&gt; &lt;/li&gt;&lt;li id="peze2"&gt;&lt;a title="Centré Monde, rendu &amp;quot;Terrain&amp;quot;" href="http://maps.google.com/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=http:%2F%2Fwww.fxfoo.com%2Frenass%2Flast-quakes-RENASS.kml&amp;amp;ie=UTF8&amp;amp;t=p&amp;amp;ll=39.909736,23.90625&amp;amp;spn=163.559917,360&amp;amp;z=1" id="c4yj"&gt;Centré Monde, rendu "Terrain"&lt;/a&gt;  &lt;/li&gt;&lt;/ul&gt; &amp;gt; Visualisation via Google Maps API:  &lt;ul id="r6uc"&gt;&lt;li id="r6uc0"&gt;&lt;a title="Centré France" href="http://www.fxfoo.com/renass/visu-france-googlemaps-api.html" id="ulxf"&gt;Centré France&lt;/a&gt; &lt;/li&gt;&lt;li id="r6uc1"&gt;&lt;a title="Centré Monde" href="http://www.fxfoo.com/renass/visu-monde-googlemaps-api.html" id="ktbb"&gt;Centré Monde&lt;/a&gt;   &lt;/li&gt;&lt;/ul&gt;&amp;gt; Visualisation via Open Layers sur carte Open Street Map:  &lt;ul id="d1-e1"&gt;&lt;li id="d1-e2"&gt;&lt;a title="Centré France" href="http://www.fxfoo.com/renass/visu-france-openstreetmap.html" id="g6vl"&gt;Centré France&lt;/a&gt;  &lt;/li&gt;&lt;/ul&gt; &amp;gt; Flux RSS pour se tenir au courant des derniers séismes (expérimental)  &lt;ul id="dcg_"&gt;&lt;li id="dcg_0"&gt;&lt;a title="Flux RSS" href="http://www.fxfoo.com/renass/seismes-RSS-RENASS.xml" id="mx71"&gt;Flux RSS&lt;/a&gt;  &lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td id="yc3s5" align="right" width="50%"&gt;&lt;div id="nhgu" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img id="c8fv" style="width: 240px; height: 172px;" src="http://docs.google.com/File?id=dgqhgsgm_210d2vm62cx_b" /&gt; &lt;a title="Zoom" href="http://farm4.static.flickr.com/3159/2582920397_acd366dcd8_o.jpg" id="iasa"&gt;Zoom&lt;/a&gt;  &lt;/div&gt;  &lt;div id="b5g:" style="text-align: center;"&gt;&lt;img id="jif67" src="http://docs.google.com/File?id=dgqhgsgm_209gdwh2kdp_b" /&gt; &lt;a title="Zoom" href="http://farm4.static.flickr.com/3085/2581895444_2ff7ea68c6_o.png" id="wwq3"&gt;Zoom&lt;/a&gt;&lt;/div&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr id="yc3s7"&gt;&lt;td id="yc3s8" valign="top" width="70%"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td id="yc3s10" width="50%"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr id="yc3s12"&gt;&lt;td id="yc3s13" valign="top" width="70%"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td id="yc3s15" width="50%"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;span id="n0dz"  style="font-size:78%;"&gt;&lt;i id="p01i"&gt;&lt;a title="ULP Multimedia" href="http://www-ulp.u-strasbg.fr/article.php/0/13/1-080-232-701/ulp-multimedia" id="g0jc"&gt;&lt;/a&gt; &lt;/i&gt;&lt;/span&gt;&lt;div id="jif60"&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-4356494397773480270?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/4356494397773480270/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=4356494397773480270' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/4356494397773480270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/4356494397773480270'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2008/06/french-visualisation-des-sismes-du.html' title='[french] Visualisation des séismes du RENASS via KML(s)'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-7668576111618421961</id><published>2008-05-30T07:32:00.000-07:00</published><updated>2008-06-22T07:46:11.113-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gis'/><category scheme='http://www.blogger.com/atom/ns#' term='osm'/><title type='text'>OSMaware, visualising OpenStreetMaps mapping activity via KML(s)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://code.google.com/p/osmlab/"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://farm3.static.flickr.com/2162/2475990354_73d978eeb9_m.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;More informations here: &lt;a href="http://code.google.com/p/osmlab/"&gt;http://code.google.com/p/osmlab/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;thanks for the &lt;a href="http://wiki.openstreetmap.org/index.php/Lolcat_of_awesomeness"&gt;"&lt;/a&gt;&lt;/span&gt;&lt;span style="font-weight: normal; font-style: italic;font-size:85%;" &gt;&lt;a href="http://wiki.openstreetmap.org/index.php/Lolcat_of_awesomeness"&gt;Lolcat of awesomeness"&lt;/a&gt; award :)&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm4.static.flickr.com/3082/2475990682_6f3398ff9e_m.jpg"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-7668576111618421961?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/7668576111618421961/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=7668576111618421961' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/7668576111618421961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/7668576111618421961'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2008/05/osmaware-visualising-openstreetmaps.html' title='OSMaware, visualising OpenStreetMaps mapping activity via KML(s)'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm3.static.flickr.com/2162/2475990354_73d978eeb9_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-4161714562237661849</id><published>2008-05-25T03:00:00.000-07:00</published><updated>2008-06-22T07:13:21.094-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSX'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>OS X 10.5 Leppard: "express" Python, PIL and WxPython please</title><content type='html'>Python on OS X 10.5...&lt;br /&gt;&lt;br /&gt;It is not recommended to mess-up with the Python 2.5 installed by default,  and while wanting to install PIL and WxPython, I discovered and lost myself in the jungle of Python "distros" and their prerequisites (Fink, MacPorts, DarwinPorts, AciveState, MacPython ...)&lt;br /&gt;&lt;br /&gt;In a hurry? go to the source: python.org (MacPython)&lt;br /&gt;&lt;br /&gt;1) search and install the universal installer for OS X:&lt;br /&gt;&lt;a href="http://www.python.org/download/"&gt;http://www.python.org/download/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This new Python will be the default one when you invoke "Python" in a shell.&lt;br /&gt;It's installed in "/Library/Frameworks/Python.framework"&lt;br /&gt;(the original OS X python is in: "/System/Library/Frameworks/Python.framework").&lt;br /&gt;The new libs are in "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages"&lt;br /&gt;&lt;br /&gt;2) download and install PIL, WxPython (or other packages) from:&lt;br /&gt;&lt;a href="http://pythonmac.org/packages/py25-fat"&gt;http://pythonmac.org/packages/py25-fat&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;More informations about MacPython:&lt;br /&gt;&lt;a href="http://wiki.python.org/moin/MacPython"&gt;http://wiki.python.org/moin/MacPython&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;An interesting read about &lt;a href="http://www.mtheory.co.uk/support/index.php?title=Installing_Python_-_iPython%2C_Numpy%2C_Scipy_and_Matplotlib_on_OS_X"&gt;the   Python distributions (especially in a scientific context)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-4161714562237661849?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/4161714562237661849/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=4161714562237661849' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/4161714562237661849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/4161714562237661849'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2008/05/os-x-105-leppard-express-python-pil-and.html' title='OS X 10.5 Leppard: &quot;express&quot; Python, PIL and WxPython please'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-598738692503718119</id><published>2008-02-16T09:41:00.001-08:00</published><updated>2008-02-16T09:59:38.956-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='as3'/><title type='text'>Flex: how-to access remote data (xml) through a proxy?</title><content type='html'>&lt;p&gt;Flash player (used by Flex) has a very strict security policy: it's not possible to access public data from another domain than the one where your swf stands (unless a crossdomain.xml file is present on the distant server you want to access).&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;If the crossdomain file doesn't exist it is always possible to copy a minimal proxy file on your server (where your swf is present). This way flash player will communicate locally with the proxy, the proxy will give the result back to flashplayer, and there won't be any remote domain seen by flashplayer.&lt;/p&gt;  &lt;p&gt;How-to use a proxy with Flex and Action Script3? (code and example) &lt;/p&gt; &lt;p&gt;&lt;a title="http://docs.google.com/Doc?id=dgqhgsgm_154gfhwj5cn" href="http://docs.google.com/Doc?id=dgqhgsgm_154gfhwj5cn"&gt;http://docs.google.com/Doc?id=dgqhgsgm_154gfhwj5cn&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-598738692503718119?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/598738692503718119/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=598738692503718119' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/598738692503718119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/598738692503718119'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2008/02/flex-how-to-access-external-data.html' title='Flex: how-to access remote data (xml) through a proxy?'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-5524644644331076528</id><published>2008-02-15T13:07:00.000-08:00</published><updated>2008-02-16T03:30:32.447-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='as3'/><title type='text'>How to programmatically  draw in Flex 3?</title><content type='html'>I was surprised by the lack of documentation( and working example)  for this simple task.&lt;br /&gt;&lt;br /&gt;Here's what I've got so far:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Flex doesn't like "Shape" objects? replace them with "UIcomponent"&lt;/li&gt;&lt;li&gt;a "UI component" must be attached to a container (like a canvas, a panel,...)&lt;/li&gt;&lt;li&gt;the shape will be visible when it is added has a child of the container: myCanvas.addChild(myCircle)&lt;/li&gt;&lt;/ul&gt;Here's an example with 3 buttons (1 to create a rectangle, 1 to create a circle, 1 to move them appart):&lt;br /&gt;&lt;br /&gt;Run (right click at runtime then "view source" to see the code):&lt;br /&gt;&lt;a href="http://francois.schnell.free.fr/flex/draw/draw.html"&gt;http://francois.schnell.free.fr/flex/draw/draw.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Code in plain text:&lt;br /&gt;&lt;a href="http://docs.google.com/Doc?id=dgqhgsgm_153dc6cvzf7"&gt;http://docs.google.com/Doc?id=dgqhgsgm_153dc6cvzf7&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-5524644644331076528?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/5524644644331076528/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=5524644644331076528' title='4 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/5524644644331076528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/5524644644331076528'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2008/02/how-to-draw-basic-shapes-in-flex.html' title='How to programmatically  draw in Flex 3?'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-3964865879244013384</id><published>2008-01-26T15:12:00.001-08:00</published><updated>2008-01-26T16:11:42.024-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogger flex'/><title type='text'>Blogger: paste HTML, tags, code</title><content type='html'>Blogger is not really code friendly. You need to "escape" each tag (replacing &lt;&gt;). Also spaces disappear and you may need to add a "pre" tag.&lt;br /&gt;&lt;br /&gt;As I'm learning Flex/Air I've developed a small on-line tool to automate the process if you need to paste HTML or tags/code:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm3.static.flickr.com/2282/2221935128_de0f801d32_o.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 355px; height: 251px;" src="http://farm3.static.flickr.com/2282/2221935128_de0f801d32_o.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;BloggerPaste:&lt;br /&gt;&lt;a href="http://francois.schnell.free.fr/tools/BloggerPaste/BloggerPaste.html"&gt;http://francois.schnell.free.fr/tools/BloggerPaste/BloggerPaste.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you have any comments or feature request thanks to let me know.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-3964865879244013384?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/3964865879244013384/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=3964865879244013384' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/3964865879244013384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/3964865879244013384'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2008/01/blogger-paste-html-tags-code.html' title='Blogger: paste HTML, tags, code'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-2883263129725162646</id><published>2007-12-23T04:15:00.000-08:00</published><updated>2007-12-26T02:46:49.078-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='google-earth'/><title type='text'>Controlling Google Earth with Python (API COM)</title><content type='html'>Google Earth is a powerful and beautiful application. Being able to control the globe, with few lines of Python code, makes you feel like you've got some god-like powers ;)&lt;br /&gt;&lt;br /&gt;I've drafted here a short guide to show you how to start controlling Google Earth with Python  (through its API COM):&lt;br /&gt;&lt;a href="http://docs.google.com/View?docid=dgqhgsgm_933rjw93"&gt;http://docs.google.com/View?docid=dgqhgsgm_933rjw93&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-2883263129725162646?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/2883263129725162646/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=2883263129725162646' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/2883263129725162646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/2883263129725162646'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2007/12/controlling-google-earth-with-python.html' title='Controlling Google Earth with Python (API COM)'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-1615830952236853993</id><published>2007-12-22T13:20:00.000-08:00</published><updated>2007-12-23T04:25:08.240-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unicode'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Wrap my head around unicode for Python</title><content type='html'>Most interesting tutorial I've found: &lt;a href="http://boodebr.org/main/python/all-about-python-and-unicode" class="external free" title="http://boodebr.org/main/python/all-about-python-and-unicode" rel="nofollow"&gt;http://boodebr.org/main/python/all-about-python-and-unicode&lt;/a&gt;&lt;br /&gt;&lt;p&gt;Keypoints: &lt;/p&gt; &lt;ul&gt;&lt;li&gt; unicode are "symbols" or "objects" (no fixed computer representation, don't think bytes) and codecs transform them into binary strings (so you can print, store in disk, sent across network...). &lt;/li&gt;&lt;li&gt; a unicode string example with some greek characters: unicodeString = u"abc_\u03a0\u03a3\u03a9.txt" &lt;/li&gt;&lt;li&gt; you shouldn't 'print' a unicode string without encoding it first (by default Python will encode in ascii which can leads to errors if there are non ascii characters) &lt;/li&gt;&lt;li&gt; you can print a unicode "representation":  print repr(unicodeString) &lt;/li&gt;&lt;li&gt; you encode with the .encode method: binary = unicodeString.encode("utf-8") &lt;/li&gt;&lt;li&gt; you can see the binary result like this: print "UTF-8", repr(unicodeString.encode('utf-8')) &lt;/li&gt;&lt;li&gt; print "ASCII",unicodeString.encode('ascii','replace') #will replace non-codable characters with '?' &lt;/li&gt;&lt;li&gt; from binary to unicode: unicode(utf8_string,'utf-8') # you must specify the encoding if not Python assumes it's ascii &lt;/li&gt;&lt;li&gt; once you have a Unicode object, it behaves exactly like a regular string object, so there is no new syntax to learn (other than the \u and \U escapes) &lt;/li&gt;&lt;/ul&gt;Other links:&lt;br /&gt;&lt;pre&gt;* &lt;a href="http://www.jorendorff.com/articles/unicode/python.html" class="external free" title="http://www.jorendorff.com/articles/unicode/python.html" rel="nofollow"&gt;http://www.jorendorff.com/articles/unicode/python.html&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://evanjones.ca/python-utf8.html" class="external free" title="http://evanjones.ca/python-utf8.html" rel="nofollow"&gt;http://evanjones.ca/python-utf8.html&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://vim.sourceforge.net/tips/tip.php?tip_id=246" class="external free" title="http://vim.sourceforge.net/tips/tip.php?tip_id=246" rel="nofollow"&gt;http://vim.sourceforge.net/tips/tip.php?tip_id=246&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://farmdev.com/thoughts/23/what-i-thought-i-knew-about-unicode-in-python-amounted-to-nothing/" class="external free" title="http://farmdev.com/thoughts/23/what-i-thought-i-knew-about-unicode-in-python-amounted-to-nothing/" rel="nofollow"&gt;http://farmdev.com/thoughts/23/what-i-thought-i-knew-about-unicode-in-python-amounted-to-nothing/&lt;/a&gt;&lt;/pre&gt;from my &lt;a href="http://www.fxfoo.com/wiki/index.php/Python_Unicode"&gt;wikinote &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-1615830952236853993?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/1615830952236853993/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=1615830952236853993' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/1615830952236853993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/1615830952236853993'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2007/12/wrap-my-head-around-unicode-for-python.html' title='Wrap my head around unicode for Python'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-9002801003933018080</id><published>2007-12-16T14:11:00.000-08:00</published><updated>2007-12-16T14:29:31.754-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IDE'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='IronPython'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Iron Python Studio (Python, .Net and the power of Visual Studio for free)</title><content type='html'>&lt;a href="http://www.codeplex.com/IronPythonStudio"&gt;Iron Python Studio&lt;/a&gt; is a free IDE for&lt;a href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython"&gt; Iron Python&lt;/a&gt; (Python for .Net).&lt;br /&gt;&lt;br /&gt;You can develop command-line applications, Windows forms and WPF/XAML applications (see the project &lt;a href="http://www.codeplex.com/IronPythonStudio/Release/ProjectReleases.aspx?ReleaseId=8934"&gt;IronPythonScreenCast (wmv)&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Iron Python Studio has a visual designer for your GUI, code completion, debugger, etc (the usual tools of Visual Studio which makes in particular GUI development so simple).&lt;br /&gt;&lt;br /&gt;It can use all the classes of .Net and also use the classic CPython (version 2.4 for now since this first version of the Studio is based on Iron Python 1.1)&lt;br /&gt;&lt;br /&gt;More informations on my &lt;a href="http://www.fxfoo.com/wiki/index.php/Iron_Python"&gt;wiki note&lt;/a&gt;&lt;br /&gt;&lt;system.web&gt;&lt;system.servicemodel&gt;&lt;br /&gt;&lt;/system.servicemodel&gt;&lt;/system.web&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-9002801003933018080?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/9002801003933018080/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=9002801003933018080' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/9002801003933018080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/9002801003933018080'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2007/12/iron-python-studio-python-net-and-power.html' title='Iron Python Studio (Python, .Net and the power of Visual Studio for free)'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-3558562716201748815</id><published>2007-05-20T10:03:00.000-07:00</published><updated>2007-05-20T10:10:27.137-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='utilities'/><title type='text'>[Win] Quick access to favorite folders</title><content type='html'>&lt;a href=" http://www.freeware365.com/desktop/folderguide.htm"&gt;"Folder Guide"&lt;/a&gt; is a handy windows freeware to keep the most common folders you use at your fingertip.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Folder Guide is a free handy utility that provides fast access to your frequently used and favorite folders. It can operate as the part of your context menu in your Windows Explorer.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-3558562716201748815?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/3558562716201748815/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=3558562716201748815' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/3558562716201748815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/3558562716201748815'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2007/05/win-quick-access-to-favorite-folders.html' title='[Win] Quick access to favorite folders'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-3888349604928346417</id><published>2007-03-03T11:01:00.000-08:00</published><updated>2007-03-03T11:15:07.075-08:00</updated><title type='text'>[Python]: optparse -- powerful command line option parser</title><content type='html'>I find optparse much better than getopt to get command line options.&lt;br /&gt;The beast is explained here:&lt;br /&gt;&lt;a href="http://python.org/doc/lib/module-optparse.html"&gt;http://python.org/doc/lib/module-optparse.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For example:&lt;br /&gt;&lt;br /&gt;from optparse import OptionParser&lt;br /&gt;&lt;br /&gt;parser=OptionParser()&lt;br /&gt;&lt;br /&gt;parser.add_option("-f", "--file",dest="filename",help="a file to process")&lt;br /&gt;parser.add_option("-r", "--repeat",dest="repeat",help="an integer")&lt;br /&gt;parser.add_option("--dp",dest="directory",help="picture directory")&lt;br /&gt;parser.add_option("-v",help="verbosemode",action="store_true",&lt;br /&gt;dest="verbose",default=True)&lt;br /&gt;   &lt;br /&gt;(options,args)=parser.parse_args()&lt;br /&gt;   &lt;br /&gt;print options.filename&lt;br /&gt;print options.repeat&lt;br /&gt;print options.verbose&lt;br /&gt;print options.directory&lt;br /&gt;&lt;br /&gt;For flags, 'action' can be "store_true" or "store_false"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-3888349604928346417?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/3888349604928346417/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=3888349604928346417' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/3888349604928346417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/3888349604928346417'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2007/03/python-optparse-powerful-command-line.html' title='[Python]: optparse -- powerful command line option parser'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-4398011422895950886</id><published>2007-03-03T08:52:00.000-08:00</published><updated>2007-03-03T08:58:36.659-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='files'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>[Python]: find  files of a certain type in a folder.</title><content type='html'>To search for .jpg files in the folder "myfoder" you can do:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;import os,fnmatch&lt;br /&gt;&lt;br /&gt;for fileName in os.listdir ( "myfolder" ):&lt;br /&gt;   if fnmatch.fnmatch ( fileName, '*.jpg' ):&lt;br /&gt;       print "Found fileName ",fileName&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-4398011422895950886?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/4398011422895950886/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=4398011422895950886' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/4398011422895950886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/4398011422895950886'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2007/03/python-find-files-of-certain-type-in.html' title='[Python]: find  files of a certain type in a folder.'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-381630186927942023</id><published>2007-02-26T10:43:00.000-08:00</published><updated>2007-02-27T09:23:45.991-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='command-line'/><category scheme='http://www.blogger.com/atom/ns#' term='flickr'/><category scheme='http://www.blogger.com/atom/ns#' term='geo'/><category scheme='http://www.blogger.com/atom/ns#' term='gps'/><title type='text'>Write GPS data on your photos with Exiftool</title><content type='html'>&lt;a href="http://www.sno.phy.queensu.ca/%7Ephil/exiftool/"&gt;Exiftool&lt;/a&gt; is  a Windows/Mac command-line app (or a muti-plateform Perl librairy) to read and write  &lt;a href="http://en.wikipedia.org/wiki/Exif"&gt;EXIF &lt;/a&gt;metadatas on certain file types.&lt;br /&gt;&lt;br /&gt;In the following I will use .jpg files from my camera and the Windows .exe version of Exiftool that I will control in a DOS shell.&lt;br /&gt;&lt;br /&gt;Want to see some EXIF metadata in your picture ?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; $ exiftool mypicture.jpg&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Want to extract the precise date and time when this picture was taken ?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ exiftool -CreateDate  mypicture.jpg&lt;/span&gt;&lt;br /&gt;( Returns something "2007:02:10 21:19:43")&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Want to write your picture was on the Eastern part of Greenwich meridian ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ exiftool -GPSLongitudeRef="E" mypicture.jpg&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Want to write the exact the longitude value ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$  exiftool -GPSLongitude="7.422809" mypicture.jpg&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Want to write your picture is in the northern latitudes   ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ exiftool -GPSLatitudeRef="N" mypicture.jpg&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;and give the exact latitude value ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ exiftool -GPSLatitude="48.419973" mypicture.jpg&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Obviously you can combine the four tags above in just one line.&lt;br /&gt;&lt;br /&gt;You can check everything went well with another exiftool mypicture.jpg (warning: if the app. doesn't understand what to do it didn't return me any error message by default ).&lt;br /&gt;&lt;br /&gt;More informations about the GPS tags can be found&lt;a href="http://www.sno.phy.queensu.ca/%7Ephil/exiftool/TagNames/GPS.html"&gt; here.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;With this Free Software GPL  command-line version it's now easy to integrate geolacalisation capabilities  in a Python script for example.&lt;br /&gt;&lt;br /&gt;I can upload my pictures on Flickr  and they will show on the Flick maps but I still need to use the &lt;a href="http://www.flickr.com/groups/geotagging/discuss/72157594165549916/"&gt;geocoding bookmarklet&lt;/a&gt; if I want to add the geotagged tags and the google maps.&lt;br /&gt;&lt;br /&gt;PS: -n option gives you the latitude/longitude in the decimal form when reading these tags&lt;br /&gt;PS: Python also have a nice similar library but I didnt' succeed to write GPS data with it,&lt;br /&gt;&lt;a href="http://www.emilas.com/jpeg/"&gt;http://www.emilas.com/jpeg/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-381630186927942023?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/381630186927942023/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=381630186927942023' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/381630186927942023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/381630186927942023'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2007/02/write-gps-data-on-your-photos-with.html' title='Write GPS data on your photos with Exiftool'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-1678623583297675606</id><published>2007-02-21T00:53:00.000-08:00</published><updated>2008-01-20T14:07:38.998-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ftp'/><category scheme='http://www.blogger.com/atom/ns#' term='callback'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>[Python] Callback examples with FTP</title><content type='html'>From the &lt;a href="http://en.wikipedia.org/wiki/Callback_%28computer_science%29"&gt;wikipedia article&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;In computer programming, a callback is executable code that is passed as an argument to other code. It allows a lower-level software layer to call a function defined in a higher-level layer.&lt;br /&gt;&lt;br /&gt;Usually, the higher-level code starts by calling a function within the lower-level code passing to it a pointer or handle to another function. While the lower-level function executes, it may call the passed-in function any number of times to perform some subtask. In another scenario, the lower-level function registers the passed-in function as a handler that is to be called asynchronously by the lower-level at a later time in reaction to something.&lt;/blockquote&gt;&lt;br /&gt;Two examples with the FTP module of Python:&lt;br /&gt;&lt;br /&gt;from ftplib import FTP&lt;br /&gt;&lt;br /&gt;ftp = FTP("the_host")&lt;br /&gt;ftp.login('ftpuser', 'ftppass')&lt;br /&gt;ftp.cwd("folder")&lt;br /&gt;&lt;br /&gt;# To obtain the list of files in a variable (not just the standard output) :&lt;br /&gt;&lt;br /&gt;fileList=[]&lt;br /&gt;command=ftp.retrlines("LIST",fileList.append)&lt;br /&gt;&lt;br /&gt;# To download the file :&lt;br /&gt;&lt;br /&gt;file = open("myfile.exe", 'wb')&lt;br /&gt;ftp.retrbinary("RETR myfile.exe",file.write)&lt;br /&gt;ftp.quit()&lt;br /&gt;file.close()&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-1678623583297675606?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/1678623583297675606/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=1678623583297675606' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/1678623583297675606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/1678623583297675606'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2007/02/python-callback-examples-with-ftp.html' title='[Python] Callback examples with FTP'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-4655039522874248301</id><published>2007-02-20T09:28:00.000-08:00</published><updated>2007-02-20T09:42:30.647-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='os'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>[Python] How to get the output from os.system() into a variable ?</title><content type='html'>A quick solution using popen :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;import os&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;result=os.popen('command').read()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;print result&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;where command is your command (expl. on windows: dir,ipconfig,...)&lt;br /&gt;&lt;br /&gt;If you expect more than a line and want each word in a list:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;import os,string&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;result=string.split(os.popen('dir/w').read())&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.thescripts.com/forum/post2350723-7.html"&gt;Source of this&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-4655039522874248301?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/4655039522874248301/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=4655039522874248301' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/4655039522874248301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/4655039522874248301'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2007/02/python-how-to-get-output-from-ossystem.html' title='[Python] How to get the output from os.system() into a variable ?'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-4287070675486805969</id><published>2007-02-17T06:28:00.000-08:00</published><updated>2007-02-17T06:41:12.937-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='utilities'/><title type='text'>Clipboard and all-in-one system information for windows</title><content type='html'>Two useful free software to complete &lt;a href="http://techkr.blogspot.com/2006/12/how-to-switch-from-linux-to-windows.html"&gt;my list of windows utilities&lt;/a&gt; :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ditto-cp.sourceforge.net/"&gt;Ditto&lt;/a&gt; is a very useful Open Source clipboard:&lt;br /&gt;&lt;br /&gt;- history of text copies, images, screenshots&lt;br /&gt;- enable hot keys, network sync, etc&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gtopala.com/"&gt;SIW&lt;/a&gt; is a freeware which stands for "System Information for Windows"&lt;br /&gt;&lt;br /&gt;- no installation required (can run on a USB key)&lt;br /&gt;- hardware informations, temperature sensors, license keys, process, etc, etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-4287070675486805969?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/4287070675486805969/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=4287070675486805969' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/4287070675486805969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/4287070675486805969'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2007/02/clipboard-and-all-in-one-system.html' title='Clipboard and all-in-one system information for windows'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-5816963358027956814</id><published>2007-01-11T08:18:00.000-08:00</published><updated>2007-01-12T01:13:38.592-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>[Python] Generating an html doc for your script(s)</title><content type='html'>&lt;span style="color: rgb(51, 204, 0);font-size:130%;" &gt;Pydoc&lt;/span&gt;&lt;br /&gt;Python comes with a "&lt;a href="http://docs.python.org/lib/module-pydoc.html"&gt;pydoc&lt;/a&gt;" utility. On windows it is lacated in C:\Python2X\Lib (you may want to add this directory to your system path)&lt;br /&gt;&lt;br /&gt;To produce an html documentation of a script or module type  in a DOS shell (at the level of your script) :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;pydoc.py -w nameOfYourScript&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Warning:&lt;br /&gt;- don't type the .py extension in the command above&lt;br /&gt;- respect the uppercase and small caps even on windows.&lt;br /&gt;- your script must have some &lt;a href="http://epydoc.sourceforge.net/docstrings.html"&gt;docstrings&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The above command produce a nameOfYourScript.html doc with the classes, methods, functions, etc.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:130%;" &gt;Epydoc&lt;/span&gt;&lt;br /&gt;For a more powerful and complete alternative I use the excellent Epydoc that you can download here:&lt;br /&gt;&lt;a href="http://epydoc.sourceforge.net/"&gt;http://epydoc.sourceforge.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On windows after the installation you can find the epydoc script in C:\Python2X\Scripts (you may want to add this directory to your system path)&lt;br /&gt;&lt;br /&gt;To use epydoc just type in a shell in  the folder containing your script(s):&lt;br /&gt;&lt;br /&gt;epydoc.py scriptNameWithoutPyExtension&lt;br /&gt;&lt;br /&gt;This will produce an "html" folder : read the index.html in your browser and enjoy :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-5816963358027956814?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/5816963358027956814/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=5816963358027956814' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/5816963358027956814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/5816963358027956814'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2007/01/generating-html-doc-for-your-script.html' title='[Python] Generating an html doc for your script(s)'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-2047958335213921773</id><published>2007-01-04T00:36:00.000-08:00</published><updated>2007-02-19T05:05:54.971-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Firefox extensions</title><content type='html'>A selection of useful Firefox extensions (updated 19 Fev 2007):&lt;br /&gt;&lt;br /&gt;* &lt;a href="http://tools.google.com/firefox/toolbar/FT3/intl/en/"&gt;Google Toolbar 3&lt;/a&gt; (beta)&lt;br /&gt;* &lt;a href="http://googlesystem.blogspot.com/2007/01/google-start-menu.html"&gt;Gutil&lt;/a&gt; a "Google Start Menu"&lt;br /&gt;* &lt;a href="https://addons.mozilla.org/firefox/137/"&gt;Super DragAndGo for tabs&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://en.wikipedia.org/wiki/Greasemonkey"&gt;Greasemonkey&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://flashblock.mozdev.org/"&gt;Flashblock&lt;/a&gt;&lt;br /&gt;* &lt;a href="https://addons.mozilla.org/firefox/918/"&gt;gTranslate&lt;/a&gt;&lt;br /&gt;* &lt;a href="https://addons.mozilla.org/firefox/3383/"&gt;Key Scrambler&lt;/a&gt;&lt;br /&gt;* &lt;a href="http://www.edgewall.org/python-sidebar/"&gt;Python Sidebar&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-2047958335213921773?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/2047958335213921773/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=2047958335213921773' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/2047958335213921773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/2047958335213921773'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2007/01/firefox-extensions.html' title='Firefox extensions'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-1041852292625407050</id><published>2006-12-29T16:47:00.000-08:00</published><updated>2007-01-30T14:00:48.291-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='desktop'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='utilities'/><title type='text'>Switching from a Linux to a Windows Desktop</title><content type='html'>When I'm using a WinXP desktop I'm searching for an equivalent "Linux experience". Here's what I find useful so far (a mix of freeware and Free Software).&lt;br /&gt;&lt;br /&gt;1) Look and feel&lt;br /&gt;&lt;br /&gt;I don't like WinXP theme. &lt;a href="http://crystalxp.net/galerie/en.htm"&gt;CristalXP.net&lt;/a&gt; have great themes, wallpaper, icons, etc. I use the &lt;a href="http://crystalxp.net/galerie/fr.id.969.htm"&gt;Microsoft "Royale Noir"&lt;/a&gt; a nice dark and sober theme.&lt;br /&gt;&lt;br /&gt;Also very handy is &lt;a href="http://icolorfolder.sourceforge.net/"&gt;iColorFolder &lt;/a&gt;to manage folders icons and the ability to quickly set their color for a better visual organisation.&lt;br /&gt;&lt;br /&gt;You may also be interested by a &lt;a href="http://download.microsoft.com/download/whistler/Install/2/WXP/EN-US/DeskmanPowertoySetup.exe"&gt;Virtual Desktops Manager&lt;/a&gt; or want to access the  &lt;a href="http://download.microsoft.com/download/whistler/Install/2/WXP/EN-US/CmdHerePowertoySetup.exe"&gt; "contextual" command line window &lt;/a&gt; from a right click on a folder or maybe to &lt;a href="http://www.lopesoft.com/en/fmtools/info.html"&gt;customize completely you're right click menu.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2)Shell and processes&lt;br /&gt;&lt;br /&gt;This was the weakest point of winXP for me. Microsoft now released Power Shell and I must admit I find it good (it is just a little long to start). There are also aliases for usual Linux command (ls, pwd, cd /, etc) but I think &lt;a href="http://www.windowsdevcenter.com/pub/a/windows/2006/11/07/top-10-tips-for-using-windows-powershell.html"&gt;Power Shell commands are very neat and clear.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also, if you want to see the running processes in a graphical way &lt;a href="http://www.allthingsmarked.com/2006/12/24/replace-task-manager-with-the-more-powerful-process-explorer/"&gt;Process Explorer &lt;/a&gt;is a great tool to replace the Task manager.&lt;br /&gt;&lt;br /&gt;3)Copy/Paste and Screenshots&lt;br /&gt;&lt;br /&gt;WinXP doesn't keep an history of your cut and paste actions and this can result in a loss of data. &lt;a href="http://cliptray.f2o.org/"&gt;Cliptray &lt;/a&gt;is a freeware which solve this problem.&lt;br /&gt;&lt;br /&gt;Linux distros always come with handy screenshots utilities. Cliptray can also do it but I prefer to use &lt;a href="http://www.allthingsmarked.com/2006/11/09/howto-quickly-take-great-screenshots/"&gt;irfanview (tuto)&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;4)Security&lt;br /&gt;&lt;br /&gt;Microsoft OS is unfortunately a big target. Apart from an antivirus and a firewall I feel safer to use Firefox and this &lt;a href="https://addons.mozilla.org/firefox/3383/"&gt;KeyScrambler extension&lt;/a&gt; against eventual data loggers for login/passwords.&lt;br /&gt;&lt;br /&gt;5)Applications&lt;br /&gt;&lt;br /&gt;Software are not a problem since I'm using either web services (gmail, google reader,etc) and/or multi platform software (Vim,Python,OOo,Firefox,etc).&lt;br /&gt;&lt;br /&gt;Also to work with a Linux PC or server &lt;a href="http://www.chiark.greenend.org.uk/%7Esgtatham/putty/"&gt;Putty&lt;/a&gt; and &lt;a href="http://winscp.net/"&gt;WinSCP&lt;/a&gt; are a must.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-1041852292625407050?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/1041852292625407050/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=1041852292625407050' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/1041852292625407050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/1041852292625407050'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2006/12/how-to-switch-from-linux-to-windows.html' title='Switching from a Linux to a Windows Desktop'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-6073756475514138772</id><published>2006-12-24T13:35:00.000-08:00</published><updated>2006-12-24T14:02:51.143-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='utilities'/><title type='text'>[win] Visualize your Hard Drive and more</title><content type='html'>WinDirStat for windows is an excellent Free utility (GPL):&lt;br /&gt;&lt;br /&gt;- visualize disk usage per folder of per file types  &lt;br /&gt;- click on a box (file or folder) for properties, edition commands, contextual explorer or command prompt&lt;br /&gt;&lt;br /&gt;A really nice and useful tool to organize and know more about what's really on your Hard Drive.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://windirstat.info/"&gt;http://windirstat.info/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-6073756475514138772?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/6073756475514138772/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=6073756475514138772' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/6073756475514138772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/6073756475514138772'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2006/12/win-visualize-your-hard-drive-and-more.html' title='[win] Visualize your Hard Drive and more'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-3340386576917645450</id><published>2006-12-18T22:31:00.000-08:00</published><updated>2007-01-04T00:56:23.269-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>[Python]: Introspection with help()</title><content type='html'>An &lt;a href="http://www-128.ibm.com/developerworks/library/l-pyint.html"&gt;article &lt;/a&gt;on this subject&lt;br /&gt;&lt;br /&gt;Let's say for example I want to integrate a FTP client in my script and I don't want to lose time searching in books or on the web.&lt;br /&gt;&lt;br /&gt;Humm, I'm not sure which lib to use ?&lt;br /&gt;&lt;br /&gt;&gt;&gt;&gt; help('modules') #gives a list of all the modules&lt;br /&gt;&lt;br /&gt;Oh "ftblib" could be useful, lets check&lt;br /&gt;&lt;br /&gt;&gt;&gt;&gt; import ftplib&lt;br /&gt;&gt;&gt;&gt; help(ftplib) # gives a description of this module with the classes, etc.&lt;br /&gt;&lt;br /&gt;=&gt; the class "FTP" is what I need for the client part&lt;br /&gt;&lt;br /&gt;&gt;&gt;&gt; help(ftplib.FTP) # if I just want to see the description of the FTP class&lt;br /&gt;&lt;br /&gt;For more informations about 'help' just type help() at the Python prompt.&lt;br /&gt;&lt;br /&gt;Another way to find documentation if you are on-line is to use the &lt;a href="http://www.edgewall.org/python-sidebar/"&gt;Python Sidebar&lt;/a&gt; in Firefox.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-3340386576917645450?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/3340386576917645450/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=3340386576917645450' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/3340386576917645450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/3340386576917645450'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2006/12/python-introspection-tools.html' title='[Python]: Introspection with help()'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-5303256300562632453</id><published>2006-12-17T09:12:00.000-08:00</published><updated>2006-12-17T09:38:38.403-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wii'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><title type='text'>Wii remote : a powerful tool</title><content type='html'>Why &lt;a href="http://proam-revolution.blogspot.com/2006/12/wii-remote-revolution.html"&gt;the wii remote is cool.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Few tech links :&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://onakasuita.org/wii/index-e.html"&gt;Win remote (on Windows)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.forthewiin.org/"&gt;WMD an Open Source Driver for the remote on  Linux (written in Python)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.wiili.org/index.php/Wiili:About" title="Wiili:About"&gt; Wiili wiki, a Linux port for the Nintendo Wii&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.hiroaki.jp/2006/12/000433.html"&gt;Darwin remote (using the wii remote on Mac OS X)&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-5303256300562632453?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/5303256300562632453/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=5303256300562632453' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/5303256300562632453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/5303256300562632453'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2006/12/wii-remote-powerful-tool.html' title='Wii remote : a powerful tool'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-344629615395304586</id><published>2006-12-16T12:50:00.000-08:00</published><updated>2006-12-16T12:59:59.899-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>[Python] How-to: hide the source code when distributing a Python script ?</title><content type='html'>Create a .pyc file with your script:&lt;br /&gt;&lt;pre&gt;&gt;&gt;&gt; import py_compile&lt;br /&gt;&gt;&gt;&gt; py_compile.compile('myscript.py')&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div style="text-align: left;"&gt;This will produce myscript.pyc (c for compiled) that you can distribute instead of the .py (python will run the .pyc).&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-344629615395304586?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/344629615395304586/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=344629615395304586' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/344629615395304586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/344629615395304586'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2006/12/python-how-to-hide-source-code-when.html' title='[Python] How-to: hide the source code when distributing a Python script ?'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-1849380742252155834</id><published>2006-12-16T12:49:00.001-08:00</published><updated>2006-12-16T13:00:35.960-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>[Python] How-to: hide the console</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Solution 1 :&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Rename the .py file in .pyw (w for window)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution 2:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Use' pythonw' instead of Python to launch the script.&lt;br /&gt;&lt;br /&gt;This second solution is useful if you have a pyc file : create a shortcut and in it open the file with pythonw (the pyc file won't open a console)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-1849380742252155834?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/1849380742252155834/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=1849380742252155834' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/1849380742252155834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/1849380742252155834'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2006/12/python-how-to-hide-console.html' title='[Python] How-to: hide the console'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-6181204832177176170</id><published>2006-12-16T12:47:00.001-08:00</published><updated>2008-01-20T14:08:25.199-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>[Ubuntu] How-to boot windows by default</title><content type='html'>After a fresh Ubuntu install, on a Windows PC, the Grub boot loader put Linux as the default system.&lt;br /&gt;&lt;br /&gt;To change the default OS (Windows to boot first in our case):&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;edit the menu.lst file (in /boot/grub) with root rights.&lt;br /&gt;For example with the Vim editor in a shell:&lt;br /&gt;&lt;blockquote style="font-weight: bold;"&gt; sudo vim /boot/grub/menu.lst&lt;/blockquote&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;find and change "default 0" to "default X" where X is the "position" of the Windows OS in the list presented by Grub at boot time (count the "title"s/lines beginning with X=0 for the first line)&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-6181204832177176170?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/6181204832177176170/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=6181204832177176170' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/6181204832177176170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/6181204832177176170'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2006/12/how-to-boot-windows-by-default-with.html' title='[Ubuntu] How-to boot windows by default'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-3259822196863109919</id><published>2006-12-16T12:44:00.000-08:00</published><updated>2006-12-28T11:22:02.493-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Using Vim without the arrow keys</title><content type='html'>I've used a Linux laptop where the arrow keys don't behave as excepted in Vim and was then forced to learn the equivalent keys.&lt;br /&gt;&lt;br /&gt;h: a char back&lt;br /&gt;j: a line down&lt;br /&gt;k: a line up&lt;br /&gt;l: a char forward&lt;br /&gt;&lt;br /&gt;All this is accessible from the right hand and leave the left one free to reach the escape key to change mod.&lt;br /&gt;&lt;br /&gt;Handy, I begin to like it :)&lt;br /&gt;&lt;br /&gt;More informations &lt;a href="http://vimdoc.sourceforge.net/htmldoc/usr_02.html#02.3"&gt;here &lt;/a&gt;and &lt;a href="http://vimdoc.sourceforge.net/htmldoc/usr_03.html"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;EDIT: &lt;br /&gt;Funny, I also discovered that the excellent &lt;a href="http://www.google.com/help/reader"&gt;Google Reader&lt;/a&gt; have j and k short-cuts to go down or up on the RSS list :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-3259822196863109919?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/3259822196863109919/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=3259822196863109919' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/3259822196863109919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/3259822196863109919'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2006/12/using-vim-without-arrow-keys.html' title='Using Vim without the arrow keys'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-168950792837215505</id><published>2006-12-16T12:22:00.001-08:00</published><updated>2007-12-23T04:57:33.711-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multimedia'/><category scheme='http://www.blogger.com/atom/ns#' term='command-line'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>[Win] Command line : recording a live video from a webcam or another video device</title><content type='html'>I use Microsoft  &lt;a href="http://www.microsoft.com/windows/windowsmedia/forpros/encoder/default.mspx"&gt;Windows Media Encoder 9 Series&lt;/a&gt;  which is free as in beer (I didn't  need  to download the free SDK).&lt;br /&gt;&lt;br /&gt;In "Program Files\Windows Media Components\Encoder" it installs in particular a script called WMCmd.vbs.&lt;br /&gt;&lt;br /&gt;You can run this script with cscript.exe which should already be in "Windows\system32" :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;cscript.exe WMCmd.vbs -adevice &lt;span style="color: rgb(255, 0, 0);"&gt;X&lt;/span&gt; -vdevice &lt;span style="color: rgb(255, 0, 0);"&gt;Y&lt;/span&gt;  -output C:\test.wmv -duration &lt;span style="color: rgb(255, 0, 0);"&gt;Z&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;where,&lt;br /&gt;&lt;br /&gt;X= the number of the audio device (I used 1  in my case for my webcam)&lt;br /&gt;Y= the number of the video device (I also used 1 for my  webcam here)&lt;br /&gt;Z= the duration in seconds (you can always kill the process on the go if  the video is  shorter)&lt;br /&gt;&lt;br /&gt;For command-line options type "&lt;b&gt;cscript.exe wmcmd.vbs" &lt;/b&gt;in the shell.&lt;br /&gt;&lt;br /&gt;If I want  the video to be shorter than the given duration and want to control this from a Python script I  use the DOS &lt;a href="http://www.tech-recipes.com/windows_tips446.html"&gt;taskkill command&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;More informations also &lt;a href="http://www.microsoft.com/windows/windowsmedia/howto/articles/AutomatingEncoding.aspx"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-168950792837215505?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/168950792837215505/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=168950792837215505' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/168950792837215505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/168950792837215505'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2006/12/command-line-recording-live-video-from.html' title='[Win] Command line : recording a live video from a webcam or another video device'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-3089946704207331485</id><published>2006-12-07T22:31:00.000-08:00</published><updated>2006-12-16T12:53:19.152-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multimedia'/><category scheme='http://www.blogger.com/atom/ns#' term='command-line'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>[Win]  Video/Audio conversion with MMconvert</title><content type='html'>I'm searching for a tool to convert videos on Windows (in particular wmv)  in a more open format. I also need a command line control (for later Python scripting).&lt;br /&gt;&lt;br /&gt;A quick search on SourceForge brings me a first tool :  &lt;a href="http://sourceforge.net/projects/mmconvert/"&gt;MMconvert&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In its installation folder there are &lt;span style="font-weight: bold;"&gt;MMconvert.exe&lt;/span&gt; (for command line) and &lt;span style="font-weight: bold;"&gt;MMConvertGUI &lt;/span&gt;(with a GUI ...)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The GUI version:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;- choose the video  container in "Video Operations" (I have avi, wmv,mkv)&lt;br /&gt;- "add" one or more video to convert&lt;br /&gt;- select the video and audio codecs to use, "ok" -&gt; "execute"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Command line version:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Let say I want to convert my wmv into a matroska (mkv).&lt;br /&gt;&lt;br /&gt;First I check for the audio and video codecs that I have on my computer (and that I can use with this container):&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;MMconvert.exe /f:mkv /lv&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;MMconvert.exe /f:mkv /av&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;This commands gives a list of codecs I can use for the matroska container (just remember the associated number, X and Y in the following).&lt;br /&gt;&lt;br /&gt;To convert the video:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;MMconvert.exe if=test.wmv of=test.mkv /f:mkv /v:X /a:Y&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Memo:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="font-style: italic;"&gt;if= input file&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;of=output file&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;f=format (for the container: avi,wmv,mkv...)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;v=video&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;a=audio&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;To know more about the aguments : &lt;span style="font-weight: bold;"&gt;mmconvert.exe /?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It looks like a great tool but &lt;span&gt;I haven't found yet if I can hide the little "Status windows" in command-line mod. I don't see either if I can play with the bitrate&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-3089946704207331485?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/3089946704207331485/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=3089946704207331485' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/3089946704207331485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/3089946704207331485'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2006/12/im-searching-for-tool-to-convert-videos.html' title='[Win]  Video/Audio conversion with MMconvert'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2457676170019672871.post-74063924941618856</id><published>2006-12-05T12:25:00.000-08:00</published><updated>2007-12-26T02:56:50.249-08:00</updated><title type='text'>What is this ... "Blog" ??</title><content type='html'>This is more a 'Memo pad' about *technical* stuff than a Blog: I put here fragments of memories, recipes, links, ideas I want to explore, to do, etc.&lt;br /&gt;&lt;br /&gt;It's messy, possibly won't be useful to you,  but it helps the "externalization of my cognitive functions" (through the search function + permanent  web access). There is no password to keep my synaptic delay short ;)&lt;br /&gt;&lt;br /&gt;Everything here is in a 'draft'-state&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2457676170019672871-74063924941618856?l=techkr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techkr.blogspot.com/feeds/74063924941618856/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2457676170019672871&amp;postID=74063924941618856' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/74063924941618856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2457676170019672871/posts/default/74063924941618856'/><link rel='alternate' type='text/html' href='http://techkr.blogspot.com/2006/12/what-heck-is-this-blog.html' title='What is this ... &quot;Blog&quot; ??'/><author><name>notfrancois</name><uri>http://www.blogger.com/profile/09546077114542660075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_MPn28wmu9HU/TNKWJTQrMII/AAAAAAAAAgA/7P3FZnVdclA/S220/me.jpg'/></author><thr:total>0</thr:total></entry></feed>
