Blogs

  1. Rob Mansfield: writing, telling stories and content strategy

    [Blog] Rob Mansfield: writing, telling stories and content strategy: The Hard Thing About Hard Things: why one-on-one meetings are so important

    I’ve just finished Ben Horowitz’s brilliant book The Hard Thing About Hard Things – in which he shares his own widsom gleaned from being CEO of a start-up (Opsware) that was inches away from liquidation and ultimately went on to become very successful. There’s no grandstanding in the book – Horowitz openly admits when he […]
    Contributor has not supplied alternative text for this image

    Posted 30 January 2015, 5:47 pm

  2. Favicon Wired Sussex Digital Media News

    [Blog] Wired Sussex Digital Media News: "Greatest hits" training - managing people and recruitment

    A practical "greatest hits" training course for busy managers, to improve your skills and confidence in a wide range of areas. Avoid walking into legal disputes when you are recruiting, developing people or dealing with problems - including when your ...

    Posted 30 January 2015, 12:00 am

  3. Favicon Wired Sussex Digital Media News

    [Blog] Wired Sussex Digital Media News: "Greatest hits" training - managing people and recruitment

    A practical "greatest hits" training course for busy managers, to improve your skills and confidence in a wide range of areas. Avoid walking into legal disputes when you are recruiting, developing people or dealing with problems - including when your ...

    Posted 30 January 2015, 12:00 am

  4. Favicon Wired Sussex Digital Media News

    [Blog] Wired Sussex Digital Media News: Progress Bar

    ONE BAR, TWO SPECIAL GUESTS, ENDLESS IDEAS; LIGHTHOUSE PRESENTS PROGRESS BAR, A NEW MONTHLY NIGHT THAT OFFERS INSIGHT INTO THE CREATIVE PRACTICE OF CONTEMPORARY CULTURE'S MOST EXCITING NAMES From vanguard filmmakers and musicians to trending contemporary ...

    Posted 30 January 2015, 12:00 am

  5. Favicon SiteVisibility

    [Blog] SiteVisibility: Improving your Information Architecture with card sorting – Pierre Croft Interview – INTERNET MARKETING PODCAST #281

    In today’s episode we talk to Pierre Croft from Decibel Digital and covering one of the key approaches of Information Architecture – Card Sorting. What it is, why it matters and how you can use the approach to improve the effectiveness of your site.

    Post from Apple Pie & Custard blog by SiteVisibility - An SEO Agency

    Improving your Information Architecture with card sorting – Pierre Croft Interview – INTERNET MARKETING PODCAST #281

    Contributor has not supplied alternative text for this image Contributor has not supplied alternative text for this image Contributor has not supplied alternative text for this image

    Posted 29 January 2015, 9:48 am

  6. Psychic Origami

    [Blog] Psychic Origami: A couple of ATtiny projects (ARC reactor + lighthouse)

    Here are a couple of the other ATtiny projects I’ve worked on.  Only now just writing them up.  They are both pretty simple.

    The first was an Iron Man style “ARC reactor” (the circle light in his chest) that I made to go with my son’s (shop bought) Iron Man costume.  It was just three blue LEDs covered in translucent Fimo, that light up in sequence, stay lit for a few seconds, then shut off in sequence.

    Arc reactor on Iron Man costume

    Here’s a video of it in action.

    The whole thing is powered by a watch battery and activates when a button is pressed, then goes back into a power saving sleep mode after running the animation, till the button is pressed.  The code is pretty similar to the robot santa code and is over here on github.

    The lighthouse involved a fair bit more  craft work, but was even simpler from an electronics point of view (only a single LED).  I first made a mold using a hexagonal jam jar as a base, then cast the “light” part out of resin with a large white LED embedded inside:

    Embedded a large LED in resin cast from a jam jar

    I then attached this to a re-usable plastic coffee cup (with branding sanded off) and added a fair bit of milliput to create a balcony etc.

    Lighthouse starting to look like a lighthouse

    Next I painted the whole thing with white and then red spray paint (masking the paint to make stripes).

    Lighthouse painted red (masks still on)
    Masks for stripes remove
    Spray painted lighthouse model

    I then mounted that on top of a piece of wood and added some chunky buttons (one for power, one to trigger the light).

    Finished lighthouse

    Here’s a video of the light turning on and off:

    The code for the lighthouse is over here on github.

    This post is a bit light on details, but mostly these are variations on what I already did with the robot santa (minus the speaker). Hopefully shouldn’t be too hard to work out what’s been done here.

    Posted 28 January 2015, 9:34 pm

  7. Psychic Origami

    [Blog] Psychic Origami: A couple of ATtiny projects (ARC reactor + lighthouse)

    Here are a couple of the other ATtiny projects I’ve worked on.  Only now just writing them up.  They are both pretty simple.

    The first was an Iron Man style “ARC reactor” (the circle light in his chest) that I made to go with my son’s (shop bought) Iron Man costume.  It was just three blue LEDs covered in translucent Fimo, that light up in sequence, stay lit for a few seconds, then shut off in sequence.

    Arc reactor on Iron Man costume

    Here’s a video of it in action.

    The whole thing is powered by a watch battery and activates when a button is pressed, then goes back into a power saving sleep mode after running the animation, till the button is pressed.  The code is pretty similar to the robot santa code and is over here on github.

    The lighthouse involved a fair bit more  craft work, but was even simpler from an electronics point of view (only a single LED).  I first made a mold using a hexagonal jam jar as a base, then cast the “light” part out of resin with a large white LED embedded inside:

    Embedded a large LED in resin cast from a jam jar

    I then attached this to a re-usable plastic coffee cup (with branding sanded off) and added a fair bit of milliput to create a balcony etc.

    Lighthouse starting to look like a lighthouse

    Next I painted the whole thing with white and then red spray paint (masking the paint to make stripes).

    Lighthouse painted red (masks still on)
    Masks for stripes remove
    Spray painted lighthouse model

    I then mounted that on top of a piece of wood and added some chunky buttons (one for power, one to trigger the light).

    Finished lighthouse

    Here’s a video of the light turning on and off:

    The code for the lighthouse is over here on github.

    This post is a bit light on details, but mostly these are variations on what I already did with the robot santa (minus the speaker). Hopefully shouldn’t be too hard to work out what’s been done here.

    Posted 28 January 2015, 9:34 pm

  8. Entrepreneurial Geekiness

    [Blog] Entrepreneurial Geekiness: Annotate.io self-learning text cleaner demo online

    A few weeks I posted some notes on a self-learning text cleaning system, to be used by data scientists who didn’t want to invest time cleaning their data by hand. I have a first demo online over at annotate.io (the demo code is here in github).

    The intuition behind this is that we currently divert a lot of mental resource early in a project to cleaning data and a bunch of that can be spent just figuring out which libraries will help with the cleaning. What if we could just let the machine do that for us? We can then focus on digging into new data and figuring out how to solve the bigger problems.

    With annotate.io you give it a list of “data you have” and “data you want”, it’ll figuring out how to transform the former into the latter.  With the recipe it generates you then feed in new data and it performs the cleaning for you. You don’t have to install any of the libraries it might use (that’s all server-side).

    Using Python 2.7 or 3.4 you can run the demo in github (you need the requests library). You can sign-up to the announce list if you’d like to be kept informed on developments.


    Ian applies Data Science as an AI/Data Scientist for companies in ModelInsight, sign-up for Data Science tutorials in London. Historically Ian ran Mor Consulting. He also founded the image and text annotation API Annotate.io, co-authored SocialTies, programs Python, authored The Screencasting Handbook, lives in London and is a consumer of fine coffees.

    Posted 27 January 2015, 10:51 pm

  9. Favicon Adactio: Journal

    [Blog] Adactio: Journal: A question of timing

    I’ve been updating my collection of design principles lately, adding in some more examples from Android and Windows. Coincidentally, Vasilis unveiled a neat little page that grabs one list of principles at random —just keep refreshing to see more.

    I also added this list of seven principles of rich web applications to the collection, although they feel a bit more like engineering principles than design principles per se. That said, they’re really, really good. Every single one is rooted in performance and the user’s experience, not developer convenience.

    Don’t get me wrong: developer convenience is very, very important. Nobody wants to feel like they’re doing unnecessary work. But I feel very strongly that the needs of the end user should trump the needs of the developer in almost all instances (you may feel differently and that’s absolutely fine; we’ll agree to differ).

    That push and pull between developer convenience and user experience is, I think, most evident in the first principle: server-rendered pages are not optional. Now before you jump to conclusions, the author is not saying that you should never do client-side rendering, but instead points out the very important performance benefits of having the server render the initial page. After that—if the user’s browser cuts the mustard—you can use client-side rendering exclusively.

    The issue with that hybrid approach—as I’ve discussed before—is that it’s hard. Isomorphic JavaScript (terrible name) can theoretically help here, but I haven’t seen too many examples of it in action. I suspect that’s because this approach doesn’t yet offer enough developer convenience.

    Anyway, I found myself nodding along enthusiastically with that first of seven design principles. Then I got to the second one: act immediately on user input. That sounds eminently sensible, and it’s backed up with sound reasoning. But it finishes with:

    Techniques like PJAX or TurboLinks unfortunately largely miss out on the opportunities described in this section.

    Ah. See, I’m a big fan of PJAX. It’s essentially the same thing as the Hijax technique I talked about many years ago in Bulletproof Ajax, but with the new addition of HTML5’s History API. It’s a quick’n’dirty way of giving the illusion of a fat client: all the work is actually being done in the server, which sends back chunks of HTML that update the interface. But it’s true that, because of that round-trip to the server, there’s a bit of a delay and so you often end up briefly displaying a loading indicator.

    I contend that spinners or “loading indicators” should become a rarity

    I agree …but I also like using PJAX/Hijax. Now how do I reconcile what’s best for the user experience with what’s best for my own developer convenience?

    I’ve come up with a compromise, and you can see it in action on The Session. There are multiple examples of PJAX in action on that site, like pretty much any page that returns paginated results: new tune settings, the latest events, and so on. The steps for initiating an Ajax request used to be:

    1. Listen for any clicks on the page,
    2. If a “previous” or “next” button is clicked, then:
    3. Display a loading indicator,
    4. Request the new data from the server, and
    5. Update the page with the new data.

    In one sense, I am acting immediately to user input, because I always display the loading indicator straight away. But because the loading indicator always appears, no matter how fast or slow the server responds, it sometimes only appears very briefly—just for a flash. In that situation, I wonder if it’s serving any purpose. It might even be doing the opposite to its intended purpose—it draws attention to the fact that there’s a round-trip to the server.

    “What if”, I asked myself, “I only showed the loading indicator if the server is taking too long to send a response back?”

    The updated flow now looks like this:

    1. Listen for any clicks on the page,
    2. If a “previous” or “next” button is clicked, then:
    3. Start a timer, and
    4. Request the new data from the server.
    5. If the timer reaches an upper limit, show a loading indicator.
    6. When the server sends a response, cancel the timer and
    7. Update the page with the new data.

    Even though there are more steps, there’s actually less happening from the user’s perspective. Where previously you would experience this:

    1. I click on a button,
    2. I briefly see a loading indicator,
    3. I see the new data.

    Now your experience is:

    1. I click on a button,
    2. I see the new data.

    …unless the server or the network is taking too long, in which case the loading indicator appears as an interim step.

    The question is: how long is too long? How long do I wait before showing the loading indicator?

    The Nielsen Norman group offers this bit of research:

    0.1 second is about the limit for having the user feel that the system is reacting instantaneously, meaning that no special feedback is necessary except to display the result.

    So I should set my timer to 100 milliseconds. In practice, I found that I can set it to as high as 200 to 250 milliseconds and keep it feeling very close to instantaneous. Anything over that, though, and it’s probably best to display a loading indicator: otherwise the interface starts to feel a little sluggish, and slightly uncanny. (“Did that click do any—? Oh, it did.”)

    You can test the response time by looking at some of the simpler pagination examples on The Session: new recordings or new discussions, for example. To see examples of when the server takes a bit longer to send a response, you can try paginating through search results. These take longer because, frankly, I’m not very good at optimising some of those search queries.

    There you have it: an interface that—under optimal conditions—reacts to user input instantaneously, but falls back to displaying a loading indicator when conditions are less than ideal. The result is something that feels like a client-side web thang, even though the actual complexity is on the server.

    Now to see what else I can learn from the rest of those design principles.

    Posted 27 January 2015, 5:50 pm

  10. Favicon Wired Sussex Digital Media News

    [Blog] Wired Sussex Digital Media News: The secret lives of Brighton’s CDIT freelancers explored in beautifully designed report

    A striking research report, written by a team of academics at Brighton and Sussex Universities, and funded by the Arts and Humanities Research Council, has been brought to life with a collection of stunning infographics designed by thriving Brighton design ...

    Posted 27 January 2015, 12:00 am

  11. Favicon Raj Anand - Google+ Public Posts

    [Blog] Raj Anand - Google+ Public Posts: Technology companies raising money on Kickstarter

    Technology companies raising money on Kickstarter
    Contributor has not supplied alternative text for this image Contributor has not supplied alternative text for this image Contributor has not supplied alternative text for this image Contributor has not supplied alternative text for this image

    Posted 26 January 2015, 5:07 pm

  12. shardcore

    [Blog] shardcore: Harold Pinter(2015)


    pinter_web
    Acrylic on Canvas, 508mm x 406mm

    Posted 26 January 2015, 11:52 am

  13. Favicon Wired Sussex Digital Media News

    [Blog] Wired Sussex Digital Media News: New report finds freelancers in creative, digital and IT companies fuel prosperity and growth

    Arts and Humanities Research Council (AHRC) funded study finds first empirical evidence that self-employment in the Creative-Digital-IT sector fuels prosperity and success. The growth of self-employment in the UK economy is often interpreted negatively, ...

    Posted 26 January 2015, 12:00 am

  14. Favicon Adactio: Journal

    [Blog] Adactio: Journal: Angular momentum

    I was chatting with some people recently about “enterprise software”, trying to figure out exactly what that phrase means (assuming it isn’t referring to the LCARS operating system favoured by the United Federation of Planets). I always thought of enterprise software as “big, bloated and buggy,” but those are properties of the software rather than a definition.

    The more we discussed it, the clearer it became that the defining attribute of enterprise software is that it’s software you never chose to use: someone else in your organisation chose it for you. So the people choosing the software and the people using the software could be entirely different groups.

    That old adage “No one ever got fired for buying IBM” is the epitome of the world of enterprise software: it’s about risk-aversion, and it doesn’t necessarily prioritise the interests of the end user (although it doesn’t have to be that way).

    In his critique of AngularJS PPK points to an article discussing the framework’s suitability for enterprise software and says:

    Angular is aimed at large enterprise IT back-enders and managers who are confused by JavaScript’s insane proliferation of tools.

    My own anecdotal experience suggests that Angular is not only suitable for enterprise software, but—assuming the definition provided above—Angular is enterprise software. In other words, the people deciding that something should be built in Angular are not necessarily the same people who will be doing the actual building.

    Like I said, this is just anecdotal, but it’s happened more than once that a potential client has approached Clearleft about a project, and made it clear that they’re going to be building it in Angular. Now, to me, that seems weird: making a technical decision about what front-end technologies you’ll be using before even figuring out what your website needs to do.

    Ah, but there’s the rub! It’s only weird if you think of Angular as a front-end technology. The idea of choosing a back-end technology (PHP, Ruby, Python, whatever) before knowing what your website needs to do doesn’t seem nearly as weird to me—it shouldn’t matter in the least what programming language is running on the server. But Angular is a front-end technology, right? I mean, it’s written in JavaScript and it’s executed inside web browsers. (By the way, when I say “Angular”, I’m using it as shorthand for “Angular and its ilk”—this applies to pretty much all the monolithic JavaScript MVC frameworks out there.)

    Well, yes, technically Angular is a front-end framework, but conceptually and philosophically it’s much more like a back-end framework (actually, I think it’s conceptually closest to a native SDK; something more akin to writing iOS or Android apps, while others compare it to ASP.NET). That’s what PPK is getting at in his follow-up post, Front end and back end. In fact, one of the rebuttals to PPKs original post basically makes the exactly same point as PPK was making: Angular is for making (possibly enterprise) applications that happen to be on the web, but are not of the web.

    On the web, but not of the web. I’m well aware of how vague and hand-wavey that sounds so I’d better explain what I mean by that.

    The way I see it, the web is more than just a set of protocols and agreements—HTTP, URLs, HTML. It’s also built with a set of principles that—much like the principles underlying the internet itself—are founded on ideas of universality and accessibility. “Universal access” is a pretty good rallying cry for the web. Now, the great thing about the technologies we use to build websites—HTML, CSS, and JavaScript—is that universal access doesn’t have to mean that everyone gets the same experience.

    Yes, like a broken record, I am once again talking about progressive enhancement. But honestly, that’s because it maps so closely to the strengths of the web: you start off by providing a service, using the simplest of technologies, that’s available to anyone capable of accessing the internet. Then you layer on all the latest and greatest browser technologies to make the best possible experience for the most number of people. But crucially, if any of those enhancements aren’t available to someone, that’s okay; they can still accomplish the core tasks.

    So that’s one view of the web. It’s a view of the web that I share with other front-end developers with a background in web standards.

    There’s another way of viewing the web. You can treat the web as a delivery mechanism. It is a very, very powerful delivery mechanism, especially if you compare it to alternatives like CD-ROMs, USB sticks, and app stores. As long as someone has the URL of your product, and they have a browser that matches the minimum requirements, they can have instant access to the latest version of your software.

    That’s pretty amazing, but the snag for me is that bit about having a browser that matches the minimum requirements. For me, that clashes with the universality that lies at the heart of the World Wide Web. Sites built in this way are on the web, but are not of the web.

    This isn’t anything new. If you think about it, sites that used the Flash plug-in to deliver their experience were on the web, but not of the web. They were using the web as a delivery mechanism, but they weren’t making use of the capabilities of the web for universal access. As long as you have the Flash plug-in, you get 100% of the intended experience. If you don’t have the plug-in, you get 0% of the intended experience. The modern equivalent is using a monolithic JavaScript library like Angular. As longer as your browser (and network) fulfils the minimum requirements, you should get 100% of the experience. But if your browser falls short, you get nothing. In other words, Angular and its ilk treat the web as a platform, not a continuum.

    If you’re coming from a programming environment where you have a very good idea of what the runtime environment will be (e.g. a native app, a server-side script) then this idea of having minimum requirements for the runtime environment makes total sense. But, for me, it doesn’t match up well with the web, because the web is accessed by web browsers. Plural.

    It’s telling that we’ve fallen into the trap of talking about what “the browser” is capable of, as though it were indeed a single runtime environment. There is no single “browser”, there are multiple, varied, hostile browsers, with differing degrees of support for front-end technologies …and that’s okay. The web was ever thus, and despite the wishes of some people that we only code for a single rendering engine, the web will—I hope—always have this level of diversity and competition when it comes to web browsers (call it fragmentation if you like). I not only accept that the web is this messy, chaotic place that will be accessed by a multitude of devices, I positively welcome it!

    The alternative is to play a game of “let’s pretend”: Let’s pretend that web browsers can be treated like a single runtime environment; Let’s pretend that everyone is using a capable browser on a powerful device.

    The problem with playing this game of “let’s pretend” is that we’ve played it before and it never works out well: Let’s pretend that everyone has a broadband connection; Let’s pretend that everyone has a screen that’s at least 960 pixels wide.

    I refused to play that game in the past and I still refuse to play it today. I’d much rather live with the uncomfortable truth of a fragmented, diverse landscape of web browsers than live with a comfortable delusion.

    The alternative—to treat “the browser” as though it were a known quantity—reminds of the punchline to all those physics jokes that go “Assume a perfectly spherical cow…”

    Monolithic JavaScript frameworks like Angular assume a perfectly spherical browser.

    If you’re willing to accept that assumption—and say to hell with the 250,000,000 people using Opera Mini (to pick just one example)—then Angular is a very powerful tool for helping you build something that is on the web, but not of the web.

    Now I’m not saying that this way of building is wrong, just that it is at odds with my own principles. That’s why Angular isn’t necessarily a bad tool, but it’s a bad tool for me.

    We often talk about opinionated software, but the truth is that all software is opinionated, because all software is built by humans, and humans can’t help but imbue their beliefs and biases into what they build (Tim Berners-Lee’s World Wide Web being a good example of that).

    Software, like all technologies, is inherently political. … Code inevitably reflects the choices, biases and desires of its creators.

    —Jamais Cascio

    When it comes to choosing software that’s supposed to help you work faster—a JavaScript framework, for example—there are many questions you can ask: Is the code well-written? How big is the file size? What’s the browser support? Is there an active community maintaining it? But all of those questions are secondary to the most important question of all, which is “Do the beliefs and assumptions of this software match my own beliefs and assumptions?”

    If the answer to that question is “yes”, then the software will help you. But if the answer is “no”, then you will be constantly butting heads with the software. At that point it’s no longer a useful tool for you. That doesn’t mean it’s a bad tool, just that it’s not a good fit for your needs.

    That’s the reason why you can have one group of developers loudly proclaiming that a particular framework “rocks!” and another group proclaiming equally loudly that it “sucks!”. Neither group is right …and neither group is wrong. It comes down to how well the assumptions of that framework match your own worldview.

    Now when it comes to a big MVC JavaScript framework like Angular, this issue is hugely magnified because the software is based on such a huge assumption: a perfectly spherical browser. This is exemplified by the architectural decision to do client-side rendering with client-side templates (as opposed to doing server-side rendering with server-side templates, also known as serving websites). You could try to debate the finer points of which is faster or more efficient, but it’s kind of like trying to have a debate between an atheist and a creationist about the finer points of biology—the fundamental assumptions of both parties are so far apart that it makes a rational discussion nigh-on impossible.

    (Incidentally, Brett Slatkin ran the numbers to compare the speed of client-side vs. server-side rendering. His methodology is very telling: he tested in Chrome and …another Chrome. “The browser” indeed.)

    So …depending on the way you view the web—“universal access” or “delivery mechanism”—Angular is either of no use to you, or is an immensely powerful tool. It’s entirely subjective.

    But the problem is that if Angular is indeed enterprise software—i.e. somebody else is making the decision about whether or not you will be using it—then you could end up in a situation where you are forced to use a tool that not only doesn’t align with your principles, but is completely opposed to them. That’s a nightmare scenario.

    Posted 23 January 2015, 3:49 pm

  15. Favicon SiteVisibility

    [Blog] SiteVisibility: Balancing the creative and tech – Scott Lawson Interview – INTERNET MARKETING PODCAST #280

    In today’s episode we talk to Scott Lawson the founder of Trackpal, a marketing reporting and measurement platform. He’s talking us through the hard balancing act between creative and technology. Coming from a Film background Scott’s got an interesting perspective when combined with his software experience. He has some great advice on bringing together those different skills sets and how really take advantage of the opportunity.

    What should we be measuring and why!

    Post from Apple Pie & Custard blog by SiteVisibility - An SEO Agency

    Balancing the creative and tech – Scott Lawson Interview – INTERNET MARKETING PODCAST #280

    Contributor has not supplied alternative text for this image Contributor has not supplied alternative text for this image Contributor has not supplied alternative text for this image

    Posted 22 January 2015, 9:33 am

Flickr

These photos are the most recent added to the BNM Flickr Photo pool.

[Flickr]

Photo uploaded by , on

Recent Threads

This list of subject headings is generated from the last 50 posts made to the BNM mailing list which also had a response.

  1. Urgent Need with BMS/NJ 3 posts.
  2. HOT LIST 3 posts.
  3. LOAD RUNNER TESTING URGENT 2 posts.
  4. Urgent Recuritment for... 2 posts.
  5. business analyst EXP;10... 2 posts.
  6. R2R (Record to Report)... 2 posts.

Last.fm artist chart

This is a chart of the most listened to artists in the BNM last.fm group. Chart for the week ending Sun, 25 Jan 2015.

  1. Goldfrapp
  2. Massive Attack
  3. SBTRKT
  4. Talking Heads
  5. Beastie Boys
  6. Arcade Fire
  7. Basement Jaxx
  8. Florence + the Machine
  9. Michael Jackson
  10. Adem

Chart updated every Sunday.

del.icio.us

These are links tagged by members of the BNM mailing list with the tag ‘bnm’. If you find something you think other readers may find useful, why not do the same?

Events

Events are taken from the BNM Upcoming Group. There are currently no events to display.

You can download, or subscribe to this schedule.