PyDev of the Week: Daniel Roseman

This week we welcome Daniel Roseman as our PyDev of the Week. I stumbled across Daniel on StackOverflow via some of the Python answers he has given. He is in the top 0.01% overall on StackOverflow, which is pretty impressive. He also has an old blog with a few interesting Python related articles in it. You can see what he’s been up to lately over on Github. Let’s take a few moments to get to know Daniel better!

Can you tell us a little about yourself (hobbies, education, etc):

I’m a self-taught programmer – my degree is actually in French – and I spent ten years working as a journalist and sub-editor before finally making the move into professional web development.

Since then I’ve worked at Global Radio, Glasses Direct, Google, and now the UK’s Government Digital Service, where I’m currently a technical architect on the publishing platform for the GOV.UK website.

Outside of work I’m a singer in various amateur choirs. I’ve also been running a Code Club at a local primary school for several years, helping ten and eleven year olds with their first introduction to programming using Scratch and later Python itself. Continue reading PyDev of the Week: Daniel Roseman

Malicious Libraries Found on Python Package Index (PyPI)

Malicious code has been found on the Python Package Index (PyPI), the most popular location for sharing Python packages. This was reported by Slovak National Security Office which was then picked up by Bleeping Computer among other places (i.e. Reddit). The attack vector used typosquatting, which is basically someone uploading a package with a misspelled name of a popular package, for example lmxl instead of lxml.

You can see the original report from Slovak National Security Office here:

I saw this vector talked about last August in this blog post which a lot of people seemed to think little of. It’s interesting that now people are getting a lot more excited about the issue.

This also reminded me of the controversy over a startup called Kite which basically inserted adware / spyware into plugins, such as Atom, autocomplete-python, etc.

Packaging in Python needs some help. I like how much better it is now then it was 10 years ago, but there are still a lot of issues.

StackOverflow: Python Fastest Growing Language

StackOverflow published a report last week in which they stated that Python has a solid claim to being the fastest-growing major programming language. Python was also called out as one of the top programming languages of 2017 over on the IEEE Spectrum website, which I covered in an earlier article.

Python just keeps growing more and more popular, which is quite exciting to me. I have always enjoyed it since I first began using the language. Its power combined with its simplicity just “fits” my brain so well. I am excited to see Python continue to grow in data science, education and embedded applications (via MicroPython).

You can read about other people’s thoughts on StackOverflow’s claims at the following:

PyDev of the Week: Jeff Forcier

This week we welcome Jeff Forcier (@bitprophet) as our PyDev of the Week. Jeff is the current maintainer of the popular Fabric and Paramiko packages. He is also the creator of the Invoke package. You can check out other projects that Jeff contributes to on Github. He also has a blog that you might find interesting. Let’s take some time to get to know Jeff better!

Can you tell us a little about yourself (hobbies, education, etc):

My overall bio can be found at, but here’s some basics!

  • I’ve a bachelor’s degree in computer science (though I don’t hold with those who think one is required for a career in this field.)
  • Most of my hobbies involve a computer or TV screen – for example, I’m a devout video game addict, spend more time than I should just surfing the Web, and enjoy watching video (anime, movies, TV; no Twitch habit yet!)
  • When not glued to a display, I read a lot (mostly scifi & fantasy); take day trips around the beautiful, if disturbingly expensive, San Francisco Bay Area; and annoy my cats.
  • Sometimes I combine these things – such as when my wife and I go on long walks playing Pokémon Go 🙂

Continue reading PyDev of the Week: Jeff Forcier

PyDev of the Week: Matthias Bussonnier

This week we welcome Matthias Bussonnier (@Mbussonn) as our PyDev of the Week. Matthias is a core developer of the Jupyter Notebook and IPython. You may want to check out his Github profile to see what projects he is interested in and working on. Let’s spend some time getting to know Matthias better!

Can you tell us a little about yourself (hobbies, education, etc):

I have a pretty eclectic background. As you might not hear while reading me I’m French, and I still have a relatively strong French accent. I was trained as a Physicist – started with quantum mechanics /particle physics and decided that it was probably not for me, so I did fluid mechanics and condensed matter, and I ended up with a PhD in Biophysics which according to my advisor was often more applied mathematics than BioPhysics. As for computer programming I’m mostly self taught – I stated with C/C++ when I was about 13 and moved between languages every now and then. I’m pretty monomaniac an my hobbies come and go. I used to program to distract me from my PhD – which lead me where I am now. I like to play guitar, do nothing and enjoy nature, sleep, contradict people and making puns. I also love to understand why and how in general which takes most of my time – I try to write it up on my blog but it often take me weeks to write anything and I’m not happy with it. I also enjoy teaching to others mostly because by teaching you understand better.
Continue reading PyDev of the Week: Matthias Bussonnier

Back to School Python Book Sale 2017

It’s time for school and going back to the university, so I am putting on a “Back to School” sale for my Python books. You can now buy my second and third books for 50% off on Leanpub.

You can check out my first book, Python 101, in its entirety over on if you need a sample of my writing style. Leanpub also has samples of both of those books that you can download as a PDF.

Feel free to ask questions in the comments or ping me via the contact form.

