Keeping Your Kids Safe On Youtube

Recently I read a Medium article titled, Something is wrong on the internet in which the author delves into the weird and worrying world of directly targeted children’s content, usually using popular TV and movie characters from primarily Disney franchises.

As a father of a two and a half year old, this article resonated with me greatly.

My wife and I actually kept our child away from iPad’s and technology until he was 23 months old (so basically two). It wasn’t until we took a long trip to the UK to see relatives (22 hours, not including stop over waiting time) that we decided we needed to take something to keep him preoccupied.

Keeping an active toddler confined within a small aluminium tube for hours upon hours is no small feat. Evident by the fact when we told people we were travelling the responses we got were:

Oh, you’re brave.

Good luck

Let us know how that goes for you

We harmlessly borrowed an iPad from a family member, and because we have a Youtube Red subscription we saved some videos for offline viewing. Harmless shows he liked to watch such as Pepper Pig and Paw Patrol (legit episodes).

It just took this little trip for him to be amazed and impressed by the iPad, so as we travelled throughout the UK for three and a half weeks, he would watch the iPad. We would load it up with new content for him.

When we got back from the trip, he continued to watch the iPad. At one point we forgot to turn the internet off and he was trawling his way through kids content. It started out innocent enough, until the targeted kids content showed up.

After a while you see the same pattern, the same songs (the creepy daddy finger and Yes Johnny songs) and even the same recurring Youtube channels putting out junk recycled content. I disagree with the author this is abuse, that seems a little far-fetched. The content I witnessed was just heavily infringing on copyrights of studios like Disney.

We fortunately never encountered the worrying Peppa Pig rip-off videos of drinking bleach and whatnot, that is worrying.

So, how did we address the problem?

We control what our son sees on his iPad, simple. We dilligently make sure the Internet is not turned on and we just set some Youtube videos to offline.

What was weird content featuring Spiderman (what’s the obsession these content channels have with Spiderman?) and The Joker is now sane and educational content, our son is learning new things.

Seriously, don’t let your kids just browse Youtube for themselves. Control the narrative, getting yourself a Youtube Red subscription to save videos for offline use is one of the best things you can possibly do to protect your children.

Safe for kids Youtube content

Here are a few channels on Youtube which we allow our son to watch. Quality content you can be rest assured your children will probably love and no Spiderman, Joker or kids opening up chocolate.

In a sea of copyright infringing content is some seriously well-produced content that sadly doesn’t always get the same kind of visibility and search result preference that these monetised childbait videos do.

Blippi

Quite possibly one of the best Youtube channels for kids around. A guy by the name of Blippi puts out highly produced educational videos, he’s a quirky and funny character who travels around and has content ranging from garbage trucks to police cars and everything in between.

Our son’s iPad has a lot of these Blippi videos on it and people we’ve shown Blippi to, love him.

Yo Gabba Gabba

My wife and I are grown adults and even like this show. It’s highly educational, the characters are quirky and funny, best of all it’s a very music oriented TV show that gets your kids dancing and singing. One of the best characters on this show is DJ Lance Rock. Another thing that sets this show apart is they have routine cameos from members of punk, rock and indie bands appear on the show like Paramore.

The Wiggles

The Wiggles are an Australian kids group that have been going since the early nineties (I grew up watching them). All of their content is music based, with classic songs your kids will love like Fruit Salad and Hot Potato guaranteed to get them up and dancing, singing along.

Seasame Street

I grew up watching Sesame Street and its been going for 40 years now, because it’s great content. Your kids are guaranteed to love highly annoying Elmo and cookie loving Cookie Monster. You can’t go wrong with Sesame Street.

Conclusion

If you don’t have a Youtube Red subscription or your country has yet to support offline downloads, the public broadcaster in your respective country will have a lot of free kids content. The BBC in the UK has BBC Kids, Australia’s ABC has ABC Kids and presumably other countries are the same.

Netflix is also another avenue to consider, they have some of the best kids content around and best of all: it’s obviously curated a lot better than Youtube’s content is.

