Tag Archives: Python

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

PyDev of the Week: Dave Forgac

This week we welcome Dave Forgac as our PyDev of the Week! Dave is an organizer of PyOhio, ClePy, and the Cleveland API Meetup. He also gave a presentation about sharing your code at PyCon 2017 that you can watch below:

Dave also has a website that lists his other talks. You might also find his Github profile interesting. Let’s take a few moments to get to know Dave better!

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

I work as a Sr. Software Engineer at American Greetings in the greater Cleveland, OH area. There I focus mainly on API design and development, application deployment, and internal developer experience.

I grew up in Cleveland and took a few semesters of college classes before losing a scholarship and taking some time off. I moved to Wilmington, DE in ‘03 and eventually went back to school and finished a degree in Information Systems eight years later than planned (it’s never too late!) I moved back to the Cleveland area with my wife in 2011. We now have a 3.5 year old and a newborn keeping us busy.

I enjoy playing with my kids, walking around town with my family, cooking, brewing, hiking, and tabletop gaming. I’ve really been enjoying 5th edition D&D lately. I also have a bunch of “toy” programming projects that I work on when I find time.

Lately I’ve spent a lot more of my own time doing community organizing than I have coding. I help organize a couple local meetups and and PyOhio. I’m the PyOhio 2017 Program Chair and just finalized the schedule. You should check out PyOhio some time! Continue reading PyDev of the Week: Dave Forgac

ANN: Python 101 Website

After making my first book, Python 101, freely available, I have been investigating the best way to make its contents available online as well. Since I write all my books in RestructuredText, I had a few options. I ended up going with Sphinx for now, but I may end up switching to something else in the future.

Sphinx is the documentation tool used by the Python language for their documentation and it is also the backbone of Read the Docs, which is a website of documentation for 3rd party Python packages. I tried the default Sphinx theme of Alabaster, but it didn’t have the two features I most wanted:

  • Mobile friendly
  • Next / Previous buttons to make chapter navigation easy

Or at least it didn’t appear to be easy to modify to make these features available. So I ended up switching to the Read the Docs theme as it had both of those features. You can check out the book at the following URL:

http://python101.pythonlibrary.org

Python is #1 in 2017 According to IEEE Spectrum

It’s always fun to see what languages are considered to be in the top ten. This year, IEEE Spectrum named Python as the #1 language in the Web and Enterprise categories. Some of the Python community over at Reddit think that the scoring of the languages are flawed because Javascript is below R in web programming. That gives me pause as well. Frankly I don’t really see how anything is above Javascript when it comes to web programming.

Regardless, it’s still interesting to read through the article.

Related Articles

Python: All About Decorators

Decorators can be a bit mind-bending when first encountered and they can also be a bit tricky to debug. But they are a neat way to add functionality to functions and classes. Decorators are also known as a “higher-order function”. What this means is that they can take one or more functions as arguments and return a function as its result. In other words, decorators will take the function they are decorating and extend its behavior while not actually modifying what the function itself does.

There have been two decorators in Python since version 2.2, namely classmethod() and staticmethod(). Then PEP 318 was put together and the decorator syntax was added to make decorating functions and methods possible in Python 2.4. Class decorators were proposed in PEP 3129 to be included in Python 2.6. They appear to work in Python 2.7, but the PEP indicates that they weren’t accepted until Python 3, so I’m not sure what happened there.

Let’s start off by talking about functions in general to get a foundation to work from. Continue reading Python: All About Decorators

PyDev of the Week on Hiatus

I don’t know if anyone noticed something amiss this week, but the PyDev of the Week series is currently on hiatus. I have been having trouble getting interviewees to get the interviews done in a timely manner the last month or so and actually ended up running out.

While I have a bunch of new interviewees lined up, none of them have actually finished the interview. So I am suspending the series for the month of July 2017. Hopefully I can get several lined up for August and get the series kicked back into gear. If not, then it will be suspended until I have a decent number of interviews done.

If you happen to have any suggestions for Pythonistas that you would like to see featured here in the PyDev of the Week series, feel free to leave a comment or contact me.

Meta: The new Mouse Vs Python Newsletter

I recently decided to try giving my readers the option of signing up for a weekly round up of the articles that I publish to this blog. I added it to my Follow the Blog page, but if you’re interested in getting an email once a week that includes links to all the articles from the past week, you can also sign up below:

Subscribe to a weekly email of the blog

* indicates required




I will note that this is a bit experimental for me and I am currently attempting to get the emails formatted correctly. I believe I finally have something that looks right, but there may be some minor changes that happen over the next couple of weeks as I learn the platform.

wxPython – Getting Data From All Columns in a ListCtrl

Every now and then, I see someone asking how to get the text for each item in a row of a ListCtrl in report mode. The ListCtrl does not make it very obvious how you would get the text in row one, column three for example. In this article we will look at how we might accomplish this task.


Getting Data from Any Column

Let’s start by creating a simple ListCtrl and using a button to populate it. Then we’ll add a second button for extracting the contents of the ListCtrl: Continue reading wxPython – Getting Data From All Columns in a ListCtrl

PyDev of the Week: David Wolever

This week we welcome David Wolever (@wolever) as our PyDev of the Week. David is the co-founder of PyCon Canada and Akindi.com – a small company that’s making multiple-choice bubble sheet tests a little bit less terrible. He is also the author of the nose-parameterized project and the pprint++ project. You can also check out what other projects he contributes to on Github. Let’s take a few moments to get to know David!

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

I’m a long-time Python fan and startup founder from Toronto, Canada. I dropped out of software engineering at the University of Toronto when I realized that I was interested in building software, not proving runtime bounds of graph search algorithms (although I’m incredibly grateful to the people who do enjoy that), and I’ve been working with small startups ever since.

I’m the CTO of my company, Akindi, makes Scantron-style multiple choice bubbles sheets a little bit less terrible.

In 2012 some friends and I started PyCon Canada, and I’m incredibly excited that it’s going to be held in Montréal this year (get your tickets now, because they’re going to sell out: https://pycon.ca)

Outside of computers, I’m really into knots (top three: alpine butterfly, jug sling hitch, chain sinnet) and motorcycling.

I tweet at https://twitter.com/wolever Continue reading PyDev of the Week: David Wolever