"Fluent" entries

Add depth to your project with practical web audio

Enhance the user experience with the thoughtful use of sound.

web_audio_header

There is little debate that Web Audio is cool. Take for example Stepkit by Brent Jackson (embedded below).

It’s definitely a fun toy to play with, but most of us probably couldn’t think of how this might be relevant to our jobs. When I presented 8-bit game music with the Web Audio API at last year’s Fluent Conference, I readily admitted that it was intended to be purely fun rather than practical.

Recently I explored the idea of adding audio to web apps, but I think the big problem isn’t that web developers were unsure how to add audio to their app, but that they don’t think they should add audio to web apps. In this article, I’d like to make the case that you should be considering audio when designing your web application user interface.

Read more…

When can you learn JavaScript?

Khan Academy explores how far learners can get at different ages.

I picked up a brief guide to programming in 6th grade. There, on page 1, was A = A + 1. I knew that wasn’t possible, so I put it down, and came back to programming in 7th grade.

Khan Academy is having better luck with young students, but learning to program is kind of like learning to drive: the prerequisites aren’t obvious, but they’re helpful and often come later. At Fluent 2014, Pamela Fox explored the data Khan Academy has collected on learner age, and what it might mean for curricula going forward.

In her keynote, Fox explored:

  • What the world might look like if JavaScript were part of the curriculum as early as possible. (1:42)
  • Developing a sense of how kids respond to fairly easy challenges with Khan Academy’s participant data. (3:24)
  • What in the first programming challenge might keep people from succeeding? (4:37)
  • How different is the data for a logic challenge? At what age does completion level off? (6:16)
  • What might JavaScript skills enable in a high school curriculum? (8:24)

Read more…

The power of HTML

Acknowledging the source of the Web's strength

For a growing number of developers, “web” means “JavaScript”. Programmers like to focus on programming languages, but the Web’s basic power comes from its support for communications, not programming.

I asked Jen Simmons, host of the Web Ahead podcast, to keynote Fluent after seeing her give a talk on responsive layouts at the ARTIFACT conference last year. It wasn’t just a great talk on responsive layout, but an exploration of the Web foundations that make responsive layout possible. Responsive layout’s foundations are deep in HTML, which contained those multi-device values from the beginning.

At Fluent, Simmons delivered A Love Letter to HTML, exploring HTML’s origins. The goals driving a memo written 25 years ago gave the Web strengths that developers need to study today.

Read more…

Understand the four layers of JavaScript OOP in one short lesson

6 highlights from Axel Rauschmayer's webcast

Last week Axel Rauschmayer presented “The Four Layers of JavaScript OOP.” His approach to teaching JavaScript OOP is doing so incrementally, through layers. Each of the four layers builds upon the last. The lesson runs just under an hour.

  • The live audience (1,500 attendees) brought certain foreknowledge to the course, represented by this graph (based on a live poll). Most individuals had knowledge of object oriented programming, whether with JavaScript or another language, and fewest had knowledge of prototype chains.  [at 01:30]
  • Axel walked through an overview of the 4 layers of JavaScript OOP and summarized each. [at 2:25]
  • Layer 1, Single object. [at 3:55]
  • Layer 2, Prototype chain. [at 14:52]

Layers 1 and 2 together form a simple core, which you can refer back to if confusion sets in. This way you can re-ground yourself at any point in the foundations of the course.

  • Layer 3, Constructor. [at 22:02]
  • Layer 4, Constructor Inheritance. [at 32:42]

Read more…

pushState to the future: progressive enhancement using HTML5 pushState at Twitter

Fluent is O’Reilly’s conference dedicated to the Web Platform and all that entails, with a focus on JavaScript and HTML5. In 2013, over 1000 attendees and speakers like Brendan Eich, the creator of JavaScript and CTO of Mozilla, Paul Irish of Google, and CSS guru Lea Verou came together to learn, share, and network.

One speaker at Fluent 2013 whose talk was particularly well received was Todd Kloots of Twitter who spoke about HTML5’s pushState API and demonstrated how it was used in Twitter’s Web-based interface.

Some key parts of Todd’s talk include:

  • The opportunity Twitter saw in pushState [at 01:45]
  • What you had to do with dynamic URLs before pushState [at 02:46]
  • A summary of the pushState API [at 06:10]
  • Gotchas and browser support [at 07:58]
  • How pushState sped up navigation on Twitter.com without re-architecting [at 12:15]
  • What Twitter had to do server-side to make progressive enhancement work [at 19:11]
  • Final thoughts [at 31:37]
  • Q&A [at 32:15]

Read more…

Proposing a Compelling Fluent Talk

Intriguing reviewers and attendees

As the Fluent call for proposals nears its September 30th (Monday!) close, I’ve had more and more questions about what makes a good proposal. For Fluent, we’d like talks centered on the Web Platform and JavaScript, but the Call just lays out the broad story. What helps a proposal that’s in that neighborhood become a session? If you have an idea, how do you develop it?

Audience: Who are they? What do they want?

My first suggestion to anyone proposing a talk (or a book, or even a blog post) is to focus on audience. Who is going to be interested in what you want to discuss? Will they be at that event? What should they know before they get there? How can you convince them that it’s worth their time to join your conversation? Even for lectures and books, thinking of it as a conversation helps to focus planning.

