<?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-6621654851452777487</id><updated>2011-11-30T11:04:34.526+01:00</updated><category term='Python'/><category term='design patterns'/><category term='Neuralensemble'/><category term='emacs'/><category term='biomachinelearning.net'/><category term='toolchain'/><category term='python tutorial'/><category term='neural simulation'/><category term='PyNN'/><category term='Tools for efficient scientific computing'/><category term='blog'/><category term='IDE'/><category term='publishing'/><category term='Teaching'/><category term='Lenovo T410s'/><category term='Netbeans'/><category term='jpydbg'/><category term='preprint servers'/><category term='honey bee'/><category term='NeuroTools'/><category term='blas/lapack'/><category term='plagiarism'/><category term='matlab licensing'/><category term='easy_install'/><category term='peer review'/><category term='author contribution'/><category term='Eclipse'/><category term='numpy/scipy'/><category term='trivia'/><category term='openSUSE 11.3'/><category term='open access'/><category term='testing'/><category term='life science'/><category term='Komodo'/><category term='Wordle'/><category term='openSUSE'/><category term='impact factor'/><category term='hardware'/><title type='text'>My brain extension</title><subtitle type='html'>The public notebook of a computational neuroscientist</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>mschmuker</name><uri>http://www.blogger.com/profile/17264084266583768199</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>34</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-4601666897102405899</id><published>2011-08-14T11:35:00.003+02:00</published><updated>2011-08-14T11:53:28.648+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trivia'/><category scheme='http://www.blogger.com/atom/ns#' term='life science'/><title type='text'>Interview on Sciple.org</title><content type='html'>&lt;a href="http://sciple.org"&gt;Sciple.org&lt;/a&gt; has published an &lt;a href="http://sciple.org/955"&gt;interview&lt;/a&gt; with me. Sciple.org is a relatively new platform which is about people in science, with a special focus on young scientists. It also has a "Future" section with interesting graphs... still growing, but interesting to watch anyhow. That part reminded me a bit of &lt;a href="http://seedmagazine.com/"&gt;Seed Magazine&lt;/a&gt;, a magazine about science culture, the print version of which I subscribed to some time ago and which I enjoyed quite a lot. I still read their &lt;a href="http://seedmagazine.com/feeds/RSS/"&gt;RSS feed&lt;/a&gt; occasionally.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-4601666897102405899?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/4601666897102405899/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=4601666897102405899' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/4601666897102405899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/4601666897102405899'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2011/08/interview-on-scipleorg.html' title='Interview on Sciple.org'/><author><name>mschmuker</name><uri>http://www.blogger.com/profile/17264084266583768199</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-4112577663406504249</id><published>2011-07-07T11:38:00.005+02:00</published><updated>2011-07-07T11:56:23.262+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools for efficient scientific computing'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='matlab licensing'/><title type='text'>AAAARRRRRRGH!! Matlab!!</title><content type='html'>Happy Matlab licensing trouble - yay!&lt;br /&gt;&lt;br /&gt;We have 5 Matlab licenses in our lab. Originally, we bought them as "Concurrent licenses", that is, Matlab allowed us to have 5 instances of Matlab running in parallel, regardless which computer they are running on. At some point, Mathworks somehow transformed these licenses into "Designated Computer" licenses, that is, each license must be associated with a designated computer and will only run on that machine. Although this was an obviously bad deal, we didn't care too much about that change back then, since we were busy doing more important stuff than caring about licensing issues. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyway, Matlab is a dying species in our lab since most of us are using Python for scientific computing, except for a few legacy scripts. But every now and then, I need to run one of those legacy scripts.&lt;br /&gt;&lt;br /&gt;I do much development on my laptop, but for numbercrunching I use our compute server. Hence, I need my computing environment on both machines, although not necessarily at the same time. I had one of these designated computer licenses, and thanks to Mathworks' provident care, I was able to deactivate and reactivate them over the web when switching between computers. So I changed the designated computer a few times between those machines. Today I wanted to change again, but Mathworks wouldn't let me:&lt;br /&gt;&lt;br /&gt;"No more machine transfers available for this license."&lt;br /&gt;&lt;br /&gt;WTF?&lt;br /&gt;&lt;br /&gt;OK, you're forcing me to port even my old scripts to python. Pity you. I spent already too much time struggling with licensing issues - time which I would much more like to spend on research. Goodbye Matlab.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-4112577663406504249?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/4112577663406504249/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=4112577663406504249' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/4112577663406504249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/4112577663406504249'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2011/07/aaaarrrrrrgh-matlab.html' title='AAAARRRRRRGH!! Matlab!!'/><author><name>mschmuker</name><uri>http://www.blogger.com/profile/17264084266583768199</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-67465275658966814</id><published>2011-07-01T15:24:00.007+02:00</published><updated>2011-07-26T17:55:06.773+02:00</updated><title type='text'>Using Python decorators to work around version incompatibilities</title><content type='html'>I'm using &lt;a href="http://neuralensemble.org/trac/PyNN"&gt;PyNN&lt;/a&gt; to simulate networks of spiking neurons. PyNN ist a "metasimulator" than can operate with several simulator backends, such as &lt;a href="http://nest-initiative.org/"&gt;NEST&lt;/a&gt;, &lt;a href="http://www.neuron.yale.edu/"&gt;NEURON&lt;/a&gt;, or several others. The cool thing is that PyNN also has a backend for the &lt;a href="http://facets.kip.uni-heidelberg.de/public/goals/hard.html"&gt;FACETS hardware&lt;/a&gt;, which I'm using in a project. I can prototype the simulation in the simulator, and run it on the hardware afterwards, without changing my simulation script.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In theory.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In practice, things are a bit different. The hardware interface works with PyNN version 0.6, but PyNN has progressed towards 0.7 already. The current version of NEST works only with the current development version (0.7+, that is). This caused some headache for me and others developing for the hardware. &lt;b&gt;Update:&lt;/b&gt; Some people wondered and asked me why I wouldn't simply use the old version of NEST that works with 0.6. Well, I could, but actually, that version has other bugs which make this solution a no-go.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Fortunately, the API changes between PyNN 0.6 and 0.7 are not so extensive, so one can work around the differences with relatively little code. Still, one wants to have an elegant way of automatically detecting the PyNN version and using the appropriate code automatically.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://wiki.python.org/moin/PythonDecorators"&gt;Python decorators&lt;/a&gt; are particularly well suited for that purpose. Python decorators are functions or classes that return a function. Using a decorator, you can check for the PyNN version in the decorator function and return the appropriate function which does what you want in the current PyNN version. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Confused? OK, here's an example: Assume that I want to retrieve the IDs of all cells in a population. In PyNN 0.6 I must use&lt;br /&gt;&lt;pre class="brush: python"&gt;def get_population_ids_06(pop):&lt;br /&gt;return [id for id in pop.ids()]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;while in PyNN 0.7 I can use&lt;br /&gt;&lt;pre class="brush: python"&gt;def get_population_ids_07(pop):&lt;br /&gt;return [id for id in pop]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now I want to have my script automatically figure out which function to use based on the PyNN version which is used. And here comes the decorator into play:&lt;br /&gt;&lt;pre class="brush: python"&gt;def pynn_version_workaround(pop):&lt;br /&gt;if pynn_version.split(' ')[0] == "0.6.0":&lt;br /&gt; return get_population_ids_06&lt;br /&gt;else:&lt;br /&gt; return get_population_ids_07&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now I have simply to define a dummy function which is to be mangled through the decorator:&lt;br /&gt;&lt;pre class="brush: python"&gt;@pynn_version_workaround&lt;br /&gt;def get_population_ids(pop):&lt;br /&gt;pass&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;So, calling get_population_ids is actually first calling pynn_version_workaround, which determines the pyNN version and returns the appropriate function, which is then called with the provided arguments.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Nice, isn't it?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-67465275658966814?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/67465275658966814/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=67465275658966814' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/67465275658966814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/67465275658966814'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2011/07/using-python-decorators-to-work-around.html' title='Using Python decorators to work around version incompatibilities'/><author><name>mschmuker</name><uri>http://www.blogger.com/profile/17264084266583768199</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-4977025351065616710</id><published>2011-05-17T09:31:00.004+02:00</published><updated>2011-05-17T09:53:44.035+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='peer review'/><category scheme='http://www.blogger.com/atom/ns#' term='publishing'/><category scheme='http://www.blogger.com/atom/ns#' term='life science'/><title type='text'>Any jackass can trash a manuscript...</title><content type='html'>It seems I'm not the only one getting hilarious reviews from &lt;a href="http://mybrainextension.blogspot.com/2010/06/frustrated-by-peer-review.html"&gt;time to time&lt;/a&gt;. The &lt;a href="http://www.molbiolcell.org/"&gt;Journal of Molecular Biology of the Cell (MBoC)&lt;/a&gt; has published an editorial that speaks from my heart, titled &lt;a href="http://www.molbiolcell.org/cgi/doi/10.1091/mbc.E11-01-0002"&gt;"Any jackass can trash a manuscript, but it takes good scholarship to create one (how MBoC promotes civil and constructive peer review)"&lt;/a&gt;. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In my opinion, one of the most important points in the article is that the relentless bashing which has become a recurring feature of many reviews will, inevitably, hurt the entire research field, because it destroys the scientific community in that field. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As I said &lt;a href="http://mybrainextension.blogspot.com/2010/06/frustrated-by-peer-review.html"&gt;before&lt;/a&gt;, I think that an open peer review process with identifiable reviewers will foster constructive criticism in the reviews. The reviewers will become visible and their contribution to the community acknowledged. The whole process will become more transparent, which is a prerequisite for a functioning scientific community. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-4977025351065616710?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/4977025351065616710/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=4977025351065616710' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/4977025351065616710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/4977025351065616710'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2011/05/any-jackass-can-trash-manuscript.html' title='Any jackass can trash a manuscript...'/><author><name>mschmuker</name><uri>http://www.blogger.com/profile/17264084266583768199</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-3050690363753753240</id><published>2011-02-01T14:34:00.007+01:00</published><updated>2011-02-01T15:53:24.076+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='preprint servers'/><category scheme='http://www.blogger.com/atom/ns#' term='peer review'/><category scheme='http://www.blogger.com/atom/ns#' term='open access'/><category scheme='http://www.blogger.com/atom/ns#' term='publishing'/><category scheme='http://www.blogger.com/atom/ns#' term='life science'/><category scheme='http://www.blogger.com/atom/ns#' term='impact factor'/><title type='text'>SEED Magazine: The scientific paper is becoming obsolete</title><content type='html'>&lt;a href="http://seedmagazine.com/"&gt;SEED Magazine&lt;/a&gt;, a New York-based magazine on science culture, just published an interesting &lt;a href="http://seedmagazine.com/content/article/on_science_publishing/"&gt;article about how science publishing is about to be transformed by the internet&lt;/a&gt;. You might think that this is an old hat, and in fact the idea that the internet revolutionizes the way we publish and access scientific results is not new. Indeed, "the Internet" was "invented" by scientists to share knowledge. Yet still, subscription costs rise, although the price of knowledge dissemination via the internet is much cheaper than in printed media. The market has obviously failed. Access to scientific results has become expensive, so expensive that the main funders of science (tax payers) only rarely can access to the knowledge which is produced using their money. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;More importantly, limited access to scientific results directly harms scientific progress. It is not unusual that it takes about two years until a paper is published. By the time a scientific breakthrough is published, it often fails to make &lt;i&gt;real&lt;/i&gt; impact, apart from discouraging other labs to work in that direction. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The tools to overcome the limitations are all there: Scientific results can be published on preprint servers (like &lt;a href="http://arxiv.org/"&gt;arXiv&lt;/a&gt; or &lt;a href="http://precedings.nature.com/"&gt;Nature Precedings&lt;/a&gt;) right after writing them up. The stream of information coming out of those servers can be filtered by the scientific community by writing blog posts, or by commenting on the preprint servers directly. So why are these tools still so rarely used in life science?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The answer is simple: Lack of incentive. Writing blog posts does not extend my contract, papers on preprint servers do not increase my university budget (opposed to papers in high-impact journals), and often the possibility to publish in popular journals is compromised by publication on a preprint server. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, incentive will rise as more and more researchers get frustrated by the corporate science publishing machinery. As more and more university libraries drop out from subscriptions as publishers increase their fees, researchers focus on open access journals. As it is becoming more and more difficult to publish in high-ranking journals, researchers consider alternatives which enable them to spend more time on research and less on getting bashed in anonymous peer review. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For example, &lt;a href="http://plosone.org/"&gt;PLoS ONE&lt;/a&gt; is very successful with publishing papers reviewed for technical correctness, but leaving it to the reader to gauge it's scientific impact. Recently, even &lt;a href="http://nature.com/"&gt;Nature publishing group&lt;/a&gt; picked up the idea and started it's own version of PLoS ONE, &lt;a href="http://www.nature.com/srep/marketing/index.html"&gt;Scientific Reports&lt;/a&gt;. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;While these journals make it easier to publish one's findings, it is up to the researcher to &lt;i&gt;make an impact&lt;/i&gt; in terms of influencing the field. Doing good research takes you only half way. The other half consists of convincing other researchers about one's ideas. The great advantage is that this process takes place in public, while in anonymous peer review it is hidden from the largest part of the scientific community.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-3050690363753753240?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/3050690363753753240/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=3050690363753753240' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/3050690363753753240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/3050690363753753240'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2011/02/seed-magazine-scientific-paper-is.html' title='SEED Magazine: The scientific paper is becoming obsolete'/><author><name>mschmuker</name><uri>http://www.blogger.com/profile/17264084266583768199</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-6710918998485197485</id><published>2010-11-25T10:17:00.008+01:00</published><updated>2010-11-25T11:05:34.952+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Neuralensemble'/><category scheme='http://www.blogger.com/atom/ns#' term='neural simulation'/><category scheme='http://www.blogger.com/atom/ns#' term='numpy/scipy'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Towards fast scientific python</title><content type='html'>&lt;a href="http://python.org/"&gt;Python&lt;/a&gt; seems to come of age in its role as an universal language for scientific computing. It already has a good standing in the computational neuroscience community. The &lt;a href="http://neuralensemble.org/"&gt;Neural Ensemble project&lt;/a&gt; gathers some initiatives that use Python as the primary language for neuronal simulation and data analysis. Large simulator projects like &lt;a href="http://nest-initiative.org/"&gt;Nest&lt;/a&gt; and &lt;a href="http://www.neuron.yale.edu/"&gt;NEURON&lt;/a&gt; adopted Python as their primary command language already a few years ago. The core of those simulators is still written in C/C++, which delivers good performance, but leads to interfacing issues with the command language. Those issues can be addressed by clever software design, but a pure-python implementation of a simulator is much more convenient regarding maintainability and extendibility. The problem is, that pure Python will lag behind the speed of compiled languages like C/C++ by an order of magnitude.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The &lt;a href="http://briansimulator.org/"&gt;Brian simulator&lt;/a&gt; is designed to be a simulator written entirely in python. To cope with the speed of C/C++-based simulators, Brian can &lt;a href="http://www.briansimulator.org/2010/08/25/new-paper-on-code-generation/"&gt;generate compiled code from&lt;/a&gt; the python network model. This code can also be compiled for graphics processors (GPUs), which promise high speedups for computational problems that can be parallelized efficiently. The Brian developers describe how to do just that in their &lt;a href="http://www.briansimulator.org/2010/10/20/new-paper-on-vectorised-algorithms/"&gt;article on vectorized algorithms for neuronal simulations&lt;/a&gt;, which is one of my current favorite papers.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Today, and that was the initial motivation for this post, I came across the announcement for the new version of &lt;a href="http://pypi.python.org/pypi/Theano/0.3.0"&gt;Theano&lt;/a&gt;, a compiler for evaluation mathematical expressions on CPUs and GPUs. I haven't tried it out yet, but it looks definitely promising. But the really interesting fact is that there is vivid development toward making Python not only an ubiquitous language for scientific computing (a goal which has largely been achieved already), but also an alternative in terms of performance to established software packages. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Without licence fees, and fully open source.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-6710918998485197485?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/6710918998485197485/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=6710918998485197485' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/6710918998485197485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/6710918998485197485'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2010/11/towards-fast-scientific-python.html' title='Towards fast scientific python'/><author><name>mschmuker</name><uri>http://www.blogger.com/profile/17264084266583768199</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-6335899141501368562</id><published>2010-11-23T13:40:00.006+01:00</published><updated>2010-11-23T14:36:26.044+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='author contribution'/><category scheme='http://www.blogger.com/atom/ns#' term='publishing'/><category scheme='http://www.blogger.com/atom/ns#' term='life science'/><category scheme='http://www.blogger.com/atom/ns#' term='impact factor'/><title type='text'>PNAS Editorial: Impact Factor corrupts science</title><content type='html'>The (ab)use of the impact factor to evaluate the scientific merit of individuals corrupts the way how scientists publish their findings, say Eve Marder, Helmut Kettenmann and Sten Grillner in their recent &lt;a href="http://dx.doi.org/10.1073/pnas.1016516107"&gt;editorial to PNAS&lt;/a&gt;. Moreover, they state that the current practice to measure scientific achievement shifts the choice of research topic to potentially "great discoveries" (read: discoveries which will make it to &lt;i&gt;&lt;a href="http://www.nature.com/nature"&gt;Nature&lt;/a&gt;&lt;/i&gt;), although the most important findings in science were made serendipitously, and hence the eventual contribution to science could not be estimated beforehand. &lt;div&gt;&lt;br /&gt;&lt;div&gt;However, in my opinion, the impact factor is only the tip of the iceberg. Even worse is the implicit role of author sequence on a paper. In life sciences, the first author typically is the one who did the work, and the last author is the supervisor or lab head. All authors in between are perceived to be "minor contributors". Of course, this rule leads to all kinds of problems. Fierce battles are fought over author sequence, since for PhD students, only first-author papers count, while for group leaders last-author papers are vital to demonstrate their scientific contribution. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But there can only be one author first, and one author last. Of course, there are "equal contribution" asterisks all over the place, but are they actually been taken into account? After all, how much sense does it make to refer to the deprecated, intransparent and inflexible rule of author sequence to indicate contribution? For example, it is completely unclear how to handle interdisciplinary collaborations, which involve typically at least two PhD students and two group leaders. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A completely fair and unbiased way to state individual contributions to a scientific publication would be to &lt;b&gt;list the authors in alphabetical order and have an "Author contribution" section in the paper&lt;/b&gt;, where the individual contributions are described in detail. In fact, this is how many disciplines handle it, for example in social sciences. &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/6621654851452777487-6335899141501368562?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/6335899141501368562/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=6335899141501368562' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/6335899141501368562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/6335899141501368562'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2010/11/pnas-editorial-impact-factor-corrupts.html' title='PNAS Editorial: Impact Factor corrupts science'/><author><name>mschmuker</name><uri>http://www.blogger.com/profile/17264084266583768199</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-7326699254550529867</id><published>2010-08-04T17:10:00.005+02:00</published><updated>2010-08-04T17:43:44.274+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='honey bee'/><category scheme='http://www.blogger.com/atom/ns#' term='open access'/><category scheme='http://www.blogger.com/atom/ns#' term='publishing'/><category scheme='http://www.blogger.com/atom/ns#' term='life science'/><title type='text'>Paper on the honeybee brain atlas with 3D figures</title><content type='html'>Colleagues of mine published a &lt;a href="http://www.frontiersin.org/systems_neuroscience/10.3389/fnsys.2010.00030/abstract"&gt;paper on the three-dimensional atlas of the honeybee brain&lt;/a&gt;. This atlas is a collection of three-dimensional morphological data from honeybee neurons.&lt;br /&gt;&lt;br /&gt;The honeybee brain atlas was first published in 2005 in the form of a &lt;a href="http://www.ncbi.nlm.nih.gov/pubmed/16175557"&gt;conventional paper&lt;/a&gt;. It is extremely useful for research in a number of ways:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;For physiological recordings, the atlas helps you identify the neurons that you record from.&lt;/li&gt;&lt;li&gt;The atlas gives you a common frame of reference to compare morphological studies from different animals, experimenters or even different labs.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;It allows to put different neurons from different specimens in spatial relation, which is a prerequisite for reconstructing neuronal circuits in the honeybee brain.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The caveat is that in order to use the atlas, one needs the whole software stack on which it was developed. Only those who have seen it in action can really grasp its significance. In consequence, the atlas was always a bit of an insider's tip within the honeybee brain community.&lt;br /&gt;&lt;br /&gt;In their recent publication, Jürgen Rybak and coworkers made full use of the capabilities of the PDF format and published three-dimensional figures. The reader can interact with the atlas and rotate the brain for better overview, hide and show parts of the brain or even specific neurons. Now everyone can examine the bee brain in a way that was before only accessible to a small group of scientists. And since the paper is open access, you don't even have to pay for it.&lt;br /&gt;&lt;br /&gt;Thanks a lot for that great piece of science!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-7326699254550529867?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/7326699254550529867/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=7326699254550529867' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/7326699254550529867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/7326699254550529867'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2010/08/paper-on-honeybee-brain-atlas-with-3d.html' title='Paper on the honeybee brain atlas with 3D figures'/><author><name>schmuki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_XBOoergKVRE/R8AKZNToSgI/AAAAAAAAAVs/lFxzKqSt_c0/S220/SchreitenderMann-159.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-6425279899941629074</id><published>2010-06-17T10:10:00.006+02:00</published><updated>2011-03-29T16:49:30.656+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='preprint servers'/><category scheme='http://www.blogger.com/atom/ns#' term='peer review'/><category scheme='http://www.blogger.com/atom/ns#' term='publishing'/><category scheme='http://www.blogger.com/atom/ns#' term='life science'/><title type='text'>Preprint servers vs. anonymous peer review</title><content type='html'>Recently, I got a manuscript rejected. There's nothing wrong with that, I consider rejection as a part of the publication process. Or more precisely, as a stop on the way to the publication of a manuscript.&lt;br /&gt;&lt;br /&gt;But what really was annoying is that the reviewers did not even seem to read the manuscript until the end. They criticized the lack of a specific kind of information. But this information was explicitely elaborated upon in the discussion part. Even after pointing them to the exact paragraph where the information was given, they did not acknowledge it (let alone say whether this satisfies their criticism). And then it took them two months and several iterations back and forth to finally reach their conclusion to reject the article.&lt;br /&gt;&lt;br /&gt;This experience goes along with what I hear from colleagues, namely that they seem to get more and more rude reviews. Constructive criticism appears to be a rare good in neuroscience nowadays. In addition, it is not uncommon that it takes a year or longer from the initial submission to the final publication of the manuscript.&lt;br /&gt;&lt;br /&gt;One of my thoughts was that probably the concept of anonymous peer review poses a problem here. As the pressure to publish rises, so rises the number of journals. These journals require more reviewers, who get more papers to review. It becomes increasingly difficult to devote the necessary time and effort to judge a manuscript in its entirety. In addition, there is no way the reviewers' effort is honored when peer review is anonymous. Journals like the Frontiers in... series already act up by naming reviewers on the published manuscript, in order to get the reviewers' contributions noticed.&lt;div&gt;&lt;br /&gt;I would definitely welcome an open peer review process, where reviewers are named from the first revision on, and the reviews are made publicly accessible. Preprint servers like &lt;a href="http://arxiv.org/"&gt;ArXiv&lt;/a&gt; are pretty much what I'd like to have in neuroscience. You put your paper there, you get comments, you revise the manuscript, and at some point a journal or a conference will accept it. Your knowledge is accessible right from the first upload on the server. Efficient exchange of scientific results favors the rapid advancement of the field. Moreover, it is much less likely that you get scooped during the review process, since you can always document when you published the paper for the first time.&lt;br /&gt;&lt;br /&gt;I will evaluate possibilities for this kind of publication for the resubmission of my manuscript.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-6425279899941629074?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/6425279899941629074/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=6425279899941629074' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/6425279899941629074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/6425279899941629074'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2010/06/frustrated-by-peer-review.html' title='Preprint servers vs. anonymous peer review'/><author><name>schmuki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_XBOoergKVRE/R8AKZNToSgI/AAAAAAAAAVs/lFxzKqSt_c0/S220/SchreitenderMann-159.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-1542528904072637424</id><published>2010-06-16T12:44:00.001+02:00</published><updated>2010-11-25T10:58:25.754+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='openSUSE 11.3'/><title type='text'>One week with opensuse 11.3 Factory</title><content type='html'>Since my last post, I submitted &lt;a href="https://bugzilla.novell.com/show_bug.cgi?id=612117"&gt;a&lt;/a&gt; &lt;a href="https://bugzilla.novell.com/show_bug.cgi?id=612121"&gt;couple&lt;/a&gt; &lt;a href="https://bugzilla.novell.com/show_bug.cgi?id=612771"&gt;of&lt;/a&gt; &lt;a href="https://bugzilla.novell.com/show_bug.cgi?id=612829"&gt;bug&lt;/a&gt; &lt;a href="https://bugzilla.novell.com/show_bug.cgi?id=612834"&gt;reports&lt;/a&gt;. The &lt;a href="https://bugzilla.novell.com/show_bug.cgi?id=613165"&gt;most severe bug&lt;/a&gt; caused my external monitor to be unuseable on DVI. It turned out that my monitor is providing faulty EDID data, which confused the graphics driver. But Stefan Dirsch of novell pointed out a &lt;a href="https://bugzilla.novell.com/show_bug.cgi?id=613165#c15"&gt;way to work around this&lt;/a&gt;. Cool.&lt;br /&gt;&lt;br /&gt;Apart from that I'm really surprised how stable and useable OpenSuse 11.3 is already. This is going to be a great release!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-1542528904072637424?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/1542528904072637424/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=1542528904072637424' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/1542528904072637424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/1542528904072637424'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2010/06/one-week-with-opensuse-113-factory.html' title='One week with opensuse 11.3 Factory'/><author><name>schmuki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_XBOoergKVRE/R8AKZNToSgI/AAAAAAAAAVs/lFxzKqSt_c0/S220/SchreitenderMann-159.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-6268431235139484775</id><published>2010-06-07T12:23:00.001+02:00</published><updated>2010-11-25T10:58:52.309+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='openSUSE'/><category scheme='http://www.blogger.com/atom/ns#' term='Lenovo T410s'/><title type='text'>Suse 11.3 M7 on Lenovo T410s</title><content type='html'>Today, I got my new shiny Lenovo T410s. First thing I did, throw that Windows 7 off the disk and install Linux! :)&lt;br /&gt;&lt;br /&gt;So I downloaded the current milestone 7 of opensuse 11.3. Install from DVD went smoothly, as was expected: I chose to use the entire Harddisk (which is not a disk but rather an SSD ;) ). No exotic software configuration was chosen, either, just plain KDE4 desktop.&lt;br /&gt;&lt;br /&gt;The only thing that crashed was firefox, but this is a &lt;a href="https://bugzilla.novell.com/show_bug.cgi?id=608087"&gt;known bug&lt;/a&gt;, with known remedy: update to the lates factory repository.&lt;br /&gt;&lt;br /&gt;Another &lt;a href="http://www.blogger.com/post-edit.g?blogID=6621654851452777487&amp;amp;postID=6268431235139484775"&gt;known bug with known workaround&lt;/a&gt; prevented me to have wifi out of the box. So installed the "Laptop" pattern, and the kernel-firmware package, and voila, wifi works. Like a charm.&lt;br /&gt;&lt;br /&gt;The integrated camera worked straight out of the box.&lt;br /&gt;&lt;br /&gt;The fingerprint reader seems not to work, as the proper driver is not included in openSUSE 11.3. More precisely, it is only in the current development version of libfprint that the driver is contained. But chances are that this version will become available for SUSE some time soon.&lt;br /&gt;&lt;br /&gt;Check also the &lt;a href="http://www.thinkwiki.org/wiki/Category:T410s"&gt;thinkwiki-page for the T410s&lt;/a&gt;, and the &lt;a href="http://www.thinkwiki.org/wiki/Installing_OpenSUSE_11.3_on_a_ThinkPad_T410s"&gt;installation instructions for SUSE&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-6268431235139484775?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/6268431235139484775/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=6268431235139484775' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/6268431235139484775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/6268431235139484775'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2010/06/suse-113-m7-on-lenovo-t410s.html' title='Suse 11.3 M7 on Lenovo T410s'/><author><name>schmuki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_XBOoergKVRE/R8AKZNToSgI/AAAAAAAAAVs/lFxzKqSt_c0/S220/SchreitenderMann-159.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-5516345318667964167</id><published>2009-03-18T20:55:00.001+01:00</published><updated>2010-11-25T11:07:29.552+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='honey bee'/><category scheme='http://www.blogger.com/atom/ns#' term='trivia'/><title type='text'>Honey bee dance roxor :P</title><content type='html'>Seems that honey bees are capable of so much more than just waggle dancing!&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/7m5vt07W2n4&amp;amp;hl=de&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/7m5vt07W2n4&amp;amp;hl=de&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://savethehoneybees.com/"&gt;link they show in the end&lt;/a&gt; goes to a site put up by a popular ice-cream manufacturer that is devoted to conserving the honey bees. Nice idea. And I feel even better now doing honey bee research! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-5516345318667964167?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/5516345318667964167/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=5516345318667964167' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/5516345318667964167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/5516345318667964167'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2009/03/honey-bee-dance-roxor-p.html' title='Honey bee dance roxor :P'/><author><name>schmuki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_XBOoergKVRE/R8AKZNToSgI/AAAAAAAAAVs/lFxzKqSt_c0/S220/SchreitenderMann-159.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-4065171390549665877</id><published>2009-02-20T10:15:00.001+01:00</published><updated>2010-11-25T11:06:56.569+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='trivia'/><title type='text'>Never shout at your hard disks...</title><content type='html'>...&lt;a href="http://blogs.sun.com/brendan/entry/unusual_disk_latency"&gt;you will only slow them down&lt;/a&gt; (via &lt;a href="http://www.gnome.org/~federico/news-2009-02.html"&gt;Federico Mena-Quintero&lt;/a&gt;). Amazing stuff. Funny analogy in regard to leadership principles: Never shout at your staff, you will not make them work faster!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-4065171390549665877?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/4065171390549665877/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=4065171390549665877' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/4065171390549665877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/4065171390549665877'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2009/02/never-shout-at-your-hard-disks.html' title='Never shout at your hard disks...'/><author><name>schmuki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_XBOoergKVRE/R8AKZNToSgI/AAAAAAAAAVs/lFxzKqSt_c0/S220/SchreitenderMann-159.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-3088259691169340740</id><published>2009-02-19T16:27:00.000+01:00</published><updated>2009-02-26T10:53:38.002+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='toolchain'/><category scheme='http://www.blogger.com/atom/ns#' term='easy_install'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Have your python toolchain in $HOME</title><content type='html'>In my &lt;a href="http://mybrainextension.blogspot.com/2009/02/installing-scipy-070-on-opensuse.html"&gt;previous post&lt;/a&gt; I explained how to install scipy from source on openSUSE. &lt;br /&gt;&lt;br /&gt;What makes it particularly nice is that I can now carry most of my toolchain in my $HOME. I make python include modules from within my $HOME by setting $PYTHONPATH to something like &lt;pre&gt;/home/micha/mypython/lib64/site-packages&lt;/pre&gt;. The good thing is that you can install any python package in your $HOME by using the --prefix option to setup.py: &lt;pre&gt;python setup.py install --prefix=$HOME/mypython&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;For even more python goodness I tell easy_install to put everything there by having a file called .pydistutils.cfg in my $HOME with the contents &lt;pre&gt;&lt;br /&gt;[install]&lt;br /&gt;prefix=/home/micha/mypython&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;So everytime I easy_install a package, it is automatically put into my $HOME directory. That makes it much easier to reinstall or upgrade the system. Since most python-related stuff is now in my $HOME and not in the system, rebuilding my python-toolchain basically consists of installing python and distutils. Isn't that great :)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt; I learnt from &lt;a href="http://rhodesmill.org/brandon/2009/emacs-python-virtualenv/"&gt;Brandon Rhodes&lt;/a&gt; that &lt;a href="http://pypi.python.org/pypi/virtualenv"&gt;virtualenv&lt;/a&gt; will set up everything for you automatically. Awesome python goodness.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-3088259691169340740?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/3088259691169340740/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=3088259691169340740' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/3088259691169340740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/3088259691169340740'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2009/02/have-your-python-toolchain-in-home.html' title='Have your python toolchain in $HOME'/><author><name>schmuki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_XBOoergKVRE/R8AKZNToSgI/AAAAAAAAAVs/lFxzKqSt_c0/S220/SchreitenderMann-159.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-1864198654145716419</id><published>2009-02-19T13:52:00.001+01:00</published><updated>2010-11-25T11:06:03.217+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='easy_install'/><category scheme='http://www.blogger.com/atom/ns#' term='numpy/scipy'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='blas/lapack'/><title type='text'>Installing scipy 0.7.0 on openSUSE</title><content type='html'>I had to rebuild parts of my toolchain because I messed up my OS and needed to reinstall. In the process of searching for nice numpy and scipy packages for openSuSE (which failed), I discovered that now its actually possible to do&lt;br /&gt;&lt;pre&gt;easy_install numpy&lt;br /&gt;easy_install scipy&lt;/pre&gt;&lt;br /&gt;(provided that you have the python-distutils package installed). That's great. But... it doesn't work! At least not on openSUSE. I could convince numpy to install somehow. I don't remember exactly, I think I at least needed to install gfortran, maybe also blas and lapack from the &lt;a href="http://download.opensuse.org/repositories/science:/ScientificLinux/"&gt;scientificlinux-repository&lt;/a&gt; in the build service.&lt;br /&gt;&lt;br /&gt;For scipy then it was a little bit more work. It kept complaining that it did not find BLAS and LAPACK, even though I edited numpy's site.cfg file so that it should be aware of the location of the shared libs.&lt;br /&gt;&lt;br /&gt;It turned out that to install scipy I had to:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt; Download &lt;a href="http://www.netlib.org/blas"&gt;BLAS&lt;/a&gt; sources and unpack them, e.g. to $HOME/Apps/BLAS&lt;br /&gt;&lt;/li&gt;&lt;li&gt; edit make.inc in that directory, changing the FORTRAN line to &lt;pre&gt;FORTRAN  = gfortran&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; build BLAS by calling make in the BLAS dir&lt;br /&gt;&lt;/li&gt;&lt;li&gt; DL and unpack &lt;a href="http://www.netlib.org/lapack"&gt;LAPACK&lt;/a&gt; to $HOME/Apps/lapack-3.2&lt;br /&gt;&lt;/li&gt;&lt;li&gt; edit make.inc.example in that dir, changing the BLASLIB line to &lt;pre&gt;BLASLIB = $(HOME)/Apps/BLAS/blas$(PLAT).a&lt;/pre&gt; and saving that file as make.inc&lt;br /&gt;&lt;/li&gt;&lt;li&gt; build LAPACK by typing make in the lapack dir.&lt;br /&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="https://sourceforge.net/project/showfiles.php?group_id=27747"&gt;Download scipy&lt;/a&gt;, unpack it and start the build process: &lt;pre&gt;python setup.py install&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;That takes quite a while. It seems it builds LAPACK and BLAS again, so maybe you don't have to build it first, but I guess you need at least to make the appropriate modifications to the respective make.inc files. Comments on that are welcome.&lt;br /&gt;&lt;br /&gt;But most important: it finally worked :)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt; At least I thought it worked. It didn't :D Problem was that import scipy produced a symbol not found error. Maybe adjusting ldconfig's path could fix this, but I don't have time to look into this. Installed numpy &amp;amp; scipy from the scientificLinux repo (link see above).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-1864198654145716419?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/1864198654145716419/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=1864198654145716419' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/1864198654145716419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/1864198654145716419'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2009/02/installing-scipy-070-on-opensuse.html' title='Installing scipy 0.7.0 on openSUSE'/><author><name>schmuki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_XBOoergKVRE/R8AKZNToSgI/AAAAAAAAAVs/lFxzKqSt_c0/S220/SchreitenderMann-159.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-8713558586264126465</id><published>2008-12-03T14:26:00.001+01:00</published><updated>2010-11-25T11:00:48.452+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IDE'/><category scheme='http://www.blogger.com/atom/ns#' term='Tools for efficient scientific computing'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='Netbeans'/><title type='text'>Netbeans + python = happy happy</title><content type='html'>&lt;a href="http://download.netbeans.org/netbeans/6.5/python/ea/"&gt;Netbeans is now available with python support&lt;/a&gt; as an early access (read: beta) build. Install went smoothly, it just updated my existing netbeans 6.5 install with the python capability. Hassle-free, netbeans-style. Great!&lt;br /&gt;&lt;br /&gt;At first glance python support looks great - I can create projects from existing sources, it allows code navigation by function names, and all that other netbeans goodness. During the next few days I'll give it a shot - I'm looking forward to finding out whether it beats Eric4...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-8713558586264126465?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/8713558586264126465/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=8713558586264126465' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/8713558586264126465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/8713558586264126465'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2008/12/netbeans-python-happy-happy.html' title='Netbeans + python = happy happy'/><author><name>schmuki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_XBOoergKVRE/R8AKZNToSgI/AAAAAAAAAVs/lFxzKqSt_c0/S220/SchreitenderMann-159.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-2315103193291869012</id><published>2008-11-06T19:30:00.000+01:00</published><updated>2008-11-06T20:16:20.130+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Teaching'/><category scheme='http://www.blogger.com/atom/ns#' term='plagiarism'/><title type='text'>Teaching for (no) fun</title><content type='html'>One of the nice parts about working at university is doing teaching. In my past experience teaching always was very rewarding, so I volunteered to tutor an undergrad course on the Hodgkin-Huxley cell model. I felt it would be a nice opportunity to drop out of the daily sitting-in-front-of-the-computer-the-entire-day routine, And as a side effect, it would revive my knowledge on Hodgkin-Huxley models. &lt;br /&gt;&lt;br /&gt;Well, it got me out of my routine, but it wasn't all sunshine. Granted, some students actually were highly motivated, and the course reports they turned in were carefully prepared. It was fun tutoring them. But others just didn't care. Some of their reports stated the name of last year's tutor - suggesting that they didn't even care to change that during copy-and-paste. &lt;br /&gt;&lt;br /&gt;Not that I care about plagiarized reports - I think a student at an university should be smart enough to figure out that they cut their own flesh when plagiarizing reports. But they also cheat on those who actually put some effort. And that's unfair. And it leaves a bad feeling for me as a teacher who volunteers  out of idealism. Spoiled my fun somehow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-2315103193291869012?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/2315103193291869012/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=2315103193291869012' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/2315103193291869012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/2315103193291869012'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2008/11/teaching-for-no-fun.html' title='Teaching for (no) fun'/><author><name>schmuki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_XBOoergKVRE/R8AKZNToSgI/AAAAAAAAAVs/lFxzKqSt_c0/S220/SchreitenderMann-159.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-4345726372086347506</id><published>2008-06-13T17:19:00.000+02:00</published><updated>2008-06-13T17:26:36.961+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wordle'/><title type='text'>Wordle the antennal lobe!</title><content type='html'>&lt;a href="http://nedbatchelder.com/blog/200806/wordle.html"&gt;Ned Batchelder&lt;/a&gt; posted the link to &lt;a href="http://wordle.net"&gt;Wordle&lt;/a&gt; on his blog. What a cool app! It creates word clouds from any piece of text you throw at it. I couldn't resist and had to produce a wordle of my &lt;a href="http://www.pnas.org/cgi/content/abstract/104/51/20285"&gt;2007 PNAS paper&lt;/a&gt;. Here it is:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wordle.net/gallery/virtual_antennal_lobe" title="Wordle: virtual antennal lobe"&gt;&lt;img src="http://wordle.net/thumb/virtual_antennal_lobe" style="padding:4px;border:1px solid #ddd" &gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;How cool is that :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-4345726372086347506?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/4345726372086347506/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=4345726372086347506' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/4345726372086347506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/4345726372086347506'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2008/06/wordle-antennal-lobe.html' title='Wordle the antennal lobe!'/><author><name>schmuki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_XBOoergKVRE/R8AKZNToSgI/AAAAAAAAAVs/lFxzKqSt_c0/S220/SchreitenderMann-159.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-4682245292710522186</id><published>2008-06-02T17:30:00.000+02:00</published><updated>2008-06-02T17:34:07.830+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Design patterns in python</title><content type='html'>Found a &lt;a href="http://www.protocolostomy.com/2008/06/02/couple-of-python-design-pattern-links/"&gt;blog post&lt;/a&gt; that summarizes several links on how to implement design patterns in python. Have to check it out once I finished my abstract for &lt;a href="http://2008.neurocomp.fr/index.php?page=call&amp;lang=en"&gt;Neurocomp '08&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-4682245292710522186?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/4682245292710522186/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=4682245292710522186' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/4682245292710522186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/4682245292710522186'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2008/06/design-patterns-in-python.html' title='Design patterns in python'/><author><name>schmuki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_XBOoergKVRE/R8AKZNToSgI/AAAAAAAAAVs/lFxzKqSt_c0/S220/SchreitenderMann-159.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-3279845126458015094</id><published>2008-05-22T00:10:00.000+02:00</published><updated>2008-05-22T00:23:46.404+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='biomachinelearning.net'/><title type='text'>biomachinelearning.net</title><content type='html'>&lt;p&gt;&lt;a href="http://biomachinelearning.net"&gt;The very first domain of my own!&lt;/a&gt; Feels exciting ;)&lt;/p&gt; &lt;p&gt;It came to me that my research always evolved around biology-inspired machine learning, so yesterday evening I decided to register the domain. &lt;/p&gt; &lt;p&gt;So far, it links to my &lt;a href="http://userpage.fu-berlin.de/~schmuker"&gt;home page at FU Berlin&lt;/a&gt;. In addition, I added 2 subdomains:&lt;br /&gt;&lt;a href="http://sommer.biomachinelearning.net"&gt;sommer.biomachinelearning.net&lt;/a&gt;, pointing to the SOMMER homepage at Uni Frankfurt, and&lt;br /&gt;&lt;a href="http://mybrainextension.biomachinelearning.net"&gt;mybrainextension.biomachinelearning.net&lt;/a&gt; pointing at this blog.&lt;/p&gt; &lt;p&gt; I want to use it as a platform for my research and other stuff related to biological approaches to machine learning. If you have something to contribute, drop a comment!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-3279845126458015094?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/3279845126458015094/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=3279845126458015094' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/3279845126458015094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/3279845126458015094'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2008/05/biomachinelearningnet.html' title='biomachinelearning.net'/><author><name>schmuki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_XBOoergKVRE/R8AKZNToSgI/AAAAAAAAAVs/lFxzKqSt_c0/S220/SchreitenderMann-159.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-4377800177970008078</id><published>2008-05-12T19:38:00.002+02:00</published><updated>2010-11-25T11:04:58.637+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='openSUSE'/><category scheme='http://www.blogger.com/atom/ns#' term='numpy/scipy'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>openSUSE 11.0 (and why I'll wait with the upgrade)</title><content type='html'>I tried Beta 1 and Beta 2 of the newest SUSE Release. Beta 1 was already very streamlined for a Beta, and Beta 2 put something on top.&lt;br /&gt;&lt;br /&gt;On the upside, the overall feel is very snappy and responsive. Suspend to disk and RAM is faster than ever on my Thinkpad T60, and the kernel supports more energy saving fanciness. They even polished KDE4 such that it can almost replace trusty KDE3. But, alas, only almost...&lt;br /&gt;On the downside, KDE4 has still some issues, like Drag-n-drop not yet working with files on the desktop. That's a minor issue, I know, but then again what's a full blown desktop environment for if you can't drag'n drop? But since they also ship KDE 3.5.9, this wouldn't keep me from upgrading.&lt;br /&gt;&lt;br /&gt;More important, I couldn't get my T60's WiFi to work; it's an Atheros 5418 which needs madwifi drivers from svn, and they don't seem to work with 11.0's NetworkManager. I didn't even dare to mention that on the 11.0 mailing list since I expect the answer would be something like "This Madwifi release is not part of the distribution, so we don't support it" (which has a point, I admit). In addition on the hardware side, the radeonHD driver that is used by default for my Mobility X1300 doesn't like compositing in KDE4.&lt;br /&gt;&lt;br /&gt;Finally, openSUSE still has no numpy/scipy in the standard repository, and the "science" repo which provided numpy and related stuff hasn't upgraded to 11.0 yet.&lt;br /&gt;Taken together, as much as I'm looking forward to using KDE 4 and saving battery with the modern kernel, as long as my WiFi's not working and numpy/scipy support is not there I'll have to force myself not to upgrade my system... and I already know that I'll have a hard time doing so, because  from what I have seen in the Betas, openSUSE 11.0 will kick ass :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-4377800177970008078?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/4377800177970008078/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=4377800177970008078' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/4377800177970008078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/4377800177970008078'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2008/05/opensuse-110-and-why-ill-wait-with.html' title='openSUSE 11.0 (and why I&apos;ll wait with the upgrade)'/><author><name>schmuki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_XBOoergKVRE/R8AKZNToSgI/AAAAAAAAAVs/lFxzKqSt_c0/S220/SchreitenderMann-159.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-2860628897553693742</id><published>2008-05-12T16:11:00.002+02:00</published><updated>2010-11-25T11:01:08.737+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IDE'/><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><category scheme='http://www.blogger.com/atom/ns#' term='Tools for efficient scientific computing'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>More Emacs + Python goodness</title><content type='html'>Ryan McGuire posted &lt;a href="http://www.enigmacurry.com/2008/05/09/emacs-as-a-powerful-python-ide/"&gt;ver informative entry&lt;/a&gt; on how to improve your emacs + Python experience. And then, he links to a &lt;a href="http://platypope.org/yada/emacs-demo/"&gt;cool screencast&lt;/a&gt; demonstrating Emacs's capabilities as an IDE. Nice!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-2860628897553693742?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/2860628897553693742/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=2860628897553693742' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/2860628897553693742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/2860628897553693742'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2008/05/more-emacs-python-goodness.html' title='More Emacs + Python goodness'/><author><name>schmuki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_XBOoergKVRE/R8AKZNToSgI/AAAAAAAAAVs/lFxzKqSt_c0/S220/SchreitenderMann-159.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-509875022154731591</id><published>2008-05-09T14:17:00.001+02:00</published><updated>2010-08-05T11:09:32.891+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IDE'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Python IDE summary</title><content type='html'>I'm still looking for the most comfortable way to edit python source. At the moment I use Emacs &amp;amp; Rope, which works well. But still, it doesn't come close to what Netbeans provides for Java editing. In particular, I miss universal code completion, readily available documentation (think tooltips) and quick code navigation.&lt;br /&gt;&lt;br /&gt;Fortunately I'm not the only one searching for a better way to edit python. &lt;a href="http://spyced.blogspot.com/"&gt;Jonathan Ellis&lt;/a&gt; &lt;a href="http://spyced.blogspot.com/2008/05/ide-update.html"&gt;summarized&lt;/a&gt; an "IDE smackdown" by a LUG that has some interesting points. Nice!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-509875022154731591?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/509875022154731591/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=509875022154731591' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/509875022154731591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/509875022154731591'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2008/05/python-ide-summary.html' title='Python IDE summary'/><author><name>schmuki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_XBOoergKVRE/R8AKZNToSgI/AAAAAAAAAVs/lFxzKqSt_c0/S220/SchreitenderMann-159.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-7152136109368008457</id><published>2008-05-09T14:07:00.001+02:00</published><updated>2010-08-05T11:09:44.479+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IDE'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Python + IDE smackdown</title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-7152136109368008457?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/7152136109368008457/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=7152136109368008457' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/7152136109368008457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/7152136109368008457'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2008/05/python-ide-smackdown.html' title='Python + IDE smackdown'/><author><name>schmuki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_XBOoergKVRE/R8AKZNToSgI/AAAAAAAAAVs/lFxzKqSt_c0/S220/SchreitenderMann-159.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-4413906008986310493</id><published>2008-04-07T17:17:00.001+02:00</published><updated>2010-11-25T11:08:11.031+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IDE'/><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Python + Emacs, contd.</title><content type='html'>&lt;p&gt;On my neverending voyage towards the ultimate python IDE I stumbled across another nice tool: &lt;a href="http://rope.sourceforge.net/ropemacs.html"&gt;ropemacs&lt;/a&gt;! Ropemacs is an emacs binding to the &lt;a href="http://rope.sf.net/"&gt;rope&lt;/a&gt; library for refactoring python code. It also uses &lt;a href="http://pymacs.progiciels-bpi.ca/pymacs.html"&gt;Pymacs&lt;/a&gt;, which aims towards employing Python as an extension language for emacs.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Installing Pymacs, rope, and ropemacs was fairly easy thanks to the excellent installation instructions - Kudos to the developers of rope and Pymacs! Good instructions are not a common thing for emacs extensions, it seems. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;I think ropemacs will accompany my journey for the next few thousand lines of code, and we'll see how well we get along... I'll keep you posted! :) &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-4413906008986310493?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/4413906008986310493/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=4413906008986310493' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/4413906008986310493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/4413906008986310493'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2008/04/python-emacs-contd.html' title='Python + Emacs, contd.'/><author><name>schmuki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_XBOoergKVRE/R8AKZNToSgI/AAAAAAAAAVs/lFxzKqSt_c0/S220/SchreitenderMann-159.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-741930433430169123</id><published>2008-03-19T10:41:00.000+01:00</published><updated>2008-04-07T17:17:28.709+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>7 reasons why test-driven development rocks</title><content type='html'>Did I ever mention that test-driven development rocks? No? Well, it sure does :)&lt;br /&gt;Here are my top 7 reasons:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Know when you're done.&lt;/b&gt; Back when I didn't have tests prior to implementing functions I never was sure when the implementation was actually done. There was always this unspecific feeling of having forgotton something... &lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Reward.&lt;/b&gt; Everytime a test passes, I get this satifying feeling of having accomplished something :)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Efficiency.&lt;/b&gt; Writing tests forces me to think about solutions instead of thinking about problems.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Better software design.&lt;/b&gt; Writing tests before implementing the actual method forces me to think about what exactly I expect the method to do. Methods that are awkward to test are awkward to use, and require redesign.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Refactoring.&lt;/b&gt; You simply cannot refactor your code without having tests in place. But if you have tests, refactoring is a breeze.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Confidence.&lt;/b&gt; Having tests in place makes me confident that my code does what I want it to do. Well, most of the time... But when I encounter a bug I add another test and regressions won't hurt me.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Example code.&lt;/b&gt; Test functions are concrete examples how to use a given function in my code. &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;I would have liked to have 10 top reasons, but couldn't figure out the remaining three... If you have one, please comment!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-741930433430169123?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/741930433430169123/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=741930433430169123' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/741930433430169123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/741930433430169123'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2008/03/7-reasons-why-test-driven-development.html' title='7 reasons why test-driven development rocks'/><author><name>schmuki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_XBOoergKVRE/R8AKZNToSgI/AAAAAAAAAVs/lFxzKqSt_c0/S220/SchreitenderMann-159.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-3168289443435995751</id><published>2008-03-13T11:10:00.001+01:00</published><updated>2010-11-25T11:02:40.083+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PyNN'/><category scheme='http://www.blogger.com/atom/ns#' term='NeuroTools'/><category scheme='http://www.blogger.com/atom/ns#' term='Neuralensemble'/><category scheme='http://www.blogger.com/atom/ns#' term='Tools for efficient scientific computing'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Neural Ensemble</title><content type='html'>The &lt;a href="http://www.neuralensemble.org/"&gt;Neuralensemble&lt;/a&gt; project brings together several efforts to make simulations of neurons easier. Currently, I spend most of my time working with the tools they created. Since a few days I have an account on their TRAC server, so I thought this is a good time to blog about it.&lt;br /&gt;&lt;br /&gt;The project which got me into neuralensemble is &lt;a href="http://neuralensemble.org/trac/PyNN"&gt;PyNN &lt;/a&gt;, which provides a unified front end to several widely used neural simulators, e.g. NEURON, NEST and PCSIM. PyNN greatly facilitates setting up neural networks, because it provides an abstraction from simulator-specific languages. As the name suggests, it's written in Python, and lets you specify the network in Python, too.&lt;br /&gt;&lt;br /&gt;For experiment design and analysis of simulated data there is &lt;a href="http://neuralensemble.org/trac/NeuroTools"&gt;Neurotools&lt;/a&gt;. It's written for PyNN (in Python), but can also be used independently from it. One of the most promising design goals is its ability to control large experiment sets, e.g. to systematically investigate the impact of certain parameters on network function. I'm sure every scientist who does computational modeling has written code to deal with this tasks at least once. Having a common API for this is a great thing.&lt;br /&gt;&lt;br /&gt;Neuralensemble is a dynamic community which is still very open to all sorts of contributions. So if you're into modeling of neural networks, you should definitely give it a shot!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-3168289443435995751?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/3168289443435995751/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=3168289443435995751' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/3168289443435995751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/3168289443435995751'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2008/03/neural-ensemble.html' title='Neural Ensemble'/><author><name>schmuki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_XBOoergKVRE/R8AKZNToSgI/AAAAAAAAAVs/lFxzKqSt_c0/S220/SchreitenderMann-159.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-7099074918608766927</id><published>2008-03-10T10:47:00.000+01:00</published><updated>2008-03-10T10:58:34.765+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IDE'/><category scheme='http://www.blogger.com/atom/ns#' term='Komodo'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Python IDE revisited</title><content type='html'>Today &lt;a href="http://www.activestate.com/komodo_edit"&gt;Komodo edit&lt;/a&gt; got released under various open source licenses. Since I'm still looking for a decent Python IDE I could not wait to try it.&lt;br /&gt;&lt;br /&gt;My very first impression is a very good one! It looks like Eclipse, but I can live with that... especially because it lets me use Emacs keybindings. Killer feature :). Beyond that, code completion seems to do a good job in Komodo Edit, something I never got around to set up in emacs.&lt;br /&gt;&lt;br /&gt;Of course, I still need to check out things like code navigation, refactoring and other IDE goodies... soon to be reported here!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-7099074918608766927?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/7099074918608766927/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=7099074918608766927' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/7099074918608766927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/7099074918608766927'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2008/03/python-ide-revisited.html' title='Python IDE revisited'/><author><name>schmuki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_XBOoergKVRE/R8AKZNToSgI/AAAAAAAAAVs/lFxzKqSt_c0/S220/SchreitenderMann-159.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-528187254826764682</id><published>2008-02-26T19:45:00.001+01:00</published><updated>2010-11-25T10:59:54.463+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools for efficient scientific computing'/><title type='text'>Two machines, one keyboard</title><content type='html'>Daily computer work can be quite annoying when you have to work on two machines simultaneously. If those two machines are connected through the network, &lt;a href="http://synergy2.sourceforge.net/"&gt;synergy&lt;/a&gt; was my method of choice to solve this problem. It's like having a dual-screen setup, your mouse can move between both screens. The difference is that each monitor is a separate machine. Keystrokes from one machine go the window that has focus, irrespective to which the keyboard is hooked up. I liked that tool a lot, but in practice I found it too cumbersome in the long run.&lt;br /&gt;&lt;br /&gt;Now I came across &lt;a href="http://www.snorp.net/log/2008/02/26/mango-lassi/"&gt;this blog post&lt;/a&gt;, which advertises &lt;a href="http://0pointer.de/blog/projects/mango-lassi.html"&gt;Mango Lassi&lt;/a&gt; as a better synergy. It even has packages for OpenSuse, via the &lt;a href="http://download.opensuse.org/repositories/home:/snorp/openSUSE_10.3/"&gt;Buildservice&lt;/a&gt;. Sounds promising, have to check it out when I find time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-528187254826764682?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/528187254826764682/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=528187254826764682' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/528187254826764682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/528187254826764682'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2008/02/two-machines-one-keyboard.html' title='Two machines, one keyboard'/><author><name>schmuki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_XBOoergKVRE/R8AKZNToSgI/AAAAAAAAAVs/lFxzKqSt_c0/S220/SchreitenderMann-159.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-7860446885569817192</id><published>2008-02-26T14:07:00.001+01:00</published><updated>2010-11-25T10:57:36.079+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='life science'/><title type='text'>Yet another python primer</title><content type='html'>&lt;a href="http://dx.doi.org/10.1371/journal.pcbi.0030199"&gt;Another python tutorial&lt;/a&gt;, this time specially for life science researchers. Published back in November last year, but it took me until today to run across it. It seems to be focused towards bioinformatics, at least from what I can tell by quickly going through it. Might be useful for students entering the field, not knowing which lagnuage to learn.&lt;br /&gt;&lt;br /&gt;Citation: Bassi S (2007) A Primer on Python for Life Science Researchers. PLoS Comput Biol 3(11): e199&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-7860446885569817192?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/7860446885569817192/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=7860446885569817192' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/7860446885569817192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/7860446885569817192'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2008/02/yet-another-python-primer.html' title='Yet another python primer'/><author><name>schmuki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_XBOoergKVRE/R8AKZNToSgI/AAAAAAAAAVs/lFxzKqSt_c0/S220/SchreitenderMann-159.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-1277232997637966945</id><published>2008-02-25T10:36:00.000+01:00</published><updated>2008-02-25T10:39:16.881+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IDE'/><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Python + Emacs, cont.</title><content type='html'>I came across &lt;a href="http://www.trepca.si/blog/?p=29"&gt;this blog post&lt;/a&gt; which states some very interesting additional resources for python development in emacs. Very cool!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-1277232997637966945?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/1277232997637966945/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=1277232997637966945' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/1277232997637966945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/1277232997637966945'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2008/02/python-emacs-cont.html' title='Python + Emacs, cont.'/><author><name>schmuki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_XBOoergKVRE/R8AKZNToSgI/AAAAAAAAAVs/lFxzKqSt_c0/S220/SchreitenderMann-159.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-7146944005955956288</id><published>2008-02-22T11:23:00.001+01:00</published><updated>2010-11-25T11:02:02.484+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IDE'/><category scheme='http://www.blogger.com/atom/ns#' term='jpydbg'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><category scheme='http://www.blogger.com/atom/ns#' term='Tools for efficient scientific computing'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='Netbeans'/><title type='text'>The quest for a Python IDE - Back to good old emacs</title><content type='html'>Since I started using Python last year, I've been looking for a nice IDE that supports that language. When I was programming in Java, &lt;a href="http://www.netbeans.org/"&gt;Netbeans&lt;/a&gt; made programming REAL fun. I was really missing such a powerful tool for Python.&lt;br /&gt;Not that I haven't tried a few. First, there is &lt;a href="http://jpydbg.sourceforge.net/"&gt;jpydbg&lt;/a&gt; for netbeans. Or at least it seems to be, since I never managed to start a project with it. It has been written for &lt;a href="http://jedit.sourceforge.net/"&gt;jedit&lt;/a&gt;, and it does not really integrate into netbeans' look and feel, let alone it's usabilit concept.&lt;br /&gt;Then there was &lt;a href="http://www.die-offenbachs.de/eric/index.html"&gt;Eric&lt;/a&gt;. It made a good impression, but unfortunately, it stopped working on my machine for some obscure error relating to QT4 libs not being found. This ain't Eric's fault, other Qt4 also won't work under my account.... I have no clue which config file causes confusion here. But still, I can't use it.&lt;br /&gt;So I went on to &lt;a href="http://www.eclipse.org/"&gt;Eclipse&lt;/a&gt;. As an e- netbeans user, I was quite reluctant to take that step, somehow it felt to me like switching from Linux to Windows again ;)... Nevertheless, I've been using it for about half a year now, but still haven't got comfortable with it. I'm sure it offers every tool a programmer might probably want at some point in his life, but I just haven't managed finding out how to open the toolbox... I couldn't even manage to update an SVN repo from the IDE! Don't get me wrong, I'm sure there is an easy way how to do this, but I just couldn't figure it out. And I don't want to spend my time digging through docs and forums and mailing lists when I really want to spend it programming. Especially if the solution to my problem is only an "svn update" away... on the command line.&lt;br /&gt;And this was the point when I remembered my good old friend &lt;a href="http://en.wikipedia.org/wiki/Emacs"&gt;emacs&lt;/a&gt;. Long time back, when desktop  envirenments under Unix still needed their diapers changed regularly, I used emacs for all programming related tasks. And how I liked it. And of course, today it comes with a python mode, with syntax highlighting and all bells and whistles. Who needs more?&lt;br /&gt;Well, actually I need more... :) I want version control, refactoring tools, auto completion and quick navigation through large source trees. And naturally, emacs seems to offer it all. There's &lt;a href="http://www.xsteve.at/prg/emacs/"&gt;psvn.el&lt;/a&gt; for SVN. Navigation has always been the domain of Speedbar (M-x speedbar). For refactoring, there seems to be &lt;a href="http://bicyclerepair.sourceforge.net/"&gt;BicycleRepairMan&lt;/a&gt;. Haven't used it yet, but voices all over the web praise it. And finally, for auto-completion &lt;a href="http://pymacs.progiciels-bpi.ca/"&gt;Pymacs&lt;/a&gt; claims to do the job. This will be the next thing to try for me.&lt;br /&gt;So for now, I'm happy again with emacs!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-7146944005955956288?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/7146944005955956288/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=7146944005955956288' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/7146944005955956288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/7146944005955956288'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2008/02/quest-for-python-ide-back-to-good-old.html' title='The quest for a Python IDE - Back to good old emacs'/><author><name>schmuki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_XBOoergKVRE/R8AKZNToSgI/AAAAAAAAAVs/lFxzKqSt_c0/S220/SchreitenderMann-159.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-3028350357748668912</id><published>2007-08-14T18:28:00.001+02:00</published><updated>2007-08-14T18:36:20.347+02:00</updated><title type='text'>Parallel computing made easy</title><content type='html'>Yo, back I am.... Just discovered how easy parallel computing is nowadays. Excuses for lazy programmers get sparse! :)&lt;br /&gt;&lt;br /&gt;I stumbled upon &lt;a href="http://ipython.scipy.org/moin/Parallel_Computing"&gt;Ipython 1&lt;/a&gt;, an ingenious solution to do parallel computing with python. The developers have set up a nice &lt;a href="http://ipython.scipy.org/moin/Parallel_Computing/SawTutorial"&gt;tutorial&lt;/a&gt; which got me started in no time. Check it out!&lt;br /&gt;&lt;br /&gt;Further, I found a nice tutorial on the &lt;a href="http://www.llnl.gov/computing/tutorials/mpi/"&gt;MPI Api&lt;/a&gt;. Very well written, with clear and concise language. &lt;br /&gt;&lt;br /&gt;So, armed with those, I'm looking forward to make our shiny new 8-core Xeon crunch numbers in parallel. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-3028350357748668912?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/3028350357748668912/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=3028350357748668912' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/3028350357748668912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/3028350357748668912'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2007/08/parallel-computing-made-easy.html' title='Parallel computing made easy'/><author><name>schmuki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_XBOoergKVRE/R8AKZNToSgI/AAAAAAAAAVs/lFxzKqSt_c0/S220/SchreitenderMann-159.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6621654851452777487.post-1124717273250757821</id><published>2007-04-22T02:12:00.000+02:00</published><updated>2007-04-22T02:18:09.917+02:00</updated><title type='text'>Welcome!</title><content type='html'>Hi! This is going to be my brain extension. Have a look around, but don't expect much at the moment. This is my first-ever blog, and I hope it will become an enjoyable and useful tool for me, and maybe others. See you soon in this spot!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6621654851452777487-1124717273250757821?l=mybrainextension.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mybrainextension.blogspot.com/feeds/1124717273250757821/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6621654851452777487&amp;postID=1124717273250757821' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/1124717273250757821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6621654851452777487/posts/default/1124717273250757821'/><link rel='alternate' type='text/html' href='http://mybrainextension.blogspot.com/2007/04/welcome.html' title='Welcome!'/><author><name>schmuki</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp2.blogger.com/_XBOoergKVRE/R8AKZNToSgI/AAAAAAAAAVs/lFxzKqSt_c0/S220/SchreitenderMann-159.jpg'/></author><thr:total>0</thr:total></entry></feed>
