Chris Gagné

Delight customers. Create value. Do good.

A Sound-Sensitive Disco Suit: The Concept / Part 1

Between 1999 and 2001, I used to “video-jockey” (or “VJ”) at some of Los Angeles hottest night clubs. I carried two Mac laptops, a video mixer, a small LCD screen, and a pair of rudimentary “VR goggles” inside of a modified electric guitar case. Almost every Saturday night, I was paid $150 to geek out and hang out for four hours at a night club.

One of the things unique to the visuals I produced was that they were both interesting and very sound-reactive. Unlike traditional VJs who would simply play various video clips one after another, these graphics were very much alive with the music. Unlike “music visualizers” (like those still available in iTunes), the graphics were more interesting to look at over a longer period of time.

When the price of “smart” RGB LEDs began to drop, I began to think of how I could put together a full-body suit covered in dozens if not hundreds of sound-reactive LEDs. I’ve saw similar ideas on the Playa in 2011 and 2012, but they all suffered from a few flaws:

  • Too loose of a fit: more of a “cape” or “coat” rather than a form-fitting “suit” that permitted dancing
  • The patterns or implementations were boring, such as sewn-on light strips playing the same animation over and over
  • Lack of music sensitivity

Several factors made 2014 a great year for the project:

  • Newer “WS2811” LEDs had finally become cost-effective in the necessary quantities.
  • Micha Scott‘s fadecandy board made controlling those LEDs with a variety of hardware—from Macs to Raspberry Pis—an order of magnitude easier.
  • “USB batteries” had become high-quality and inexpensive.
  • The Raspberry Pi was fast enough to power the art.
  • Beta Brand’s Disco Jumpsuit was available for pre-order.

There wasn’t much in the way of available software—including open-source projects—that would provide the desired results on my own. So, I learned Processing—an IDE for Java aimed at multi-media artists—and began to write the software that would later power the suit.

I know that I needed interesting but “fast” visuals. The good news is that Raspberry Pis are even more powerful than the MacBooks I used to use in 1999. In the interest of simplicity, I stuck with concepts that I used back then.

The first was color-cycling. It’s a trick used on old computer games, and it looks sort of like this:

There is no “animation” per se. Although it would appear that there are several concentric circles expanding and contracting, this is actually a static image that looks like:

image

At the center, we have the color #000000 (black). At the corners, we have the color #FFFFFF (white). There is an even grayscale graduation in between, so somewhere in the middle we’d see #999999 (grey) and other various shades.

This gives us a color palette, which “looks” like this:

image2

Now suppose we were to “rotate” that color palette, meaning that we’d shift the position. It’d look like this:

image3

In this case, I’ve rotated all the colors equally. What was #000000 became #999999, what was #999999 became #FFFFFF, and so on and so forth.

But these images have three channels: red, green, and blue. And those rotations don’t have to happen evenly.

In this example, I shifted the red channel by about 50%, the green channel by about 20%, and I didn’t touch the blue channel. Here’s what I got:

image4

I also have the option of “stretching” in addition to shifting, although I didn’t use that particular technique here.

Here’s that original image, with some simple level adjustments:

image5

Notice how I applied various different level permutations to each of the three channels:

Screen Shot 2015-10-21 at 9.47.09 PM

So, it’s easy to see how the animation was generated. Even a simple radial gradient can produce interesting designs, but of course, many more can be created:

Screen Shot 2015-10-21 at 9.48.44 PM

Each one of these images was a different pattern that could be applied to the suit. In many of these examples, you can also see where the arms, chest, back, and legs can be found.

And although I didn’t care to “stretch” the color palettes, I could start off with various different gradients. Each row in the image below is a different gradient that can be rotated across the pattern:
gradients

To sum things up so far: different patterns + different gradients + rotating gradients in three channels produces a lot of interesting visual designs with very limited resources.

Adding the sound responsiveness was simple, though there were some devils in the details:

  • Every “beat” randomly changed the pattern and gradient. The pattern and gradients could be individually selected and paused, or returned to auto.
  • Low- (bass), mid- (mids), and high-frequency (treble) sounds rotated the red, green, and blue color palette respectively. Rotation was bi-directional: an increase in volume rotated the palette one way, a decrease rotated it the other way.
  • The palette also rotated at a configurable speed, even when there was no sound input.

