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

<channel>
	<title>Gaël Varoquaux</title>
	<atom:link href="http://gael-varoquaux.info/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://gael-varoquaux.info/blog</link>
	<description>Views on Python, Computational Science, ...</description>
	<pubDate>Sat, 04 Sep 2010 21:19:54 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Scikit Learn coding sprint</title>
		<link>http://gael-varoquaux.info/blog/?p=139</link>
		<comments>http://gael-varoquaux.info/blog/?p=139#comments</comments>
		<pubDate>Sat, 04 Sep 2010 16:43:28 +0000</pubDate>
		<dc:creator>gael</dc:creator>
		
		<category><![CDATA[python]]></category>

		<category><![CDATA[scientific computing]]></category>

		<guid isPermaLink="false">http://gael-varoquaux.info/blog/?p=139</guid>
		<description><![CDATA[We have been really crap at communicating the next scikit-learn coding sprint. It&#8217;s next week!
The coding sprint will take place the 8 and 9 September at INRIA Saclay, near Paris, in the room K110 (building K).
For those who cannot make it, it will be possible to participate using the IRC chan (#scikit-learn on irc.freenode.net).
We will [...]]]></description>
			<content:encoded><![CDATA[<p>We have been really crap at communicating the next <a href="http://scikit-learn.sourceforge.net/">scikit-learn</a> coding sprint. It&#8217;s next week!</p>
<p>The coding sprint will take place the 8 and 9 September at <a href="http://maps.google.fr/maps/place?oe=utf-8&#038;rls=com.mandriva:en-US:official&#038;client=firefox-a&#038;um=1&#038;ie=UTF-8&#038;q=inria+saclay&#038;fb=1&#038;gl=fr&#038;hq=inria&#038;hnear=Saclay&#038;cid=14838681423181723946">INRIA Saclay</a>, near Paris, in the room K110 (building K).</p>
<p>For those who cannot make it, it will be possible to participate using the IRC chan (#scikit-learn on irc.freenode.net).</p>
<p>We will start at 9am (Paris time), and a sketch of the planning can be found <a href="http://sourceforge.net/apps/trac/scikit-learn/wiki/SprintPlanning">here</a>. In particular:</p>
<ul>
<li>More docs! we still need tutorials: features selection, model selection, cross-validation, etc..</li>
<li>Make the <a href="http://github.com/scikit-learn/scikit-learn/blob/master/scikits/learn/pipeline.py">pipeline object</a> really work + illustration in different contexts.</li>
<li>Clean up and doc for bayesian approaches.</li>
<li>Implementation of PCA (fit + transform).</li>
<li>FastICA (adapt the <a href="http://github.com/GaelVaroquaux/canica/blob/master/canica/algorithms/fastica.py">CanICA</a> code)</li>
<li>LDA : Covariance estimators (Ledoit-Wolf) and add transform.</li>
<li><a href="http://github.com/scikit-learn/scikit-learn/blob/master/scikits/learn/preprocessing.py">Preprocessing routines</a> (center, standardize) with fit transform.</li>
<li>Anything that you have a particular interest in.</li>
</ul>
<p>Do not hesitate to send on the <a href="https://lists.sourceforge.net/lists/listinfo/scikit-learn-general">mailing list</a> some advices on this (incomplete&#8230;) list, and see you next week!</p>
<hr/>
<p><a href="http://scikit-learn.sourceforge.net/">scikit-learn</a> is a Python module for efficient and easy machine learning using scipy and numpy.</p>
]]></content:encoded>
			<wfw:commentRss>http://gael-varoquaux.info/blog/?feed=rss2&amp;p=139</wfw:commentRss>
		</item>
		<item>
		<title>SVG Word map of countries</title>
		<link>http://gael-varoquaux.info/blog/?p=138</link>
		<comments>http://gael-varoquaux.info/blog/?p=138#comments</comments>
		<pubDate>Tue, 24 Aug 2010 09:55:47 +0000</pubDate>
		<dc:creator>gael</dc:creator>
		
		<category><![CDATA[personnal]]></category>

		<category><![CDATA[python]]></category>

		<category><![CDATA[scientific computing]]></category>

		<category><![CDATA[travels]]></category>

		<guid isPermaLink="false">http://gael-varoquaux.info/blog/?p=138</guid>
		<description><![CDATA[
To be able to visualize some quantities attached to countries all over the world, I needed a image with various countries color-coded. The fantastic matplotlib basemap package was not an option as I really needed a static image.


So I generated an SVG image with all the countries. It was generating by tracing a bitmap, so [...]]]></description>
			<content:encoded><![CDATA[<p>
To be able to visualize some quantities attached to countries all over the world, I needed a image with various countries color-coded. The fantastic <a href="http://matplotlib.sourceforge.net/basemap/doc/html/">matplotlib basemap package</a> was not an option as I really needed a static image.
</p>
<p>
So I generated an SVG image with all the countries. It was generating by tracing a bitmap, so it has a lot of imperfections, but being an SVG with each (major) country as a different object, it can be used to create a colored-code world map. I am uploading it here under a public-domain license. Enjoy!
</p>
<p><a href="http://gael-varoquaux.info/blog/wp-content/uploads/2010/countries.svg"><br />
<img src="http://gael-varoquaux.info/blog/wp-content/uploads/2010/countries.png"><br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://gael-varoquaux.info/blog/?feed=rss2&amp;p=138</wfw:commentRss>
		</item>
		<item>
		<title>Git&#8230;</title>
		<link>http://gael-varoquaux.info/blog/?p=137</link>
		<comments>http://gael-varoquaux.info/blog/?p=137#comments</comments>
		<pubDate>Tue, 17 Aug 2010 22:08:26 +0000</pubDate>
		<dc:creator>gael</dc:creator>
		
		<category><![CDATA[python]]></category>

		<category><![CDATA[scientific computing]]></category>

		<guid isPermaLink="false">http://gael-varoquaux.info/blog/?p=137</guid>
		<description><![CDATA[No point me launching in a rant against Git, it&#8217;s the future anyhow&#8230; but it&#8217;s the only DVCS that I know with which I routinely loose work, and it is called a feature (I lost work a few times with bzr, but these were bugs)!
]]></description>
			<content:encoded><![CDATA[<p>No point me launching in a rant against Git, it&#8217;s the future anyhow&#8230; but it&#8217;s the only DVCS that I know with which I routinely loose work, and it is called a feature (I lost work a few times with bzr, but these were bugs)!</p>
]]></content:encoded>
			<wfw:commentRss>http://gael-varoquaux.info/blog/?feed=rss2&amp;p=137</wfw:commentRss>
		</item>
		<item>
		<title>Software design for maintainability</title>
		<link>http://gael-varoquaux.info/blog/?p=136</link>
		<comments>http://gael-varoquaux.info/blog/?p=136#comments</comments>
		<pubDate>Sun, 01 Aug 2010 22:47:19 +0000</pubDate>
		<dc:creator>gael</dc:creator>
		
		<category><![CDATA[mayavi]]></category>

		<category><![CDATA[python]]></category>

		<category><![CDATA[scientific computing]]></category>

		<guid isPermaLink="false">http://gael-varoquaux.info/blog/?p=136</guid>
		<description><![CDATA[I have just spent the best part of my Sunday fixing a bug that turned out being a seemingly-trivial two-liner. Such unpleasant experiences are all too frequent, and weight a lot on my view of code design.
My stance on code design

I call code design the process of designing the architecture of a piece of software: [...]]]></description>
			<content:encoded><![CDATA[<p>I have just spent the best part of my Sunday fixing a bug that turned out being a <a href="https://svn.enthought.com/enthought/changeset/25699/">seemingly-trivial two-liner</a>. Such unpleasant experiences are all too frequent, and weight a lot on my view of code design.</p>
<h2>My stance on code design</h2>
<p><img src="http://www.techpin.com/wp-content/uploads/2010/01/cool-car-drawing-5.jpg" alt="" width="240" align="right" /></p>
<p>I call <em>code design</em> the process of designing the architecture of a piece of software: what are the objects it uses? how do they interact? how is the information passed around?&#8230;</p>
<p>My view of code design and software engineering has progressively evolved to favor <strong>extreme simplicity</strong> over sophistication. I believe that a good programmer should know <a href="http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29">design patterns</a>, <a href="http://gael-varoquaux.info/computers/python_advanced/index.html">powerful language features</a>, <a href="http://scipy2010.blogspot.com/2010/06/tutorials-day-1-advanced-numpy.html">libraries dark corners</a>, and <em>not use them unless absolutely necessary</em>.</p>
<h2>Some rules of thumb</h2>
<p>Here are some rules that I apply nowadays when writing code that I would like to last (I am aware that some of them go against well-advertised best practices).</p>
<ul>
<li><strong>Keep it as simple a possible, really!</strong> Experimental results have shown that the tractability of a code base goes  down as the square of the number of interactions, and thus much quicker than the number of lines in a project. Each time you add a line, think about it: can you make simpler? If not you&#8217;ll have to find resources to maintain your project as fixing bugs or adding features will grow harder.</li>
<li><strong>Design for the 80% usecases.</strong> In the same vein, a small decrease in the requirements can make your project much simpler <a href="http://ieeexplore.ieee.org/Xplore/login.jsp?url=http%3A%2F%2Fieeexplore.ieee.org%2Fiel5%2F32%2F35909%2F01702600.pdf%3Farnumber%3D1702600&amp;authDecision=-203">[Woodfield1979]</a>. Corner cases and minor usecases should not make the whole project complex and hard to maintain. If you can, give up on what is bringing in complexity. If you cannot, isolate it, and don&#8217;t let it sit at the core of your design.</li>
<li><strong>Don&#8217;t design for the future.</strong> Again the same core idea: don&#8217;t start planing for all the usecases, and all the difficulties that you haven&#8217;t encountered, you will most certainly design wrong, and chances are that you&#8217;ll add complexity that you do not use. Design simple, design cleanly and refactor as you go, based on concrete problems.</li>
<li><strong>Don&#8217;t be clever.</strong> Each time you do a clever trick, whoever has to read and maintain this code will have to understand it (that person may be you, in a few years). Chances are that they&#8217;ll get it wrong and start by loosing a lot of time.</li>
<li><strong>Repeating yourself may actually be OK.</strong> This is a case of <em>practicality beats purity</em>. Repeating code is really a bad thing in software design, because it leads to an increased number of lines to debug, and tends to hinder reusability. However, adding complexity in order to save a few lines of duplicated code will cost you more in the long run.</li>
<li><strong>Use objects sparingly.</strong> Object are great, but are they always need? An object with a single method <em>eval</em> can probably simply be implemented by a function. The limitation of objects is that they all have a different behavior. As a result, the users and maintainers of your codebase will first have to understand how all your classes interact before understanding your code. This also means that there is a lot of benefit in making many different classes that have the same interface.</li>
<li><strong>Avoid abstractions and levels of indirection.</strong> The more levels of code piled on top one of the other, the more layers your maintainer is going to have to inspect to find were the bug might be. An abstraction hides another object or algorithm. To debug code, chances are that all the black boxes will first have to be opened.</li>
</ul>
<h2>Coding for others to debug</h2>
<p><img src="http://inhabitat.com/files/2010/01/auto-graveyard-1.jpg" alt="" width="400" align="right" /></p>
<blockquote><p>&#8220;Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.&#8221;   -  Brian W. Kernighan</p></blockquote>
<p>You may think that I am overemphasizing simplicity at the cost of functionality. Well, think about the future of your code. The net is full of unmaintained and abandoned code. If you want your project to grow and have a future, you will probably need people to help you. For a given purpose, the easiest the code is to read and debug, the more chances you will have to pick momentum.</p>
<hr />Some external references I like (about software engineering, rather than debugging):</p>
<ul>
<li>Titus Brown:  <a href="http://ivory.idyll.org/blog/sep-07/not-sucking-v2"> Writing (Python) Code that Doesn&#8217;t Suck</a></li>
<li>Peter Norvig: <a href="http://norvig.com/21-days.html"> Teach yourself programming in 10 years</a></li>
<li>Paul Stachour and David Collier-Brown: <a href="http://cacm.acm.org/magazines/2009/11/48444-you-dont-know-jack-about-software-maintenance/fulltext">You Don&#8217;t Know Jack About Software Maintenance</a></li>
<li>Greg Wilson: <a href="http://software-carpentry.org/">Software carpentry: a course in software engineering</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://gael-varoquaux.info/blog/?feed=rss2&amp;p=136</wfw:commentRss>
		</item>
		<item>
		<title>Sprint Scikit learn in Paris</title>
		<link>http://gael-varoquaux.info/blog/?p=135</link>
		<comments>http://gael-varoquaux.info/blog/?p=135#comments</comments>
		<pubDate>Fri, 23 Jul 2010 13:31:31 +0000</pubDate>
		<dc:creator>gael</dc:creator>
		
		<category><![CDATA[python]]></category>

		<category><![CDATA[scientific computing]]></category>

		<guid isPermaLink="false">http://gael-varoquaux.info/blog/?p=135</guid>
		<description><![CDATA[We are organizing a coding sprint in Paris on the scikit learn, machine learning in Python. The goal of this sprint is to set the API and the general coding guidelines of the scikit to be able to tackle many different statistical learning problems in a consistent framework.
This is why we would like to have [...]]]></description>
			<content:encoded><![CDATA[<p>We are organizing a coding sprint in Paris on the <a href="http://scikit-learn.sourceforge.net/">scikit learn</a>, <strong>machine learning in Python</strong>. The goal of this sprint is to set the API and the general coding guidelines of the scikit to be able to tackle many different statistical learning problems in a consistent framework.</p>
<p>This is why we would like to have people with different problems, applications, and backgrounds to pitch in.</p>
<p>It will be a two-days sprint. Everyone is welcome, so just fill in the <a href="http://www.doodle.com/4cqxnhuq5rr4qzn5">doodle</a>, so that we can choose the date?</p>
<p>And do not hesitate to suggest some topics that you would like to be addressed during the sprint, and to discuss them on the <a href="https://lists.sourceforge.net/lists/listinfo/scikit-learn-general">mailing-list</a>!</p>
<p><a href="http://parietal.saclay.inria.fr/Members/vincent-michel">Vincent Michel</a> is organizing the sprint. If you have questions about the sprint, you are welcomed to contact me, but please do put him in Cc to.</p>
]]></content:encoded>
			<wfw:commentRss>http://gael-varoquaux.info/blog/?feed=rss2&amp;p=135</wfw:commentRss>
		</item>
		<item>
		<title>Simple object signatures</title>
		<link>http://gael-varoquaux.info/blog/?p=134</link>
		<comments>http://gael-varoquaux.info/blog/?p=134#comments</comments>
		<pubDate>Fri, 16 Jul 2010 22:31:59 +0000</pubDate>
		<dc:creator>gael</dc:creator>
		
		<category><![CDATA[python]]></category>

		<category><![CDATA[scientific computing]]></category>

		<guid isPermaLink="false">http://gael-varoquaux.info/blog/?p=134</guid>
		<description><![CDATA[A signature pattern

There are many libraries around to specify what I call a &#8217;signature&#8217;  for an object, in other words a list of attributes that define its parameter set. I have heavily used Enthought&#8217;s Traits library for this purpose, but the concept is fairly general and can be found eg in ORMs (Object Relational [...]]]></description>
			<content:encoded><![CDATA[<h1>A <i>signature</i> pattern</h1>
<p>
There are many libraries around to specify what I call a <i>&#8217;signature&#8217;</i>  for an object, in other words a list of attributes that define its parameter set. I have heavily used <a href="http://code.enthought.com/projects/traits">Enthought&#8217;s Traits library</a> for this purpose, but the concept is fairly general and can be found <i>eg</i> in ORMs (Object Relational Mappers) or web frameworks.
</p>
<p>
Specification of this interface of parameters may be used to answer a variety of needs:</p>
<ul>
<li><strong>Typing</strong>: in the case of an ORM, to generate UIs, or for better error management, it may be desirable to have some control on the types of certain attributes of an object. In this case, specifying the signature corresponds to laying out a <strong>data model</strong> for the object.
</li>
<li><strong>Reactive programming</strong>: using properties to react to changes to attributes, one can fully specify the API of an object in terms of these attributes. This gives a message-passing like programming style that can be very well suited to parallel-computing in particular because it can easily be made thread-safe.
</li>
</ul>
<h1>Signatures for statistical learning objects</h1>
<p>Recently, I considered the <i>signature</i> pattern in a new context. In the <a href="http://scikit-learn.sourceforge.net/">scikit-learn</a>, we are interested in statistical learning. This entails fitting models to data and often tuning parameters to select a model that fits best (a problem called <i>model selection</i>). Each of our models is an object that implements a couple of key methods to fit to the data and to apply to new data (<i>fit</i> and <i>predict</i>).
</p>
<p>
The approach that we are currently taking for model selection is (more or less) to generate a list of models with different parameters and fit and  test them on the data.</p>
<p>A very nice feature would be to find out the parameters to vary simply by inspecting the objects, and such a desire recently got us  <a href="http://sourceforge.net/mailarchive/forum.php?thread_name=201007050958.16199.matthieu.perrot%40cea.fr&#038;forum_name=scikit-learn-general">discussing</a> of defining <i>signatures</i> for our objects. I must confess that I am a bit weary as this means either depending on a  signature library, or building one. We don&#8217;t want to grow our dependencies, and most signature-definition code that I know involve meta-programming tricks to avoid code duplication.
</p>
<h1>Solving the simple problem: avoiding type checking</h1>
<p>
Today, I had to bite the bullet, because we were in a situation in which we had to instantiate new models from the existing one during model selection. For technical reasons, using a <i>copy.copy</i> to create these new models was not a great idea, and it was better to have the minimal list of parameters required. Here come signatures again.
</p>
<p>
After a bit of messing around with the code, I realized that typing information was useless, and most probably harmful, to our immediate goals and that I just needed the names of the relevant attributes. I finally settled down to the following solution (which might still change):</p>
<ul>
<li>All parameters need to be specified as keyword arguments of the <i>__init__</i>. The <i>__init__</i> may not have positional arguments or &#8216;*&#8217; arguments. Attributes on the objects have the same names as the <i>__init__</i> parameters.
</li>
<li>A simple base class, with couple of methods relying on a simple use of the <i>inspect</i> module to find the signature of the <i>__init__</i>.
</li>
</ul>
<hr/>
<pre>
class BaseEstimator(object):
    @classmethod
    def _get_param_names(cls):
        args, varargs, kw, default = inspect.getargspec(cls.__init__)
        assert varargs is None, (
            'scikit learn estimators should always specify their '
            'parameters in the signature of their init (no varargs).'
            )
        # Remove 'self'
        args.pop(0)
        return args

    def _get_params(self):
        out = dict()
        for key in self._get_param_names():
            out[key] = getattr(self, key)
        return out

    def _set_params(self, **params):
        valid_params = self._get_param_names()
        for key, value in params.iteritems():
            assert key in valid_params, (&#8217;Invalid parameter %s &#8216;
                &#8216;for estimator %s&#8217; %
                (key, self.__class__.__name__))
            setattr(self, key, value)
</pre>
<p>
The full code can be seen <a href="http://gael-varoquaux.info/blog/wp-content/uploads/2010/base_estimator_py">here</a> and adds a bit more features, such as a clever <i>__repr__</i>.
</p>
<p>
What I like about this solution is that it (almost) does not use metaprograming, and avoids code duplication without forcing any specific pattern on the developer subclassing <i>BaseEstimator</i>.
</p>
<h1>The next step</h1>
<p>
This approach solves my immediate problem, but not the bigger one of finding what values can the different parameters take when varied for model selection. Of course this second problem is much more complicated, and maybe it is not worth solving it: the framework could very easily be bringing in more problems than it solves.
</p>
<p>
However, it seems that a fairly easy way of specifying possible values for parameters would be to decorate the <i>__init__</i>, giving the possible parameters to be tested during the model selection:
</p>
<pre>
    @cv_params(l1=np.logspace(1e-4, 1, 10))
    def __init__(self, l1=.5, fit_intercept=True)
	# ...
</pre>
<p>
All the decorator has to do is to store the information in an attribute attached to the <i>__init__</i> (and probably to check that the parameters it was given are valid arguments, in order to raise errors early). Methods on the class can later inspect this information for model selection, or GUI building (data-model specification will probably require some typing language, rather than a simple list of possible parameters).
</p>
<p>
Once again, here we would be avoiding the difficulty of specifying type information in a non restrictive way, but avoiding a problem that we don&#8217;t have to solve is probably a good idea.</p>
]]></content:encoded>
			<wfw:commentRss>http://gael-varoquaux.info/blog/?feed=rss2&amp;p=134</wfw:commentRss>
		</item>
		<item>
		<title>Euroscipy 2010: code, science, and a lot of fun</title>
		<link>http://gael-varoquaux.info/blog/?p=133</link>
		<comments>http://gael-varoquaux.info/blog/?p=133#comments</comments>
		<pubDate>Tue, 13 Jul 2010 16:31:40 +0000</pubDate>
		<dc:creator>gael</dc:creator>
		
		<category><![CDATA[python]]></category>

		<category><![CDATA[scientific computing]]></category>

		<guid isPermaLink="false">http://gael-varoquaux.info/blog/?p=133</guid>
		<description><![CDATA[Euroscipy 2010, the third European conference for the use of Python in science, is just over, and I think it was a great success.
Euroscipy in numbers

The attendance this year was huge: there was a grand total of 160 who came to EuroScipy, with 140 that came only to the tutorials, and 130 only the conference. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.euroscipy.org/conference/euroscipy2010">Euroscipy 2010</a>, the third European conference for the use of Python in science, is just over, and I think it was a great success.<br />
<h1>Euroscipy in numbers</h1>
<p><img src='http://farm5.static.flickr.com/4118/4779625445_0e783484cd_m_d.jpg' align='right'/></p>
<p>The attendance this year was huge: there was a grand total of 160 who came to EuroScipy, with 140 that came only to the tutorials, and 130 only the conference. This up by almost a factor of 3 compared to last year&#8217;s<br />
EuroScipy, more than last year&#8217;s SciPy conference in Passadena, and almost as much as this year&#8217;s SciPy conference in Austin that hosted 180 person. We had people coming from 16 country, and as far as New Zealand, the US, or Turkey. Research lab, education, and industry (small to large companies) were all well represented, with approximately a third of the delegates coming from the industry. Similarly, many different scientific field were discussed, ranging from landscape ecology to pure math.
</p>
<p>There were 2 tutorial tracks with 10 tutorial slots in each track. We had 2 keynotes from Hans Petter Langtangen and Konrad Hinsen. With regards to the contributed talks, the conference this year was highly selective. We received 52 propositions. We unfortunately could accept only 30 of them, which corresponds to an acceptance rate of 58%. Finally, we had 18 <a href="http://www.euroscipy.org/talk/937">lightning talks</a>.</p>
<h1>A warm and friendly atmosphere</h1>
<p><img src='http://farm5.static.flickr.com/4097/4774499149_5dda469dc2_m.jpg' align='right'/></p>
<p> As an organizer, I was really pleased to find out how much people were relaxed and friendly. This certainly facilitates discussions during the breaks. And the ambiance was undoubtedly warm: 140 people with laptops in a room without air conditioning in the Paris summer :). </p>
<p>Of course during the evenings, many people met to continue the passionate discussions in restaurants and bars.
</p>
<h1>Trends I noticed</h1>
<p>What one remembers from a conference is obviously biased by personal interests. With that disclaimer, here are the recurrent and important topics that I noticed, both in the talks, but also in the coffee break discussions:
<ul>
<li><strong>Parallel computing</strong>, in particular making it easy to do parallel computing.<br />
<a href="http://www.euroscipy.org/talk/2011">Konrad&#8217;s keynote</a> had many interesting directions to explore. (talks: <a href="http://www.euroscipy.org/talk/2009">Playdoh</a>, <a href="http://www.euroscipy.org/talk/1686">DANA</a>).
</li>
<li><strong>Code generation</strong>. In the various conferences I have been to recently, I heard much talking about symbolic manipulation of numerical problems to generate optimal computing kernels (talks: <a href="http://www.euroscipy.org/talk/1657">Efficient computation tutorial</a>,  <a href="http://www.euroscipy.org/talk/1666">Theano</a>, <a  href="http://www.euroscipy.org/talk/2045">Algorithmic Differentiation</a>.</li>
<li><strong>Data management</strong>, with problems such as provenance tracking for reproducibility (talks: <a href="http://www.euroscipy.org/talk/1960">Sumatra</a>, <a  href="http://www.euroscipy.org/talk/880">Knowledge management tutorial</a>).
</li>
</ul>
<p>Finally installation problems of scientific tools were the subject of many discussions, as each year. One thing that I did notice, is that people stopped simply blaming each others and acknowledged that nobody knew how to fix the problem. Somebody even pointed out that installing any major scientific code was not a piece of cake. Hans Petter and others said that they had solved the problem by relying on a virtual machine and Ubuntu.
</p>
<p>Konrad has also <a href="http://khinsen.wordpress.com/2010/07/12/euroscipy-2010/">blogged</a>, giving his own view of the conference.</p>
<p><img src='http://farm5.static.flickr.com/4097/4778812305_9217c5d3c2_m.jpg' align='right'/></p>
<h1>Thanks</h1>
<p>The conference could happen only because of the help of many people. First we need to thank our sponsors: <a href="http://www.enthought.com">Enthought</a>, <a href="http://www.python-academy.com/">Python Academy</a>, <a href="http://www.pytables.org">Pytables</a>, and especially our host <a href="http://www.ens.fr">Ecole Normale Supérieure</a>, which not only provided us with the rooms, but also made sure that everything was going well with the sound system, the projection, or the access to the building. With regards to organization and planing, Nicolas and I received a lot of help from <a href="http://www.saint-gobain-recherche.com/svi/en/emmanuelle_gouillart.html"> Emmanuelle Gouillart</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://gael-varoquaux.info/blog/?feed=rss2&amp;p=133</wfw:commentRss>
		</item>
		<item>
		<title>EuroScipy abstract submission deadline extended</title>
		<link>http://gael-varoquaux.info/blog/?p=132</link>
		<comments>http://gael-varoquaux.info/blog/?p=132#comments</comments>
		<pubDate>Sat, 15 May 2010 22:36:36 +0000</pubDate>
		<dc:creator>gael</dc:creator>
		
		<category><![CDATA[python]]></category>

		<category><![CDATA[scientific computing]]></category>

		<guid isPermaLink="false">http://gael-varoquaux.info/blog/?p=132</guid>
		<description><![CDATA[
Given that we have been able to turn on registration only very late, the EuroScipy conference committee is extending the deadline for abstract submission for the 2010 EuroScipy conference.


On Thursday May 20th, at midnight Samoa time, we will turn off the abstract submission on the conference site. Up to then, you can modify the already-submitted [...]]]></description>
			<content:encoded><![CDATA[<p>
Given that we have been able to turn on registration only very late, the <a href='http://www.euroscipy.org'>EuroScipy</a> conference committee is extending the deadline for abstract submission for the 2010 EuroScipy conference.
</p>
<p>
On Thursday May 20th, at midnight Samoa time, we will turn off the abstract submission on the conference site. Up to then, you can modify the already-submitted abstract, or submit new abstracts.
</p>
<p>
We are very much looking forward to your submissions to the conference.
</p>
<p>
Gaël Varoquaux<br />
Nicolas Chauvat
</p>
<hr/>
<p>EuroScipy 2010 is the annual European conference for scientists using Python. It will be held July 8-11 2010, in ENS, Paris, France.<br />
<strong> Links: <a href='http://www.euroscipy.org/conference/euroscipy2010'>Conference website</a>,&nbsp; <a href='http://www.euroscipy.org/card/euroscipy2010_call_for_papers'>Call for papers</a>,&nbsp; <a href='http://www.euroscipy.org/card/euroscipy2010_practical_information'>Practical information</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://gael-varoquaux.info/blog/?feed=rss2&amp;p=132</wfw:commentRss>
		</item>
		<item>
		<title>EuroScipy is finally open for registration</title>
		<link>http://gael-varoquaux.info/blog/?p=131</link>
		<comments>http://gael-varoquaux.info/blog/?p=131#comments</comments>
		<pubDate>Thu, 13 May 2010 12:23:50 +0000</pubDate>
		<dc:creator>gael</dc:creator>
		
		<category><![CDATA[python]]></category>

		<category><![CDATA[scientific computing]]></category>

		<guid isPermaLink="false">http://gael-varoquaux.info/blog/?p=131</guid>
		<description><![CDATA[
The registration for EuroScipy is finally open.
To register, go to the website, create an account, and you will see a &#8216;register to the conference&#8217; button on the left. Follow it to a page which presents a &#8217;shoping cart&#8217;. Simply submitting this information registers you to the conference, and on the left of the website, the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://gael-varoquaux.info/blog/wp-content/uploads/2010/poster_euroscipy_2010.pdf"><img align='right' width='25%' src='http://gael-varoquaux.info/blog/wp-content/uploads/2010/poster_euroscipy_2010.jpg'></a></p>
<h1>The registration for <a href='http://www.euroscipy.org//conference/euroscipy2010'>EuroScipy</a> is finally open.</h1>
<p>To register, go to the <a href='http://www.euroscipy.org//conference/euroscipy2010'>website</a>, create an account, and you will see a <em>&#8216;register to the conference&#8217;</em> button on the left. Follow it to a page which presents a <em>&#8217;shoping cart&#8217;</em>. Simply submitting this information registers you to the conference, and on the left of the website, the button will now display <em>&#8216;You are registered for the conference&#8217;</em>.</p>
<p>The registration fee is 50 euros for the conference, and 50 euros for the tutorial. Right now there is no payment system: you will be contacted later (in a week) with instructions for paying.
</p>
<p> We apologize for such a late set up. We do realize this has come as an inconvenience to people.
</p>
<p><strong>Do not wait to register: the number of people we can host is limited.</strong></p>
<h1>An exciting program</h1>
<p><h2>Tutorials: from beginners to experts</h2>
<p>We have two tutorial tracks:</p>
<ul>
<li><a href="http://www.euroscipy.org/track/871"><strong>Introductory tutorial</strong></a>: to get you to speed on scientific programming with Python.</li>
<li><a href="http://www.euroscipy.org/track/872"><strong>Advanced tutorial</strong></a>: experts sharing their knowledge on specific techniques and libraries.</li>
<p>We are very fortunate to have a top notch set of presenters.</p>
</ul>
<h2>Scientific track: doing new science in Python</h2>
<p>Although the abstract submission is not yet over, I can say that we are going to have a rich set of talks, looking at the current submissions. In addition to the contributed talks, we have:</p>
<ul>
<li><a href="http://www.euroscipy.org/conference/euroscipy2010"><strong>Keynote speakers</strong></a>: Hans Petter Langtangen and Konrard Hinsen, two major player of scientific computing in Python.</li>
<li><a href="http://www.euroscipy.org/talk/937"><strong>Lightning talks</strong></a>: one hour will be open for people to come up and present in a flash an interesting project.</li>
</ul>
<h2>Publishing papers</h2>
<p>We are talking with the editors of a major scientific computing journal, and the odds are quite high that we will be able to publish a special issue on scientific computing in Python based on the proceedings of the conference. The papers will undergo peer-review independently from the conference, to ensure high quality of the final publication.
</p>
<h1>Call for papers</h1>
<p>Abstract submission is still open, though not for long. We are soliciting contributions on scientific libraries and tools developed with Python and on scientific or engineering achievements using Python. These include applications, teaching, future development directions, and current research. See the <a href="http://www.euroscipy.org/card/euroscipy2010_call_for_papers">call for papers</a>.</p>
<p><hl/></p>
<p><large><strong>I am very much looking forward to passionate discussions about Python in science in Paris</strong></large></p>
]]></content:encoded>
			<wfw:commentRss>http://gael-varoquaux.info/blog/?feed=rss2&amp;p=131</wfw:commentRss>
		</item>
		<item>
		<title>Status of the EuroScipy registration</title>
		<link>http://gael-varoquaux.info/blog/?p=130</link>
		<comments>http://gael-varoquaux.info/blog/?p=130#comments</comments>
		<pubDate>Sun, 02 May 2010 21:57:39 +0000</pubDate>
		<dc:creator>gael</dc:creator>
		
		<category><![CDATA[python]]></category>

		<category><![CDATA[scientific computing]]></category>

		<guid isPermaLink="false">http://gael-varoquaux.info/blog/?p=130</guid>
		<description><![CDATA[It is still not possible to register for the Euroscipy conference: we are having difficulties with payment for the registration, and we are still not sure that we will be able to actually charge money!
This might not be a bad news, because it might mean that the conference will be completely free. This would mean [...]]]></description>
			<content:encoded><![CDATA[<p>It is still not possible to register for the <a href="http://www.euroscipy.org/conference/euroscipy2010">Euroscipy conference</a>: we are having difficulties with payment for the registration, and we are still not sure that we will be able to actually charge money!</p>
<p>This might not be a bad news, because it might mean that the conference will be completely free. This would mean that we would be able to provide lunch which is a pity as there is nothing like eating with a bunch of passionate experts to learn new tricks, but it would not hamper the conference in any other way, as the rooms are already booked and various little expenses covered.</p>
<p>If we manage to sort out payments in the next weeks, the fee should be 50 euros for the 2 days of tutorial, and between 50 and 100 euros for the full conference, depending on exactly what catering we offer.</p>
<p>Anyhow, we should open the registration real-soon, with or without payment. We will need to have some formal registration, as the number of people that can fit in the rooms will be limited.</p>
<p>All in all, with or without registration fees, it should be possible to make it to Euroscipy keeping expenses low: we have indicated a few cheap accommodation  on the <a href="http://www.euroscipy.org/card/euroscipy2010_practical_information">practical details page</a>, and it is easy to get good food for a good price in the area.</p>
<hr />I am very excited about this conference. We have two keynotes that I am really looking forward to hearing, and I can say that we have been getting pretty good submissions for presentations. Also, changes are that we should be able to publish proceedings in a peer-reviewed journal, although I can&#8217;t say more about that right now.</p>
<p>Also, even if you are not interested in scientific research done using Python, the tutorials are a unique opportunity: we are having top-notch experts presenting with two tracks, <a href="http://www.euroscipy.org/track/871">one</a> to get beginners up to speed and efficient in a couple of days, and the <a href="http://www.euroscipy.org/track/872">other</a> for exploring advanced subjects. I know the speakers, and I can tell you that I won&#8217;t be talking in the corridor, but sitting with my laptop and listening to them. People pay large chunks of money for such training, usually.</p>
]]></content:encoded>
			<wfw:commentRss>http://gael-varoquaux.info/blog/?feed=rss2&amp;p=130</wfw:commentRss>
		</item>
	</channel>
</rss>
