July 2017 React Native Meetup

WealthSimple hosted us. I didn’t write down much.

  • Peter Kruzlics @ WealthSimple showed React Native is working well in their mobile apps for some screens. They are porting over more screens from native code and working on localization.

  • Mo Binni @ Rangle.io recommends react-native-navigation for mobile nav in apps. This space is still a mess of competing libraries like it was in early 2016 when I first investigated it

  • Adam Winick @ Rangle.io says to check out react-primitives for cross-platform dev. Most of the presentation was about moving React components in and out Sketch with react-sketchapp.

https://www.meetup.com/React-Native-Toronto/events/240033441/

June 2017 – Toronto AWS User Meetup

Serverless Backends w/AWS Lambda & API Gateway

Frank and Jay from Anomaly Innovations talked about their experiences with serverless APIs running on AWS Lambda. Check their site Serverless Stack for detailed tutorial on setting up AWS Lambda functions.

  • check out the serverless framework to make using AWS Lambda easier
  • look out for ServerlessCD project from the presenters
  • keeping infrastructure deployments with Cloud Formation separate from code deployments with AWS Lamda, or your deployments will get slooow and you will not be able to run/fix things as quickly.

I wanted to compare this to Firebase Cloud Functions

  • function signatures are very similar
  • Firebase has a nice CLI tool for deploying code to Google’s servers. AWS users will use 3rd party open source tools for this
  • AWS offers a wider variety of environments for running code (Node, Java, javascript, .NET) than Firebase (javascript only)
  • like Firebase Cloud Functions, using AWS Lambda will force you into using a more microservicey architecture

AWS Layered Approach to Security

Nick Boccone from Engage talked about general application security stuff and made me feel OK to be be paranoid about everything.

4 tenets of security

  1. trust nothing and no one
  2. nothing is secure until you turn it off
  3. security is a tradeoff with usability
  4. embrace your paranoia

6 layers of security

  1. descope, limit, block
    • store less data so there is less to steal
    • do less work on a server or service so there is less surface area to attack
    • block access by default and use whitelists
  2. Know your touch points, the boundaries of your application/product
    • where does your application interact with other applications from other organizations?
    • where does your application interact with infrastructure from other applications?
    • where does you application interact with people vulnerable to social engineering
  3. didn’t write it down
    • something else about touchpoints?
  4. make access difficult
    • trade-off between usability and security e.g. 2 factor auth
  5. didn’t write it down
    • wish I wrote it down
  6. Keep up-to-date
    • keep software patched
    • policies need to be reviewed and updated when there is new information
    • training (you team and customers need to know about)
    • security landscape (OWASP, National vulnerability db, AWS security cheat sheet?)

Words I had to look up

Federated

Maybe it was this? Federated Architecture. A group of distinct services or databases working together

DMZ

demilitarized zone – exposing part of a network to the public (e.g. DNS, FTP, email sending/receiving), and hiding the rest behind a firewall (e.g. file storage, computing)

Also from chatting with people

https://www.meetup.com/Toronto-AWS-Users-United/events/238953929/

ExploreTechTO February 2017 meetup – Let’s Make A Deal

TribalScale hosted us for Let’s Make A Deal: Insiders’ perspectives on Salary Negotiations in Tech

Getting hired & negotiating a salary/benefits package

  • Ideally this isn’t an adversarial relationship. Work with recruiter to both be happy
  • Skills that matter?
  • If you can’t get experience mentoring or leading at work, find it somewhere else.
  • Interview stuff:
    • You can talk about what you want to learn, to work on.
    • Be human. Check if you are making assumptions about other humans during this process
    • HR might get soured of you talk about salary before anything (skills, personality, goals)
  • Compensation is more than salary. Everything is negotiable eg:
    • signing bonuses
    • relocation bonuses
    • education costs
    • extra time off
    • personal project time
  • In a competitive situation, can you justify being $5k more than another applicant?
  • Hiring manger might be negotiating on your behalf inside the company.
  • Salary bands are a thing at organized companies. Less organized companies might not have them
  • HR does not need to know your current salary. Refocus conversation on your target salary. Know what you want to make at the new position.
  • For salary references:
    • PayScale is ok
    • Glass Door is ok if there are enough data points
    • LinkedIn has salary tool
    • Practise talking about money with friends if it stresses you out
  • Working with placement agency or external recruiter? Let them sell you. They know sales well.