This beat detection plus variable palette rotation is the second concept I used back in 1999.

I fired up the app and with prevalent background noise and tapping on the laptop, produced this animation:

The small animation window reflected the small number of pixels (ultimately about 250) that I needed to drive the finished product.

Iteration 1 had been completed: I had a solid proof-of-concept running on my Mac.

Stay tuned for my next post! In the meantime, check out my GitHub repo for this project.

SF Agile Potluck #13: Agile in a Mobile World

For our October 28th Agile Potluck, we’ll discuss Agile in a mobile world.  Is Agile/Scrum right for mobile? What’s different from traditional web-based application development?

Come join us for a rousing discussion over great food! The potluck is from 7:00pm to 10:30pm at my home in the Dogpatch neighborhood of San Francisco. I hope you can make it!

 

A few more headshots

I’m really enjoying learning how to shoot portraits. A number of my friends have been willing subjects who are helping me tune my craft. Any constructive feedback is always appreciated.

These were shot against a white projection screen with a Canon 5D MkII, a Canon EF 70-200mm f/2.8L IS II USM at ~105-150mm, a 60″ Photek Softlighter II Umbrella as the key light, a Speedlite and umbrella as the hair light, and a couple of softboxes lighting the backdrop. I used “Google’s” Nik Collection to do editing and pre- and post-sharpening. In particular, I found Viveza’s “control points” very successful in reducing the “structure” of David’s shirt to help hide some of the wrinkles. The 70-200 is quite sharp at f/8 (made even more so by Reikan’s FoCal software), but I found the sharpening offered by the Nik Collection to be very helpful.

David Fritschdavid

Naureen Nayyar

IMG_0028_square

Paul Moreno

12107836_10153705626123921_9057830072425574061_n

IMG_0076

ExpressCard stuck in MacBook Pro (Late 2011)

I got an ExpressCard stuck in my MacBook Pro, Late 2011 model. There wasn’t anything accessible from the outside that would give me purchase with a pair of needle nose pliers.

I solved this problem by removing the screws on the bottom of my MacBook, then gently pushing the card out 1/4″ with a bent paperclip as shown in the photo above. Then it was a simple matter of pulling it out with my fingers. Simple!

Your mileage may vary and if you do this, you do so at your own risk. :)

Pro-tip: if the card takes more than light finger pressure going in, it’s going to take more than light finger pressure getting it out…

Lexar Professional ExpressCard Compact Flash Reader Driver for MacOS 10.10 and 10.11

I have a Lexar Professional ExpressCard Compact Flash Reader, model number LRWEXPP-7000.

Lexar’s latest drivers do not work for MacOS 10.10 and 10.11 because they way they must be installed has changed.

However, Andrew Jung, a reviewer on Amazon, left a very helpful tip on the product’s page a few days ago:

The drivers that Lexar uses are old and out of date and will not install on 10.10 and 10.11 because Apple now requires that all kernel extensions have a proper developer signature. Lexar’s response about that is:

“Thank you for contacting Lexar. Unfortunately, we have no plans on releasing an update for that reader since things have been leaning more towards Thunderbolt series and USB 3.0. I apologize for the inconvenience but you can check out our newer readers”

But I don’t take “No” for an answer and didn’t give up I figured out that Lexar’s reader uses an ATA bridge and drivers made by JMicron. I tried there but didn’t find anything to download on their site. Then I really wished that I had bought the Sonnet Technologies “Pro Dual Compact Flash ExpressCard/34 adapter” instead. I saw one for auction and was going to bit, but I figured that I should try to see if their software would install before I try to get the Sonnet ExpressCard.

I went to Sonnet Technologies’ website and download the driver for the “Pro Dual Compact Flash ExpressCard/34 adapter” (the 1.0.6 version I downloaded was released Nov 2014) and tried to install it. It succeeded in installing, which was good, but suddenly my Lexar Professional Express Card Compact Flash Reader’s activity light started blinking and my CF mounted on my MacBook Pro’s desktop that is running El Capitan.

The Sonnet driver tries to first install the JMicron driver and fails but then goes on to install CFRW2X-E34.kext instead and it works for my Lexar ExpressCard! It’s also got a nice Finder icon of a CF card instead of the generic orange one and in the System Information (Profiler) it properly identifies what brand type of card is installed.

