Sunday, December 14, 2014

Customizing the Bash Prompt to Be More Romantic

I used to have a long, detailed Bash prompt like this:

happycode:open-source-repos audreyr$

To get this, I had this line in my .bashrc file:

# Bash prompt displays the hostname, current directory name, username
PS1="\h:\W \u\$"

But I eventually grew tired of seeing all that useful information, as it made my prompt too long. It was time for a change.

I thought about what I wanted to be reminded of every time I opened my terminal. Something happy, I thought. The happiest thing is love.

So I changed it to this:

# More romantic bash prompt.
PS1="\W a♥d "

That's short for Audrey ♥ Daniel, of course.

You can use other Unicode symbols in your Bash prompt to jazz it up, like happy faces and flowers. See this post on the Unix StackExchange about someone with an awesome ★ in their prompt.

Monday, September 15, 2014

Free Intro to Python Workshop in San Diego on Sat, Sept 20

I'm co-hosting a free Python programming workshop this weekend. Whether you've never coded before or have some coding background, this workshop if for you.

Saturday, September 20, 2014
Ansir Innovation Center, San Diego, CA


As a woman programmer, I encourage more women to sign up and fill the remaining spaces! There are still spaces available through Inland Empire Pyladies and San Diego Pyladies. RSVP through the Pyladies chapter closest to you:
If one of the above fills up, it's okay to RSVP through the other.

This is a joint event between San Diego Python/Pyladies and Inland Empire Python/Pyladies. It is also affiliated with OpenHatch and sponsored by the Python Software Foundation.

Saturday, April 26, 2014

jQuery MessageBar: A Top Bar For Notifications

Last year, Danny and I did a major, major overhaul of the Django Packages website. During this effort, I extracted some of the interesting JS/CSS functionality into freestanding jQuery/JS plugins of their own.

One of the fruits of this effort was a jQuery plugin called MessageBar. Here's what it looks like when it shows up on Django Packages:

Screenshot of jQuery MessageBar on Django Packages
jQuery MessageBar, as seen at the top of Django Packages

Consider this a gift to the front-end developer community. It is free and open-source, available on GitHub:

It works particularly nicely with Django's messages framework, but Django isn't required. It's just HTML, CSS, and JS. Therefore, it would work just fine with any PHP or Ruby site, for example.

Friday, February 28, 2014

Cookiecutter Hits 704 Stars on GitHub

One of my largest open source projects, Cookiecutter, has surpassed the 700-star milestone.

  Cookiecutter logo

In case you aren't familiar with it, Cookiecutter is a utility for generating projects from project templates. It is language-agnostic, and there are boilerplate templates for HTML, JS, C, Python, Django, LaTeX, Common Lisp, and other types of projects.

Development Continues

Slowly but surely, I have been working through the queue of pull requests for Cookiecutter and cookiecutter-pypackage. Reviewing pull requests takes time because:
  • Every patch must be carefully reviewed for cross-platform compatibility (Windows, Linux, Mac).
  • Once a patch goes in, it's in the codebase forever. Each line of code requires thoughtful consideration.
  • Contributors to Cookiecutter are generally very experienced programmers that push the limits of my knowledge.
  • To meet my standards, each patch typically requires hours of coding on my part. This is to fix cross-platform issues, cross-Python-version compatibility issues, ensure uniform coding style, hunt down any edge cases that may have been missed, etc. It's a labor of love.
Open source projects benefit greatly from having a leader who understand every piece that goes into the project, and who has a vision for the project's functionality, coding style, and growth. I look forward to having the opportunity to develop my vision in the coming months.

Sponsorship Opportunity

If your company uses Cookiecutter, consider sponsoring the project. Benefits include:
  • Advertising and exposure on the Cookiecutter README and the documentation homepage.
  • Extra attention given to issues/pull requests from your company's developers.
  • Additional development work on Cookiecutter, focused on your company's needs.
  • The gratification of giving back to open source, and full bragging rights. This makes for great company PR.
  • Mentions of your company on future blog posts about Cookiecutter, in the release notes, and more.
For more information, email me at aroy at

Thursday, February 20, 2014

Art Donated to PyCon Philippines

Art Donated to PyCon Philippines

I hand-painted this art print in watercolor, which will be raffled off as a prize at PyCon Philippines 2014. The painting shows the various logging levels, as applied to ice cream.

See a larger photo here.

This was part of Two Scoops Press' in-kind conference sponsorship package for PyCon Philippines.

Cheers and Congratulations

I can't even begin to express how thrilled I am about the growth and success of PyCon Philippines. 

My mother was born and raised in the Philippines, and I lived there for part of my childhood. I still visit family in the Philippines often. I am very proud to consider myself a part of the technical community there.

As a past co-organizer who worked like crazy in 2012 creating and managing the previous PyCon PH website, doing PR, running the live coverage Twitter stream, and helping with sponsorships, I know how hard the organizing team is working and salute your efforts.

 In particular, special shout-outs to these PyCon PH & Python community leaders:
I urge everyone to show their gratitude. I think I speak for everyone in the Python community when I say that your efforts are not only appreciated, but also recognized internationally.

Wednesday, February 12, 2014

Two Scoops of Django 1.6 is a #1 Python Bestseller

Last week, Danny and I released our new book, Two Scoops of Django: Best Practices for Django 1.6.

Bestseller Status

We made it as a #1 bestseller in the Programming and in the Python categories on Amazon. The 1.6 edition is still a "#1 Python Bestseller" as of now:

Screenshot from Amazon showing our book as a #1 Python bestseller.

At one point, it even ranked #33 overall in Amazon's entire Education & Reference Books category. This is what happens when you write thoughtfully, with careful attention to detail, and with strong intentions to create a truly helpful reference book.

Huge Thank You to Supporters

Response from buyers of the 1.6 edition has been overwhelmingly positive and glowing. We are getting your emails and messages, and they really touch our hearts and mean a lot to us. We released the 1.5 edition over a year ago. The 1.6 edition took several additional months of work. The positive response from readers is what has made all of our effort worthwhile. Special thanks to all who reviewed the book on and other international Amazon sites.

Autographed Copies

Last week, we autographed around 50 copies and mailed them out around the world. This was a lot of fun. Some of the copies may be autographed a bit wildly, with completely wacky humor. We got a bit carried away, doing our best to put a lot of thought and care into sending each package. For anyone who didn't get an autographed copy:
  • We are waiting for another shipment of books to arrive on our doorstep. Once it arrives, we'll have more available through
  • We're also happy to autograph books in person. We won't be able to make it to conferences this year, but we're thinking of doing a road trip at some point and might visit some user groups.

The Last of the Series

As we mentioned, the 1.6 edition is the last Two Scoops of Django book that we will ever create. It is a major expansion and rewrite of the book, with countless tips from readers incorporated into the material. It was a major effort, and we are incredibly proud of the results. But we are tired now, and we are done. Our time has come to move on to other great things.

Our Long History of Listening to Feedback

We have updated the FAQ again with more answers to common questions. To save us from typing and repetitive stress injury pain, please check there first if you have a common question or comment. Remember, we have a long, long history of always listening to reader feedback and trying our best, but that our physical and mental health, family, and work have to come first.

We will continue to try our best, but please understand we're backlogged with work and family obligations (not to mention open source project maintenance obligations). Right now, getting our lives in order is our top priority.