Category Archives: Web Development

Homegrown Austin API community

austinapiAustin Homegrown API’s, a new and thriving developer community, meets again on Wed May 22 at uShip (the corner of 3rd & Brazos). Hope you can join us!

Here are my (all errors and some additions are mine!) notes from our last meeting, where Keith Casey @CaseySoftware Developer Evangelist at presented.

REST. wait what?

Soap is to home mortgage as Rest is to borrowing lunch.
Pretty URL’s are (often thought of but) not related to REST.

Recommended Reading

  • Restful Web Services (2007) by Richardson & Ruby
  • Building Hypermedia API’s with HTML5 and Node (2011) by Mike Amundsen

Richardson Maturity Model (Martin Fowler’s concept) LEVELS:

  • 0: Plain Old XML
  • 1: Resources (nouns, core ORM objects usually; few)
  • 2: Verbs (the HTTP verbs for create/read/update/delete/etc operations)
  • 3: Hypermedia Controls (HATEOAS Hypermedia as the engine of application state = choose yr own adventure book)
  • 4: The Glory of Rest (wtf)

Link Relations – e.g. Prev Next Up Down etc

Payload MIME type isn’t specified. Suggestions:

  • JSON Collections
  • JSON Path


Texas JavaScript 2013

Here are some notes from the #TXJS conference three days ago at Austin, Texas

When walking around, I made three observations about the attendees: 1. there were ALOT of them; hundreds and hundreds, 2. they brought Mountain Lion OS running laptops, 3. there were no windows laptops in attendance; not even one.

Dave Rupert really started us thinking why we do what we do; his talk challenged us to love what we do and do what we love, letting the core values of our hearts dictate the values of the working environment and relationships. He challenged everyone to recommit to making the responsive web an accessible one including ARIA. See his and subscribe to the Shop Talk Show podcast at

You can guess what Nicole Sullivan’s talk was about from its title, presuming you’ve followed her recommendations for writing CSS in an object-oriented manner in the past: “OOCSS and Preprocessors in a tree, K-I-S-S-I-N-G.” She full-on recommended that all web designers write stylesheets in SCSS in a way that preserves that OOCSS harmony, avoiding tempting possibilities that result in bloated compiled deliverable size.

The author of and seconded her advice for us to write Sassy CSS (SCSS), but he was less worried than Nicole about the performance hit of having a few extra kilobytes in the compiled, machine read browser deliverable.

You’ll just have to watch the video of Trek’s presentation when (if) it comes online; I could listen to him talk for days. Trek argued that web designers just doing Photoshop today should and are learning RWD so “slice & dice” web (psd→html+css) monkeys need to either acquire legit design education or specialize in JavaScript software engineering.

Frances Berriman, front-end development lead for @govuk, spoke about “Culture change for creating better user experiences.” Some elements of web design @phae advocated adoption include audience targeting, using analytics to improve UX, functional design, minimalism, and plain language <>

@jedschmidt & @izs & @polotek talked about server-side programming in Node.js

Charlie Robbins talked about the ethics and end-game of “All Open Source Everything,” championing the model of open sourcing much of the useful internal architecture of systems while retaining and monetizing key components which make the parts a product.

Drew Wilson gave us some golden nuggets of wisdom from his new book EXECUTE, which sounds WELL worth its meager price.

Phil suggested that not every website and/or client actually benefits from a CMS, particularly with a “WYSIWYG” rich text editor.

Agile Websites

Agile Software Development methodologyMany of the sermons from the Texas JavaScript 2013 symposium were about what we value, how we build, and where we’re going with this whole web thing. They caused me to dig down to the bedrock of how and why we do things. And when I go there, I revisit The Agile Manifesto.

What does it mean to build responsive, mobile first apps & websites in an Agile way? Well, as we’ve been doing it, and teaching others to do it, we’ve been uncovering better ways of developing sites & apps; through this work we have come to value:

  • Individuals and interactions over processes and tools
  • Working websites/apps over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

To learn more about how these values work out, in the way we approach product design, client relations, building deliverables, meeting milestones, et. al., read the principles of Agile, and let’s have a discussion.

Dialogue is a good way to unpack the meaning encoded in the language of the twelve principles, and I always love a good thread on Twitter, comments on my blog, or talking over some good coffee and/or beer. I’m persuaded we’ll learn more, and be enriched through conversation.

Responsive Web Design

rwdResponsive Web Design (RWD) is the paradigm for front-end web design in 2013. From a technical perspective, RWD is the combination of using fluid grid layout, flexible width images, and media queries. Philosophically, RWD is the coalescing of the philosophies of web accessibility, the semantic web, progressive enhancement, and graceful degradation.

The goal of RWD is to make web pages accessible to the broadest audience of users, which in 2013 is smartphones. We do this by focusing on the mobile experience first, and progressively enhancing for larger viewport widths.

