Category Archives: Uncategorized

AngularZone Sept 2016 Meetup Review

I’ve got to be honest, when this meetup’s talks were announced I honestly didn’t know anything about GraphQL – in fact the only mention of it I’d seen (or taken notice of) was this one;

And with this in mind, and the fact the last AngularZone meet was so good, I was more than eager to make sure I went along… and of course it gave me a chance to sport my new MobileCaddy tee, too.

beta-tee

As well as these physical meets, Gerard has been putting on web based “JavaScript – Ask me Anything” sessions too, though I have yet to partake in those.

Now, I have some thoughts about the meetup and venue as a whole, but for now let’s jump straight into the talks.

Progressive Web Apps in the Real World – Dean Hume

PWAs are creating a lot of noise at the mo – and rightly so – and Dean “Deano” Hume was here to give us the latest lowdown on them, and talk about how their features can be used in the real world.

PWAs are built using an emerging set of web standards, and essentially offer web developers the tools to bring native-esq experiences to web sites and apps. Such capabilities include Push Notifications, Geo-location access and other hardware APIs including bluetooth and NFC.

Dean Hume presenting PWAs at AngularZone

Part of the awesome-sauce that powers PWAs are Service Workers. These are also being pumped highly in the web dev world, and they enable support for many cool enrichments to standard “web sites” as well “web apps” (and no, I don’t know what the difference really is, or even if it’s important). I’ve seen many talks on Service Workers and on the whole they’ve been very good, and normally have covered different uses, approaches, and features. But one thing they all include is a statement like “Nope, sorry, Safari doesn’t support them”.

Service Workers provide a dev with the ability to intercept network requests before they leave the browser, and this can be used to provide offline handling, low-data requests and probably plenty of other use cases that haven’t yet been thought of. Speaking of which, Dean covered a scenario using Promise.race in a Service Worker that provided an improved experience for when a third party library failed to load, and meant that the page was able to load much more quickly – very cool.

Dean showed us a few other PWA features, including;

  • Add to home-screen
  • Push Notifications
  • No-connectivity handling – being able to give the user at least some basic information offline.
  • Handling Chrome’s Data Saver.

Along with the great demos and info, Dean also supplied an incredible amount of links to online demos and resources… so check out his slides for all the details.

JavaScript Jeopardy – Tracy Lee

Now, I won’t claim to understand what happened next. But it was fun, so I’m just gonna leave this picture here and you can make of it what you will.

Angular Jeopardy - WTF

Following on from this, erm… experience… Tracy and Gerard went on to tell us about ngCruise. This is a new Angular conference with a difference. Yes, you’ve guessed it, it’ll take place on a cruiseship. The website should be launching this week but the plan is for the conference/cruise to commence by bobbing out of Florida in May 2017, and will comprise of a few days of talks, programming and fun. Tracy is hoping it’ll be a few hundred USD per day and should include talks, food and of course accommodation (with a difference). CFPs should open soon.

Angular Connect – Peter Bacon Darwin

Peter and Gerard gave us a nice little fireside-chat type thing, discussing the upcoming Angular Connect conference (27th/28th Sept). They mentioned how they were updating the format slightly, from last years conf, to try to emphasise some of the more interactive sessions. I can only imagine that the conference is going to be ace… as I’ve once again had to bail on getting a ticket.

Angular meets GraphQL – Uri Goldshtein

Closing us off was Uri Goldshtein, who had literally only just flown into London. Uri is part of the Apollo team and was hear to give is an introduction to GraphQL, and although his talk title mentioned Angular, it was mostly a generic intro. This was fine with me as I had virtually no idea about GraphQL, whatsoever.

Now I won’t try to come across as a GraphQL expert following the talk, in fact if anything I have more questions now than before… so as well as writing down what I think I grasped from the evening, I’ll also suggest that you take a look at the GraphQL website for yourself.

But anyhoo, GraphQL was born out of Facebook, late 2011, at around the time Mark Zuckerburg dissed web tech for mobile, and went all native on us. It is designed to be a “Query language over your existing data”. It can be used to provide a middleware and protect your clients from evolving backend APIs and updates. It’s also type-based, and should allow for absolute understanding between what a client asks for, and what it receives. Part of this middleware behaviour includes splitting single request out to multiple backends, and bundling the responses to each up into a single response for the calling client. This kind of architecture can mean drastically simplified client code… and that’s definitely a good thing in my book.