At the end of the day, as a parent you have to take responsibility, Youtube is not the parent, you are. And the content in question on Youtube only exists because you let your children watch it. It’s time to step up.

How I Come Up With Some of My Blog Post Ideas

The hardest part about blogging is thinking of what you should say. For me, this blog has become focused heavily on Aurelia and Javascript, blogging about other things occasionally. I tend to stick within the front-end development niche.

When it comes to blog post ideas, believe it or not: Stack Overflow has been a very influential part of my writing. I’ve written blog posts that were inspired by problems with cool solutions or niche features in a framework not many are aware of.

Case in point, a question I recently answered on Stack Overflow had a solution that many who use the framework might not have thought of, as it delved into some constructs that aren’t immediately obvious to some.

After answering, I was inspired to write a blog post about this because it seemed as though it would be useful enough for others wanting to do the same. Having also worked with Vue.js recently which has a similar check, I figured a blog post was needed.

And herein lies the beauty of all this: Stack Overflow can help inspire you to write about something you might not have thought of.

I am not saying that you should copy/paste other peoples answers because not only is that plagiarism, Google will penalise you for it. But it provides a barometer on the common pain points and problems that developers face, things that matter.

It doesn’t just stop there. I take inspiration from chatter on the Aurelia Gitter chat to write up useful blog posts on Aurelia, based on what people are getting stuck on or want to know. I have also been known to lurk Github issues for blog post inspiration. Heck, even Twitter can be a source of inspiration.

Instead of thinking of what your target audience might want to read, seek out what people want to know and write the content for them.

Remember to write it down

Cliche, but if you have an idea write it down somewhere (even if it is just a potential blog post title). I use Dropbox to store all my post ideas (written in Markdown) and when I get inspiration I create a new Markdown file.

Take a look at my Aurelia Dropbox folder, there are posts in other folders (not pictured) but you can see I have a tonne of ideas and some of these are partially written, some are just titles with no content at all. I might not finish any of these, but it gives you insight into the process.

Screenshot of blog posts in Dropbox

I Like Competitions

Kind of a strange post from what I usually post, but the last few months I have been addicted to entering online competitions.

The fact I have won a few great prizes in just a few months probably helps. I won a runner up prize which was an LG television and then I won a Weber Baby Q Titanium barbecue. I also scored a free double pass to see the movie Office Christmas Party complete with free drink and popcorn. The movie wasn’t that great, but it was a night out for me and my wife.

Oh, and I won a copy of Mafia III on PC as well. I haven’t played it yet but thought that was cool.

Then I won a Sony 4K action camera, a GoPro type device that can shoot stabilised 4k video. Just when I thought I’d peaked in terms of competition wins, as I was typing this post up I won something again: A Samsung Gear S3 Frontier smart watch. This is my first competition win for 2017. Then literally shortly after, I won a Kenwood Stand Mixer.

Every win motivates me to keep on entering competitions and I have found the best competitions are the “25 words or less competitions” where I pull out all the stops to win. I like writing and blogging, so the word competitions are naturally higher odds for me.

To summarise what I’ve won since October 2016:

  • Sony 4K action camera
  • Samsung Gear S3 Frontier smart watch
  • Weber Baby Q Titanium barbecue
  • LG TV
  • Mafia III PC

There is a downside to entering competitions and that is spam. I do get more spam email and I get spam phone calls as a result. Although, it is easy enough to unsubscribe from the emails and the phone calls are usually from unlisted private numbers (which I block on my phone anyway).

Removing ads and starting a Patreon page

Ads have never sat well with me. For a while I have had them on this blog, because it gets a lot of traffic. However, inspired by Troy Hunt, I have decided to remove the Google ads and instead start a Patreon page where anyone can pay a monthly amount to “sponsor” me.

By no means are you under obligation to sponsor me. I realise the economy isn’t so kind to everyone, but for those who see the value in my content and would like to see more created on a regular basis, this is your chance.

I have added in some incentives for sponsoring me, including an I Like Kill Nerds mug (if you contribute $50 or more per month) which I’ll ship for free.

