Learn

Let’s all go to the pub – to learn about web development – Halfstack 2018 in London, England

Halfstack is a conference that is close to my heart. Because it is in London, because it is in a pub, because it is run by a person who is lovely, ginger and did so, so much for the JavaScript community over decades without having a huge ego or being weird: Dylan Schiemann.

This, in addition to a few other factors, makes Halfstack incredibly affordable, relaxed and at the same time full of great content. That’s why I keep presenting there, even when this time – for the first time – I had to fly to London to participate.

This year had quite an amazing line-up and a lot more talks than the past editions. The average talk length was a lot shorter than in the earlier years. To me, that’s a good thing. Better to make one point really well than treating an audience once again to the history of computing and how that relates to that brand new technology you actually wanted to talk about.

I shot a lot of photos, all of which are in this Google Photos album and here’s a quick recap of the talks.

The talks

Chris Heilmann, Microsoft: “Bringing best practices front and centre”

My opening keynote was about what we consider best practices and how they are often not applicable in context. How we miss out the opportunity of making them a starting point for new developers rather than something they have to learn to value after making the same mistakes we did before. With open and extensible editors like Visual Studio Code and tools to test the quality of our products while we deploy or even create them like webhint, we have a chance to embed our knowledge into the development flow instead of hoping people start caring.

My slides, resources and twitter reactions for ‘Bringing best practices front and centre’ are on notist.

Ada Rose Cannon, Samsung: “The present and future of VR on the Web”

Ada Rose Cannon and Alex Lakaitos

Ada Rose is chock-full of talent, knowledge and does a lot of good work to move the web into the third dimension and beyond. Working for Samsung’s Internet browser has its benefits as you have access to a lot of hardware to test. Ada showed examples from the history of VR/AR and XR and how it applies to web technologies. She ended with a call to action to support the Immersive Web Community Group of the W3C to get this work further along. It is fun to see someone who is so emerged in a topic explaining it in an accessible manner rather than drowning in jargon.

Alex Lakatos, Nexmo: “Building Bots with JavaScript”

Alex Lakatos worked with me at Mozilla, back then as a community member and was one of the first to benefit from their speaker training program. And it shows. In a few minutes he explained the benefits and pitfalls of bots as a platform and communication channel and showed in live demos how to train a bot in JavaScript how to understand humans. Both his slides and his demo code are available.

Alex also runs the developer avocados newsletter, a great resource for Developer Advocacy, call for papers and all that is related to that.

Anna Migas, Lunar Logic: “Fast But Not Furious: Debugging User Interaction Performance Issues”

Anna Migas presenting at halfstackconf

Anna Migas doesn’t only have an incredibly easy to remember Twitter handle (@szynszyliszys), she also has done a lot of homework in the area of web performance when it comes to making interfaces react quickly to the user. There is a truckload of information on the topic out there, and Anna did her best to distill it for the audience into sensible, digestible chunks in this short talk. Well worth a watch and share. Her slides are here to peruse.

Liliana Kastilio, Snyk: “npm install disaster-waiting-to-happen”

Liliana Kastilio presenting

Liliana Kastilio gave her first ever presentation and covered a lot of security ground about what not to do in your JavaScript. I expected a different talk considering the title, but I was not disappointed. A lot of sensible takeaways in a short amount of time.

Andrico Karoulla, Trint: “Enter ES2018

Andrico Karoulla on ES6

Andrico Karoulla is heir to a Fish and Chip shop and thus should already be set for life. However, his passion is telling people about the cool new features of JavaScript and he did so in a short talk. He didn’t only tell us about the features, but also managed to explain why they are important and what real implementation problems they fix. Good show, even when he had a tough time speaking into the mic and coding at the same time. 🙂

Stephen Cook, Onfido: “100% CSS Mario Kart”

CSS trick used to fake interactivity