Uri demoed Instagraph, built by Kamil Kisiela, and showed us a very neat GraphQL editor/runner called Graphiql. During the demo Uri spoke about how the use of GraphQL allowed for “optimistic UIs”. This is an approach where UIs update as soon as an action, such as liking an Instagram photo, is invoked, and that actually these changes take place before any round-trip to the server/backend is made. This approach is one that we automatically use at MobileCaddy, though we tend to include this under the Offline First banner, but it’s nice to know this specific UI handling has it’s own name too.

Users of GraphQL, other than Facebook obviously, include Pinterest, Github and Shopify.

Despite Uri being a really passionate and captivating speaker, I’m not entirely sure I’ve “got” GraphQL yet – I don’t know whether it’s available simply through client side and server side libraries, or what transactional performance overhead, if any, comes into play. I would love the chance to see him and again and have a good chat about it all. With this in mind I think I’ll do some digging into whether or not I could sit GraphQL in front of Salesforce’s SOQL. So why not go out and start playing.

Wrap Up

In all this was another excellent meetup, and Gerard deserves high praise for organising such great talks and food (burritos) and drink. The inclusion of prize draws (FREE TICKET to ANGULAR CONNECT) is a really good touch. Thanks to go to eSynergySolutions for sponsorship and assistance.

Sadly, turn-out was relatively low. I counted less than 50 attendees, which is a shame as well over 100 had RSVP’d “Yes”. I found that there was little chat among attendees, and I also noticed this at the previous meetup. Whether or not it’s due to the size of the venue, or the fact that folk were sitting in the hall before and between talks, rather than around the breakout area, I’m not sure. At other meetups I attend, these “before and after chats” are one of the really valuable and attractive things. Maybe next time the hall can be “closed” whilst talks are not on, and hopefully they’ll be a deliberate post-talks-chat arrangement too?

Regardless of the above I definitely recommend coming along to these AngularZone meets if you’re in and around London and have interest in anything JavaScript, not just Angular.

Until next time… oh and please be in touch if you want to sponsor me to attend ngCruise 😉

AngularZone July 2016 Meetup Review

I hadn’t been to any meetups in quite some time, but this inaugural meetup of the new AngularZone community had a lot of draw… Service Workers, D3, prizes, and more.

The meetup was organised by Gerard Sans, who has a history of speaking and organising meetups. It was held in the large hall of the Skills Matter CodeNode venue, which is a perfect venue for a meetup of a decent size.

As it was the first meetup for AngularZone, Gerard gave us a brief intro to what his view was for it. His idea is that physical meetups will take place once every two months, and have topics on web tech in general, and in particular Angular. He’d like to see talks, and a community, driven by passion. As well as the meetups and obvious greatness of tech talks he would like to see a community contribution program come into affect, where folk (including himself and Todd Motto – that guy gets around, right) can give advice as seasoned speakers and bloggers. It sounds not to far removed from his previous Angular Labs idea, though to be honest I didn’t get involved in that, so this is purely guesswork.

But anyhoo… on to the talks

Service Workers – Phil Nash

Up first was Phil Nash talking us through Service Workers. Now these are not overly new, but still very much in the early days of adoption. If you are new to Service Workers though, you can start by thinking of them an intelligent way to support offline behaviour for your web sites and apps. They’re the successor to the painful-to-understand-implement-manage app cache tech and have been greatly pushed with the current rise of the PWA (Progressive Web App).

We were, of course, shown the awesomeness that is the trailer for Service Worker, and I felt sorry for AppCache, so I put one together. I could apologise for the distracting gif, but I won’t, and I still pronounce it Gif, not Jif, deal with it.

AppCache, The Trailer
AppCache, The Trailer

At the time of wrting, Service Workers are available in the latest builds of Chrome, Firefox and Opera, and are known to be being actively worked on in Edge… and in the words of Phil, “who knows about Safari”.

We were shown some demos that Phil had been playing on thath utilised the Twillio API. His demos used various features exposed through Service Workers (offline, notifications, background sync, etc). Service Worker is a very powerful browser feature, and one I hope that will soon be adopted so I can use it in the hybrid apps we’re building at MobileCaddy.

‘Service Workers, turning “online by default” to “offline first”‘
– Phil Nash, 2016

One of the key features I see available in Service Workers over AppCache is the ability to programatically blat assets from the cache, and I can not wait to use it and say good ridance to AppCache.

Phil’s talk was really interesting and very well presented. His passion and knowledge were obvious. If you’re after his slides, they can be found here.