Tiers also include discounts on books and materials I create now and in the future as well as personalised Google Hangout calls, private chat room, stickers and more.

If you have ideas for more rewards, I’d love to hear them. But enjoy an ad free experience and faster site regardless. Also if you are a fan of Instagram buy Instagram video views and it will make the experience a lot more satisfying.

The funding page can be found here.

Migrating Servers

Update: Site is operational and working again.

The last couple of months this blog has grown tremendously. Even though I have caching and other performance tweaks in place, the server my site runs on is surprisingly barebones.

The traffic to this blog is around 100k visitors per month, the single core CPU just wasn’t cutting it anymore and a dreaded memory leak with caching that seemingly wouldn’t go away no matter how many times I tried to fix it.

I am migrating to a quad core server with more memory, bandwidth and disk space. This should mean a faster site that doesn’t go down every day, it took a few years to outgrow the older server, but it’s time to move on up.

If you notice the site going down, be aware I am moving it and you might experience issues the next week or so.

Goodbye ANZ, Hello Westpac

Switching banks is a big deal. I have been with ANZ since I was about 14, it was my first bank that my first job salary went into.

But times change and now I’ve switched to Westpac. Whom I also got a mortgage through as well.

There were many deciding factors, but a couple of biggest ones were:

I was stuck on a legacy account

Even though my bank was Visa Debit enabled, I was told at the bank I was on a legacy account they stopped offering years ago.

What is the problem you ask? My card didn’t support PayWave, every time I got a new card, it wasn’t PayWave enabled.

After many phone calls of being told I would be sent a new card with PayWave and that they don’t have cards that don’t have it, I finally got onto someone.

I was told because I was on a legacy account, I couldn’t get a PayWave enabled card. They then explained if I wanted it, I would need to close my current account and open a new one.

As a developer my brain was asking, “Isn’t it just changing a accountType field in the database?” apparently not.

Tap and pay isn’t always a great feature, but it is convenient and being repeatedly asked if I was paying on PayWave and having to say I didn’t have it frustrated me.

Third world online banking experience

Even though ANZ went through a recent redesign of their online banking, it’s friggen archaic. I mean, literally, you are limited in what you can do.

You can’t change your pin number online, you can’t remap accounts, you can’t setup direct debits or intelligent recurring payments and the list goes on.

The first time I logged into my Westpac online account, I was blown away with just how many settings I could access, how I could customise the UI and even change my card pin numbers.

Westpac also seems to support two-factor authentication for most operations (especially transfers), from what I could see, ANZ offers nothing like this.

For a big 4 bank, you’d expect ANZ could afford to hire some decent designers/developers to create an awesome online banking experience.

Horrible mobile applications

I don’t think ANZ realise that it is quite common to check your bank and do transactions via your phone. Doing this via the ANZ app was cumbersome, buggy and painful.

On the contrary, the Westpac mobile apps support logging in with your fingerprint, considerably more useful, better designed and offers features like cardless cash at Westpac ATM’s.

Not first home buyer friendly

ANZ are the least first home buyer friendly bank out there. I would have loved to get a mortgage through ANZ, but they seem to favour those with large deposits or investors.

This is a massive difference to Westpac who have packages tailored for first home buyers, including taking rental history into consideration in lieu of a deposit, realising not all renters can save massive deposits.

I could seriously keep going on about why ANZ is horrible and why I am smitten with Westpac thus far, but I’ll leave it there. Avoid ANZ if you like nice online banking experiences and features that banks like Commonwealth offer as standard.

Fixing Slow Optus Wireless 4G

I recently moved house and while I wait for my Telstra cable connection to be sorted (address issues) I got myself an Optus home wireless broadband modem which is 4G based. For $80 per month I get 200gb of data at capped speeds of 12/1mb.

One problem I encountered however was Netflix wouldn’t work for me, literally wouldn’t load. I soon came to realise that basically a lot of sites were slow to load. But oddly enough OzSpeedTest, Speedtest.net and Optus’ own speedtest were all reporting 13mb speeds.

