Wednesday, July 1, 2015

Lessons Learned Developing the 99designs Tasks API

Dennis works at 99designs, and in this article he describes the choices, experiences and takeaways from building an API to complement the new Tasks service.


“Wanna see something cool?”

Two years ago my boss, Lachlan, came to me with a secret side project he'd been hacking on for getting small design tasks done quickly. The idea was for customers to submit a short design brief that would be matched to a designer who's waiting and ready to go.

We assembled a small team and spent the next two months working like crazy to get an initial public release out and prove it was something people wanted.

Lachlan's original vision included the idea of an API for graphic design work along the lines of Amazon's Mechanical Turk—but more beautiful and tailored specifically for graphic design.

Screenshot of the Tasks home page

We've continued to refine 99designs Tasks as a consumer service, but the vision of an API for graphic design continued to stick in our minds. We just weren’t quite sure if it was worth doing or not.

A Turning Point

Then we were caught by surprise. We discovered that our friends at Segment had built an automated tool using PhantomJS, which screen-scraped our website to work around the fact we hadn’t built an API yet!

I’ll admit—it was pretty embarrassing to be beaten to the punch by a customer on an idea we’d been thinking about for two years. On the other hand, there's probably no better way to validate an idea than to have a customer do it for you.

OK, Let’s Do This

We quickly realized that developing an API would involve more than just the technical design and implementation. The audience and concerns of an API are very different from anything we’d worked on before.

Scoping It Out

One of the first challenges we faced was figuring out what features we wanted in an API. We already had a few API customers that needed a fairly specific feature set for creating tasks—but we wanted to open up the possibilities and allow ideas we hadn’t even begun to think of yet. We made the decision to expand the scope beyond task creation to cover the entire task workflow in order to enable a wider set of possibilities.

Developer Marketing

Another big question we faced was how to market an API? Our customers are typically entrepreneurs and small businesses. The target audience of an API is very different from what we're used to.

There's a saying that "if you build it, they will come", but I'm not convinced it's quite true. We knew there was some hard work to be done if we wanted to attract developers. There are a few questions that developers might ask when looking at an API:

"Why should I be excited?"

"What are the benefits?"

One strategy we had for attracting developers was to have a collection of compelling examples that would inspire new ideas. The problem is that building these examples requires us to attract developers to build them in the first place. We tackled this chicken/egg problem by working with a group of launch partners in a private beta ahead of our public launch to build some great quality applications that we could show off.

We also applied a "dogfooding" approach at 99designs, where our development team worked on a number of app ideas internally—including a browser extension and a chat bot, all of which used our in-development API.

Continue reading %Lessons Learned Developing the 99designs Tasks API%


by Dennis Hotson via SitePoint

This Week's HTML5 and Browser Technology News (Issue 195)


Read this e-mail on the Web
HTML 5 Weekly
Issue 195 — July 1, 2015
W3C
A tool for Web developers who want to make their Web page or Web app work better on mobile devices.


Amazon
Lea Verou is a well known CSS expert in our field and I had no idea she was working on a CSS book till now. It’s officially out this Friday. Note: Not an affiliate link or anything like that.


Khan Academy
A tool designed to visualize how your site performs with assistive technologies and let you know about best practices to implement.


Frontend Masters  Sponsored
Build full stack apps in JS with Scott Moss:
- 2-Days on Angular, Components and ES6
- 3-Days on API Design in Node.js

Join us (all or part) of the week July 20-25th!

Frontend Masters

A List Apart
Mat Marquis, once chair of the W3C Responsive Images Community Group but now the Responsive Issues Community Group, looks at the current realities of responsive design, element queries, container queries, and where RICG is going from here.


Stefan Lederer
A recording of a panel at Streaming Media East about the future for streaming video online in a world without Flash.


Will Boyd
A look at some cool things you can do with checkbox input fields using only HTML and CSS.


W3C
Service Workers enable webapps to take advantage of persistent background processing through an event-driven Web Worker. This 15 minute video from Jake Archibald explains what they’re about.


Jobs

In brief

Curated by Peter Cooper and published by Cooper Press.
Send feedback by simply replying to this mail.
Want to sponsor an issue? See our media kit.
Want to post a job? E-mail us or use our self-serve system.

Unsubscribe : Change email address : Read this issue on the Web

© Cooper Press Ltd. Office 30, Lincoln Way, Louth, LN11 0LS, UK
Email policy Privacy policy


by via HTML5 Weekly

How to Grunt and Gulp Your Way to Workflow Automation

This article is part of a web dev series from Microsoft. Thank you for supporting the partners who make SitePoint possible. When you are new to front-end development and start mastering HTML5, CSS and JavaScript, the obvious next step is to put your hands on tools that most developers use to stay sane in this […]

