Posted by & filed under debugging, programming, python, testing.

All developers know finding and squashing bugs comes with the territory of writing sane, stable, and performant software. On a good day, debugging can be trivial, but we’ve all been there: running tests and reading print statements at 11pm and nearly losing our minds over vanishing User objects or differing behavior between two servers. Sometimes the rudimentary approach of logging debug statements or peppering prints throughout the code works well enough, but there are better ways to inspect your app during runtime.

pdb, the Python Debugger, is an interactive debugger that is part of the Python standard library. Powerful in action and straightforward in use, pdb should be considered an essential part of your regular debugging workflow. pdb allows you to jump into a shell at arbitrary breakpoints in your code, where you can print variables and objects, step through the code line by line, change the values of objects on the fly, and more. Read more »

Posted by & filed under iOS, ipad, mobile, Native apps, Product Updates & Tips, Safari, Safari News, Safari Queue.

Safari Queue, the iOS companion app for Safari, is now available in iTunes.

About Safari Queue 1.0

Our goal for the first release of Safari Queue was to provide a great experience for reading books and videos when offline — by far our most requested feature, difficult to provide in a standalone web application.

Unlimited offline availability

Queue places no limits on the amount of content you can download and store offline (beyond available disk space on your device!). Both books and videos are available for offline use, but be careful — some of our exclusive conference videos can be quite long!

Sync your favorites and must-read titles

We call the app Safari Queue because it syncs with your new Safari queue, a list of titles that you’ve queued for reading or watching later. Once you’ve added a title to your queue, it will automatically appear in the app and will be available for download. (It works the other way, too; removing an item from your queue makes it no longer available in the native app.)

Haven’t used the queue yet?

Read more »

Posted by & filed under Content - Highlights and Reviews.

What will your verse be?

This was the resounding message that attendees of CocoaConf Boston, such as I was, were asked to consider over this past weekend.

I’m getting ahead of myself, though. Let’s backtrack a little bit first.

I consider myself extraordinarily fortunate to work at Safari. I am part of an incredible group of people that are passionate about empowering others to be even more remarkable at what they love (at least, hopefully at what they love). We believe wholeheartedly in building great learning tools for our customers, with engaging content from the publishers that we collaborate with. I’ve seen it in action every day that I’ve come to work over the last four years. What I didn’t yet know when I started here was just how lucky I’d be to have opportunities to become more remarkable at what I love – building things with software using my beloved platforms of choice, Apple’s OS X and iOS.

Here’s where CocoaConf comes in.
Read more »

Posted by & filed under electronics, geek, hardware, learning, robots.

Photo by snootlab

I’ve recently become obsessed with physical computing. This started with my discovery of Arduino while heavily dogfooding our new products as a Product Manager here at Safari.

The more I read about it, the more fascinated I became with all the things this tiny microcontroller could do, and eventually even volunteered to run an Arduino Workshop for middle school students as a “winter-session” elective.

Why learn Arduino?

Open Source hardware is predicted to be the next explosive revolution in computing. From Amazon Air Prime & Lakemaid Beer Delivery Drones, to Google Glass and smart watches, the future is bright for physical, embedded computing and the makers whose creativity makes it all happen.

Read more »

Posted by & filed under Business, distributed teams, managing yourself, working remotely.

I’ve worked as a remote software developer since 2011. That’s three years without pants! Boo-ya, “Year Without Pants” guy. Just kidding, I wear pants (see “Wear pants” later in this post).

Has it all been sunshine and rainbows? No. The benefits of remote work come with exorbitant costs. In fact, I’ve gone a little crazy as a result of being “out in the cold” for so long, but overall I feel that I’ve thrived, and my career has thrived, in the past few years. I attribute this to following several disciplines, which I will share with you so that you may thrive too.

Read more »

Posted by & filed under infrastructure, performance, Web Development.

Why HTTP/2?

HTTP/2 is an upcoming standard that will significantly improve web page delivery. It’s coming in February 2015 according to the HTTP/2 working group and is expected to be widely adopted because it’s an easy way for sites to make web pages load quicker and save bandwidth – meaning a better customer experience and money saved. I learned about it by watching the chair of the HTTP/2 working group, Mark Nottingham, talk at O’Reilly Velocity 2014. Some of the features he discussed are:

  • Pushing multiple resources for a single request
  • Header compression
  • Serving multiple page elements over a single TCP connection

More information can be found at the HTTP/2 working group site.

The ability to serve multiple resources over a single TCP connection was most interesting to me, because I can immediately measure that with a simple change. Since HTTP/2 isn’t out yet, I implemented a test environment using its predecessor: SPDY 3.1, on Nginx 1.6.2 and Chrome 38. Read more »

Posted by & filed under Business, Categorization, content, Digital Publishing, marketing.

Before I joined Safari as editor in chief late this past summer, I generally slept pretty soundly. (My wife will read this post and be sorely tempted to add a comment about my snoring. Just ignore her.)

Yet that was then, and this is what happens when you work alongside an incredibly engaging and brilliant group of people eager to create groundbreaking new experiences: You wake up at 4am suddenly obsessed with the way Zappos curates content. Read more »

Posted by & filed under Devops, django, programming, python.

One of the trickier parts of maintaining a frequently updated web application is deploying those updates without annoying the site’s users.  Updating the software that runs a web site can involve uploading new code, upgrading dependencies, changing the database schema, restarting several servers, working around long-running background tasks, and more.  Doing all this in the most obvious, straightforward manner typically means stopping everything, doing the deployment, and then restarting it all (which means the site is unavailable in the meantime).  Many sites used to handle this by scheduling downtime for updates late at night when not many people are using the site, but this has several drawbacks: Read more »

Posted by & filed under Business, Content - Highlights and Reviews, ebooks, management, Safari.

One of the best things about being Safari’s new(ish) editor in chief is discovering the many gems in our vast book and video collection. Given my background in business publishing, I’ve been spending a lot of time combing through our management content with an eye towards resources that I think will be particularly useful for Safari customers. Here are a few titles on innovation that have caught my eye recently. You’ll see these pop up on the Safari Explore page as “Staff Picks,” too. I’ll be back to do this regularly. Read more »

Posted by & filed under hiring, management, Safari.

This story starts a few years ago, in a past life, before I started working at Safari, when I was managing a small team of technical consultants for a healthcare company. I was on the phone with a recruiter who was sending me candidates for one of my open positions after a phone screen with one of his more promising leads.

“Hey,” I said, “thanks for that candidate, but I think I’m going to pass.”

“Not interested, huh?”

“Well, I can’t say that I trust them. And, it’s not like I want to feel like I can tell them my deepest secrets after an hour on the phone, but I don’t want to think that they’re misleading me either.”

“What did they do wrong?”

“I asked them about their ‘worst yes’ to a client was.”

Read more »