Read more…

From “Web Development” to the “Web Platform”

Defining a powerful toolkit

The rise of the phrase “web platform” over the past few years makes me very happy.

For years, I’ve been looking for a good term that would cover HTML, CSS, JavaScript, and a few related technologies. The terminology has long been tricky, as the mostly-forgotten “webmaster” broke into smaller pieces: “web designer”, “web developer”, and sometimes “web administrator”. (Some web administration faded into general system administration, while other aspects have grown into their own discipline of web operations.)

Read more…

Talk Amongst Yourselves

The hallway track and beyond

At the Fluent conference earlier this month, I asked the audience to talk to the rest of the crowd. It’s very easy to get caught up in which speaker to go see on which topic, but even the best presentations can only go so far. If you attend a conference thinking of talks not only as opportunities to learn but as conversation starters, you’re likely to come home with a lot more.

Most of the time, conferences focus on what they have to offer directly: speakers, events, sponsors. The reality, though, is that the audience that showed up for those things brings its own greatness.

It’s hard for many of us—for me in particular—to go to a place full of people we’ve never met before, move through a large crowd, and deal with the information overload of sessions. For some people—jovial extroverts—it’s not so hard, but many techies are not that sociable. Conferences have a key ingredient, though, that makes it easier to start conversation: everyone is there for a similar, or at least related, purpose.

fluent_0

Tech Lunch

Sitting at a table full of people, even people with the same set of challenges, can be tricky, at least until the conversation opens up. Every time I sit down at a conference lunch table, it’s different—but almost every time, people found enough in common with each other to sustain the conversation beyond “so what did you think of those keynotes?”

It’s not just the shared experience of being at a conference, but the shared experience that brought you to the conference. Odds are excellent that you have a lot more in common with your fellow conference-goers than you think you might.

Typical conference lunch tables are kind of a funny size—usually seating 8-10 people around a circle. Everyone can hear each other, but it’s also possible to have conversations just with your immediate neighbors. Some tables break into full-group conversation, and others don’t. Some tables start with a group of people who know each other: sometimes those groups look inward, and other times they look outward.

A lot of lunches offer topic tables—”birds of a feather” (BOF), sometimes from a set list or created by attendees. If you want to make sure your lunch folks have a little more in common with you than the conference, these are a great place to go. Suggesting a topic can help you focus discussion on something important to you. Many shows also have these in the evening.

Read more…

8 Dart Features Those Fat Cats Don’t Want You to Know

Productive code without ceremony

[contextly_sidebar id=”2bca5cb6af99cf17862f5497954ec380″]

In this article, I’ll show you eight more features that help Dart stand on its own as a productive, ceremony-free language. Remember, Dart compiles to JavaScript, so everything you see here works across the modern Web.

Dart makes fluent APIs easy

Libraries like jQuery have popularized a fluent design that encourages chaining calls for easier-to-read code. Dart takes a cue from Smalltalk and adds method cascades to the language, so that any API can be used in a fluent style.

Without cascades, the variable button is repeated for every method call.

// Without cascades.
var button = new ButtonElement();
button.id = 'awesome';
button.classes.add('important');
button.onClick.listen((e) => beAwesome());
button.text = 'Click Me!';

Use cascades to help reduce repetition.

// With cascades.
var button = new ButtonElement()
  ..id = 'awesome'
  ..classes.add('important')
  ..onClick.listen((e) => beAwesome())
  ..text = 'Click Me!';

Read more…

How Web Pages Can Extend (or Drain) Mobile Device Battery Life

Dr. Angela Nicoara on mobile browser energy consumption and ways developers can minimize energy use through design.

According to recent Global Mobile Data Traffic Forecasts (PDF), the number of mobile-connected devices will surpass the world’s population this year, and by 2015, there will be 788 million mobile-only Internet users. A recent paper, “Who Killed My Battery: Analyzing Mobile Browser Energy Consumption (PDF),” pulled together by the Deutsche Telekom Innovation Center in Silicon Valley and Stanford University researchers and published in the ACM 21st International World Wide Web Conference (WWW 2012) proceedings (PDF), takes a look at the growing popularity of mobile web browsing and the effects on energy consumption.

I reached out to Dr. Angela Nicoara, senior research scientist at the Deutsche Telekom Innovation Center in Silicon Valley who worked on the project, to find out why mobile browser energy consumption is a growing concern and what developers need to know going forward. Our interview follows. Dr. Nicoara will present the researchers’ findings in the “Who Killed My Battery: Analyzing Mobile Browser Energy Consumption” session at the Fluent 2013 conference next week in San Francisco, CA.

Why is browser energy consumption becoming more of an issue with the growth of smartphones and mobile browsing?

Dr. Angela Nicoara

Dr. Angela Nicoara

Dr. Angela Nicoara: Despite the explosive growth of smartphones and growing popularity of mobile web browsing, their utility has been and will remain severely limited by the battery life. Smartphones’ energy constraints are here to stay, and as such, optimizing the energy consumption of the phone browser while surfing the Web is of critical importance today and will remain so in the foreseeable future.

Read more…