CodeLand 2020 - Part 2

August 15, 2020

Continuation of part 1 of CodeLand 2020.


What I learned from 6 years of building CodeNewbie with Saron Yitbarek

Saron is the founder of CodeNewbie , a programming community for techies, and she presented what she's learned during her experience building the community.

Saron didn't immediately start in tech. While working in companies in non-tech roles, she noticed engineers were the most valued in the company (especially in trust and income) which made her motivated to develop her skills in this field to see what it was all about.

She took some time to learn to code on her own which eventually led her to join a bootcamp. Despite programming bootcamps offering you to learn within a community, Saron knew that not everyone could afford this experience. She was determined to create her own that's free and accessible to everyone.

There are a number of things Saron learned on her journey:

  1. People need to feel safe and loved: There is a place for you in the tech industry and you shouldn't feel barred from it.
  2. It's not about a place, it's about a shared experience: Don't worry about what platform (Twitter, Discord, Slack, etc) you host your community on, what matters is the people making up the community.
  3. Rules, recruit and filter: Being supportive and kind are required and setting rules from the very beginning keeps those not interested in being respectful from joining.
  4. People are generally helpful, but it's up to you to ask for help.
  5. The power of Twitter mentorship: Reach out to help others who are looking for a job, to better their skills, etc.
  6. Stories are everything: Saron started CodeNewbie podcast for topics too big for Twitter in order to focus on the CodeNewbie journey and get to know the people behind the code.
  7. Representation matters: Everyone has a different start on how they got into tech, knowing someone who has a similar career track as you can make you feel a part of the community.
  8. To get out of the way: Saron pointed out how she rarely speaks in her podcast episodes in order to center the guest she's speaking with.
  9. There's no one way to do it: There is no one way to become a developer.
  10. Junior developers are assets: Junior developers force you to know what you are talking about, to have good documentation, and collaborate and mentor others. I wish companies valued junior developers more than I see now.
  11. Consistency is powerful: Something like the #100DaysOfCode campaign to push someone to get into the habit of coding and making progress.
  12. To capture the value you create.
  13. Sustainability is important: Saron eventually made CodeNewbie full-time.
  14. Accessibility is everywhere: A blind listener told Saron they appreciated learning from a podcast since most learning resources are visual based.
  15. Feedback is love: Someone trusts that you care enough to do this thing, so they want to give you feedback to improve it.
  16. Small, consistent acts build trust.
  17. Application > tooling: It's important to know what the tech is being used for, rather than how it's made.
  18. Everyone's a newbie: We're always learning something new to challenge us.
  19. Drugs are great: Saron also spoke to us about her mental health journey while working on CodeNewbie and emphasized how crucial it is to take care of yourself.
  20. Mental health is self care.

I appreciate everything Saron has done to make CodeNewbie what it is today and how it has impacted developers in their journey.

Check out the podcasts:

View Saron's talk here .

Live Exploiting Your Open Source Dependencies with Brian Vermeer

Brian speaks about the importance of security in open source software while introducing DevSecOps.

DevSecOps ensures security is a part of software delivery process and not as a last-minute thought which could compromise customer security.

Brian talks about the underlying problem of taking care to ship your code with dependencies built by other developers and companies and how to make sure it doesn't compromise the product. He showed a live hack to exploit an example to-do application during the talk.

He shared a solution to improving security:

  • Team culture: To allow time to work on security, not just new features. Developers are pressured to keep shipping out new features rather than make time to improve what they are currently working with.

  • Process: Adapt process to work in production as needed.

  • Tooling: Using the company Brian works for, ( Snyk ) to test dependencies locally and include DevSecOps in the development process.

View Brian's talk here .

Printing floating point numbers with Gargi Sharma

Gargi talks about how printing floating point numbers is harder then one might expect.

She discussed different algorithms (which all have dragon-related names related to the Dragon Curve ) used to define floating point numbers through binary.

  • information preservation
  • minimum length
  • correctly routed
  • left to right generation

There are still new algorithms being made to work on this issue. This is something I never though too much about. I appreciated Gargi's in-depth explanation introducing mathematical concepts and how computers define floating numbers in the result.

View Gargi's talk here .

To Kill a Working Drone: Flying drones with Twitter, Bananas and WebAPIs with Lucky Nkosi

Lucky bought himself a drone one night and realizing he didn't need one, decided to hack it. He depended on a mobile browser in his project to control the drone. The drone can be controlled with Wi-Fi or Bluetooth low energy. He chose to use Bluetooth low energy - a form of wireless communication designed for short range communication. By using Web APIs to access the phone movements he could control the direction of the drone.

By turning his phone it would dictate which direction the drone moves. Lucky decided to take it a step farther and use a device called LEAP Motion Sensor to model his hands in a kind of VR experience to stimulate the phone's direction use.

With this project in mind, Lucky told us he is interested in human computer interaction. He likes coming up with what's considered "ridiculous" things because he's learning along the way while he's playing.

View Lucky's talk here .

Seeing Sound with Amit Nambiar

Amit first got the idea of his project after visiting the Lotus Temple in New Delhi that had an intricate 9 sides symmetrical structure. He wanted to see if he could use sound to create a structure itself. Amit first learned how to understand what sound is and how it's defined in waves and frequencies.

His project uses a 3D environment in a virtual canvas to display the affect of the particles of the sound frequencies. He used the WebAudio API and three.js to make this possible. I've been learning about the three.js library myself to understand how to use it. Using 3D to present sound like this is a very interactive experience for anyone to enjoy.