In this video, Scott Reynolds of @thrise introduces responsive web design, and covers the 5W’s.

The JavaScript of WordPress

wpI’m surprised that web developers underestimate the significance of the JavaScript that WordPress incorporates into its standard distribution. Maybe we don’t understand the breadth of developer adoption that implies. There are sixty million WordPress sites in the world. Breathe. Let that sink in.

Adoption by WP places a demand on hosting & training resources worldwide, ensuring affordable availability and a healthy ecosystem surrounding those JavaScript libraries. They will get love. Lots of love.

WordPress 3.5 includes:

I propose that we give them some respect & attention.

$99 tablets mean web dominance

It’s confirmed, Acer is going to market their Iconia B1 tablet for under $100. This means that touch-based, Internet access is becoming more broadly available worldwide, as the exponential rate of paradigm shift away from the Desktop PC to mobile devices continues. Will Acer try to position their software marketplace against Apple’s or Microsoft’s or Google’s?

No, of course not. Acer is in the commodity/clone business. They’re just trying to make a small margin selling hardware that runs open standards applications built chiefly with web technology i.e. HTML5, CSS3 and JavaScript. Oh yeah, there will be some 6%-10% of apps built on the highly fragmented, tough to target Android OS, by the very large & successful software houses. But the overwhelming, lion’s share of app development for tablets will continue to be in the lingua franca of mobile: web tech.

It’s a great day to be a web developer.

When you intervene a reverse proxy between your CMS server & user, how are you going to keep those Web 2.0 pages fresh?

The bane of success is traffic spikes and high bandwidth utilization. Now what?  You shouldn’t fear or fret success, but plan for your scalability concerns.

The answer? is JavaScript.

Use Base 36 for transaction ID’s

After the transaction with your website, your customer needs a ticket number of the purchase/reservation/vote/ for tracking purposes. When it comes to making that a number your customer can easily write down on a piece of paper, why limit yourself to just the top row of the keyboard —why not use letters, too?

It turns out this is an easy way to cut the size of tracking codes in half. So, change the radix of your number to something higher than, base 10…

Since there are 26 letters in the alphabet, how about adding 10 + 26 = 36. The base 36 numbering system effectively uses all of the easy symbols on a keyboard which are also easy to repeat to customer service over the telephone.

Let’s use 36 as our radix. Here is how in JavaScript:

var x=+new Date,
console.log(x+" » "+y+" « "+z);

PyTexas 2012


Here’s a quick summary of my experience attending the 2012 PyTexas conference.

On Saturday morning, Mr. Powell discussed features of Python that make the language notable, like functional programming constructs, decorators, generators, and context managers. While each of these is fair simple to understand and could be accused being mere syntactic sugar, I think they make code much easier to read and maintain, than the acrobatics which would be required without having them in the language. So for example, any of these can be done in JavaScript much less elegantly. Elegance counts! ✰✰✰

For scientific & embedded systems programming, performance matters, and compiling script to native machine code is a good way to increase code execution speed. LVVM is a compiler, like GCC, but exposes its internals to Python as a library. Dr. Schnell’s talk explored how LLVM can by used from Python directly and introduced numba & bitey. ✰✰

Luke Lee explored dunder methods, explaining what they are, why they’re useful, and how they contribute to the overall design of a fully Pythonic object. ✰✰

Tomo Popovic explained what the popular Scrum software development process is and how it works. It is an iterative and incremental agile development method for project management and software development. ✰✰✰✰

On Sunday, Gabriel Grant’s talk on Building Rich Applications with Django and Ember.js was dense. ✰✰

John-Michael Oswalt’s talk on “Finding the Balance Between Micro-Coding versus Macro-Coding” was astonishing in intelligence and candor about the challenges of developing for systems that scale well under bandwidth load and big data in the real world. ✰✰✰

The lightning talk on how to revise code to make it more readable & powerful with python-specific features was delightful; it showed me how truly kind and friendly the Python community is in Texas.  The conference was enjoyable because the people have chosen python for their livelihood are so amicable.  They may be fewer in number, but I have found that it isn’t numbers that counts when you need help understanding something; usually one or two friendly persons make all the difference.

It’s JavaScript! get the styles out.

Some programmers of UI widgets believe that appearance properties belong in the JavaScript invocation of web page widgets. Why? I don’t know. I’ve always believed in separating styles from behaviors. (Well, yes, the JavaScript is the agent which is creating the visual components on the page, going beyond what HTML and browsers can do. But does that give it a right to encompass stylistic properties in JS?) If we want to use those UI components, we have to do things their way.

Or do we? I wrote a fiddle demonstrating how you may relocate your JSON (this example is taken from the Twitter embedded timeline widget) into your CSS.