1. May 13th, 2012

    Rounded Corners 366 – ‘require’ is so damn hard

    Covered Love the single-page code coverage report generated by Mocha and jscoverage.

    Dialed jQuery Knob is a radial visual/input field. May not be the most efficient way to show or enter data, but cool enough that I’m looking for a project to use it in.

    Click page.js is a tiny (~1.2KB) client-side router. In-page navigation and pushState support without having to buy into a framework.

    Cubed Introduction to Cubism.js. Didn’t realize pulling data from Graphite is that easy.

    Learning Two Universes: what if Photoshop was less an “Adobe product” and more like Portal the game? On bringing the explorative nature of games into non-game products.

    Get it out there Distribution is key and what software engineers need to know about sales and marketing: notes from class 9 of CS182: Startup, Peter Thiel.

    Remarkable Kodus Twitter for standing up for its users’ rights and the 4th amendment.

    QotD Ara T. Howard:

    no really, i love debugging rail’s const_missing because ‘require’ is so damn hard

    QotD Wynn Netherland:

    I suspect the Egyptians had higher forms of writing, but the only things that survived were the memes.

     

     

  2. May 12th, 2012

    Rounded Corners 365 – Float right

    Float right Application Cache is a Douchebag. Everything you need to know about using one of the trickiest browser features since CSS floats.

    Fresh face Sprites are so 2011. Enlightened Web developers font their icon collection. Check out Shifticons and Fontello.

    Geeking out If you search for “sha this” in DuckDuckGo, it will calculate the SHA for you. You can also ask it to generate a UUID, random password and a million other geek tricks.

    Hmm, I see what you did there.

    Repeat after me Idempotence Is Not a Medical Condition – understanding asynchronous messaging in distributed systems. I feel like, if you understand these two principles, the rest come easy:

    - Every message may be retried and, hence, must be idempotent.
    - Guaranteed delivery of the last message is impossible.

    Undead Before you call the Web dead on the altar of apps, consider this: Why publishers don’t like apps. Or how MIT Tech Review sold only 353 subscriptions for its iPad app.

    Pop quiz How many programming languages can you tell apart just by an “Hello, world” example?

    One step forward … Now this is game changing: using XSLT templates to render JSON data in the browser.

    QotD William McKnight:

    A data scientist is a data analyst who lives in California

     

  3. May 10th, 2012

    And just like that, Zombie goes 1.0!

    OK, not “just like that”, a lot of changed since Zombie 0.13 hit the road on April 25th.

    So may improvements, let’s go over the important ones, in no particular oder:

    Promises Zombie now supports promises. Like this:

    browser.visit("http://localhost:3000/").
      then(function() {
        assert.equal(browser.text("H1"), "Deferred zombies");
        // Chaining works by returning a promise here
        return browser.clickLink("Hit me");
      }).
        then(function() {
       assert.equal(browser.text("H1"), "Ouch");
      });

    Proxies By popular request, Zombie now supports HTTP/S proxies. As simple as:

    Browser.proxy = "http://myproxy:8080"

    Authentication New API for setting authentication credentials:

    // HTTP Basic takes user and password
    browser.authenticate().basic("me", "secret")
    // OAuth 2.0 Bearer takes an access token
    browser.authenticate("example.com:443").bearer("12345")
    // Show the authentication credentials in use
    console.log(browser.authenticate().token)

    IFrames Working so well, in fact, that we’re able to test Facebook Connect, with its popup and hidden XD and other shenanigans.

    postMessage Yes.

    Windows That too. You can open as many as you want with browser.open, and with brower.windows you can also list them all, get specific window by number or number, select the current window, and close it when done.

    Server-sent Events Zombie now supports the EventSource object for testing Server-Sent Events. Side note, if you’re pushing updates to the browser in real time, forget long polling and Web Sockets and try the simpler Server-Sent Events.

    Mocha Zombie’s test suite changes from Vows to Mocha. That shouldn’t affect your project, you can use whichever test suite you feel like using, but if you’re wondering what I recommend, Mocha is not perfect, but I have more luck with it.

    Cookies Zombie now uses Tough Cookie, and things like parsing, encoding and host matching are much more reliable.

    Scripts Upgraded to the most recent version of JSOM and Contextify, speeding up DOM processing and fixing some edge-case JavaScript evals. Also, fixed handling for old-style event handlers like onclick and onsubmit. Guess which largest social network is still using them?

    HTML Switched back to using HTML5 parser by default, that means more forgiving HTML parsing, handling for inline scripts and … ugh … document.write.

    about:blank New windows open in about:blank, and you can now set the window location to a javascript: expression. Handy if you’re testing bookmarklets and such; to actually evaluate JavaScript, use browser.evaluate.

    Redirects Fixed redirects after POST, redirects that include a # document fragment and cookie handling when redirecting.

    So yes, the big One Oh! So go build stuff, and may the testing gods smile upon you!
  4. May 8th, 2012

    Rounded Corners 364 –

    From Context Free Patent Art

    In style The Single Responsibility Principle applied to CSS. Also, CSS: The Good Parts. Wait, there’s more: Cross-Browser Debugging CSS.

    To infinity LinkedIn’s new iPad app is 95% HTML5, and it’s damn slick to use. More on how they implemeneted endless scrolling without killing the browser.

    Jar Cookies.js: A client-side JS library for manipulating cookies.

    Big it is The web platform – a cheat sheet. Handy reference to the bewildering array of specs that makes up current day Web.

    Misinformed Just one example of why you can’t trust tech press to teach you about the tech industry.

    Insecure by design “Security questions” are great for anything but security. Case in point, The Man Who Hacked Hollywood.

    Secure by design 1Password has a great blog about security, and now running a 3-part seried on keeping your computer safe. Here’s Part 2: Only you should 0wn your data.


  5. May 7th, 2012

    Rounded Corners 363 – Spilled chili

    From the Fake Science Blog

    Places to hide TC-thirty-what. I whole heartily agree. A few good features, but unfortunately, adding too many places for bugs to hide.

    Chatty Unix and Node: IPC.

    This or that Fascinating read, The A/B Test: Inside the Technology That’s Changing the Rules of Business:

    Had the team listened to instinct—if it had kept “Sign Up” as the button text and swapped out the photo for the video—the sign-up rate would have slipped to 70 percent of the baseline.

    Credible Hulk Don’t believe the “feels right”. The Software Engineering Evidence Database is a good place to start for summaries and studies of evidence-based software engineering studies.

    MIN( R * T * F ^ N , M ) The simple formula for Exponential Backoff in Distributed Systems.

    Inclusion If you care about research more than personal anecdotes: MSEs watch two videos one with a 50/50 gender ratio vs one without - lower sense of belonging in women from unbalanced.

    QotD Andrew Lunny:

    sometimes the best solution is to never use an ec2 micro instance for anything ever

  6. May 6th, 2012

    Rounded Corners 362 – Open spaces

    Faster A good overview of measuring front-end performance, using Github as the case study.

    Spool time NodePhilly presentations are now available on YouTube.

    Teaming Obvious but worth repeating, 6 secrets for building a super team.

    PSA Node Replay goes 1.4.2, now with HTTPS support and regular expression matching.

    Pivots A telling presentation about all the pivots SocialLiving went through.

    Value A VC explains how to build a killer value proposition.

    As an investor, I look for non-disruptive disruptions — that is, technologies that offer game-changing benefits without requiring any modification to existing processes or environments.

    Accidental How the ARM came to be. Low power consumption was accidental.

    QotD Ryan Greenberg:

    As a software architect I spend most of my time trying to create bright, open spaces where the code can relax.

     

  7. May 5th, 2012

    Rounded Corners 361 – Illegal in Arizona

    W3CMemes … enough said

    Deferred jQuery deferred for Node. Basically a port of jQuery for use in Node.js apps. Since jQuery is not exactly compatible with other promise APIs, this is a good choice if you like using the same API in both enviroments.

    Workload Cluster2 is Node.js cluster plus “several safeguards and utility functions to help support real-world production scenarios”.

    Gaming Gamification And UX: Where Users Win Or Lose. Good read if you’re interested in using gamification to build better apps, not for the same of it.

    Wonderful Travis CI can now help you with pull requests.

    UX Principles of User Interface Design.

    Knowledge Fighting diabetis with data.

    Chance How beginner’s luck work and how you can reproduce it.

    QotD William Vambenepe:

    This API is so undocumented, it wouldn’t last a day in Arizona.

  8. Apr 29th, 2012

    Rounded Corners 360 – Call me null

    Speed up Knowing is half the battle. How to measure Web page performance so you can optimize the heck out of it.

    Curved Created with D3.js, “These animations illustrate how a parametric Bézier curve is constructed”.

    Clean up JavaScript Refactoring.

    Beasted Turns out most of the Internet’s top 200,000 HTTP Web sites are vulnerable to the BEAST SSL attack.

    cdrewind Hilarious Unix utilities, including lossy compression, not random numbers, and a command to rewind CDROMs before ejecting.

    QotD Brandon Rhodes:

    Kids will ask “What did the XML in XMLHttpRequest stand for?” and we’ll answer “Just read it as a censored ‘FML’—long story.”

    1. WSDL 2. Hilary ensues:

    “We have an employee whose last name is Null. He kills our employee lookup app when his last name is used as the search term (which happens to be quite often now).”

     

     

  9. Apr 28th, 2012

    Rounded Corners 359 – Split or steal

    Disposable From The Experimentation Layer:

    We needed to design for throwaway-ability and not as much for reusability.

    Dotted dotfiles.github.com: backup and sync you dotfiles, share and learn from others.

    Graphing Cubism.js is an open source D3 plugin for visualizing time series data. It smartly condenses data into narrow bars, so you can see a lot in one go. Works with Graphite too.

    Also open source, also using D3, also feeding from Graphite and also designed to show multiple graphs on a single page, Tasseo.

    Steal If you are at all interested in game theory, you have got to watch this video of Golden Balls. Brilliantly played out.

    Double blind You can never be too scientific, so how about “a double blind, randomised, placebo controlled, crossover trial of the parachute.”

    QotD Stephen Woods:

    There are two schools in release planning: “why are we waiting?” and “why are we in such a hurry?”. I prefer the first school.

    Ad hominem The logical fallacy poster. Need one in every meeting room.

     

  10. Apr 24th, 2012

    Rounded Corners 358 – Don’t work. Be hated. Love someone.

    Graphing If you’re using Graphite, check Jason Dixon’s blog for some useful tips & tricks.

    HTTPS If you’re using Windows, you might find it easier to use Git over HTTPS instead of SSH. These handy tools will make it easier.

    Super cdir is an interactive console.dir() for the terminal.

    Less evil Testing out the Kill Evil Chrome extension: fixes sites that prevent printing, selection spying, unwanted tabs, etc.

    I can haz? gaskit is an interesting proof of concept, a Git-backed issue tracker.

    Love Another great commencement speech: Don’t work. Be hated. Love someone.

    Work Valve’s new employee handbook is as inspiring as the games it makes: is your company’s employee handbook this good?

    QotD  Pieter Hintjens:

    Here’s a trick when making software. Don’t invent concepts. Instead, work on the concepts people already know.