You can check out the finished app , and if you have a VR headset you can actually be a part of the 3D space.

View Amit's talk here .

Machine Learning on the Edge with Sangeetha KP

Machine learning was first implemented when computers were used to solve basic mathematical problems. These were set rules that computers had to follow. Real world problems couldn't always translate things into rules like how to instruct a computer to recognize a person in an image so a different solution was to train computers with test data to label correctly.

Machine learning "on the edge" is training a computer on a device locally instead of in the cloud. Sangeetha introduced ML Kit by Google to be used on mobile devices to incorporate machine learning.

View Sangeetha's talk here .

You and Me Learn All About HTTP with Safia Abdalla

Safia goes over what HTTP is and the different web protocols that exist.

HTTP stands for Hyper Text Transfer Protocol:

  • HyperText: Hyperlinks (links to other images, etc. on the web) with text.

  • Transfer: Relates in a way hypertext is exchanged between devices.

Safia led an interactive example to follow along in dev tools to learn about HTTP. She showed us the Network tab to see outgoing requests from the web browser or native app and responses from the server.

I was given a more in-depth approach to understanding more about HTTP such as HTTP pipelining, a feature where multiple requests can be sent at the same time to and their response can be processes separately instead of waiting for each to succeed one by one. Also about the network stack and how all protocols relate to the others. HTTPs is TLS (how messages should be encrypted and using authentication - security) applied to HTTP (for transmitting messages) using TCP (Transmission Control Protocol).

View Safia's talk here .

Fighting Imposter Syndrome With IoT, with Tilde Thurium

Tilde is a developer evangelist at Twilio who was suggested to use positive affirmations by their therapist to handle imposter syndrome. When noticing that this advice was helping, Tilde had the idea to create a project to automate sending positive affirmations using Node.js, Twilio Serverless Functions, and a Flic button which can be used to send HTTP requests with one push.

Twilio is a cloud communications platform that's hosting the phone number shown in their editor so a viewer of the talk can send positive affirmations while the code is being run. Serverless functions are useful to handle immediate deploys for small projects that require minimal coding - such as sending positive affirmations to yourself.

This whole presentation took abut 5 min and in the end, Tilde received a message from someone after they pushed the Flic button.

View Tilde's talk here .

Accessibility Matters: How to Build Apps for Everyone with Miranda Limonczenko

Miranda shares her experience of building a website and her tips to including accessibility in your own projects. It's important to give software little restriction from someone using a product or applying to a job because of a disability. She built a site for Guide Dogs for the Blind which required a good experience for those who are visually impaired or cannot see at all.

There were 2 user groups:

  • Visually impaired: Which consisted of (but not limited to) color contrast, hover states, and options to adjust text size and contrast.
  • Blind: Needed an organized menu structure, clear elements to give information and images to give a better experience given to them by screen reader software.

I'm always trying to read more posts on becoming a more informed front-end developer in accessibility (though I admit it can be a bit overwhelming at times). One thing came to mind in connection to my own website is that hover states need more than just color change to indicate selection.

Miranda suggests using a screen reader to understand what someone who depends on them understands when visiting a website in order to improve your development in accessibility.

Resources:

View Miranda's talk here .

Emoji Encoding, Unicode, and Internationalization with Naomi Meyer

Naomi goes over the underlying information about emojis and unicode. Emojis have more users than any other language or character set on Earth.

There was a lot introduced in this talk:

  • I18n: Used for internationalization. For preparing an app or a website with translations by wrapping text in I18N object for globalization.

  • Encoding: Interpreted as 0's and 1's. ASCII - American Standard Code For Information Interchange. The internet made it difficult for computers to communicate when they each had their own languages and dialects (different encoding systems) so a different independent encoding system was used on a user's computer.

  • Unicode: Like a phone book to receive a letter, ensure no collisions of different language alphabets. UTF-8 (Unicode transformation Format - popular open source algorithm (UTF)) is a character encoding translation system that changes unicode to physical bits (1 and 0). UTF-8 is the most common on the web, and is important to use so anyone can enter a name with their proper accents if needed.

  • Emoji: Used with Zero Width Joiner (ZWJ) to attach different emoji code points together, like the skin tone modifier (which is from a dermatology scale based on UV light exposure). This explains how some emojis like the woman singer emoji 👩‍🎤 are created by combing other emojis and ZWJ to get its length of 7.

Emojis can be proposed to make them more inclusive like non-binary people (including a merperson ! 🧜), wearing a headscarf 🧕, etc.

You can propose emojis on the Unicode site .

Naomi shows a lot of enthusiasm on the subject and I learned a lot about what goes on in the creation and how computers display emojis. I will definitely never look at an emoji the same way again. 🤓

View Naomi's talk here .

Why Forem is Special with Ben Halpern

Ben is one of the co-founders of DEV and he wanted to share what forem is. Forem is open source form software for empowering community. Since it is open source, pull requests are used to build features and fix bugs with the community using the software than rather have someone request features over Twitter.

Forem stresses the importance of the user identity by having someone share their passions and be themselves while also having as much privacy as needed. Ben shared the goals of forem and what he hopes to accomplish in the future.

One things he emphasizes throughout is how important the community on the web is, but also how harmful it can be. Forem is made with the mindset to empower communities and to make sure it stays that way.

I learned about the "Consumer Copy-Left" license which keeps a company from privatizing open source code and making changes.

View Ben's talk here .

CodeLand 2020 did a fantastic job going virtual this year due to quarantine. If you have never attended a tech conference and don't know where to start, I'd suggest checking out CodeLand next year.