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

See part 1: Arduino Intro and Shopping List

It’s always nice to learn something new by referring to working code and modifying it to suit your needs. Today we will move beyond LEDs and run through some examples of reading inputs and triggering outputs. We’ll show you some resources that will give you a taste of what’s out there, as well as covering some of the most common programming structures and debugging methods.

Learning Arduino

Photo via openmichigan


  1. Learning from Example Code (24 Mins)
  2. INPUTS:
  3. OUTPUTS: Enough with LEDs, let’s take it up a notch

Shields, Breakout Boards, & Libraries

Arduino project

Photo via geekphysical

Taking on your Own Project

Now that you have some hardware and software experience under your belt, you will probably want to build something of your own. Here are some chapters that cover a wide range of advanced topics that inspired me or answered questions that came up as my skills ramped up past the basic tutorials:

Arduino starter kit

Photo by marcusjhbrown


These are not really meant for a start to finish read so don’t worry if you don’t have the sensors mentioned. The goal is to understand what;s out there to give you ideas for your projects and help you figure them out if you get stuck.

  1. Arduino Quick Reference Hard to read front to back, but an excellent place to look if you get stuck on programming
  2. Getting Input from Sensors (82 Minutes)
  3. Physical Outputs (43 Mins) – This chapter is full of recipes for reading various sensors. Don’t worry if you don’t have them. The goal is to understand what is available, how you can get data to power your projects, and how you can interact with various sensors to achieve your goals.

Posted by & filed under Information Technology, infrastructure, IT, testing.

Developing Chef cookbooks gets easier every day… once you know the rules.  Over the past 2 years, we at Safari have seen great things from the Chef community and it keeps getting better.  However, because the community is innovating so quickly, much of the How-To’s in the wild are out of date.  Articles documenting the “old way” of doing things outnumber those that describe the current best practices.  This article will outline the configuration that we use to develop cookbooks for our infrastructure at Safari.  We hope this will save you time getting up and running with local Cookbook development, Vagrant and Test Kitchen.

There are three parts to this tutorial:

Part 1 – Getting the Vagrant and tools – This post
Part 2 – Getting Test Kitchen configure – Coming soon
Part 3 – Basic Test Kitchen configuration – Coming less soon

The following procedure will get your local workstation configured and ready to develop cookbooks with Test Kitchen, Vagrant and Chef-zero.  Note that this is not a tutorial on how to write cookbooks.

There are many good resources out there on the details of Cookbook authoring. (Shameless Plug for Safari)

Read more »

Posted by & filed under analytics, Business, growth, marketing, talks.

The contents of this blog post were originally presented at Books in Browsers 2014.

Getting access to Safari content for a limited time couldn’t be easier. In exchange for your email address Safari will give you access to all of our great content for 10 days — no credit card required, no long-term agreement. As you can imagine, Safari generates a lot of trials! We believe in our product and feel that we can win you over when you experience what we offer first-hand.

We know that we’ll never get to a point where 100% of those who sign up for trials will become paying customers, but we always strive to improve our “flip rate” (the percentage of customers who go from a trial to a paying subscription). In marketing speak, there are a lot of levers we can pull to improve that percentage.

  • We can improve the targeting of our marketing to get our product in front of the humans who are most likely to become paying subscribers.
  • We can improve our product by adding features that people love and are willing to pay for.
  • We can add more and better content to our library.
  • Heck, we can do all three!

Great, we’ll get right to work getting better content, adding new features to our site and finding people who are more willing to pay us for our service!  As with the rest of you living in the real world, we need to spend our limited time on what provides the most value. The first step is for us to identify what all those people who sign up for a trial really value. To do that, we need data.

Read more »

Posted by & filed under agile, Content - Highlights and Reviews, general, Safari, support.

I’ve been very fortunate to work at Safari for the last ten years in the Customer Support department. During this time I’ve been able to watch our company grow from a small joint venture between O’Reilly and Pearson, to a much larger company that continues to keep up with the changing times.

Among the most significant changes for the company itself has been to embrace the Agile development philosophy that has become very popular in recent years. I am not a developer and before I volunteered to write this post, I did not have a tremendous amount of knowledge about Agile development itself. In fact, when I started I expected my writing to focus on how a compressed time schedule created both positive and negative impacts on customer service. However, as I looked more deeply at Agile, I realized its impact is more complex than simply compressing a time schedule. Read more »