Were the speedtests all lying? Was traffic fast initially and then dying off? I was determined to fix this.

After some debugging and snooping of the traffic, I isolated it to https only traffic. After some Gooling, I came across something that has existed in Windows since Vista called autotuning.

What this seems to do is change how the traffic is sent and received. To make my 4G connection sing again, all I had to do was open a command prompt window with admin permissions and type:

netsh interface tcp set global autotuning=disabled

After that, browsing my lightning fast, Netflix started working and all was well again. I was ready to really give it to Optus, but this saved them a berating. Upon further reading, this seems to be a problem affecting only Optus for some reason, Telstra and Vodafone are not affected by this.

My MVP Workflow, How I Create Web Applications: From Conception To Creation

Everyone knows coming up with an idea is often the easiest part of an application. I come up with a lot of ideas on a regular basis, too many some would say. What is the best way to take an idea and actually build something usable, a working MVP (minimum viable product).

I recently released a couple of quick ideas that took very little time to create, Pokego.run and Built With Aurelia. In the case of Pokego.run, I knew I needed to add in Google Maps, support authentication and ability to add markers to a map. For Built With Aurelia I knew I just needed to display submissions and allow registered users to submit projects.

In most scenarios, this is how I approach building an MVP application as quickly as possible as of September, 2016.

This won’t be a step-by-step detailed process, how I approach fleshing out an idea is actually quite basic.

A notepad

I realise it’s 2016 and you can just open up a notepad on your computer, but I find pen and paper is the best way to sketch out the basics of an idea. It doesn’t need to be a drawing, just bulleted dot points will do.

I find if I am on the computer, it is far too easy to open up Hacker News or do something else instead of jotting down the basics of my million dollar idea. With a notepad the only thing you can do is write or draw, so you’re more inclined to actually do it.

Before you start developing your idea, you need to have a rough idea of what you need. Is the app going to allow login via Facebook? What platforms/devices/operating systems will you support? What will all of the sections that make up the app be?

Writing things down on paper is less distracting and I personally find it easier. And no, you don’t need an expensive and wanky Moleskin notebook, a cheap 79c notebook from an office supply store is enough or even a blank A4 sheet of paper.

Depending on what I am wanting to build, I might do some poorly drawn sketches as well just to get a rough idea how it might look. Most of my design work is done as I go along. I also take “inspiration” from existing sites and applications I like the look of.

Bootstrap

Bootstrap is a big time saver. The grid alone in itself can save you a lot of time getting your application ready for desktop and mobile. It comes with various Javascript components for things like dropdown menus and modals, stuff that is annoying to implement piece-by-piece.

In many cases I will use Bootstrap, especially if I have an application that contains forms or items in a grid. Foundation by Zurb is also a good option, I just find Bootstrap is easier and faster to get running in my apps.

Aurelia

I used to use jQuery, then it was Angular, followed by ReactJS and now I have settled on Aurelia for the foreseeable future (1.5 years and counting). A robust client-side Javascript framework that is convention over configuration based: perfect for quickly creating an app.

For most ideas I actually use the Aurelia CLI to quickly bootstrap a working application with all of the annoying stuff like build tooling, transpilation and the other time consuming aspects of modern Javascript development.

The thing I love about Aurelia is you get the basics you need; routing, eventing, templating, binding support, modules for working with network requests and a clean way of writing applications without needing to learn Aurelia specific concepts or conventions.

If I am working on something that is going to have a HUGE codebase, I’ll leverage the Aurelia Webpack skeleton instead which gives me a little more power and works better for large applications.

Firebase

I hate setting up databases, configuring servers, finding/configuring/installing a server-side framework to create an API. This isn’t accounting for other things like basic CRUD and the dreaded complexity of configuring oAuth authentication.

Firebase is a Google owned, cloud hosted key/value store with a few other features modern applications need like; hosting, analytics, data storage, authentication and databases. It literally negates the need to worry about setting up a server or configuring a database.