Continue reading %How to Grunt and Gulp Your Way to Workflow Automation%


by Etienne Margraff via SitePoint

This Week in Mobile Web Development (#63)

Read this on the Web

Mobile Web Weekly July 1, 2015   #63
Peter Cooper recommends
Be Mobile Friendly with The New W3C Mobile Checker — Announcing the alpha release of the W3C’s new ‘Mobile Checker’ which emulates a mobile browser when checking a Web page and creates a report of possible issues.
W3C
Holly Schinsky recommends
iOS 9 and Safari View Controller: The Future of Web Views — In-depth discussion about Apple, WebViews and what to expect in the future with iOS9 and the new Safari View Controller.
MacStories
Brian Rinaldi recommends
8 High Performance Apps You Never Knew Were Hybrid — A list of well known apps that are actually built as hybrid apps using a webview.
VenturePact
This issue is sponsored by Thinkful
Looking to build your dream app? We'll take you from idea to App Store — The best way to learn Swift is with an experienced engineer. With 1-on-1 help from your mentor, you will complete eight projects & publish an app to the app store. Sign up & start learning today!
Thinkful
Brian Rinaldi recommends
The DNA of Responsive Web Design — An overview of the basic concepts and techniques involved in responsive web design with approaches for media queries in popular frameworks by Ed Charbeneau.
Telerik Developer Network
Holly Schinsky recommends
Using the Web Audio API for precision audio in Ionic — An introduction to the Web Audio API and how to use it for precision audio in your hybrid apps.
Devan Sabaratnam
Brian Rinaldi recommends
Building A More Interoperable Web with Microsoft Edge — A look at the changes affecting interoperability of web sites against Microsoft’s new browser.
Microsoft Edge Team
Brian Rinaldi recommends
Viewport sized typography with minimum and maximum sizes — A Sass mixin that expresses a minimum and maximum for the font while still using viewport based units.
Eduardo Bouças
Holly Schinsky recommends
Embedding the WebView - iOS — A new in-depth tutorial is available on the PhoneGap docs site to help developers embed Cordova Webviews with native iOS components and establish communication between them.
PhoneGap Docs
Brian Rinaldi recommends
o-grid: Responsive grid system — A new 12 column responsive grid system for laying out documents, templates and modules.
Financial Times
Peter Cooper recommends
Opera for Android Gets Installable Web Apps and 'Add to Home Screen'
Dev.Opera
Holly Schinsky recommends
Without More Data, Your Mobile Strategy Is Toast — A focus on user data and recognizing what users value most could be key to the success of your app.
Read Write
Brian Rinaldi recommends
Drop Downs Should be the UI of Last Resort — A series of tweets and videos showing simpler and more appropriate controls that can be used instead of drop downs on mobile forms.
Luke Wroblewski
Holly Schinsky recommends
Working with Ionic, Box, and IBM MobileFirst — A sample application using Ionic, Box (cloud storage provider) and IBM MobileFirst.
Raymond Camden's Blog
Holly Schinsky recommends
famous-angular-Pokemon: Sample project for using Famo.us + Angular to create a mobile application — A sample project showing how to use Famo.us and Angular on top of Cordova to create a hybrid mobile app.
Dave Voyles
Holly Schinsky recommends
Marvell Brings JavaScript To The Smallest Devices Ever — KinomaJS software enabling Marvell’s ‘Smart Life and Smart Lifestyle’ products recently implemented ES6 and has expanded its solutions for embedded and IoT product prototyping.
InsertHTML
Brian Rinaldi recommends
Presentation: Mobile is eating the world — A presentation recording discussing how mobile is changing the technology industry, the internet and the broader economy. Not development focused but focused on the overall mobile market.
Benedict Evans
Job listing
Freelance with Companies like Airbnb, IDEO, & JPMorgan — Work with top clients, set your own rates, and work from anywhere as an elite Toptal mobile developer. Join the most exclusive network of top software engineers in the world.
Toptal

Curated by Brian Rinaldi and Holly Schinsky for Cooper Press.
Cooper Press is located at Office 30, Fairfield Enterprise Centre, Louth, LN11 0LS, UK
Update your email address
or stop receiving MWW here


by via Mobile Web Weekly

The Future of Programming: WebAssembly & Life After JavaScript

Recently we heard that the web platform is getting a new browser-native compile target called WebAssembly (see What is WebAssembly: The Dawn of a New Era for details). Wasm makes the web platform a more attractive compile target for other languages. That leaves us wondering what might come after JavaScript.

JavaScript has some great features, but I sincerely hope we move on as soon as possible. JavaScript is great and it taught us a lot, but programming will evolve. There will be life after JavaScript.

I’m not a fan of C++ (I’m a recovered user and abuser of C++), but I am a fan of many things built with it, including the Unreal Engine, which runs great when compiled to JavaScript. There’s no good reason to write everything in JavaScript forever. It’s time to look to the future.

I’ve been using and really enjoying CoffeeScript from time to time, which helped inspire a lot of the new ES6 features. CoffeeScript feels much simpler than JavaScript. It has a more concise syntax, yet adds a lot of expressive capability that did not exist in ES5. Of course, I’d simplify CoffeeScript even more by ridding it of the poisonous class keyword. I like to fiddle with Haskell, too. But these languages represent the present.

So what could we do next?

Whatever catches fire after JS, I hope it has these features:

  • Built-in immutable data structures and immutability by default.
  • Literal forms for objects, collections, and primitive types.
  • A better default number type for most use cases.
  • Custom structural types, including good support for low-level binary types (bonus if we get definable literal syntax).
  • Lambdas with closures.
  • Functional utility belt built-in. Similar to the RxJS Observable API.
  • Native support for object and factory composition. Something like built-in stamps.
  • Realtime guarantees for low-latency processing & precision scheduling for apps like gaming, music & video production, DSP, scientific applications, synchronization of distributed systems, etc…
  • Minimal syntax, similar to Ruby, Python, or CoffeeScript. Now that I’ve had a chance to get comfortable without curly braces and semicolons everywhere, I feel a lot less confined by syntax.

First-class Support for Reactive Programming

Baked into the language, a simple, consistent API around all of these:

  • Streams.
  • Continuous data sources (UI inputs, time, vector images, etc…).
  • Collections including arrays and objects.

This API should be used the same way regardless of whether data flows through the functions one value at a time (i.e. iterables / generators + yield), in response to emitted events (e.g. Node-style streams), or continuous data sources such as audio, electrical signals, UI inputs, sensors, even time-independent things like vector graphics, etc…

A built-in API like this could wrap all types, which has the potential to simplify the syntax, as well.

For a really insightful perspective about how all this reactive stuff works, check out A General Theory of Reactivity.

Better Tooling

Unreal Engine 4 Blueprint
Unreal Engine 4 Blueprint

  • A fantastic visual IDE for easily modeling and visualizing reactive relationships in the system. Think NoFlo with a much better UX.
  • Time-travel debugging (example with JavaScript) enabled by immutable data structures. Time-travel debugging lets you easily shuttle back and forth in the history of your live, running program.
  • Compile to JS & wasm great support for browsers and Node.
  • Better analysis tools both static and runtime / dynamic. Specifically designed to help make programs more predictable by analyzing reactive dependency graphs. These could create great visual reports, too, including complexity reports, and marble diagrams to help you further understand and predict the behavior of your program.

Marble diagram for .merge()
Marble diagram for .merge()

Continue reading %The Future of Programming: WebAssembly & Life After JavaScript%


by Eric Elliott via SitePoint

xtypejs – Elegant, highly efficient data validation for JavaScript

xtype.js is an elegant, highly efficient data validation for JavaScript.

Features

  • Provides concise, performant, readable, data and type validation for JavaScript, using close to 40 highly efficient, data-validating pseudo types.
  • Improves application efficiency and readability by unifying the most basic but common data and type validations in JavaScript apps, into single, concise, highly optimized operations.
  • Employs bitwise operations, data pre-processing, and memory-efficient memoization for fast, robust performance in small and large apps and libraries.
  • Ready for nodejs, requirejs, and regular script tag.

by via jQuery-Plugins.net RSS Feed

The Best Free Minimalist WooCommerce Themes

If you're used to the abundance of free WordPress themes, you might expect to have the same choice with WooCommerce. After all, it's the most popular WordPress ecommerce plugin (we've got a nice introduction to WooCommerce if you want to come up to speed). Unfortunately, the choice of free themes created especially for WooCommerce isn’t as large as the choice for WordPress itself.

As a result, when you want a minimalist theme for your WooCommerce site, you have two options. The first one is to (heavily) modify an existing WooCommerce theme and make it suit your needs.

The second approach is to adapt a general WordPress theme. Basically, photography or image gallery types of themes are easier to adapt, but even a blog theme, or a magazine type of theme can sometimes do the trick.

There is always the risk the adapted theme might not function properly. However, in some cases you simply need to go this route. For example, if your WooCommerce store is part of your WordPress blog, then for consistency, you might want to use the same theme on both of them.

Continue reading %The Best Free Minimalist WooCommerce Themes%


by Ada Ivanoff via SitePoint