Stephen Cook delivered the first jaw-dropping talk of the day by creating a CSS Mario Kart game. He applied a few interesting tricks, like a negative delay on CSS animations and using the validity state of the hidden form field to read out keystrokes in CSS. I’ve seen a few demos like that before, but it is pretty impressive to see it done live in such a short amount of time including explanations why some of these tricks work.
Both Stephen’s slides with explanations about the hacks and the demo of the Mario Kart animation are available

Sean McGee, Esri UK: “Buying a House with JavaScript”

Sean McGee presenting

Sean’s talk was a big let-down for anyone who thought they could learn how to afford buying a house in London with JavaScript as your only skill. If you came to learn about creating a clever mash-up of house offers, crime and travel information, you had a great time. Sean explained not only how to scrape the data, but also how to mash it up and display it in an intelligent manner that allowed him to find an affordable place with all the trimmings he wanted. As a former pipes/YQL and maps person, I was very happy.

Jonathan Fielding, Snyk: “Home Automation with JavaScript”

Jonathan Fielding is another person who spoke at a few Halfstack events and this time he covered the topic of home automation. It is a great topic and a market that needs cracking open as there are not many standards available. Instead you need to do a lot of reverse engineering and tinkering and Jonathan explained in an accessible fashion how to do this. Amongst other things, Jonathan lit and changed the colour of light bulbs on stage and deactivated his home security system – as you do.

Rob Bateman, The Away Foundation: “Reanimating the Web”

Rob Bateman with his TypeScript joke

Rob gave a similar talk at the warm-up of Beyond Tellerand Duesseldorf earlier this year, so you see the high quality and lots of work that went into this. He covered the history of animation on the web and went deep down into the nitty gritty on how we can ensure both that animations are buttery smooth and comparatively fast to native solutions doing the same things. A good reminder that we had a lot of innovation in the Flash space, and we now need to catch up again – both in tooling and in our approach to write animations.

Carolyn Stransky, Blacklane “The Most Important UI: You”

Carolyn on Self Care