The limits for Firebase are quite generous as well, so there are no upfront costs to use it. As your idea scales, stick with Firebase or setup a server. The point here is Firebase gives you everything you need to create an MVP quickly. Because it’s a key/value store, you don’t need to create database tables and fields upfront.

Github Pages

You probably think that you need to pay for a server to create an idea: wrong. Surprisingly, not a lot of people know that Github offers free project hosting from within Github itself and it even supports custom domain names. It’s called Github Pages and literally all you need to do, to enable it is create a new branch in your repo called gh-pages and a site is created at: http://username.github.io/reponame/ where username is your Github username and reponame is the name of the repo in Github.

You can’t run things like PHP scripts or anything that is not static, but for a client-side single page application, you don’t need such scripts anyway in most cases.

Fun fact: both apps Pokego.run and Built With Aurelia that I mentioned earlier are running on Firebase and they’re hosted on Github Pages.

Get people using it

You’ve got something that works. It might not look pretty, but let’s be honest, not every single web application out there is well designed anyway. You need to get some people testing it, ask friends and family to try it out, even if they’re not your target market. Then ask people to share it on Facebook, LinkedIn, Twitter and anywhere else.

Submitting it to a relevant subreddit on Reddit can also do wonders. In the case of building an Aurelia application you can submit it to both /r/aureliajs and /r/sideproject

This can be the hardest part of the process. I created a site a few years back for converting Gifs to image sprites called Gif2Sprite. It actually gets a bit of traffic from Google searches, but when it launched, it laid dormant for a while and I was its only user.

Pokego.run: Now Open Source

As promised, I have open sourced my quick Aurelia CLI project Pokego.run which you can find here if you just want the code and don’t want to keep on reading.

I am open sourcing the work I have done on this because I want to see the Aurelia Javascript framework grow and I realise there are not a lot of apps out there for reference which are public using Aurelia. Consider this a helpful learning exercise.

The app shows how to use Firebase in your Aurelia application as well as Google Maps. The styling is done using Sass, Autoprefixer for browser prefixes and CSSNano for reducing CSS size. The app itself is actually quite simple.

To setup the app and run it yourself you will need to create yourself a free Firebase account and project, you will also need a Google Maps API key (also free). The database creation is automatic, you’ll also want to make sure in Firebase under auth you enable Facebook and Google if you want to allow both methods of login.

Feel free to make pull requests with new features, fixes and whatever. If they’re beneficial, they’ll get merged in to the actual site.

Introducing Pokego.run: An App Developed Using The Aurelia CLI

I work a lot, so it was nice to get some downtime to play with the Aurelia CLI. Like many others of my generation, I have been caught up in the Pokemon Go hype. So I decided to build a simple app where you can plot where you have found Pokemon called: Pokego.run.

The idea stemmed from the question: what if you could determine with close accuracy what area has what Pokemon and eventually work out when they would appear.

I am aware a lot of these apps are appearing, most of them seem to be focused on mapping where gyms and pokestops are located. I think knowing where to find unique and rare Pokemon is a lot more exciting to be honest.

The app itself was written in TypeScript, using the Aurelia RequireJS based CLI tool. It is hosted off of Github Pages, Cloudflare for the https and caching, with Firebase being used for both the authentication and data store behind the app itself.

To get something workable it took me a couple of hours and most of that time was spent getting the Google Maps and Firebase stuff to work nicely. Since then I’ve spent a little more time getting it to look nicer and work nicely as well.

The eventual goal is for Pokego.run to be able to tell you where you can find specific Pokemon. This of course depends on the crowdsourced data. So if you spot a Pokemon, record it in the app and eventually you might be able to track down that hard to find Hitmonchan.

Will you open source the code?

While I plan to continually improve Pokego.run, I will be open sourcing the code on Github for it shortly. I realise there aren’t many examples of functional Aurelia apps (especially using the CLI) which you can reference out there, so hopefully it helps you.

I just need to clean the code up first before releasing it. Make sure you star and watch the public repository here if you want to get your hands on the source code when it’s released (hopefully in a day or two).