Hope that is helpful for Mac users out there. In this case persistence paid off and I now can continue to use this reader for the foreseeable future.
I’m super happy now.

Use at your own risk, but I can confirm that this works just fine for me. Thanks, Andrew!

PS. If you’re reading this, this probably just saved you a whole bunch of money, so please consider donating a few bucks to a charity like Friends of San Francisco Animal Care & Control. They do truly amazing work.

Some headshots

I did a photoshoot with my good friend Genevieve Kayat a couple of weeks ago. Here’s a couple of shots we came up with:

11952734_10152937059391503_2835736538422809300_o 11952866_10152937061836503_7596608265559155860_o

These were shot with a Canon 5D Mk II, Canon EF 70-200mm f/2.8L IS II USM, two basic strobes with ~2′ x 3′ softboxes, and a third strobe as a hair light. I shot at 50 IS0, 1/125, f/9. I had black muslin cloth in the background, but I almost didn’t need it as the lights from the strobes fell off very quickly (inverse-square law).

I did post-processing using Photoshop and Google’s Nik Collection, starting with the Raw Presharpener (Sharpener Pro 3), noise reduction (Dfine 2), darkening/”destructuring” the dress and right shoulder in the B&W portrait using Viveza 2, B&W conversion (Silver Efex Pro 2), and finally a last pass at output sharpening (Sharpener Pro 3).

Export Incident Descriptions and Notes from PagerDuty

Here’s a quick Python Script that connects to PagerDuty’s API and pulls down the incident ID, description, and notes for all incidents in a given date range. It’s useful for appending to an existing CSV download via VLOOKUP, particularly PagerDuty’s new Advanced CSV Export.

I hope this is useful to you!

Introducing the Agile Potluck

Many of you may be familiar with Lean Coffee™, a “structured, but agenda-less meeting”  that happens world-wide as a way of discussing Lean techniques in knowledge work environments.

I’d like to introduce the Agile Potluck™. It differs from Lean Coffee in a few key ways: They’re smaller, less formal, and require more participation to attend. While Lean Coffee is great for talking through the challenges we face in the office, the Agile Potluck adds a personal touch that forges deeper, more meaningful connections. When the barrier to entry is higher, the quality of conversations improve (just ask anyone who has gone to Burning Man!).

I’ve hosted five of these potlucks so far and we’ve found them to be very successful. Here are some of the reviews that we’ve received:

“Wow, this was a terrific event. Loved meeting everybody, talking Agile (including learning about Nummi!), and enjoying great Paleo food! … This was a great networking event as it turned out also – thanks everybody for any networking assistance you can help me with here as a transplant to Silicon Valley!” Brian M. Wills,  Agile Coach

“Thanks for hosting this event Chris! I personally had a great time learning, dinning, and feeling honored to be part of a very refreshing and honest exchange ce soir!” — Alvin Du, Staff Engineer

“Lovely! What a wonderful evening. Truly one of my favorite experiences since moving to the city.” Brittany Fritsch, Project Manager

“We explored on how to best serve our clients/organizations :)” — Latha Swamy, Lean | Agile Transformation Leader and Executive Coach

“Great conversation, insightful discussion, and lots of insights.” — George Lawton, Technology Journalist

“We wined, we dined, we talked Agile, and had a great time!” — Lydia Sugarman, CEO/Founder of Venntive.com

I’ll be putting up a quick explanatory site (AgilePotluck.com, now linked to this blog post) in the next few weeks to share more of our findings and insights. I’ll also offer a listing of potlucks and sub-domains to anyone who is hosting their own Agile Potluck. A logo may also be in the works…