Carolyn Stransky was the second “wow” moment for me this time. Her talk (slides are available here was about self care, how to be good to yourself and how to ensure we are not creating a horrible work environment. I’ve seen a few of these talks, but often they are high-level and “why aren’t we all better at this” finger pointing. Carolyn did a great job showing a truckload of resources you can use to make your life a bit easier and better and explained how to use them instead.

If you’re a conference organizer, contact her. This was absolutely lovely.

Tom Dye, SitePen and Dylan Schiemann, SitePen: “Cats vs. Dogs”

Tom and Dylan mostly did this talk to play out their fetish of wearing rubber animal masks:

Rubber cat and dog masks

Other than that kinky interlude, the talk was about all the weird little discussions and endless threads we have as a community about pointless things like tabs vs. spaces.

Cats vs. Dogs

The real important part here was though that they build a PWA that allowed the audience to vote for cats or dogs and control the speed of their tails wagging. You could also make them miaow or bark. ARE YOU NOT ENTERTAINED?

Cameron Diverand and Theodor Gherzan of Balena: “JavaScript at the edge”

Controlling a board of LEDs in JavaScript

Cameron and Theodor showed how to control a board of LEDs in JavaScript with sound coming from the audience. They didn’t talk about the Edge browser, which – to me – was disappointing. If you like the sort of thing of doing crazy hardware things in JavaScript, though, this was a lot of fun.

Jani Eväkallio, Formidable: “This Talk Is About You”

Jani did a poetry reading at the last Halfstack. This time he went further and did a visual storytelling kind of presentation reminding us that we’re not victims of the market we are in but should be much more in control over the quality of and the impact our code has on the world. This is tough to explain, it may make more sense to wait for Halfstack to release the video, as it was thoroughly enjoyable.

Jani does a lot of performing and is a joy to see present. Check it out. The keynote file of his talk is here. He also organises a technology comedy night called Component did Smoosh and the next one is 30th of November in Berlin.

Tony Edwards, Software Cornwall: “Beats, Rhymes & Unit Tests”

Tony Edwards is an incredibly passionate person about the web and organiser of the FutureSync conference, where he was crazynice enough to invite me to speak. In this session he covered the experimental web speech to text API and tried it on different rap lyrics with not much success. He then proceeded to do a live rapping session expecting the (mostly) British audience to go wild like a rap battle in Detroit or LA. It worked to a degree though, and his rap was much better converted by the API. All in all a thoroughly enjoyable talk by a multi-talented, nice bloke.

As a side node, using a full fledged deep learning API would give you much better results. The big thing about text recognition isn’t the interface to the browser, but the quality of the trained model. And they don’t come cheap which is why Mozilla tries to open-source that idea with their Common Voice project.

Professional detection software also started mixing audio recognition with lip-reading, which is incredibly exciting and yields much better results.

Joe Hart, Blend Media: Alpha, Beta, Gamer: Dev Mode

Competitive Tetris

Joe Hart’s talk was a splendid end of the evening. He covered oddities in the history of computer gaming and had a lot of interactive games with the audience. A Flappy Bird clone that worked by shouting at it, a Tetris clone where one player painted impossible Tetronimos and the other had to fit them in and other cruel measures to make the audience have fun and participate. Joe Hart is a Fringe presenter, so there is no question about the quality. This was fun from start to end.

Summary

Pub Quiz

Yes, Halfstack is different and the quality of the projector was questionable. The food was lovely though and having it in a pub means speakers are much more relaxed and lapses in their presentations much easier forgiven by the audience. Dylan and team are trying to take this concept on the road and for the first time plan to do a Vienna and NYC edition of the conference. I am really looking forward to seeing this succeed. I’ll be back and I’ll be having a great time again. Halfstack is an easy-going, yet valuable and highly diverse event, and well worth the money.

View full post on Christian Heilmann

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Want to learn more about using the command line? Remy helps!

This is an unashamed plug for Remy Sharp’s terminal training course command line for non–techies. Go over there and have a look at what he’s lined up for a very affordable price. In a series of videos he explains all the ins and outs of the terminal and its commands that can make you much more effective in your day-to-day job.

Working the command line ebook

I’ve read the ebook of the same course and have to say that I learned quite a few things but – more importantly – remembered a lot I had forgotten. By using the findings over and over a lot has become muscle memory, but it is tough to explain what I am doing. Remy did a great job making the dark command line magic more understandable and less daunting. Here is what the course covers:

Course material

“Just open the terminal”

  • Just open the terminal (03:22)
  • Why use a terminal? (03:23)
  • Navigating directories (07:71)
  • Navigation shortcuts (01:06)

Install all the things

  • Running applications (05:47)
  • brew install fun (07:46)
  • gem install (06:32)
  • npm install—global (09:44)
  • Which is best? (02:13)

Tools of the Terminal Trade

  • Connecting programs (08:25)
  • echo & cat (01:34)
  • grep “searching” (06:22)
  • head tail less (10:24)
  • sort | uniq (07:58)

How (not) to shoot yourself in the foot

  • Delete all the things (07:42)
  • Super user does…sudo (07:50)
  • Permissions: mode & owner (11:16)
  • Kill kill kill! (12:21)
  • Health checking (12:54)

Making the shell your own

  • Owning your terminal (09:19)
  • Fish ~> (10:18)
  • Themes (01:51)
  • zsh (zed shell) (10:11)
  • zsh plugins: z st… (08:26)
  • Aliases (05:43)
  • Alias++ → functions (08:15)

Furthering your command line

  • Piping workflow (08:14)
  • Setting environment values (03:04)
  • Default environment variable values (01:46)
  • Terminal editors (06:41)
  • wget and cURL (09:53)
  • ngrok for tunnelling (06:38)
  • json command for data massage (07:51)
  • awk for splitting output into columns (04:11)
  • xargs (for when pipes won’t do) (02:15)
  • …fun bonus-bonus video (04:13)

I am not getting anything for this, except for making sure that someone as lovely and dedicated as Remy may reach more people with his materials. So, take a peek.

View full post on Christian Heilmann

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

NYCHTML5 – Of standards, de-facto nonsense, how you can help browsers and what to learn right now

me, talking
Photo by the awesome Mandy Chan

Yesterday I delivered my last planned talk of the year in the Facebook offices in New York as part of the NYCHTML5 Meetup. Here’s the screencast of the presentation.

The “slides” – as they were – are on GitHub using Tinderesque (and looking much better on Mac).

It’s been an amazing year and I feel so happy to have delivered everything I did and encountered so many great events and people.

View full post on Christian Heilmann

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Too easy – didn’t learn – my keynote at jQuery Europe 2014

christian heilmann at jQuery Europe 2014

I am right now on the plane back to England after my quick stint at Vienna giving the keynote at jQuery Europe 2014. True to my ongoing task to challenge myself as a speaker (and as announced here before) I made a bit of a bet by giving a talk that is not in itself technical, but analytical of what we do as developers. The talk was filmed and if you can’t wait, I made the slides available and recorded a screencast (with low sound, sorry).

There is also a audio recording on SoundCloud and on archive.org.

Quick keynote recap

In the keynote, I tried to analyse the massive discrepancy between what we as web developers get and how happy we seem to be.

We are an elite group in the job market: we are paid well, our work environment is high-tech and our perks make other people jealous. We even get the proverbial free lunches.

And yet our image is that of unsatisfied, hard to work with people who need to be kept happy and are socially awkward. I was confused that a group with all the necessary creature comforts is not an example of how easy working together could be. Instead, we even seem to need codes of conduct for our events to remind people not to behave badly towards people of the other sex or cultural background. Are we spoiled? Are we just broken? Or is there more?

I’ve found a few reasons why we can come across as unsatisfied and hard to handle and the biggest to me was that whilst we are getting pampered, we lack real recognition for what we do.

When you get a lot, but you yourself feel you are not really doing much, you are stuck between feeling superior to others who struggle with things you consider easy and feeling like a fraud. Instead of trying to communicate out about what we do, how much work it involves and why we do things in a certain way we seem to flee into a world of blaming our tools and trying to impress one another.

Initial Feedback

I am very happy to report that the feedback I got at the event was very good. I had some criticism, which is great as it gives me something to think about. And I had some heartfelt remarks from people who said I’ve opened their eyes a bit as to why they behaved in a certain way and now know how to fix some issues and clashes they had.

Want more?

I don’t want to repeat it all here again – if wanted, I could write a larger article on the subject to be published somewhere with more eyeballs. Simply listen to the recording or wait for the video to be released.

Material

I couldn’t have done this without watching some other talks and reading some other posts, so here are links to the materials used:

Thanks

I want to thank the audience of jQuery Europe for listening and being open to something different. I also want to thank the organisers for taking the chance (and setting the speakers up in the most epic hotel I ever stayed in). I also want to point out that another talk at jQuery Europe 2014 – “A Web Beyond Touch” by Petro Salema was one of the most amazing first stage performances by a speaker I have seen. So keep your eyes open for this video.

Photo by Douglas Neiner

View full post on Christian Heilmann

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

7 things about working in I.T. you don’t learn in school

Disclaimer: this is the script, well, the notes, for a presentation I am giving at Spotify in Sweden this weekend as part of the Studenttechfest. I was asked to give an inspirational keynote telling students what working in IT is like. The slides and recording will be available afterwards.

1) The “how” lands you a job, the “why” lands you a career

