When we code, we value efficiency. We try to reuse the code, keep it concise, and be as clear as possible so our teammates have little trouble understanding it. But as the system grows and new teammates join, our codes begin to evolve in a different way than intended. The same UI components end up having different functions, or the same functions end up having different UIs, or we end up with redundant implementations of UI components and functions. In this talk, I will share my experience of unifying such fragmented UI/UX components by building a design system for Kakao Integrated Search.
Deploying an open source library can be scary. You anxiously stare at the screen hoping that it'll be a success, that you didn't make any mistakes. There are many tools that can ease your worries, but perhaps can't eliminate them. So I present to you a new process for deploying open source libraries. This process dramatically reduces the likelihood of making mistakes, and most of the process will happen asynchronously, allowing you to review with your teammates before deployment. I will also introduce Ship.js, a tool created for this purpose. With this newly defined process, let's continuously deploy our open source libraries without fear!
Dozens of times a day, we identify ourselves online. But as the nearly 10 billion leaked accounts documented by ';--have i been pwned? attest, this process has a fatal weakness–passwords. The Web Authentication API (or WebAuthn) is a standard from the W3C and FIDO that "allows servers to register and authenticate users using public key cryptography instead of a password". WebAuthn is part of a set of standards that enable passwordless authentication between servers, browsers, and authenticators. It's supported in all modern browsers. This talk will outline how the technologies work, and how you can take advantage of them today to create a far more secure experience for your users.
Imagine one hot and humid day in summer. Would you expect your air-con at home has already been cooling down the air so that you feel refreshed on arrival? It would be perfect if I can turn on the air-con just 10 minutes before home! Are you to die for it? What if I can connect my air-con with Raspberry PI that runs a serverless application, which is triggered by a public cloud application? It sounds so sweet! But... life is not that easy. I'd like to share my hard learning experiences while setting up this home automation system, using Raspberry PI, Azure Functions, Power Automate and Power Apps.
Boilerplate code (repeatedly used pieces of code) is often the main culprit of unnecessary complexity and cognitive overload in programming. That's why many books and experienced programmers tell us to avoid it, and we try our best by employing all kinds of methods, like inheritance and abstraction. Despite this constant effort, we often still encounter boilerplate code. Sometimes, we run into 'boss' boilerplate code, which we just don't know how to deal with. This talk is for those of you who's tired of this endless battle. I will talk about ‘code factorization’, a technique that will help you gain an edge in the war against boilerplate codes. After this talk, you will be able to declare with confidence: veni, vidi, vici.
Inhwa Yeom & Seonghyeon Kim
“p5 for 50+” is a 2020 Processing Foundation Fellowship project. It aims to improve the digital literacy and rights of middle-aged and older adults in South Korea — with p5.js! Addressing some age-specific needs in coding education, we prototyped a low-barrier web app for learning p5.js. In this presentation, we will mainly discuss design implications for accessible education of coding.
At Microsoft, I work on a very large TypeScript-based git repository where over 300 developers build and write code for high-value frontend components which are used across all Microsoft365 products. It contains about 150 npm packages, containing over a million lines of TypeScript code. Co-locating these components encourages collaboration and sharing code across teams much easier. In this talk, we’ll focus on the tooling used and code organization to make the development easier, faster and more reliable, with a major focus on the largest pain point of package management and orchestrating common tasks across the packages.