Photo of me, courtesy of Andrei Dragon.

I've found the Python language back in 2004, and developed a passion for it shortly after that. Partly because it's aesthetics are unmatched and you can deliver great software with it, while having fun!

This space is a blog about Python programming, with twists of JavaScript, Windows, Ubuntu and Django. You can also check out my Twitter for shorter stuff. For any inquires: contact ≪at≫ ionelmc ≪dot≫ ro

My name ("Ionel Cristian Mărieș") has a peculiar spelling. In English it could be read as "yonel cristian mariesh" (approximately), or in IPA as [joˈnɛl] [krisˈtjˌan] [məˈrjˌɛʃ].

I have some pretty unusual preferences regarding the development environment: I use Windows [1] and for development I use Hyper-V [2], usually with Ubuntu. I like desktops with big mechanical keyboards more than laptops - they always seem to be too slow and have flimsy keyboards. And yes, I overclock the CPU.

If you check out my GitHub profile you'll see that I like Open-Source software quite a bit. I like to fix things and that led me to work a handful of debugging tools like hunter, manhole, aspectlib or remote-pdb and plugins for the most awesome test framework in Python like pytest-cov or pytest-benchmark. I value integration tests more than pure unittests, and that produced process-tests.

Some time ago I've used nose and I made two plugins for it: nose-timelimit and nose-htmloutput. I don't use nose anymore, if you want to maintain those plugins please let me know. I'm still wondering how I lived without pytest for so long ...

Once in a while I have some crazy idea, like fields, a library for short-form container classes, or decide that maybe virtualenv needs a rewrite.

Sometimes I adopt some unloved projects, like I took in landslide and turned it into darkslide. You probably noticed by now that I'm quite picky about styling and user experience.

Other projects, in no particular order: cogen. django-admin-customizer, django-admin-utils, django-customfields, django-monkey-team, django-prefetch, django-redisboard, jquery-gp-gallery, polymer-json-box, polymer-query-box, polymer-select-box, projectskel, python-lazy-object-proxy, python-mongoql-conv, python-redis-lock, python-stampede, python-tblib, sphinx-py3doc-enhanced-theme etc.

Because I had to package so many libraries I made a template that includes all I learned: cookiecutter-pylibrary.

I did lots of small contributions to other projects, and most notably to pywin32. At some point I even considered doing some contributions to CPython but it turns out it requires too much commitment of time, and especially patience. Smaller projects are more fun, and there's less bikeshedding.


Yes, you read it right, I'm using Windows. It's a good desktop OS, years ahead of Ubuntu - in both ecosystem and OS maturity.

I've tried Ubuntu as a desktop, quite a few versions as a matter of fact (8.04, 9.04, 10.04 and 12.04), but they all suck as a desktop OS - upgrade failures and video issues everywhere.

Plus I want to be able to play a video games once in a while :-)

There's some must have software for windows:


I've tried Vagrant/VirtualBox and got it to a point that it's actually usable on Windows but Hyper-V is still king of speed.

I run an X11 server in Windows and run desktop software like PyCharm in the same VM as the project. Windows desktop integration is pretty good.

Few tools I like to use:

  • Zsh - just because there's oh-my-zsh. As of late, I'm not using oh-my-zsh directly, but antigen.
  • A̶g̶ - c̶r̶a̶z̶y̶ ̶f̶a̶s̶t̶ ̶g̶r̶e̶p̶ ̶t̶o̶o̶l̶. Rg - lo and behold!
  • fzf - fuzzy search tool. It can even bind your shell's history search shortcut to use it.