Using D3 with Angular2 – Ændrew Rininsland

Ændrew is a journalist/data wrangler at the FT and set off to take us through using (the bloomin’ black-magical D3.js) in Angular2 projects.

His talk started off with some comments on TypeScript and how having typed languages should catch silly bugs earlier on in a project’s lifecycle (though he also mentioned a blog post that argues that there isn’t any factual proof of this). Something that is hard to argue with about TypeScript though is the benefits of it’s self-documenting characteristic, which can only be a good thing.

“Angular devs are cooler than React devs… Just sayin'”
– Ændrew Rininsland, 2016

Before we got to any real D3, Ændrew also gave a few personal observations of ng2;

  • On a blank ng2 project – Never has he had so much code, over so many files, doing so very little
  • ng2 is really fast

Even being fairly new to ng2 myself, these points certainly ring true with me.

After much config hacking and setup, we  finally got around to seeing some D3 code, which by comparison was relatively short and straight-forward – in a “my mind can’t take in any more info” kind of way. I’m not sure if I’ll ever get over how magical D3.js is and how much sorcery their implementors use to bend it into shape, but the output of beautiful data visualisations always blows my mind.

Closing

Gerard had a few prizes to be won, which is a nice touch for a new meetup, so kudos to him. I even won a year’s JetBrains license… so even better.

Talking of free-stuff now’s a good time to thank Gerard for putting on a really interesting meet and to the sponsors (skills matter, eSynergySolutions, poncho8, JetBrains, Google Developers) for covering the venue, food, drinks and prizes.

Talks were recorded and should be up on the skills matter site in the near future.

Ubuntu 2d – Some tweaks

Recently my install of Ubuntu on my work desktop started complaining about now being out of support… so I decided to upgarde to the latest LTS version (Ubuntu 12.04). Overall the install went fine apart from a couple of little things that I needed to address

Desktop size to big for Unity 3D

Sadly my graphics card did not support running Unity 3D across my dual-head setup (2 x 24 inch monitors). This, I didn’t feel, would be too much of an issue as I wasn’t too interested in all the desktop eye-candy. All I did here was then choose the Unity 2D option at the login prompt.

The 2D setup itself was not hassle free though;

Quick Synergy, Very Laggy

I noticed that for some reason the usually great Quick Synergy (which I highly recommend if you want to share mouse/keyboard across multiple PCs… including different OS) was very laggy. This was not the case if I used Unity 3D in mirrored monitor mode or if I used any of the other Gnome desktops at login. I had no luck in finding a solution to this… that was until I decided to solve my next issue… read on for the Quick Synergy lag issue solution.

Terminal Window Always on Top

I found that the Terminal windows always remainded on top (in front of) other windows I had opened. Now I’m the kind of guy that uses the Terminal a lot, so this was going to be a show-stopper if I couldn’t find an answer.

After a brief search I came across this link which details a solution. In essence it just tells you to disable metacity from being the composting manager (and how to do it too).

I’m not sure what adverse side-affects might be suffered from this… so far I’ve not noticed any. One good bi-product of this chnage though was that Quick Synergy sped right back up again and became super-responsive once more… WIN!

2011 Goals Update – In review

A whole year has now passed since I set my goals for 2011 and as such its time to wrap up and have a look back how I did.

Complete work on our house

As far as the year as a whole this has been mostly successful. The house has come such a long way that I’m truly blown away with how homely it is and how much I love what the Badja and I have done to the place. Sadly we didn’t complete all the works (carpet, downstairs loo) as we run out of cash. These items are still on the list though and will certainly be being passed onto the 2010 Goals list

Give Blood

I’m an awful human being, really I am. I haven’t done this (again). This will also be being added to the 2012 list but I may up the anti somehow to make sure that this does get completed (at least once).

Slight weight loss

As per the last update I’ve actually put on a stone this year… FAIL!

Take up drawing

I made a good start to this goal and got some sketches together including this one of a manga-esq Badja. I’d really like to have done more but as you will see later some other things came up requiring more urgent attention.

Release a WordPress theme

Although I didn’t actually release a WordPress theme into the repository my Responsive TwentyTen plugin has now been mentioned across tens of WordPress blogs and was also mentioned in one of the talks at WordCamp UK 2011. I also made several other WordPress themes for bespoke projects.

Create another Android App

So I’ve been playing a fair amount with Android and have started work on an app for Forrst as well as playing with the NFC functions and more camera interaction. No app was officially released into the marketplace… so a partial success here I think.

