About

Portrait

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] [crisˈtjˌan] [məˈrjˌeʃ].

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 or time, and especially patience. Smaller projects are more fun, and there's less bikeshedding.

[1]

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:

[2]

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.
  • Ag - crazy fast grep tool.
  • fzf - fuzzy search tool. It can even bind your shell's history search shortcut to use it.