In I.T. there is what I call a “fetish of the how”. We are obsessed with finding and showing quick and intelligent solutions for problems that abstract away the original issues in order to make us more effective and use less time to achieve our goals. I remember a Dilbert cartoon in around 1996 that hit the nail on the head. Dilbert explained when asked why he uses computers all the time that they make him much more effective and save time. When asked what he does with the time he said he does more computer stuff and his friend went “wow, so you can save even more time”.

stop listening to ducks

This culture of giving you a “how to do things” instead of “why they work” starts perpetuating a false belief that what we do is easy and can be learned quickly by doing an online course or looking things up in Google. Many of the threads on sites like Stackoverflow are just repeated answers stating that “you just do this and everything works”. Sites like W3Schools are very successful as they show how to do something and give you the promise that you can achieve anything by just copying and pasting an answer. Why bother with understanding what you do when you could already deliver?

Organic Unicorn Farts

The issue is that a lot of quick solutions start breaking really soon and then you are stuck as you don’t know what you did. You used magic, and not even yours and you aren’t even a wizard. There is nothing wrong with using free resources and abstractions and be more effective. In order to be professional, however, you also need to understand how they work and be able to create working solutions without them. This is when you start becoming someone who can be hired and offered a career. Otherwise you can get a job as a deliverer or maintainer but no company in their right mind would invest in you as your attitude is that of those who try to dazzle and really don’t not know what they are doing.