Get listed in the next Web Designers’ Ideas book

This was always going to be a stretch goal… and sadly as at this time I think it’s out of reach.

Get drafted to Dribbble

Yup, we can tick this one off. One of the kind Dribbblers recruited me following my submission of some design work as well as some begging and pleading. You can check out my Dribbble work at http://dribbble.com/toddhalfpenny

Anything Else?

As well as all these goals I planned for myself several other things of note occurred in 2011 which should probably be mentioned here.

Launch of Designs and Such

Some time back in September whilst holidaying in Falmouth The Badja had the idea to start up an online craft business. It would focus on home-made craft items and craft kits supplying folks with designs, materials and all the other bits they need to create their own pieces. From the inception we duly started work on the business plan and all the other things needed to get this up and running.

On November 21st Designs and Such launched running on a WordPress site built by me and co-designed with The Badja.

2011 Goals Update – Quarter 3

9 months have now passed since I set my goals for 2011 and so it’s time for another update… of dear!

  • Complete work on our house – Some progress has been made, which is really good news. We now have all new internal doors, a super-duper large loft hatch, we’ve redecorated the guest room (well The Badja has) and we have a new front door which we can actually open, close and lock! Still to come is some shelving in the kitchen and new carpets. The hope is to have these done by Christmas but to be frank money is somewhat tight.
  • Give Blood – no progress… I’m ashamed… I really must get a move on with this.
  • Slight weight loss – Well **** it! I’ve only gone and put a stone on since January! I better start concentrating on this again.
  • Take up drawing – Not done much since Q1 but still doing the odd bit of practising.
  • Release a WordPress theme – Although I’ve still not released a WordPress theme into the repository my Responsive TwentyTen plugin has now been mentioned across tens of WordPress blogs and was also mentioned in one of the talks at WordCamp UK 2011.
  • Create another Android App – So I’ve been playing a fair amount with Android and have started work on an app for Forrst as well as playing with the NFC functions and more camera interaction.
  • Get listed in the next Web Designers’ Ideas book – So I have a couple of web projects on which I’m hoping for great things from. I doubt that these are enough to get me listed but this was always a stretch goal.
  • Get drafted to Dribbble – Yup, we can tick this one off. One of the kind Dribbblers recruited me following my submission of some design work as well as some begging and pleading. You can check out my Dribbble work at http://dribbble.com/toddhalfpenny

Well that’s it I think for this quarter.

2011 Goals Update – Quarter 1

It’s been 3 months since I laid down the goals for 2011 and as such I thought I’d give a quick update on the progress (or lack of).

  • Complete work on our house – slow progress on this one… seems that trades people can be very reluctant to turn up when they say they will. I mean, WHAT?!? Do they not want our money?
  • Give Blood – no progress… I’m ashamed.
  • Slight weight loss – I didn’t expect much following overdoing it at Christmas and the New Year. Currently still hovering around the same weight as the start of December
  • Take up drawing – Finally some progress… I purchased a manga book and have been doodling from it.

  • Release a WordPress theme – I really tried hard to make headway here… I even had a theme in mind, the Responsive TwentyTen one I had made as a child theme. Sadly the WordPress.org theme repository doesn’t take child themes (at the time of writing) so I just recreated the base TwentyTen theme with an additional CSS file to add the responsiveness. Twice this was rejected by the repository moderators. Not one to give up though I found a new way to skin the cat and released the Responsive TwentyTen plugin which basically enables a child theme without actually being a theme. So, this is some progress though not strictly what I was after.
  • Create another Android App – More success! Based on the Asssist application which is an Android client for Dribbble I released the Asssist Widget. If you’re an Android users and fan of design then I suggest you go and check them out. Asssist App + Asssist Widget
  • Get listed in the next Web Designers’ Ideas book – Lord knows how this is going… poorly I would think from the small amount of web work I’ve been doing.
  • Get drafted to Dribbble – No progress on this one either. I have been updating my 3 Pointers page though with new work in the hope that this will aid the cause. On a fairly similar note though I have been invited onto Forrst, which runs along the same lines as Dribbble but also includes more for the developer-types… perhaps a better suiting for me? You can view my Forrst profile here.

So, there we are… a real mixed bag of “failure”, “mixed fortune” and “success”… couldn’t really ask for more I say.

A Responsive Twenty Ten WordPress Theme