Posted by & filed under design, distributed teams, hiring, jobs, product management, Safari, working remotely.

When new Safari was just a baby experiment called Safari Flow, we had one product designer working with some excellent freelancers, and we could play fast and loose with our workflow. But as we’ve made the transition to new Safari, the stakes, naturally, have gotten higher. Product managers and designers are faced with the challenge of providing direction and support to a wider array of products, and we need to be much more deliberate about the work we do.

Product design is part strategy, part tactical implementation, and it can be difficult to balance those two different kinds of design work. Good product designers should be able to tackle high-level problems, as well as offer support to the team on day-to-day development happening on the ground.

Much has been written about the friction inherent in integrating thoughtful design work into the heady loop of an agile workflow. Design, by its nature, is up-front, foundational work — you can’t design a house after you’ve built it. (Well, you probably can, but you really shouldn’t.) Agile methodology puts an emphasis on rapid development and constant iteration based on feedback. But running an agile workflow doesn’t mean you shouldn’t actually plan.

Read more »

Posted by & filed under code editors, debugging, geek, programming.

For me, vim is a toy that keeps me engaged with coding every day. It’s simultaneously fun and useful, like driving a stickshift. It seems like there’s always some new way to use it, some trick to add to my arsenal that makes me incrementally faster and more efficient. I think a lot of vim users feel this way.

Interestingly, though, I know a lot of engineers who have used vi or vim for a long time yet have never really explored the vimrc or vim plugins very much. Similarly, I know a lot of engineers who won’t consider using it because they feel that it lacks the power and integrations of their IDEs. Well, I say that through customization and plugins vim can surprise both of these types of engineers, retaining its speed and elegance while nearly becoming an IDE itself. Read more »

Posted by & filed under ecommerce, Programming & Development.

My family owns and runs a small bicycle shop in Appleton, WI. For years they used a turn-key solution to sell items online. Over time the solution proved to be inadequate and they asked me if I could help them migrate to something new. After doing quite a bit of research I discovered that most free or open source solutions were missing features or were incredibly difficult to configure and maintain. On top of that, most of the for-pay subscription services were expensive and still didn’t have all of the features I was looking for. At this point I decided to build my own. Little did I know that I was starting a path that would teach me why most e-commerce solutions were complicated, missing features, expensive, or all three.

Building a full ecommerce site from scratch can be overwhelming. There are a lot of moving parts that constantly need to be tracked and used in various ways. In the first part of this guide I’ll cover an introduction to the various components required to build an ecommerce site. Later, I’ll dive into actual code examples for building an ecommerce site in Django.

Read more »

Posted by & filed under algorithms, programming, python.

My wife and I are avid board gamers, but oddly one of the the things we enjoy most is organizing the game itself. We’ve often joked about buying a game just to organize it. I love the “pop” as the chits break free from their cardboard bonds; discovering how each piece looks and sorting them according to size, shape and color; figuring out how to put the pieces back in the box without having any of them break before the next time we play the game.

I think this love of tidiness is also what draws me to algorithms and sorting algorithms in particular. You start with a jumbled array of items and by following some simple steps you arrive at something organized, something that makes sense.
Read more »

Posted by & filed under search.

There is a specific problem we run into again and again whenever we deal with searching a sufficiently diverse set of content. We call it the dictionary problem because it’s particularly endemic to dictionaries, but it’s a general problem that tends to prioritize minimal entries that mention a subject over larger entries that are about a subject. But in order to explain why this happens, I’m going to start by saying a little more about relevance ranking.

Read more »

Posted by & filed under conferences, ConnectED, Content - Highlights and Reviews, education technology.

This past February, Tim O’Reilly brought me into an email thread with the White House with a straightforward but urgent request — could Safari provide the delivery mechanism to make all of O’Reilly Media’s titles available to every K–12 student in America? Commitments to the President’s “ConnectED” program were lined up from a number of software, hardware, and networking companies, but connected devices would be much more useful with content included. We’re proud that we were able to say yes to something so important — and on such short notice. Read more »