2) It is a ride, hop on and take in the scenery

I.T. is probably, with the exception of acting and journalism, the most versatile job market out there. Things are constantly in flux and there is not much boredom if you are excited about building things from zeros and ones.

Never look back

You will encounter a lot of products, frameworks, software packages and practices along the way. Take them in and deliver with them. Stay agnostic though as things are continuously changing. In every job there is something new to be learned and whilst your task is to deliver it you can also learn from the mistakes made and the results of shortcuts taken. Try everything and you will find patterns over time that help you make better decisions later on in your career.

3) Be a collector and an archivist

Working in a constantly changing environment also means a lot of drama, a lot of problems and egos clashing. Be aware of that and prepare for it. Even when you disagree with people strongly – if they are your manager and tell you something needs to be done the best way is to ask why and you might learn about outside pressures you weren’t aware of before.

Don't burn bridges

The I.T. world seems large, but it is actually pretty small. When leaving a job, don’t leave in anger. Don’t burn bridges as you will come across people later on you are very much sick of right now. You might even realise that in another environment these people will be brilliant to work with. You make a career by forging personal relationships. Collect great people to work with and keep up to date with what they are doing. Most great jobs come from word of mouth. Not via LinkedIn.

4) Your degree opens doors, your passion opportunities

Once you are done with university, you have your degree and many jobs require a degree as a right of passage. This means you can and will easily get a job. However, lots of other people also have degrees and as someone who hires I am looking for other, additional features. You are about to embark on a great journey, one of privilege, really. No other market is booming like I.T. and the things companies do for us make other people gape in astonishment.

Pawing puppy

Therefore, as a prospective employee, I am looking for passion in you. One of the main complaints by hiring managers is that people come into the job interview not knowing anything about the company they apply for. This is a bad first impression, as if you don’t care about the company why should the company care about you? Talk about your passions, give me an indicator that you want to get better and you are ready to learn more. Then I am ready to take you on and do a lot more for you than just pay you.

5) Nothing stops you from building a reputation now

There is no better way to get hired than to be known as someone who cares about sharing, giving feedback and showing technical and social aptitude. The good news is that this is amazingly simple these days.

touch my hair for a dollar

The main issue is that becoming known and being visible can be easily seen as showing off and in many cases actually is. In the US, this is part of a career; you have to sell yourself. As a European this can be daunting and feel wrong, but sometimes we need to jump over our shadow.

A great way to be visible is to go out there and speak about things you do. This is scary, but it is also a great way to get into the business. The simplest way to do that is to attend meetups and unconferences.
However, you don’t have to put yourself out there immediately, participation and visibility can be achieved much easier.