Can you tell a story about how everything you’ve ever done has lead to the interview at this company?

Asking for a raise

  • Be ready to sell yourself!
  • When to talk about raises?
    • As soon as your uncomfortable about salary. You might never be comfortable taking about money, so don’t wait.
    • You asked for a raise? Experienced manager might be relieved to know what you are thinking. Other managers might be scared too.
  • Companies on the ball will review salary bands and market salaries once or twice a year and see who’s salaries are an outlier.
    • Were you offered a raise? It is OK to say ‘let me think about this is for a few days’ or even come back after agreeing to a raise to re-negotiate
  • Whatever the raise talk was, send a follow up email so you have requests for raise in writing
  • Stock options in lieu of raise? Know what options are. Know about events that dilute options. A lack of transparency about the value of options is a bad sign
  • What happens if manager disagrees with your reasoning for a raise?
    • Opportunity for manager to make a plan to get you to that raise. It might be a sign the manager has filled to provide feedback earlier.

Closing notes

  • When negotiating salaries and benefits, think about what you really want and why
  • Communicate like a human
  • Carrie Gallant has a negotiations framework
  • Don’t wait for people to pick you out. Sell yourself, it will feel great when it works

ExploreTech Toronto Meetup – February 2017

Wednesday, Feb 15, 2017, 6:30 PM

Location details are available to members only.

136 Members Went

Let’s Make A Deal: Insiders’ perspectives on Salary Negotiations in TechJoin industry insiders for a panel discussion on negotiating your salary. Questions are welcome! We will cover three broad topics around salary discussions:1. Negotiations at the time of hiring 2. Raises and reviews 3. The manager’s perspectiveCome and get the inside scoop…

Check out this Meetup →

CreateInTO February Meetup

Accessibility with Alison Walden

slides

  • blind and low vision internet users in US are almost as numerous as regular Canadian internet users
  • accessible sites give disabled users their privacy back. Accessible banking sites allow users to bank on their own. Accessible travel sites let users book flights on their own. Accessible commerce sites let users buy their own stuff.

Accessibility is part of UX design, not just development

  • information architects know the intent of the information and can structure headings
  • UX designers know what will be a link vs a button that performs an action on current content ahead of time
  • hidden wayfinding elements might be called out as issues in QA if they aren’t in the test plan. Instead, make them part of the tests
  • developers should implement accessibility features, but not design them

