I had the wonderful opportunity to attend ConFoo Montreal 2018, my second dev conference ever (the first being Vermont Code Camp a few years ago, which I wish I’d gotten back to last fall). It was such an amazing experience, I felt like I was getting away with something doing it on my employer’s dime. I learned things about accessibility and image optimization that I can put to use immediately, and about JavaScript and WordPress that I see uses for soon. I also got to scratch my itch to learn more about “under the hood” topics like how TLS and web requests in general work.
The conference was very well-organized. There were tons of talks but also plenty of time built in so you never had to rush from one room to the next. Providing a multi-course lunch which was served rather than buffet, with numerous round tables, encouraged people to sit together even if they didn’t know each other, and spend a little time there. In my former life as a mathematician I don’t recall lunch being provided at any conferences, and it’s a difference I enjoy.
The cocktail party on the second evening was a great social event; happy hour the first day was underpopulated – perhaps because it didn’t include free drink tickets, perhaps because it was just in the regular expo hall with all the bright lights on. It was also before I’d gotten as bold about talking to people as I was by the end of the conference. The cocktail party had a real party feel, with dimmed and colored lights and DJs. And a Nintendo hooked up to a huge TV on the wall. The lightning talks at the very end (perhaps technically after the conference was over?) were also underpopulated, which was too bad because they were a lot of fun.
It was great to see how serious they were about feedback for the speakers. We got little quarter-sheet papers with three traits to rank on a scale from 1-5, for speaker knowledge, presentation, and supporting materials, and then two free-response questions for strengths and possible improvements.
I saw too many great talks to go through them all, but to present just a few bite-size favorite takeaways:
- ARIA is a polyfill for accessibility, and as such, should be used only when native HTML doesn’t already provide that accessibility. (Leonie Watson, You’re only supposed to blow the bloody doors off!) — I had never heard ARIA described as a “polyfill” before and it made the concept click into place in a new way.
- Photoshop won’t (necessarily) take out your image’s EXIF data, and that’s on average 16% of the filesize! Use something like ImageOptim to strip it for size improvement with literally no quality drop. (Henri Helvetica, Optimize Prime: More Pixels than Meets the Eye) — I knew about EXIF data from SearchResearch but never really thought about it, and certainly didn’t know it was typically such a weight on the image as a whole.
- Ethics in programming is certainly about not writing code that, for instance, turns on emissions controls only when an emissions test is happening. However, it is also about guarding against unintended consequences due to users not acting how you want them to; or adding bias to an algorithm, such as training a face recognition program only on images of Caucasians. (Clarissa Peterson, Code Is Not Neutral: The Ethics of Programming) — A great presentation with the added dimension of being given accessibly to the visually-impaired (or the dyslexic, or the glasses-forgetters, or others), with slides read or described as part of the talk. I had to compliment her on the seamlessness of her “verbal alt text.”
- When you ask your browser to load a webpage, it asks a chain of DNS servers to resolve the URL to an IP address, likely starting with the router in your house. The first to have the answer cached (or to be a root DNS server and just know) will reply, and the others will cache along the way. The variability of who has the information and how long they will cache it is what leads to the long propagation time you’re warned about for DNS changes. (Rob Rich, Anatomy of a Web Request) — There was a lot of great stuff in this talk though not in the “bite-size” category.
- And finally from one of the lightning talks: In the devtools Console you can set
debug(function-name)
and it will halt code execution whenever that function is run. This is good for situations where you’re not sure which execution of a given function is giving you problems, because between the stack trace and the Sources panel you should be able to find out everything you need. (This was the person running the lightning talks, whose name I unfortunately did not get)
Plus two new tools:
- Wireshark (for looking at web requests, thanks to Christian Heimes)
- aXe Chrome extension (from a long list of mostly new-to-me accessibility tools covered by Toufic Sbeiti)
And one quote:
- “Yes, phones are improving, but our ways of making things slow are also improving.” Performance matters! Ken Dale, Creating and Distributing Custom Web Components
Attending this conference made me think I ought to submit a talk to Vermont Code Camp this summer, and got me to finally sign up for one of the local JS meetups. I can’t wait for ConFoo 2019!