In the meantime, I’d like to invite anyone to start their own Agile Potluck. Here are a few things I’ve found useful:

  1. Consider starting a group on Meetup.com, like ours: The Bay Area Agile Potluck Series. This makes it much easier to promote your potluck.
    • Ask your participants to provide their LinkedIn profile URL, company, title, and a brief introduction when they join the group so that others can get to know them better.
  2. Be prepared to accommodate a variety of food preferences. People’s diets can be vegetarian, gluten-free, vegan, paleo, dairy-free, nut-free…
  3. Ask your participants to follow good potluck etiquette:
    • “Since this is a potluck, please bring something to share with several people. There are often leftovers, so bring a container if you’d like to take something home. When you RSVP, please add a comment indicating what you will bring. People typically bring an entree, side dish, desert, appetizer, or wine, cheese, and bread. Almost anything goes, just please bring something more substantial than a bottle of wine or bag of chips. Use your imagination!”
  4. Have a reasonable but explicit cancellation policy:
    • “This potluck is popular! If you RSVP “Yes” but cannot attend, please update your reservation at least 48 hours in advance to allow someone else to prepare a dish and attend.”
    • Be prepared to remove folks from the group if they habitually cancel late.
  5. Note anything about your cooking style or venue that may make it harder for some participants to attend:
    • Dog Note: I have a very well-behaved pit bull named Ika. She is a total sweetheart. If you have a fear of dogs I can put her away for the dinner, but the only help I can provide for allergies is a dose of Claritin. She doesn’t shed much…”
  6. Ask your participants to help spread the word.

NB: I’ve trademarked the term Agile Potluck™ for the same reasons the Lean Coffee folks did: to discourage others from trying to mess with it or make a buck off of it. Feel free to use the mark without advance permission so long as you:

  1. Actually host a potluck in which individuals bring dishes to share, network, and discuss Agile principles over a delicious meal together.
  2. Provide a link to AgilePotluck.com to help spread the word.
  3. Don’t charge anyone to attend or for food unless your space requires it (and then only at cost).
  4. Don’t use the potluck for commercial purposes. Companies are welcome to sponsor their own Agile Potlucks—even at their offices—just please don’t try to recruit, sell your product, or otherwise hype your company. This is a user group, not a marketing ploy.

600_430534062

600_430619712

The 747 Art Car Project

My friend Ken Feldman is bringing a 747 to the Playa. I never cease to be inspired!

How to Avoid Becoming Agile In Name Only

George Lawton, a freelance technology journalist who writes for ServiceVirtualization.com and other blogs joined several other Agile enthusiasts and I at my home for a Agile Potluck. Naturally, we had a rousing discussion of all things Agile over food and a couple bottles of nice wine and liquor. Stemming from our conversation, George sent me some thoughtful questions that I’ve responded to for his blog. I’ve copied and pasted them here as well.

While talk about DevOps and Agile is all the rage these days, organizations need to address the culture required to ensure success. Sometimes, it can be useful to bring in a third party – a someone with no dog in the hunt, so to speak – to help guide the team to new understandings of development constraints and how to overcome them through iterative approaches and more frequent, better testing.

We caught up with one such guy, Agile coach Chris Gagné, who explains what’s involved in creating a new culture. As Gagné explains, without a full cultural transition – and even a spiritual transition of sorts – companies are doomed to revert back to old Waterfall-style approaches. Such companies are Agile-in-name-only, he says. Here’s the best of our email discussion:

ServiceVirtualization.com: What is an agile coach?

Gagné: An Agile Coach is someone who mentors, teaches, and facilitates the Agile transformation within an organization. Ideally, a coach has had the direct experience of actually working in a highly-developed Agile culture (at several seniority levels) so that they can more accurately convey what it “feels” like.

ServiceVirtualization.com: What are some of the ways that cultivating a good Agile culture that allows teams ship twice the work in half the time with 10 times the joy?

Gagné: First, what is a good Agile culture? I recall my days at Evolve Media with great fondness. We created a culture of trust and ownership. We trusted the teams to deliver the goods and gave them room to surprise and delight us. We made them the owners of their work: once they could demonstrate that they understood Agile principles, we took a step back and allowed them to define how they worked together.

People need a sense of autonomy, mastery, and purpose to feel motivated in their work. A culture of trust and ownership allows teams to develop autonomy and mastery of their craft. A joyful work environment allows companies to attract and retain highly skilled experts who have the liberty of working anywhere they like. A good Agile product manager makes it clear to their teams why their work matters.

We know from Dale Carnegie that people want to feel important. If you can motivate them to care enough to produce their best work, they will feel the satisfaction of a job well done and can appreciate their importance to their organization.

Finally, people want to grow in their careers. An Agile learning organization allows team members to blamelessly inspect the quality of their work and processes so that they can continuously improve.