UPDATE: Although the following still exists and is available I have now released a WordPress plugin which gives the same output as the child theme but with the added benefit that it is hosted on the WordPress.org repository. The plugin can be downloaded here.

After reading about Jon Hicks implementation of media queries on his site to make it more responsive to user’s browsing context and the release of the (highly recommended) latest WordPress build I thought it was time to get my feet wet with Responsive site design.

After toying with the idea of implementing this on one of my client sites I thought “Hey! hold on I’m using WordPress 3.0 default theme on my blog… why not extend this?”. And so that’s exactly what I’ve done. I’ve created a child theme for TwentyTen which not only makes it fluid (up to 940px) but also makes it more responsive at smaller sizes. As well as these I’ve added some extra CSS to make it handle iphone and android browsers too thanks to some interesting articles by The CSS Ninja and riklaunim

The result of this the current 0.1 version of the Responsive Twenty Ten WordPress theme. It should be noted that this is a current work in progress which is one of the reasons that I’ve not published it to the WordPress.org themes directory just yet. There are a few known issues still too;

  • IE fluidity is not implemented – seemed to cause issue with the CSS introduced to pick up mobile resolutions (portrait and landscape).
  • Mobile (read Android and iPhone) have some issues dealing with the orientation. Still looking into this. Update – fixed 😉
  • Requires use of some JS for IE (though I’ve disabled this at the moment.]
  • Not got round to validating the CSS yet (naughty naughty, yes I know). Update – fixed 😉

The theme is essentially a fluid version of the default Twenty Ten theme with a fixed maximum width. The extra “responsive” magic comes in when the browser viewport width drops below 661px. What then happens is that the primary and secondary sidebars drop below the main content and appear just above the footer. Some tiny extra rules come into play for iphone and android browsers too to make the page layout flow better.

By all means download the theme in it’s alpha state and let me know your views. Of course you can just have a play with this site as I’m using it at present too.

Cupcake – First Impressions on the Android Update

This morning I received the Cupcake update for my UK T-mobile G1… and so far I have to say that it’s a great improvement… in terms not just of niggles I had with the last version but also in reference to some of the new tweaks and features that have now been added.

Android Cupcake
Android Cupcake

The update took no more than 10 minutes during which my phone was unusable. There was, however, good visual feedback letting me know at least that something was going on. Straight after the G1 had rebooted I clicked on the ‘ToggleBlu’ application icon to switch the Bluetooth off (it is on by default… I’m not sure as to why but perhaps I’m in the minority here) and sadly it failed. I started to dread that the update would break all my downloaded apps… things were not looking too bright. So I started playing with the other Market downloads to see just how they’d react to the new release of the OS.

From that point on everything seemed a great change; all the other applications whether installed by default (contacts, gmail, etc) or third party software all seemed to run fine… and some with some nice new features.

Here is a list of just a few of the key things that I’ve noticed.

  • Faster scrolling – perhaps it’s because I’m excited but I do seem to notice an improvement in the scrolling.
  • Batch options in Gmail – you are now able to bulk archive, set labels, etc,
  • Auto rotate – without any additional software the orientation of the screen can be automated
  • Screen animations – some nice ice candy when moving between screens
  • Calendar – more control over events and a better “agenda” view
  • Improved Camera capture – seems much quicker and has a better interface/interaction with gallery
  • Video playback/capture support – I have only played with this briefly but seems pretty good and also supports audio.
  • Browser – 1 click zoom to 1:1 option, a “most visited” tab in the bookmarks page
  • On screen keyboard – although I really love having a “proper” qwerty keyboard I think for quick SMS creation this may come in useful.

All in all I have to say I’m pleased so far… I’m also excited about the coming of 3rd party widgets too so to sum up… my phone just keeps improving!

UPDATE (08/05/09): Kudos to  Andrew Schwimmer who had a fix for the ToogleBlu app out yesterday. Also just noticed a nifty “double tap to unlock” feature when on a call. Looks like “Shake Awake” is no longer needed.

My First Guest Post

For some time I’ve been reading the St Albans Blog and have loved the way it’s brought me new information about the city I live in. I appreciated the honest posts and so, following a visit to one of the local pubs, I sent a review to the blog admin. The rest, as they say, is history… and now my review is posted up there too.

The St Albans blog does not just publish reviews on pubs and eateries but also covers local events, has some wonderful photos and even has an extremely useful guide to establishments which offer free wifi.

Please, follow the link and have a poke around 🙂