GitHub managed to make the impossible possible: it is a social network for engineers, people not generally known for being too social. On GitHub you can not only get lots and lots of great, free software but you can also become part of it. You can contribute code, you can file issues and help with testing, you can comment and help work around people’s differences. All of this brings you brownie points when it comes to applying for a job and looks much better on a CV than hypothetical achievements.

It is important to remember that your bad behaviour online is also noted by prospective employers. It might be fun to start a flame war and to troll people, but it can also mean the end of your career before it started. Playing nice is a good idea.

6) Being mobile and flexible gets you places

One ironic thing about I.T. is that whilst we are all connected world-wide, a lot of times traveling to other places to work with people face to face is necessary. Therefore it is important to be flexible about this. Many of my career jumps happened because I was OK to work from a different location for a short while. This also gave me a lot of interesting experiences I took with me.

Taking on an opportunity to work with a remote team is a great move in your career. The problem of making distributed teams work efficiently is still a big one for a lot of companies. If you already manage to have a fruitful collaboration with people from other timezones and cultural backgrounds you become a very interesting asset to companies out there.

7) Find a place to grow, not just a place to get paid

Lastly, I want to point out that I don’t see any way that you could not end up with a good job right now. The question you have to ask yourself is what you want to do. My advice is to find a place you feel great, you can be part of a team you respect and you see opportunities to learn new things. That is much more important than being paid a lot. Burnout is a big problem, and you should consider planning for a longer career rather than being a rockstar for a season and then feel like you already need a break at 22.

View full post on Christian Heilmann

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Learn and share about new topics every month on MDN

Did you have “expand my technical knowledge” as one of your New Year’s resolutions a few months ago? How’s that going?

How about setting aside a day, or just a few hours, once a month, to teach yourself about a topic related to Web development, and share what you’ve learned with others? Wouldn’t it be fun to do that alongside a bunch other people, either virtually, or maybe in person?

Monthly MDN sprints

Based on discussions among the core MDN community, we’re upping the frequency of MDN doc sprints from “roughly once a quarter” to once per month. To keep them from getting too routine, we’re going to focus on a couple of different topics each month. One will be the topic of the following month’s DevDerby contest; the other will be something related to Firefox OS or open web apps. But since Firefox OS and open web apps are built with open Web technologies, that’s a pretty wide range to pick from. And of course, no one’s going to stop you from working on a different relevant topic of your choice.

As background, a doc sprint is a short period when a group of people come together (virtually or actually, or some combination) to collaborate on writing documentation. If “writing documentation” sounds boring, think of it as a “learning and sharing” sprint. And if you’re not a “words” person, writing example code is a great way to contribute. You’ve probably experienced how much someone can learn from a good code example.

We’ve set dates and some topics for the next three sprints (see below). The first one is just a week away, to squeeze it into March, before Easter weekend.

  • March 22-23: getUserMedia, offline storage
  • April 26-28: Web Workers, Web device APIs (specific ones TBD)
  • May 31-June 1: Topics TBD

These dates are all in the MDN Community Calendar.

How to join a sprint

Sprints run for two or three days, but you can join for whatever part of that you are able to.

  1. Take a look at the wiki page for the sprint you’re joining, for specific details.
  2. During the sprint, hop into the #devmo channel on irc.mozilla.org, and introduce yourself. There will be other sprinters in the channel, unless they’re all asleep.
  3. Login to MDN and get started.

That’s it for participating virtually. In some cases, there will be in-person meet-ups. For example, for the April sprint, there will be a meet-up in the Mozilla Space in Vancouver, British Columbia. (Watch for further details!) Or you can organize a local sprint meet-up of your own, like Fred Bourgeon did in Montréal in February. This could be as simple as tweeting an invitation to meet up at a local coffee shop. Check out our (draft) Doc sprint planning guide if you’re interested.

Meet-up or not, please join us for one or more of the upcoming sprints. It’s a great opportunity to give something back to the Web development community, while expanding your own understanding at the same time.

View full post on Mozilla Hacks – the Web developer blog

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)