ServiceVirtualization.com: How does the notion of “a schedule is only a hypothesis” improve organizational learning and development process?

Gagné: Mary Poppendieck talked about this in her talk “The Tyranny of ‘The Plan’” at the Lean and Kanban event in 2009. When a team misses a delivery date, it’s common for managers to consider this a “performance failure” and punish the team. A better way to look at it is that “a schedule is only a hypothesis.” If the date is missed, the hypothesis was wrong. Thus, there is a learning opportunity. Complex stems inevitably fail. A failure is evidence that we do not have a full handle on how the whole system works. Your willingness to learn from this event rather than throw someone under the bus will increase your ability to understand this complex system and reduce the odds that you’ll have a similar failure. Every single little detail matters.

ServiceVirtualization.com: How can organizations leverage the idea of lowering the cost of failure?

Gagné: Innovation comes only through fearless experimentation: nothing tested, little gained. If the cost of failure is high for either the company or individual members of the team, the team will only take safe, predictable bets. Agile lowers the cost of failure because less is lost through taking smaller bets. The increased pace of development further allows teams to execute more tests in the same amount of time. This reduces the cost to the company. A good manager understands that even when a bet doesn’t pay off, the learnings gained and willingness to fail was worth the cost. These managers will not punish the team for the failure unless the failure was reasonably certain or avoidable.

ServiceVirtualization.com: What lessons can modern enterprises learn from the construction of the Empire State building?

Gagné: These lessons again come from Mary Poppendieck. The Empire State Building, an 85-story building in Midtown Manhattan, was built exactly on time and 18 percent under budget. They did this in 1930, 40 years before the microcomputer became popular and over 20 years before the invention of the PERT chart. The building team literally did the detailed planning for upper floors as the lower floors were being built.

The lessons for companies everywhere is: If Toyota can build cars using Lean and builders built skyscrapers without computer-based planning with similar principles, there’s no such thing as a project that’s too big to be built using Agile. In fact, I’d argue that the larger the project gets, the more important it is to break it down to smaller, iterative chunks.

ServiceVirtualization.com: What is the best place to start in getting an agile culture off the ground?

Gagné: Expose the C-level executives (and ideally the board) to companies that have a truly successful implementation. The most successful companies may not even call themselves “Agile” as they often discover their own way and transcend the Agile bootstrapping.

Hire executives and senior leaders from successful Agile companies.

An Agile coach can help with locating both informational interviews and tours with successful companies. They can also assist during the interview process with potential candidates to evaluate their Agile experience.

ServiceVirtualization.com: What lessons can larger organization draw from Toyota’s success in implementing Agile-like practices?

Gagné: First, If Toyota can do it, anyone in the software/hardware industry can do it. There’s considerably more capital and time involved in setting up an automotive manufacturing plant and “beta testing” new product concepts. Because there’s no obvious connection between building cars and writing software, there’s no easy way to simply attempt to mimic the processes found in a Toyota plant. So, by studying Toyota, one is more likely to walk away and implement the principles. Scrum and Kanban are just useful process starting points that are compatible with Agile principles, not ends in themselves.

ServiceVirtualization.com: What are the worst ways of trying to implement agile?

Gagné: A successful Agile adoption almost certainly will require a complete overhaul of the organization’s culture, structure and processes. The culture and structure are guided by C-level executives and the board, who must embark on a journey of personal transformation to transition from command-and-control to servant leadership. This path typically requires a large deal of psychological (and perhaps even spiritual) growth on the part of the leadership and can be both challenging and time-consuming.

Without changing the culture and structure, the company can only expect “fr-agile,” a state in which the team has perhaps achieved a degree of performance improvement (typically 35 percent) that falls fall short of the several-fold improvement possible with Agile. Further, because the team is being asked to follow processes that assume that teams are truly empowered and supported by servant leaders, the implementation will always feel “forced” and subject to collapse. In these environments, the program management office will frequently “improve” the Agile practices to relieve the pain caused by a process that does not reflect the extant non-Agile culture and structure. Inevitably, this will reflect a transition back to Waterfall-style processes that are “Agile” only in misguided perception.

« Older posts

© 2016 Chris Gagné

Theme by Anders NorenUp ↑