HTML structuring stuff

  • screen readers rely on HTML tags and structure to navigate pages
  • well structure heading tags (h1, h2, etc) are essential and should be chosen by information architects
  • developers sometimes use links and button interchangeably which is confusing for screen readers. One usually takes user to more content, the other modifies or submits existing content. Think about how to label links or buttons that offer filtering functionality
  • use hidden wayfinding elements (eg. [skip navigation links'(http://webaim.org/techniques/skipnav/) so user can jump to product grid of a store)
  • always use labels with form controls, even if the label is hidden eg. search fields in headers
  • tab ordering – think top to bottom and left to right

visual stuff

  • don’t disable the browser’s built in focus indicator! Designers can choose colours for it to look good with the page
  • focused elements could reveal more info as if they are being hovered over

law stuff

  • Many US websites that don’t follow guidelines have been sued by disabled users
  • Canada has fewer lawsuits and less enforcement.
  • In Ontario, WCAG A is the guideline for government and some business websites until 2021. Then it the guideline becomes WCAG AA.

Hugh Elliot talks about life of creative technologist

Hugh’s current gig has him building interactive installations with wondermakr

  • Work now includes driving places to fix installations that are ‘broken’
    • Nobody knows how it broke, or why it is broken it is broken. Be prepared with spare parts!
  • You get to buy stuff from awesome shops like robot shop, digikey, (sparkfun)[https://www.sparkfun.com/], and others I didn’t write down

  • Always buy spare parts

    • 3x the physical buttons you need because they will take a pounding from the public
    • extra monitors so you can swap screens quickly.

Gathering v40.0

Wednesday, Feb 22, 2017, 7:00 PM

Handlebar
159 Augusta Avenue Toronto, ON

47 Creators Went

Join us for our monthly gathering of creative developers, designers, hackers, makers and more.#accessibility #ux #design #hololens #mixedreality #making #installations7:00pm Doors open! Come grab some drinks and support Handlebar.7:30pm Alison Walden – Creating Accessible Experiences Starts with Experience Design”It’s a common misconception th…

Check out this Meetup →

February 2016 Toronto Web Performance Group meetup

We met at Shopify‘s office.

David Bokan from the Google Chrome team in Waterloo talked about scrolling performance in Google Chrome

slides

David Barreto talked about optimizing Angular 2 apps for download size & performance

There nice charts in his slides showing the effects of AoT compilation, different chunk loading strategies, and more

The Shiny and New in Chrome/Blink Performance + Big Performance in Angular 2

Monday, Feb 6, 2017, 6:30 PM

Shopify Toronto
80 Spadina Ave. 4th Floor Toronto, ON

39 Members Went

Welcome to 2017.We hope all had a wonderful holiday break. I know that we did. And we’re more than delighted to get things started in 2017. As always, we’re doing our best to bring you all corners of the web performance ecosystems in the form of fascinating talks.One item being tabled was the idea of having more presentations from browser vendor…

Check out this Meetup →

#towebperf – performance @ Shopify

Bryson Gilbert presented techniques his team uses on Shopify’s main marketing site, shopify.com

Techniques

  • 10ms goal for generating pages on the server with Ruby on Rails
    • no database
    • no CMS
    • All content is in fast loading, versionable flat files.
  • marketing assets (icons, images, css, style guides) are stored in a Ruby gem and shared across different Shopify web properties (admin areas tools, internal tools, blogs etc).
    • optimize once, use anywhere
  • HTTP requests – in general, each shopify.com page loads 1 common js and css file (shared across all pages), and sometimes 1 page specific js and css file. 3rd party scripts are loaded if needed
    • the team is investigating inlining the page specific code – it is usually small, and could save 2 HTTP requests
    • some ab testing tools require blocking js to manipulate copy and images before gathering results. This sucks, but there is no choice
    • load as much 3rd part JS asynchronously as possible
    • lazy load images with lazysizes
  • responsive images – using a Ruby gem to make implementing img srcset attribute and lazy image loading easier across all web properties
  • icons – using inline .svg, no icon fonts
  • workflow – set up a Git precommit hook to run imageOptim on images so that unoptimized images never even get into the Git repo
  • fonts – just using @font-face, no inlining
    • just serving woff and woff2, best file size and adequate browser support for their audience (people on slow connections also tend to have browsers that don’t support woff, so they don’t get help up downloading fonts)
    • not optimized yet.
    • this is the hackiest part of optimization
  • going HTTPS only did slow down the site slightly

Measurement

  • SpeedCurve for monitoring performance, relating deploys to changes in performance
  • NewRelic RUM for checking on performance around the world.
  • Shopify is getting into Performance Budgeting by setting relative goals.

Future

  • HTTP2 will change how pages are optimized
  • resource hints will be helpful, but not 100% controllable
  • Better font loading is coming

Building a culture of performance

  • Sharing knowledge with documentation
  • Weekly frontend dev meetings to discuss failures & successes
  • Working performance into discussions early on in design process (can help with photo/image selection)

Other fun stuff (some from Barbara’s new book

  • Etsy publishes quarterly website performance reviews
  • Performance is respect for users. Optimized for their perspective, not your s. Real User Monitoring.
  • think about the 14kb rule
  • use inline CSS for above the fold content
  • loads js as late as possible
  • Latency on mobile – remember cell phones have to initiate a connection to a cell phone tower that is rarely a consistent distance away.
    • JS and AJAX eat mobile batteries fast

Toronto May 2015 JS Tech Talk Night

  • ever try fuzzing a compiler?
  • ever try generating random programs?
  • transpilers are fun
    • coffeescript lets write JS that you usually can’t write
    • babel lets you write JS the way we eventually all will
  • watch (or don’t watch) The Room

May Tech Talk and Rise of the Transpilers Panel

Thursday, May 21, 2015, 6:30 PM

Lighthouse Labs (HIGHLINE Office)
639 Queen St W Toronto, ON

74 Members Went

It looks like our last Tech Talk Night managed to warm up the city and you can all thank us for the awesome weather that we’ve been having! We have another hot event lined up for you this month with a JSConf speaker and a panel of JavaScript experts.We would like to thank Lighthouse Labs for sponsoring the event: Lighthouse Labs has reimagined th…

Check out this Meetup →

Toronto May 2015 JS Hack Night

People talked about and hacked Task Runners.

JS Hack Night

Tuesday, May 12, 2015, 6:30 PM

Bento Miso
862 Richmond Street West, Suite 100 Toronto, ON

80 Members Went

Hi everyone! For this JS Hack Night, we’ve partnered with Pearl Chen and Ahmad Nassri of YeomanTO to bring you a super exciting event dedicated to front end task runners and automated build processes! The joint event will be in the main area, but there will be a separate space for those regulars who just want to hack on things. Event description fo…

Check out this Meetup →

Toronto Web Performance Meetup – March 2015

EventMobi hosted us.

A Performance Bookmarklet by @micmro

slides and code

Check these out:

other neat bits

  • there are browser APIs for getting timing info about page loads
  • there is a http header for getting timing info in cross-domain requests
  • opening Chrome Dev tools can impact performance testing – for example slower load times due to downloading source maps
  • image caching images probably impacts results that these bookmarklets report, so be aware of whether caching is happening or not when looking at results

How to use ImageMagick by @newtron

slides

  • using responsive images well means generating lots of different sized images source art
  • ImageMagick is a command line tool available on many web servers that can help with resizing images, but it is horrible at optimizing images out of the box
  • Dave spent a ton of time testing out different compression & optimization settings to find the best balance
  • Dave integrated his findings into grunt-respimg, a Grunt task you can integrate in your build system

A Performance Bookmarklet (Tutorial) & How to use ImageMagick

Wednesday, Mar 18, 2015, 6:30 PM

EventMobi
243 College St, 3rd Floor Toronto, ON

35 Members Went

Hello #towebperf friends,here is the excellent lineup for our March meetup with two of our loyal members speaking:1. Tutorial: How to build a handy performance bookmarkletEver found yourself in a meeting having to quickly pull some performance characteristics of a website or web-app? Or do you go through the same manual steps to get specific dat…

Check out this Meetup →

Toronto JS meetup – March 2015

Shopify hosted us

Why use nodejs to build distributed systems? by Gord Tanner

slides video

  • js was event based from the start – browser vendors didn’t want bad web developer code to stop their browsers from running
  • nodejs’ event-loop makes it easier to handle concurrency. Promises, callbacks, and queues force you to keep things simpler than mutexes, semaphores, locking, shared memory
  • Always test your distributed app is a distributed environment. How about multiple Vagrant VMS? This is very different from firing up a few nodejs processes in your local machine where processes share RAM and a hard drive

Intro to WebPack with Tasveer Singh

slides video

  • old build tools merged all JS into a single file and uglified it
    • too much js parsing up front for mobile browsers when page loads
    • if 1 character of js changes, the entire merged file must be downloaded by users again
  • requirejs – importing dependencies is easy to mess up with typos

  • so try WebPack! It is big and complicated, but you can use it if you just believe, and the output is great!
    • inlining images to reduce HTTP requests
    • support for compilation tools for coffee script, babel
    • great support for merging lots of js files into a few modules – developers can find the balance between reducing HTTP requests and downloading too much code at once
    • watch out for asynchronously loading CSS – as more CSS loads and renders, conflicting rules lead to styles changing in unexpected places

Angular 2 with Matias Niemelä

video


March Tech Talk Night – Distributed Computing, WebPack, and Angular 2.0

Thursday, Mar 12, 2015, 6:00 PM

Shopify Toronto
80 Spadina Ave. 4th Floor Toronto, ON

126 Members Went

Did you know that this February was the first February since 1967 where every day was below zero degrees? The reason is that we didn’t warm up the hearts of Toronto with a Tech Talk Night! Join us on March 12th at Shopify’s beautiful Toronto office for another spectacular event.We would like to thank Lighthouse Labs for sponsoring the event: Ligh…

Check out this Meetup →