Search

Showing results for implementation
  • Javascript Web Workers: From Basics to jQuery.Hive, Part II (Browser Implementations)

    Rick Waldron - May 18th, 2010

    As I mentioned in Part I, the Web Worker API is available for use in Firefox 3.5+, Safari 4+ and Chrome 4+, however the implementations are inconsistant. This has been completely overlooked by every single tutorial I’ve found. The issue revolves around the accepted argument to postMessage() (from both the main window and the worker). […]

  • ARIA Automation Launch

    Lola Odelola - February 7th, 2024

    Automation is likely never going to go out of style. As a people, we’re constantly looking for ways to automate our lives and work in order to make the systems we rely on more efficient and reliable, and the ARIA-AT app is no different. We’ve added automation to the ARIA-AT App allowing test administrators to […]

  • Interop 2024 Launch

    Lola Odelola and Lazarus Letcher - February 1st, 2024

    Intro 2024 marks three years of working with our partners on bolstering interoperability on the web. This year, we’ve identified 17 focus areas dedicated to enhancing interoperability. Improving interoperability is not just about convenience; it’s a matter of accessibility and fairness, ensuring that simplifying web creation and navigation becomes a victory for all. The goal […]

  • Redesigning ARIA Authoring Practices Guide

    Seth Thompson - May 19th, 2022

    We are excited to announce the launch of a redesign of the ARIA Authoring Practices Guide (APG), an essential resource that shows web developers how to make accessible versions of common user interface design patterns, such as comboboxes, dialog modals, and menu bars. In coordination with the W3C APG Task Force and Education and Outreach […]

  • Bocoup and Interop 2022

    Simon Pieters - March 3rd, 2022

    In 2019, Bocoup, Google, Microsoft, Mozilla, Samsung, and W3C together conducted a survey for web developers called MDN Web Developer Needs Assessment. A key finding from that survey was that browsers behaving differently or not supporting the same features was among the top frustrations for web developers. The next year there was a follow-up Browser […]

  • Bocoup 2021 In Review

    Sheila Moussavi - January 27th, 2022

    Our 2021 Over the past several years, we’ve been transitioning toward a more explicit focus on accessibility, inclusion, and justice on the web. Last year, we invested in growing our team, expanding our partnerships, and strengthening our operational foundation to support that transition. We’re excited to share some highlights with you as we prepare for […]

    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
  • Introducing the Web Platform Contribution Guide

    Simon Pieters - May 26th, 2020

    Many people in the web development community, including many of us at Bocoup, were drawn to the web because it appears to be a diverse and inclusive technology platform. But, when we look around the room at who is working on web standards like HTML, CSS and JavaScript, it is mostly a narrow group of […]

  • Bocoup & Open Standards: A (Very Full) Year in Review

    Jory Burson - December 19th, 2019

    We’ve had a very productive year making web standards more open, predictable, and inclusive. As our standards liaison, my job is to spot opportunities for us to do that work externally, and to see where more support is needed. We still have a lot to do, but it’s nice to reflect on our accomplishments over […]

  • Launching Test262 Results on MDN Web Docs

    Rick Waldron, Valerie Young, and Seth Thompson - October 22nd, 2019

    We are excited to announce support for report embedding on test262.report, along with a new MDN collaboration to bring up-to-date information about ECMAScript feature conformance to MDN Web Docs. Starting today, you can view test results from Test262 Report, updated daily and embedded directly on MDN pages for the newest ECMAScript features where interoperability and […]

  • 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
  • Experiments in Faster Scratch 3 Loading with Texture Atlases

    Z Goddard - August 19th, 2019

    One of the best parts of the Scratch community is the diversity of Scratch projects. Community members have used the Scratch programming language to create many different kinds of interactive applications, from full game engines to music sequencers. One genre is especially unique: Multiple Animator Projects, or MAPs. These Scratch projects compile animations from many […]

  • Contributing to the ARIA Authoring Practices Guide

    Simon Pieters and Valerie Young - August 1st, 2019

    We believe that inclusivity and accessibility are of utmost importance to the open web platform. One of the ways that we empower the full diversity of Internet users is by ensuring that those with permanent disabilities and temporary limitations, can browse websites with assistive technologies. Writing accessible code improves the experience of browsing a website […]

  • 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
  • Optimizing Scratch 3 Pen Blocks

    Z Goddard - July 10th, 2019

    Earlier this year, we shared our work on the launch of Scratch 3.0, a major version of the visual programming environment for children of all ages. The new version of Scratch marked a complete rewrite of the runtime in JavaScript leveraging open web APIs. In our previous post, we enumerated the many performance optimizations that […]

  • Widening the Web with ECMA-402: Our work on the Internationalization Extension to JavaScript

    Valerie Young - May 30th, 2019

    Inconsistencies across browser implementations have caused web authors and users headaches since the dawn of time (or at least Jan 1, 1970), but nowhere has that pain been felt more acutely than in the realm of language and regional internationalization and localization. We have an inclusion gap on the web. Web authoring tools structurally exclude […]

  • Test262 Helps Advance JavaScript Proposals to Standardization

    Seth Thompson - April 11th, 2019

    Test262 is a conformance test suite for ECMAScript, the programming language on which JavaScript is based. Containing 36,103 individual tests at the time of this writing, Test262 ensures that different implementations of the language, such as the JavaScript engines in web browsers or stand-alone runtimes like Node.js or Moddable XS, agree on the minutiae of […]

  • Porting Scratch from Flash to JavaScript: Performance, Interoperability and Extensions

    Corey Frang - February 28th, 2019

    Last year we formed a team focused on using the growing number of new web APIs to build multimedia applications that push the edge of the web platform. Our main work in this area over the last 2 years has been with the wonderful team behind Scratch at MIT’s Lifelong Kindergarten Group (LLK), and with […]

    CC BY icon
  • Charting Web Platform Interoperability in 2018

    Seth Thompson - December 20th, 2018

    Bocoup has been a long-time contributor to the Web Platform Tests (WPT) project, helping spec writers draft testable specs and helping browser implementers test features for correctness and interoperability based on those specs. In 2018, we’ve made great strides improving the coverage of WPT, the ergonomics of writing and running tests, and the infrastructure necessary […]

    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
  • Announcing Test262 Report

    Rick Waldron and Boaz Sender - November 7th, 2018

    Today we’re launching Test262 Report to provide JavaScript developers with up-to-date information on the state of new and existing language features across implementations. Test262 Report is based on daily runs of Test262, the ECMA-262 (“ECMAScript” or “JavaScript”) test suite, in nightly builds of JavaScript engines, and visualizes at-a-glance status of feature implementation progress. Taking a […]

  • New Test262 Import and Runner in WebKit

    Rick Waldron - October 16th, 2018

    Bocoup recently facilitated an update to the WebKit project’s interaction with Test262. In this article, I’ll cover what this means for the WebKit project and the JavaScript ecosystem, as well as what exactly has been done in the WebKit project to help make this process more repeatable. Test262 is a project maintained by Ecma’s TC39. […]

  • The State of Fieldset Interoperability

    Simon Pieters - September 19th, 2018

    We recently started working with browser implementers to improve the state of fieldset, the 21 year old feature in HTML, that provides form accessibility benefits to assistive technologies like screen readers. It suffers from a number of interoperability bugs that make it difficult for web developers to use. Here is an example form grouped with […]

  • 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
  • Adapter Pattern – A Must for Vendor & Service Integrations

    Brendan McLoughlin - May 1st, 2018

    Software development is a costly process. Requirements need to be gathered, decisions need to be made, and resources need to be scheduled to write the software. All of these steps require an investment of time and money to get a feature to the point where it starts bringing value to a business. After the feature […]

  • 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
  • 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
  • Agile Methods for Tackling Technical Debt

    Matt Surabian - July 14th, 2017

    Managing technical debt is such an important part of software development we include this goal in every contract we send out: Reduce or eliminate technical debt. All complex projects accumulate some form of technical debt. In extreme cases, it can cause project velocity to slow to a crawl. In this post we’ll review a few […]

  • The Many Faces of Functions in JavaScript

    Leo Balter and Rick Waldron - May 11th, 2017

    If you’ve had any contact with JavaScript code, you’re probably very familiar with how to define and call functions, but are you aware of of how many different ways you can define a function? This is a common challenge of writing and maintaining tests in Test262—especially when a new feature comes into contact with any […]

  • Moving Targets: A Case Study on Testing Web Standards

    Lyza Gardner - May 8th, 2017

    Recently, I had the opportunity to contribute to a massive, meaningful effort: the open-source Web Platform Tests (WPT) project. My task was to improve WPT test coverage for areas of the HTML specification dealing with navigation —things like the details of loading new web pages, browsing around the web, and opening new windows. I didn’t […]

  • Screencast Transcript: Improving Webpack Build Times

    Matt Surabian - May 3rd, 2017

    On February 15, 2017 we had a screencast to talk about how to improve webpack build times by utilizing the new webpack HardSource plugin created by our colleague Z Goddard. This post contains the video of that event along with a transcript and visual aids. If you’re interested in learning more about webpack, check out […]

  • 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
  • Exploring New Technologies for Making Maps. Vector Tiles & WebGL (Part One)

    Yannick Assogba - February 10th, 2017

    Maps are both practical and political. They possess undoubtable utility for navigating the physical world and have a long history of being used to shape and reshape the our social and political conceptions of the world. The ability to mark a territory, carve up a continent (or remember one), count a people, or map our […]

    CC BY-SA icon
  • Performance Under Pressure

    Mat "Wilto" Marquis - February 7th, 2017

    The following is a transcript of a talk given at various events throughout 2016, including Smashing Conf NYC, and An Event Apart Chicago. I’d like to begin with an exercise in relaxation. As many of you know, I am the picture of mellowness—ol’ Namasté Marquis, they call me. So, close your laptops. Close ’em. No […]

  • 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
  • Accessibility Wins: Let’s talk color

    Susan Robertson - September 21st, 2016

    In the last two posts we talked about laying the foundation for an accessible website and making sure keyboard users can navigate your site—this week we’re gonna dive into the visual and talk about color. As it turns out, color is a more complex topic than it might seem. We’ll start with a quick run-through […]

  • Open Design Kit: A toolkit for designing with distributed collaborators

    Jess Klein - July 21st, 2016

    Today, we are pleased to announce Open Design Kit – a collection of remixable methods designed to support creativity and problem solving within the context of the agile and distributed 21st century workplace. We are creating this kit to share the techniques we use within our open design practice at Bocoup and teach to collaborators […]

  • CriticalCSS In Action

    Susan Robertson - June 15th, 2016

    In just my first weeks at Bocoup, I’ve been learning a lot about performance and how to make a site smoking fast. Recently, we were hired to audit and help a client understand what they could do to improve their site speed, and through this project I learned the nuts of bolts of actually implementing […]

  • Building a Better Lyra

    K. Adam White - June 6th, 2016

    Last year we had a successful Knight Foundation Prototype Grant-funded collaboration with the University of Washington Interactive Data Lab (IDL) to improve their Voyager data exploration tool. At the end of our collaboration we knew we wanted to work with the amazing team from the IDL again, so we were thrilled when Jeff Heer & […]

    CC BY 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
  • Smaller, Faster Websites

    Mat "Wilto" Marquis - December 9th, 2015

    The following is a transcript of a talk given at various events throughout 2015, including Bocoup’s own TXJS and Boston JS. Transcript My name is Mat Marquis, of Marquis Home Renovation. I don’t care about websites. I’m a carpenter. That, you’ll notice, is why my slide deck looks like the side of the most badass […]

  • Our Work with Data Voyager: Designing for Fast Data Exploration

    Jim Vallandingham - November 23rd, 2015

    Recently, we announced our Knight Foundation Prototype Grant to work on Data Voyager, a tool for exploring the breadth and depth of a particular dataset with ease through automated visualization recommendations. Data Voyager was originally created as a research project by Jeff Heer’s Interactive Data Lab at the University of Washington (with implementation led by […]

  • Mapping the Conflict in Syria – a Design Process (Part 1 of 2)

    Irene Ros - September 28th, 2015

    We’ve been very lucky this last month to join the excellent journalists and editors at GlobalPost on their journey to document the conflict in the Middle East. Several months ago, GlobalPost reached out to us for help with several new long narratives they had in the works. The first narrative, which focuses on the state […]

  • A Git Workflow Walkthrough – Feature Branches

    Jim Vallandingham - July 20th, 2015

    When it comes to learning Git, most folks I’ve talked to (myself included) have taken the slow and gentle path toward becoming proficient by adding it incrementally to their existing development processes. We begin by just running git init on an almost finished project and adding everything with a commit message such as start. Then, […]

  • Seeing the Extensible Web Manifesto Through

    Mat "Wilto" Marquis - July 7th, 2015

    Illustration by Sue Lockwood Participating in the creation of a new standard means joining listservs that look like they were put together circa 1850 and asynchronous arguments in IRC channels that span any/all timezones. It means devoting your nights and weekends to learning how to tinker with specs and fighting with professional web standards reps. […]

  • Stereotropes Design

    Irene Ros and Jim Vallandingham - May 7th, 2015

    Our Data Visualization team recently launched a new project called Stereotropes, an interactive experiment exploring the relationships between gender and the words used to describe common tropes found in film and TV. In this post, we wanted to share some of the design process that went into turning the raw trope data into an interactive […]

  • Vintage Visualization Restoration – Bump Chart Edition

    Jim Vallandingham - April 29th, 2015

    As a side project, I decided to reimplement a classic bump chart visualization using JavaScript and D3. Check it out here. My Introduction to the Bump Chart This bizarre but majestic visualization was originally created for the 1890 US Statistical Atlas by the wonderfully talented Henry Gannett. It provides a look at the most populated […]

  • Summer 2015: Bocoup, CSSConf, TXJS, Roost, and You!

    Adam Sontag - February 19th, 2015

    Even as unconscionable amounts of snow have bombarded the Bocoup Loft this winter, we’ve kept ourselves warm by keeping the sun in our hearts – and in our plans. Summer’s always more fun with friends, and that’s why we’re partnering with our colleagues Nicole Sullivan and Alex Sexton to bring you CSSConf US and TXJS […]

  • Intel Galileo: Autonomous Navigation Rover with JavaScript

    Rick Waldron - October 27th, 2014

    Earlier this year, I published an article that announced support for running Johnny-Five programs directly from an Intel Galileo Generation 2 single board computer. Since then, a lot of work has gone into fine tuning Galileo-IO, including a complete internal redesign that takes advantage of native I/O bindings and processing capability improvements whenever possible. Over […]

  • Designing an Exponentiation Operator for JavaScript

    Rick Waldron - August 5th, 2014

    Update: This proposal now has two open bugs for implementation, on V8 and SpiderMonkey. https://code.google.com/p/v8/issues/detail?id=3915 https://bugzilla.mozilla.org/show_bug.cgi?id=1135708 In this article, I’ll explore the process of adding syntax to a programming language by going through the process of designing a new JavaScript exponentiation operator, which I’ve submitted to TC39 for consideration in ES7. In many programming languages, […]

  • Git Workflows For Successful Deployment

    Matt Surabian - May 7th, 2014

    One of the best parts about working at Bocoup is the freedom we have to explore ideas and open source projects. The diverse range of experience and interest we all bring to the table means there are always interesting open conversations taking place in the office; both about the implementation of specific ideas and the […]

  • The Little JavaScripter, Revisited

    Rick Waldron - February 7th, 2014

    Many readers will recognize the following program, which is an adaptation of The Little Schemer’s Y combinator implementation; written and published by Douglas Crockford in 2003 to demonstrate the commonalities found between JavaScript and Scheme. If you’re unfamiliar with recursion, fixed point combinators or the “Y combinator”, take a look at the Wikipedia article and […]

  • 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
  • Random Number Generation in JavaScript

    Adam Hyland - April 17th, 2013

    Paul Irish recently gave a talk at Bocoup with a dire warning: “The Mobile Web is in Trouble.” The general theme of the talk, somewhat apparent from the title, revolved around developers moving to native apps for performance, capabilities and discoverability. Near the end of the talk he offered a challenge–developers working on the Open […]

  • Welcome K.Adam White

    cassie irwin - March 19th, 2013

    A few weeks ago, Bocoup announced a casting call for our Open Web stand-up comedy troupe. K.Adam White heard our call, impressed us with his impeccable comedic delivery, and has joined our team this week! K.Adam (pronounced “KAdam”) comes to Bocoup by way of Grand Circle Corporation, where he was the lead front end developer. […]

  • Making a RapBot with JavaScript

    Darius Kazemi - February 20th, 2013

    This post talks about the development of RapBot, my freestyle 80s battle rap generator. You might want to see it in action before reading on, and you can check out the source code here. For the past year I’ve been using the Wordnik API in my projects to generate random words. I’ve made extensive use […]

  • 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
  • Dive into Flexbox

    Greg Smith - December 13th, 2012

    Introduction Flexbox is a new layout mode in CSS3 that is designed for the more sophisticated needs of the modern web. This article will describe the newly-stablized Flexbox syntax in technical detail. Browser support is going to grow quickly, so you’ll be ahead of the game when support is wide enough for Flexbox to be […]

  • JavaScript: Databinding with Object.observe

    Rick Waldron - August 24th, 2012

    Everything you think you know about data binding — and every trick MVC libraries are using to pull it off — is about to be flipped on its head. At the last ECMA/TC39 Face to Face, Rafael Weinstein presented the latest revision of the Object.observe spec, a work in progress that he and several other […]

  • 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
  • Bocoup goes to the White House

    Irene Ros - May 17th, 2012

    Yesterday marked an exciting moment for myself and Bocoup. I spent the day at the White House Safety Data Jam in Washington, D.C., as part of the launch of the new Safety Data Initiative. As one of a group of 40 participants, I was invited to join other top technologists in the country as well […]

  • JavaScript: Arduino Programming on Node.js

    Rick Waldron - May 15th, 2012

    Today is Tuesday, May 15th 2012. Just over a year ago, I discovered node-serialport by Chris Williams and went immediately to the closest Microcenter and purchased the Getting Started with Arduino kit. Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It’s intended for artists, designers, hobbyists, and anyone interested […]

  • Introducing the Miso Project and Dataset Library

    Irene Ros - April 18th, 2012

    Over the past 3 months Bocoup has been working closely with the Guardian Interactive team on the Miso Project, a set of open source libraries designed to expedite and simplify the creation of data-driven interactive content. We are excited to announce the release of the first of these libraries called Dataset. You can see the […]

  • Ringmark Tests Open Source

    Boaz Sender - April 4th, 2012

    I am really excited that the tests powering Ringmark have been pushed up to Facebook’s fork of coremob/coremob-tests repo on GitHub. Read more about it on Facebook’s dev blog. We think that unit test authoring will be a great way for web developers to engage in the standards process, and so we are looking forward […]

  • JavaScript: WebRTC in Opera Mobile 12

    Rick Waldron - February 28th, 2012

    Yesterday, Opera announced and released the latest version of its mobile browser, Opera Mobile 12. Today, while running the browser against the Ringmark suite, I noticed that it was now passing the WebRTC detection tests. Very exciting, indeed! To test drive the first ever mobile browser implementation of WebRTC, I decided to use dmv — […]

  • Ringmark Launch

    Adam Sontag - February 27th, 2012

    This morning, at the 2012 Mobile World Congress in Barcelona, Facebook CTO Bret Taylor announced Ringmark, the mobile web test suite that we’ve been working on with Facebook. At Bocoup, our mission is to further the evolution of the Open Web. That’s why we’ve gotten behind Ringmark with our JavaScript expertise. Ringmark comprehensively tests the […]

  • 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
  • JavaScript: EventSource is Long Polling

    Rick Waldron - June 1st, 2011

    UPDATE: With some serious modification to the server end point, Luke Morton was able to achieve a single open event that fires message events as responses are received via a “push” from the server: https://gist.github.com/1002722. By modifying the original example’s PHP end point, Luke’s approach was to omit the closing PHP tag (ensures that no […]

  • JavaScript: Firefox/Aurora 6 and EventSource API

    Rick Waldron - May 30th, 2011

    I originally wrote this as a comment on Mozilla’s “Aurora 6 Is Here” article – but I’m impatient and couldn’t wait for the comment to be moderated. Also, I haven’t posted in a while and figured Bob the Rooster would appreciate it. Glad to see support for the EventSource API has made it to Firefox. […]

  • Storing PHP Sessions in CouchDB

    Sam Bisbee - April 8th, 2011

    One of the more common architectural tasks when designing a web based system that you expect to scale horizontally is deciding how to handle and store sessions. This is because each front end server is running its own PHP install and their session data is stored locally on the disk instead of being shared between […]

  • No Comply – Firefox 4 Demo

    Alistair Macdonald - March 29th, 2011

    No Comply – a WebGL, Audio-API Demo: click here to watch this demo. Over the past few months I have been working with Mozilla’s Audio API Team to create a WebGL/Audio API Demo for the release of Firefox 4. We wanted to create something a little different for this demo so we enlisted the help […]

  • Using dataTransfer and other HTML5 event properties with jQuery Events

    Boaz Sender - December 20th, 2010

    Update: I put this utility up at datauri.com for convenience. Update: The jQuery.event.props event property list has since been documented in the Event Object documentation. This past weekend, I made a handy utility for converting files to data URLs. This utility is part of a larger tool that we are developing for a client. I […]

  • JavaScript: indexedDB in Chromium 8.0.552.5 dev!

    Rick Waldron - October 19th, 2010

    UPDATE!!! This morning (2010-10-22) Chromium dev channel updated to Chromium 8.0.552.11 dev and the indexedDB implementation has been renamed to webkitIndexedDB. I must admit – sometimes browser updates are like Christmas. Like today. I updated Chrome and as usual I went through the motions of inspecting the window (DOMWindow) object in the console looking for […]

  • JavaScript: EventSource Support Updated in Opera 10.70

    Rick Waldron - October 19th, 2010

    The Official Opera Blog has announced that Opera 10.70 will feature a reimplementation of the EventSource API. I say “reimplementation” because Opera was actually the first modern browser to add support for Server Sent Events back in 2006. The implementation was awkward and required a DOM element. Last week, Opera Core Concerns posted an update […]

  • “Don’t deploy HTML5” – W3C?

    Alistair Macdonald - October 7th, 2010

    There is a lot of talk right now about Philippe Le Hégaret” (PLH) from the W3C regarding quotes he made about the readiness of HTML5 for “deployment”. Philippe is quoted as saying: “The problem we’re facing right now is there is already a lot of excitement for HTML5, but it’s a little too early to […]

  • Webkit Radial Gradients

    Boaz Sender - August 17th, 2010

    I started to play around with the inset value of the CSS3 box-shadow property over at boaz.se/nder/s.miscellaneous/i-<3-inset after maxvoltar posted about it. I started working with the CSS3 gradient property to achieve the effect reproduced here, and I ran into some serious syntax confusion. Whereas Gecko offers a terse verbose syntax for radial gradients, Webkit […]

  • jQuery Twitter Search Feed

    Boaz Sender - August 10th, 2010

    I wrote a dead simple twitter search API implementation with jQuery for bocoup.com yesterday. Everything is explained in the comments. Hopefully this script helps you implement your own twitter feed. You can see the live demo running off to the right. jQuery.twitterFeed.js $(function(){ // Get the JSON of your twitter search, it helps to format […]

  • Canvas in IE9…Too Good To Be True?

    Alistair Macdonald - June 25th, 2010

    Contents What a Difference a Day MakesTesting Processing.jsWhat Works & What SucksFeature TestsComparing SpeedBugs Submitted & Re-OpenedConclusion What a Difference a Day Makes If you have not yet heard the big news, Internet Explorer 9 is shipping with Canvas support! Also with the Video and Audio tags, WOFF Fonts and tons other other HTML5 goodness. […]

  • JavaScript EventSource: Now available in Firefox!

    Rick Waldron - June 7th, 2010

    …Not natively… but this will work in the meantime: Git it here firefox-event-source.js ;(function (w) { if ( !w[‘EventSource’] ) { // parseUri 1.2.2 // (c) Steven Levithan <stevenlevithan.com> // MIT License var parseUri = function(str) { var o = { key: [‘source’,’protocol’,’authority’,’userInfo’,’user’,’password’,’host’,’port’,’relative’,’path’,’directory’,’file’,’query’,’anchor’], q: { name: ‘queryKey’, parser: /(?:^|&amp;)([^&amp;=]*)=?([^&amp;]*)/g }, parser: { strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/ } […]

  • Javascript Web Workers: From Basics to jQuery.Hive, Part III

    Rick Waldron - May 18th, 2010

    I’m a jQuery enthusiast. Maybe even an evangelist. So I decided to make workers easy for my fellow jQuery developers – and thus was born the jQuery.Hive. Inititally it began it’s life as PollenJS a jQuery-looking library of functions that were light, useful and thread-safe. This was before the WebKit implementation existed so everything was […]

  • Javascript Web Workers: From Basics to jQuery.Hive

    Rick Waldron - May 17th, 2010

    This is long overdue. Also, it should serve as a context for my slides from jQuery Conference, San Francisco 2010 (use the up and down arrow keys to navigate). Whether or not you’ve read the WHATWG Web Worker spec and are looking for more information about Javascript multi threading OR you already have a rudimentary […]

  • Web Audio – All Aboard!

    Alistair Macdonald - April 30th, 2010

    In this post I will talk about Mozilla’s Web Audio Data API. I will cover where we have come from, demonstrate some of the incredible results that have already been achieved; I will talk about why audio in the browser is so important, take a look at where we are headed and explore some of […]

  • Publish/Subscribe with jQuery Custom Events

    Sam Clearman - April 19th, 2010

    The Publish Subscribe or pub/sub pattern is used to logically decouple object(s) that generate an event, and object(s) that act on it. It is a useful pattern for object oriented development in general and especially useful when developing asynchronous Javascript applications. This post explores its implementation in jQuery. The Dojo javascript framework provides an explicit […]

  • JavaScript Enumerable.Map() with WebWorkers

    Sam Clearman - April 12th, 2010

    For those with short attention spans, here’s how you call the function: map(enumerable, mapFunction, callback, numWorkers); I wanted an easy way to divide up a parallelizable task with Web Workers, so I create a Worker enabled Map function for arrays and objects. It works just like the map function in your favorite functional languages, except […]

  • PollenJS Contributor Announcement

    Rick Waldron - January 25th, 2010

    I’m pleased to announce the addition of Elijah Grey as a core contributor to the PollenJS  project. Eli has an exceptional (albeit short)  background in JavaScript development using bleeding-edge technology. Just the kind of guy we like to have around bocoup.com. A few thing that Eli and I have already begun hashing out: Modular loading […]