PyDev of the Week: Shannon Turner

This week we welcome Shannon Turner as our PyDev of the Week! Shannon is the founder of Hear Me Code, a free, beginner-friendly coding class for women in the Washington DC area. She has several interesting projects over on Github that you might find worthy of checking out. Let’s take some time to get to know Shannon better!

Can you tell us a little about yourself (hobbies, education, etc):

I have my grandma to thank for my career path — she loved playing video games. As a kid, I would watch her play, and sketch out the game on paper and show her. I’d say “Wouldn’t this be cool if it were part of the game?” and she loved that – but told me that I had to get very good at computers if I wanted to make that happen! Continue reading PyDev of the Week: Shannon Turner

PyDev of the Week: Katherine Scott

This week we welcome Katherine Scott (@kscottz) as our PyDev of the Week! Katherine was was the lead developer of the SimpleCV computer vision library and co-author of the SimpleCV O’Reilly Book. You can check out Katherine’s open source projects over on Github. Let’s take a few moments to get to know her better!

Can you tell us a little about yourself (hobbies, education, etc):

A quick summary about me:

I am currently the image analytics team lead at Planet Labs. Planet is one of the largest satellite imaging companies in the world and my team helps take Planet’s daily satellite imagery and turn into actionable information. We currently image the entire planet every day at ~3m resolution and not only do I get to see that data, but I also have the resources to apply my computer vision skills to our whole data set. On top of this I get to work stuff in space! It goes without saying that I absolutely love my job. I am also on the board of the Open Source Hardware Association and I help put together the Open Hardware Summit.

Prior to working at Planet i co-founded two success start-up Tempo Automation and SightMachine. Prior to founding those two start-ups I worked at really awesome research and development company called Cybernet Systems. While I was at Cybernet I did computer vision, augmented reality, and robotics research.

I graduated from the University of Michigan in 2005 with dual degrees in computer engineering and electrical engineering. To put myself through school I worked as a research assistant with a couple of really awesome labs where I did research on MEMS neural prosthetics and the RHex Robot (a cousin to the Big Dog robot you may be familiar with). In 2010 I decided to go back to school to get my masters degree at Columbia University. I majored in computer science with a focus on computer vision and robotics. It was at the tail end of grad school that I got bit by the start-up bug and helped start Sight Machine.

My hobbies are currently constrained by my tiny apartment in San Francisco, but I like to build and make stuff (art, hardware, software, etc) in my spare time. I am also really into music so I go to a lot of live shows. As I’ve gotten older I’ve found that I need to exercise if I want to stay in front of a screen so I like to walk, bike, and do pilates. I am also the owner of three pet rats. I started keeping rats after working with them in the lab during college.
Continue reading PyDev of the Week: Katherine Scott

PyDev of the Week: Brian E. Granger

This week we welcome Brian E. Granger (@ellisonbg) as our PyDev of the Week! Brian is an early core contributor of the IPython Notebook and now leads the Project Jupyter Notebook team. He is also an Associate Professor of Physics and Data Science at California Polytechnic State University. You can also check out what projects he is working on over at Github. Let’s take a few moments to get to know Brian better!

Can you tell us a little about yourself (hobbies, education, etc):

I am going to start with the fun stuff. Since high school I have been playing the guitar, swimming and meditating. It is hard to be disciplined, but I couldn’t survive without a regular practice of these things. Doing intellectual work, such as coding, for long periods of time (decades) is really taxing on the mind, and that spills over to the body. I truly love coding, but these other things are the biggest reason I am still coding productively at 45.

In some ways, I look like a pretty traditional academic, with a Ph.D. in theoretical physics from the University of Colorado, Boulder, followed by a postdoc and now a tenured faculty position in the Physics Department at Cal Poly San Luis Obispo.

Along the way, I started building open-source software and that has slowly overtaken my entire professional life. Fernando Pérez (IPython’s creator) and I were classmates in graduate school; I began working on IPython around 2005. Fernando remains a dear friend and the best collaborator I could ever ask for. The vision for the IPython/Jupyter notebook came out of a late night discussion over ice cream with him in 2004. It took us until 2011 to ship the original IPython Notebook. Since then my main research focus has been on Project Jupyter and other open-source tools for data science and scientific computing. Continue reading PyDev of the Week: Brian E. Granger

Python 101: Recursion

Recursion is a topic in mathematics and computer science. In computer programming languages, the term, recursion, refers to a function that calls itself. Another way of putting it would be a function definition that includes the function itself in its definition. One of the first warnings I received when my computer science professor talked about recursion was that you can accidentally create an infinite loop that will make your application hang. This can happen because when you use recursion, your function may end up invoking itself infinitely. So as with any other potential infinite loop, you need to make sure you have a way to break out of the loop. The idea in most recursive functions is to break up the procedure being done into smaller pieces that we can still process with the same function.

The favorite method of describing recursion is usually illustrated by creating a factorial function. A factorial normally looks something like this: 5! Note that there is an exclamation mark after the number. That notation denotes that it is to be treated as a factorial. What this means is that 5! = 5*4*3*2*1 or 120. Continue reading Python 101: Recursion