Safari native apps
iOS: Safari Queue
We’re looking to go from good to great on our iOS app, Safari Queue, by continuing active development to add the most-requested features. Thank you to everyone who has used, rated, and reviewed Queue, and look for continual updates in 2015.
Android: Safari Queue
Android users are encouraged to join our Google+ group to follow development and get access to the early beta builds in January. Product Manager Bill Levien put together a preview video to show our progress to date. The Android app will definitely not be a lesser clone of the iOS Queue; this is a fully realized Android application that we think you’ll love.
Safari To Go
Though we’re focusing our mobile team on the Queue app series, we haven’t forgotten our users on Safari To Go. We’re planning some much-needed maintenance work on Safari To Go in the beginning of next year.
Read more »
By Lauren Keller Johnson
Lauren Keller Johnson is a freelance writer living in Harvard, MA
To survive in an arena marked by constant change, your company has to innovate—create new offerings, as well as new business and operating models. To do that, people in every group, function, and team need to envision fresh, bold ideas that can be transformed into groundbreaking new products, services, and ways of getting things done.
That’s where you as a manager come in. As Lisa Bodell points out in her book Kill the Company, it’s your job as a manager to make your group a “zombie-free zone”—a place where people combat complacency by using their brains. Where innovation can thrive naturally. Where your people know that if they go out on a limb they have a safety net, so they’re not afraid to experiment. Read more »
Welcome to the conclusion of our seven-day Design Patterns Series. Today, we’ll conclude the series by learning the State pattern, reviewing the Strategy pattern, and pointing you to a number of other resources you can use to continue learning about Design Patterns. Open a free 10-day Safari trial account to access the series materials.
Did you know there’s an object-oriented way to implement state machines? More generally, sometimes objects can be in different “states” at different points in time — e.g., a file could be open or closed — and their behavior needs to change accordingly. Today, we’ll learn how to handle situations like this using the State pattern.
After that, we’ll look at the Strategy pattern. You already saw the Strategy pattern on Day 1 of this series, when you read chapter 1 of Head First Design Patterns. But now that you have a few more patterns under your belt, you might see it in a slightly different light.
Read more »
Welcome to day six of our seven-day Design Patterns Series. Today, we’ll be learning the iterator and composite patterns. Open a free 10-day Safari trial account to access the series materials.
Iterator and Composite Patterns
We’ll begin with the Iterator pattern. In the words of the GoF book, Iterators “provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation.” If you’ve used the Java Collections classes, you’ve almost certainly used an Iterator. In fact, Java’s Iterators are an instantiation of the Iterator Design Pattern. They’re external iterators, to be precise.
After that, we’ll look at the Composite pattern. If you’ve used PowerPoint (or almost any vector drawing program), you might have seen that you can draw some boxes and lines, select them, and then put them into a group. Then, you can draw more boxes and lines and put them into a group too. But you can also put groups in a group, along with boxes and lines. This can get arbitrarily complex: you can have groups of groups of boxes and lines and more groups, which also have boxes and lines and groups in them. Now, if you’re developing a program like PowerPoint, you’ll probably have objects representing boxes, lines, and groups… and this is an ideal situation for applying the Composite pattern.
Read more »
Though I’m an editor by training, I spent several years managing new products and services for a previous employer in the publishing business who saw fit to put their trust in my relatively naive hands. While my product team had some legitimate successes, I suspect that most of them came about in spite of my management than rather than due to it. It certainly would have done me good to have spent time with resources such as these. Read more »
Welcome to day five of our seven-day Design Patterns Series. Today, we’ll be learning the Facade and Template Method patterns. Open a free 10-day Safari trial account to access the series materials.
Facade and Template Method Patterns
Today, we’ll begin by looking at the Facade pattern. Sometimes, you’ll have a complex, powerful subsystem with lots of objects, but you’ll find that many of your clients have relatively simple requests — they don’t need to be exposed to the full complexity of that subsystem. For those clients, you can provide a Facade, a simplified interface that makes the subsystem easier to use.
Then, we’ll be looking at the Template Method pattern. Template Methods are used in superclasses: the superclass defines the “skeleton” of an algorithm, while subclasses “fill in the details” of how to perform certain steps.
Read more »
Welcome to day four of our seven-day Design Patterns Series. Today, we’ll be learning the Command and Adapter patterns. Open a free 10-day Safari trial account to access the series materials.
Command and Adapter
Today, we’ll be looking at the Command pattern. Essentially, you’ll build an object that encapsulates a method call. This allows you to make the behavior of an object configurable, and it also provides a clever way to support Undo operations.
Then, we’ll look at the Adapter pattern. Adapters are especially useful when you’re dealing with libraries or other third-party code that you can’t change. You’ll find that you have an object that does what you want, but it doesn’t have the interface that you need. This is where Adapters come into play: they present the interface a particular client expects, while delegating the real work to an “adaptee,” effectively allowing the client and the adaptee to work together even though their interfaces are incompatible.
Read more »
Welcome to day three of our seven-day Design Patterns Series. Today, we’ll be learning three Factory patterns, as well as the Singleton pattern. Open a free 10-day Safari trial account to access the series materials.
Factory and Singleton
We’ll begin today by looking at the notion of factories. Then, we’ll look at the Singleton pattern, which provides a way to ensure that only one object of a particular type is created. The reading is a bit longer than usual today, but if you can find some early-in-the-series motivation, it will pay off.
Read more »
By Jimmy Guterman
Jimmy Guterman is editorial director of Collective Next and a curator of TEDxBoston. Previously, he served as a senior editor of Harvard Business Review.
Many of us started blogging to express ourselves and publicize some aspect of our personal interests. Maybe for you it was reviews of the latest tech gadgets; observations about politicians, athletes, or entertainers; or pointers to the best-hidden cat pictures. What those reasons all have in common is that they were all about you: your interests, your sensibility, your sense of humor. You wanted people to know what you thought. Over time, you developed an online voice that captured the slice of yourself you felt was most worth sharing.
It’s different when you’re blogging on behalf of your business. Read more »
Welcome to day two of our seven-day Design Patterns Series. Today, we’ll learn our first two patterns: Observer and Decorator. Open a free 10-day Safari trial account to access the series materials.
Observer and Decorator
Welcome back to Safari’s Design Patterns Series! Today, we’ll start an in-depth exploration of individual Design Patterns, studying two patterns each day until the end of the bootcamp. We’ll begin with the Observer and Decorator patterns.
Read more »