Search

Showing results for Mike Pennisi
  • Interop 2025 Call for Proposals

    Mike Pennisi - September 17th, 2024

    Between implementing brand-new technology and fixing bugs in existing code, the folks who make web browsers have no end of important work to do. The problem space is so vast, in fact, that even deciding where to start is a challenge. That’s where you come in! But first, some background. The Web Platform Tests Interop […]

    CC BY-SA icon
  • Test262, Inside-out

    Mike Pennisi - March 4th, 2021

    Have you ever noticed how easy it can be to overlook small problems in everyday life? Some things start off as imperceptible but slowly intensify over time, and just like the apocryphal frog in boiling water, we acclimate. In pathological cases, we don’t recognize what’s happening until the issue has grown way out of hand. […]

    CC BY-SA icon
  • The ECMAScribes

    Mike Pennisi - October 3rd, 2019

    Did you know that in the process of standardizing JavaScript, TC39 publishes notes for each of their regular meetings? Every other month, over 50 “delegates” convene to discuss the future of the language, and the minutes they publish provide an incredible view into their discussions. Here’s what you can expect to find: a list of […]

    CC BY-SA icon
  • Lessons Learned from a Year of Testing the Web Platform

    Mike Pennisi - July 22nd, 2019

    The web-platform-tests project is a massive suite of tests (over one million in total) which verify that software (mostly web browsers) correctly implement web technologies. It’s as important as it is ambitious: the health of the web depends on a plurality of interoperable implementations. Although Bocoup has been contributing to the web-platform-tests, or “WPT,” for […]

    CC BY-SA icon
  • The Eight-Month Omelette: adding a feature to one million conformance tests

    Mike Pennisi - December 5th, 2018

    The web-platform-tests project (WPT) houses over a million tests written to ensure our browsers provide a consistent experience of the web. WPT predates most of today’s popular JavaScript testing frameworks, so it implements one of its own: testharness.js. In December of 2017, I offered to extend testharness.js with a new feature. No one expected this […]

    CC BY-SA icon
  • Three Cheers for Bmac

    Mike Pennisi - July 27th, 2018

    Friday, July 27 marked Brendan McLoughlin’s final day at Bocoup. Brendan (better known around the web as “bmac”) joined us way back in 2013, so there’s a lot to say about his contribution to our company. The most important thing to know about Brendan’s style (and probably the first thing you’d notice when working with […]

    CC BY-SA icon
  • WPT Workshop Report

    Mike Pennisi and Simon Pieters - July 19th, 2018

    On June 13, operations screeched to a halt here at Bocoup. The phones were ringing, but we didn’t answer them. Packages delivered to our door went ignored. Chicken eggs piled up. All hands were on keyboards, collaborating on the web-platform-tests project. We’ve been participating in WPT for years, largely in collaboration with the Chromium, Gecko […]

    CC BY-SA icon
  • So, You’d Like to Start an Open Source Project

    Mike Pennisi - January 29th, 2018

    Regular readers of this blog are no strangers to free and open source software. From Firefox to Brave, Node.js to OpenSSL, and jQuery to React (finally), today’s web developer can’t get very far at all without relying on “FOSS.” However, there is a huge difference between consuming FOSS and maintaining FOSS. The latter task is […]

    CC BY-SA icon
  • Our Technical Partner Moseys On

    Mike Pennisi - December 11th, 2017

    Back in 2012, on a day that is now ensconced in company lore, the IRC user tkellen joined the channel for the Bocoup-maintained F/OSS project, Grunt. The stranger immediately began to vent on all the shortcomings he saw in the task runner. This was our introduction to Tyler Kellen. We’re reflecting on that event today […]

    CC BY-SA icon
  • Lorin, Redrafted

    Mike Pennisi - December 1st, 2017

    Our pal Lorin Bond has headed out Californee Way to seek her fortune in her home state. She’s done a lot of good around these parts over the past few years, and we wanted to make sure everybody knows about it. From the get-go, we all knew we wanted to work with Lorin. For some, […]

    CC BY-SA icon
  • I Slipped on JavaScript’s Banana Peel

    Mike Pennisi - November 20th, 2017

    Think of the last time you goofed up on the job. Maybe you forgot to clean out the microwave in the break room. Maybe you hit “Reply All” when you really meant “Reply.” Or maybe you nodded off during an all-hands meeting. Probably your mistake was a little less banal than any of that, but […]

    CC BY-SA icon
  • The Other Bob

    Mike Pennisi - October 13th, 2017

    Bob Holt was an easy hire. He had plenty of experience as a front-end developer. He was engaged in the Boston web development community, meaning he was no stranger to the Bocoup Loft. And beyond just wielding open source software, Bob maintained an offering of his own: Keel.js. He was doing us proud from the […]

    CC BY-SA icon
  • This One Outgrew Her Shell

    Mike Pennisi - October 1st, 2017

    Can you tell me what EBITDA stands for? No? Okay, well, how many varieties of sea slugs can you name? None?! Clearly, you have never worked with Jasmin Jata. She taught us all this and more over the past 3 years. Although Jasmin joined us with a good deal of experience under her belt, she […]

    CC BY-SA icon
  • Scorpion Gets Steppin’

    Mike Pennisi - September 15th, 2017

    Our pal Matt Surabian (a.k.a. “Scorpion”) has left Bocoup to pursue his interests in the Go programming language and technical operations. In light of this bittersweet news, we found ourselves reflecting on the time we’ve shared since he joined us. Matt’s been an excellent consultant. From a technical standpoint, he’s consistently demonstrated chops in web […]

    CC BY-SA icon
  • A Powellful Farewell

    Mike Pennisi - September 14th, 2017

    To the best of our knowledge, Laura Powell is the only person to lie to us while interviewing. She shared a tall tale about an unfortunate series of events during a wedding, and she challenged us to spot the fib. While deception was not a tool she would employ again, her knack for storytelling was […]

    CC BY-SA icon
  • The Caper of the Flaky Test

    Mike Pennisi - August 3rd, 2017

    The test showed up on my desk just like any other. There I was, working with Google’s Web Platform Predictability team to find so-called “flaky” tests in the venerable Web Platform Tests project. I’d run a hundred or so at a time, over and over again, looking for any that reported inconsistent results. It was […]

    CC BY-SA icon
  • Death Bear Starts a New Life

    Mike Pennisi - July 28th, 2017

    Sue Lockwood recently left Bocoup to start a new job at Splice. There’s a lot we’re going to miss about working with her, but I think it all boils down to passion. Sue pours her energy into everything she does, and everyone at Bocoup benefited from that. It’s fair to say that we all know […]

    CC BY-SA icon
  • Keep on inspiring us, Yannick!

    Mike Pennisi - July 28th, 2017

    Our pal Yannick has left Bocoup to pursue his interests in data visualization at Google. We’re excited to see what he does next, but we wanted to take a minute to reflect on all the great things we did together over the past four years. Yannick’s reputation precedes him; from the day he started, we […]

    CC BY-SA icon
  • Accessibility for Robots

    Mike Pennisi - July 26th, 2017

    Maybe you’re not a “people person.” It’s not that you dislike other humans, but you recognize certain realities of your work. Your day job is maintaining a web application, after all, not carousing with your users. You know that accessibility is an important topic, but you haven’t been able to find the time to learn […]

    CC BY-SA icon
  • Peter Changes Divisions

    Mike Pennisi - July 21st, 2017

    Peter Beshai has hung up his Bocoup jersey so that he can continue to challenge himself in the field of data visualization. We wanted to take a moment to talk about why Peter will always be a member of this team, wherever he plays Peter’s first order of business was creating an interactive experience for […]

    CC BY-SA icon
  • Irene.next()

    Mike Pennisi - July 18th, 2017

    Following a six-year stint as Bocoup’s leader in data visualization, Irene Ros has struck out on a new path with Google. In this post, we’d like to celebrate her many contributions to Bocoup over the years. Let’s get the obvious stuff out the way, first. Irene started Bocoup’s data visualization initiative with the declaration, “I […]

    CC BY-SA icon
  • Lyza’s Laser Focus

    Mike Pennisi - June 30th, 2017

    When we first welcomed Lyza Gardner to our team, we knew her to be an especially thorough sort of web developer. Now that she’s struck out on her own, it’s a good time to document how she maintained that reputation during her time at Bocoup. Lyza floored us with a presentation all about the burgeoning […]

    CC BY-SA icon
  • Spliced from Our Array

    Mike Pennisi - June 30th, 2017

    Writer of code and lover of words Brian Brennan has left Bocoup to build collaborative music services at Splice. We had the pleasure of working with Brian for three years, so we wanted to take a moment to reflect on that. When he first joined our team, Brian worked primarily as a consultant. He lent […]

    CC BY-SA icon
  • See You JavaScript Cowboy…

    Mike Pennisi - June 30th, 2017

    To say that “Cowboy” Ben Alman has a knack for automation would be an understatement. For proof, look no further than his legendary “dotfiles” repository, meticulously crafted to initialize computers to his exact specifications. But this is really only half of the picture. For as long as we’ve known him, Ben has been generalizing those […]

    CC BY-SA icon
  • So Long, ajpiano

    Mike Pennisi - June 28th, 2017

    Adam Sontag came to Bocoup with a reputation for community support. Between his tireless commitment to newcomers in the #jquery IRC channel on freenode.net and his commanding presence on the yayQuery podcast, if you were learning jQuery in 2010, you probably got a tip or two from Adam. (We’d be remiss if we neglected to […]

    CC BY-SA icon
  • K.Adam Presses On

    Mike Pennisi - June 6th, 2017

    Following five excellent years of service, K.Adam White has left Bocoup. What can you do in five years of participation on the open web? K.Adam’s answer: quite a lot. K.Adam’s main squeeze has always been WordPress. He’d already made a name for himself in that project before he joined up at Bocoup, and he kept […]

    CC BY-SA icon
  • Sent from Valhalla

    Mike Pennisi - June 6th, 2017

    We were warned. When Claire Rittershaus joined Bocoup, Rick sent out an e-mail stating, “she loves to smile.” It’s not that we didn’t believe him; we just didn’t understand. Claire loves to make other people happy, so her regular smiling has been a dependable indicator of our well-being over the past three years. Between company […]

    CC BY-SA icon
  • Our Associate Moves On

    Mike Pennisi - June 6th, 2017

    The inimitable Mat Maquis (better known online as “Wilto”) has struck out on his own as a freelance consultant. Now that we’re positive he’s not within earshot, we’d like to take a minute to talk about how excellent it was to work with him. We were excited to welcome Mat onboard back in 2014 because […]

    CC BY-SA icon
  • Diving Into the Web Platform Tests

    Mike Pennisi - April 27th, 2017

    Illustration by Sue Lockwood At Bocoup, we hold strong convictions about the social significance of the web platform. We want to see it expand, and we want to make sure that it remains open in all senses as it grows. Following the lead of Philippe Le Hegaret of the W3C (and in collaborations with the […]

    CC BY-SA icon
  • Lets Define My Favorite Test

    Mike Pennisi - March 9th, 2017

    Since starting our work on Test262, the official test suite for the ECMAScript programming language, we’ve seen our fair share of strange tests. For nerds like us, every test has the promise to teach us something new, make us laugh, or bury our head in our hands. But unlike choosing between movies, books, or 18th […]

    CC BY-SA icon
  • JavaScript Developers: Watch Your Language!

    Mike Pennisi - November 30th, 2016

    Illustration courtesy Matt McLaughlin. It is 9:18 AM on August 21, 2021. You have just finished eating your space-breakfast, and you’re ready to get back to work maintaining the web presence for Omni Consumer Products. After about an hour, you find your latest change fails an acceptance test. It turns out to be a bug […]

    CC BY-SA icon
  • Test262 is a JavaScript Sideshow

    Mike Pennisi - August 25th, 2016

    Illustration by Sue Lockwood TC-39, the standards body that defines JavaScript, maintains a gigantic suite of tests for the language. The name of that test suite is Test262. When we started extending Test262 to cover brand new language features, we knew we were in for some surprises. Even so, we never could have anticipated the […]

    CC BY-SA icon
  • Advancing the Open Web through Test262

    Mike Pennisi - August 11th, 2016

    In the beginning of 2015, we started another important project for the open web. Of course you haven’t forgotten, but for all the folks just joining us: Google and Bocoup teamed up to improve Test262, the official test suite for the JavaScript language. Our goal was to improve the dependability of the web platform (not […]

    CC BY-SA icon
  • The Cranky Ghost in the Machine

    Mike Pennisi - April 25th, 2016

    Sometimes I swear source code can say as much about its author as any poetry. This might sound like an exaggeration (or like I don’t read too much poetry), but I’m often surprised by how style and values find their way into the seemingly-lifeless language of software. For me, nowhere has this been more apparent […]

    CC BY-SA icon
  • Seams in JavaScript

    Mike Pennisi - March 17th, 2016

    Sometimes I’m not satisfied with the way things are. I wish they could be a little bit different, just for a moment. I deal with this desire in my personal life by sighing and gazing through a rain-dotted window. When writing code, I take a more productive approach: I use seams. During application development, there […]

    CC BY-SA icon
  • A New Sun Over Malibu

    Mike Pennisi - January 29th, 2016

    Our pal and longstanding Bocouper Greg Smith has left Bocoup to work with the fine folks at Brightcove. Greg joined Bocoup back in 2011, and he’s accomplished quite a lot since then! Between completing 91 (his ambitious crowd-funded role playing game), single-beardedly developing boxbox, launching the ever-popular learnlayout.com (and the not-quite-as-popular isitmarchfirst.com), and presenting a […]

    CC BY-SA icon
  • The ES2015 Nightmarefile

    Mike Pennisi - June 16th, 2015

    They tried to cover this up. In designing ECMAScript 2015 (a.k.a. ES6, a.k.a. ES2015), the authors identified a number of undesirable side effects of their work. “Why worry?” they asked. “People will be so smitten with arrow functions and block-scope bindings that they won’t care about a few measly backwards-breaking changes.” Well I care, and […]

    CC BY-SA icon
  • Stabilizing ECMAScript 2015 (ES6): Teaming up with TC39 and Google on Test262

    Mike Pennisi - February 18th, 2015

    August 14, 2015. Mark your calendars. That’s my next birthday. Another important date is June 18, 2015–it’s when the ECMA General Assembly will vote on and approve the 6th edition of Ecma-262 and usher in the next era of JavaScript. On that day, all those new language features we’ve been coveting/dreading will officially enter our […]

    CC BY-SA icon
  • What’s in a Function Name?

    Mike Pennisi - November 25th, 2014

    Every time I contribute to JSHint, I learn a little more about JavaScript. My most recent fantastical knowledge adventure led me to the behavior of the name attribute of function objects. JSHint has an interesting but lesser-known feature: code analysis reports. When used programatically, JSHint will return an object with some data about the code […]

    CC BY-SA icon
  • A Day at the Races: Avoiding Random Failures in Selenium UI Tests

    Mike Pennisi - October 15th, 2014

    Selenium is an indispensable tool for developing web applications. It allows developers to write test scripts that control real browsers and ensure their applications behave in the way that users expect. Tests like these make software development much more pleasant–developers can have much greater certainty that their application is functioning correctly even after large refactoring […]

    CC BY-SA icon
  • Improve Your Tests by Breaking the Rules

    Mike Pennisi - July 14th, 2014

    For many developers, writing tests is a hassle that would be best put off till tomorrow. For one, nothing can compete with the direct impact of writing great application logic. No user ever shared feedback like, “The UI was really pleasant and the functional tests were well-organized and readable.” There’s not much I can say […]

    CC BY-SA icon
  • Proactive Node.js Development with Travis CI

    Mike Pennisi - March 13th, 2014

    Life on the cutting edge can be treacherous. At any moment, your web browser may dramatically update its user interface. Your e-reader might take your books away. Your favorite snack cake could disappear from store shelves. For many, the uncertainty of this lifestyle just isn’t worth it. Fortunately, when it comes to Node.js development, you […]

    CC BY-SA icon
  • d3.chart v0.2: Iterating on Reusability

    Mike Pennisi and Irene Ros - February 21st, 2014

    It’s been about eight months since we announced d3.chart, and today we’re excited to release a new version of the framework for creating reusable visualizations. We’ve strived to incorporate as many of the lessons we learned in the eight months since the initial release. For detailed explanations of these changes, see our migration guide and […]

    CC BY-SA icon
  • Effective Unit Testing with AMD

    Mike Pennisi - December 12th, 2013

    AMD (short for Asynchronous Module Definition) is a JavaScript API specification for structuring modular code. The web abounds with blog posts illustrating its use in front-end application development (and there’s plenty of healthy debate around its necessity, too). The topic of unit testing (despite being integral to the process of software development) does not receive […]

    CC BY-SA icon
  • Information Hiding in JavaScript

    Mike Pennisi - June 18th, 2013

    Why would Bocoup, a company whose charge is to “move the open web forward,” be publishing an article on something so nefarious-sounding as “information hiding”? An article titled “Free Love & Information in JavaScript” would seem much more apt for this blog. Trust me: if information hiding were an inherently immoral practice, I wouldn’t know […]

    CC BY-SA icon
  • Exploring Reusability with D3.js

    Mike Pennisi - May 28th, 2013

    The D3.js JavaScript library frequently comes up across our adventures in data visualization. Those who read the tutorials or spend time on the mailing list will likely notice frequent use of the term “reusable” when it comes to creating visualizations with the library. There’s a lot of meaning packed into that word, so we wanted […]

    CC BY-SA icon
  • Open Peer and the Frontiers of WebRTC

    Mike Pennisi - May 2nd, 2013

    At Bocoup, we love working on the latest problems in front-end development such as parallel processing, best practices in web application development, and media-rich experiences. This is why we consider the folks at HookFlash kindred spirits; they have made browser-based peer-to-peer communication their “thing”. We recently had the privilege of working with the HookFlash team, […]

    CC BY-SA icon
  • Realtime Node.js App: Building a Server

    Mike Pennisi - January 14th, 2013

    This post is the third in a three-part series describing our investigations into scalability for a second screen application we built for PBS. You can read the series introduction here. Being familiar with the stress testing procedure is all well-and-good, but that knowledge won’t really help you unless you have a server to test. In […]

    CC BY-SA icon
  • Realtime Node.js App: Stress Testing Procedure

    Mike Pennisi - January 3rd, 2013

    This post is the second in a three-part series describing our investigations into scalability for a second screen application we built for PBS. You can read the introduction here. This guide assumes you have a production server up and running. If you need help getting there, check out the final post in the series for […]

    CC BY-SA icon
  • Realtime Node.js App: A Stress Testing Story

    Mike Pennisi - December 18th, 2012

    This post is the first in a three-part series describing our investigations into scalability for a second screen application we built with PBS. You can read more about the project in the series introduction here. Some Background We built the Map Center second-screen application in Node.js with the help of a number of open-source libraries. […]

    CC BY-SA icon
  • Bocoup & PBS: Building and Scaling a Realtime Node.js Application

    Mike Pennisi - December 14th, 2012

    This summer, Bocoup worked with Mozilla and PBS to build an open source, real-time web application for the 2012 US Presidential election. When we began, PBS (specifically, the folks at News Hour) had already completed a client-side application called “Map Center“. Map Center enabled users to view US demographic data and experiment with electoral college […]

    CC BY-SA icon
  • Third-Party JavaScript Development: The Future!

    Mike Pennisi - June 5th, 2012

    I’ve just returned from the future, and I have a lot to share with you. World news, sports scores, market changes, all that stuff can wait. First, we need to talk about third-party JavaScript. There’s a great deal of browser technology on the way that will affect the way you write code. Here, I’ll focus […]

    CC BY-SA icon
  • Third-Party JavaScript Development: CSS Defensive Techniques

    Mike Pennisi - April 17th, 2012

    (In a previous article, I introduced a convenient method for shipping stylesheets with your third-party JavaScript application.) When styling content in your third-party JavaScript application, you have a unique challenge to overcome: interference. The publisher may have used any number of techniques to define styles, and many of them threaten to modify the appearance of […]

    CC BY-SA icon
  • Third-Party JavaScript Development: Optimizing CSS Delivery

    Mike Pennisi - April 10th, 2012

    As a practicing masochist, I have recently developed an interest in third-party JavaScript application development. I’m not alone: third-party JavaScript (or “3PJS”) applications are becoming more and more common on the web (see Disqus, Optimizely, and Google Analytics, for instance). Like any developing methodology, best practices are constantly being explored and re-defined. In this article, […]

    CC BY-SA icon
  • Fieldrunners: Playing to the Strengths of HTML5 Audio and Web Audio

    Mike Pennisi - August 26th, 2011

    Bocoup is excited to be working with Gradient Studios to port the hit mobile game Fieldrunners, by Subatomic Studios, to HTML5. This is the third in a series of weekly development blog posts. This week, we focused on incorporating sound into the Fieldrunners port. Lucky for us, in-browser audio support has come a long way […]

    CC BY-SA icon
  • Spoofing User-Agent with Chrome’s WebRequest API

    Mike Pennisi - August 19th, 2011

    Whenever you ask for a page on the web, your request has a lot of data attached to it. One part of your request (the “user-agent” string) describes your software environment—usually your operating system and your browser’s name and version number. Like many things on the web, this data is a convention, not a law. […]

    CC BY-SA icon
  • The Strategy Pattern in JavaScript

    Mike Pennisi - June 20th, 2011

    I was recently re-factoring some code under Rick‘s guidance, and we implemented what I would later recognize as the Strategy pattern. JavaScript’s objects and first-class functions make this pattern extremely simple to implement, although you can optionally take some additional steps to add robustness. Background: Design Patterns A lot of my troubles with design patterns […]

    CC BY-SA icon