• How to write a bug report

    Date: 2015.01.15 | Category: developer, developing, development

    You found some behavior you think isn’t right in a piece of software and you are thinking about reporting a bug.. Wait, stop, read this first as it will save you time in back/forth with the developer.

    Is this actually a bug or desired behaviour?

    Ask on the mailing list for the software first. Most developers do things for a reason.

    Does a bug already exist for this?

    Look through the bug tracker / issues for this software, it’s possible a bug already exists. If so you can throw a +1 at it, +1 is a universal “bump” to show your interest. You can also track issues on tools like Github.

    Are you reporting the bug in the right place?

    Etherpad, as an example doesn’t take plug-in bug reports on the core bug tracker. Plug-in bugs should be reported on the individual plug-in bug trackers.

    Want it fixing quickly?

    Create a bounty. You will be more likely to get a fix in a timely fashion. This is especially true for feature/enhancement requests.

    Provide information

    Bug reports like “I can’t click on anything” are completely useless. Include information such as:

    • Operating system
    • Your browser
    • Your browser version
    • The page you are on

    Provide Steps to replicate.

    Provide how you got the problem to happen.. IE

    • click on page X
    • click on element Y
    • do Z.

    Don’t be a leech.

    When you file a bug developers will look at your repository and if this is your first ever bug report and you don’t contribute anything back to any other projects it’s likely you will be ignored.

    Provide Expected behavior

    It’s useful for the developer to know what you actually expect to happen IE:
    Expected behavior: Z element gets big.
    Actual behavior: Z dissapears.

    Be polite

    Actually, I don’t care about this. I’d rather you were clear.

    Other things to consider..

    Is this a security issue? If so use the software packages responsible security disclosure. Can’t find it? Post to the mailing list or bump them on IRC.

  • Finally releasing Etherpad 1.5

    Date: 2015.01.03 | Category: etherpad

    It’s been a long road but I’m super happy to say Etherpad 1.5 is finally released after some intense hacking at 31C3 with my German counterparts! Thanks everyone.. Here is a short video explaining what’s new..

    That’s that milestone met, huzzaa… Next…

    My official announcement

  • ThreeJS is tricky, but awesome.

    Date: 2014.09.12 | Category: blender, nfc, nfc ring, threejs

    Over the past few months I have been using ThreeJS to create a 3D model of the NFC Ring.

    ThreeJS from Wikipedia:

    Three.js is a lightweight cross-browser JavaScript library/API used to create and display animated 3D computer graphics on a Web browser. Three.js scripts may be used in conjunction with the HTML5 canvas element, SVG or WebGL.

    The ThreeJS community is actually really helpful, I’m not saying other communities aren’t helpful or useful I just found that the ThreeJS community did a lot more to help get me started.  There are also quite a few demostration videos online that can be used as reference material.

    The real power of ThreeJS comes when you mix it with the power of Blender.

    Blender from Wikipedia:

    Blender is a professional free and open-source 3D computer graphics software product used for creating animated films, visual effects, art, 3D printed models, interactive 3D applications and video games. Blender’s features include 3D modeling, UV unwrapping, texturing, raster graphics editing, rigging and skinning, fluid and smoke simulation, particle simulation, soft body simulation, sculpting, animating, match moving, camera tracking, rendering, video editing and compositing. Alongside the modeling features it also has an integrated game engine.

    At first I was completely stuck, the video tutorials were out of date and the documentation far too fuzzy, finally I met someone on IRC who did the type of task I was trying to to accomplish every day as his day job.  Things fell into place quickly, so quickly I thought it would be worthwhile putting together a video showing how easy the process is to model an object and export it as something that can be used in ThreeJS:

    Canvas is pretty much a no-go for the work I’m doing, it’s nice to have the fallback options there but Canvas just doesn’t have the features I need to display a ring in all of it’s glory.  With that in mind if a user wants to see the ring and doesn’t have WebGL supported they are shown a message how best to upgrade their browser.

    Finally we should note both three.js and blender are open source projects, completely free and depend on community donation and support. They are both evolving under great leadership and they deserve the credit and respect they get.

    This is what I was able to accomplish, I’m pretty proud of it.

    You can see the source code and access the assets here

  • Living with 2560 pixels wide.

    Date: 2014.08.28 | Category: hardware, review

    IMAG0433 550x310 Living with 2560 pixels wide.So you might be pondering if you should go “super-widescreen”, what are the pro’s/con’s for someone like you?  I’m going to assume as you are reading my blog you don’t spend the majority of your time glued to pointless dribble on Facebook, if you do then this post isn’t for you.  Move along, use whatever Apple tell you to use.

    What you are seeing on the picture above is a 34″ LG 2560×1080 display that set me back about 500 British quid.  Not a cheap investment but I figured I’d bite the bullet as my monitors were getting old and squealing when in low power mode (probably only caused by caps going but I wanted to tidy up my desk anyway) and was curious how my workflow would change with one monitor.

    So 2560×1080, that’s a lot of pixels, but not as many as I had before when I had 2x 24″ monitors, one horizontal, one vertical.  First things first, I miss my vertical display, only for writing code.

    My desk is a lot tidier with this, however I can’t rotate the monitor to be portrait which is a huge negative.

    Here is a print screen of my blog at 2560px:

    Screenshot from 2014 08 28 133850 550x232 Living with 2560 pixels wide.

    For me, that’s a poor UX because the meta data is just so far away, a quick fix for this would be to have a max-width property in the CSS of WordPress but obvious this isn’t enabled by default.

    I loved using etherdraw/gimp/inkscape/blender with this monitor, so much pixel space is so valuable when using those apps.

    For work, I use it exactly as if I had two monitors side by side, however no bezel is nice for mouse flow.  When writing I find I very rarely run full screen, mostly because the view between the beginning/end of the object is just too far.  When doing 3d modeling (Blender) having the extra px is awesome.

    For gaming and consuming video, this setup is superior, sadly I do less and less of that nowadays.  Project Zomboid was great however Runner2 isn’t setup to use the additional pixels so it really depends on the type of game you play and if you need additional reference material when playing the game(such as you would if playing Project Zomboid).  If you are pondering getting one of these monitors I’d check to see if the game you are going to play on it supports 2560×1080 resolution.

    TLDR;  Good for most gaming, good for 3d model work, image editing, good for movie watching.  No better for word processing, blog publishing, code writing.  If anything my code writing will be more difficult without a vertical monitor.


  • XBMC, Transmission, Flexget, Youtube-DL.

    Date: 2014.04.28 | Category: open source, opensource

    With these pieces of software your torrents/TV shows and Youtube subscriptions automatically download to one easy to use interface(XBMC).

    You can also use this interface to access streaming video services such as iPlayer and Radio services such as Radio 1 Extra.  Using the XBMC Remote app on your smart phone you can control your video streaming with the usual buttons (pause/play/skip etc.).

    There are no Ads on your Youtube subscriptions and Ads can be skipped if they are embedded in the videos by the content uploader.

    I’d recommend using a laptop instead of a Pi, the Pi just doesn’t have enough grunt for this type of setup.  Basically next time you have an old laptop lying around and you are thinking of a use for it, spend a few hours whacking linux and these tools on it and you wont look back.

- My Brain made this.