Posts

Hermetic MySQL in the modern world

So you're looking to run a MySQL docker instance without any environmental dependencies? Here's how to do that: $ docker run --name mysql-test -e MYSQL_ALLOW_EMPTY_PASSWORD=true -e MYSQL_DATABASE=testingdb -e MYSQL_USER=scott -e MYSQL_PASSWORD=tiger -p 3306:3306  mysql/mysql-server:latest Documentation on the various environment variables are located here: https://hub.docker.com/_/mysql   To connect to your MySQL instance without depending on my.cnf: $ mysql --no-defaults --host 127.0.0.1 --port 3306 --user scott --password --protocol tcp testingdb That's it. You have a running instance of mysql from a docker image and you're connecting to it with a generic mysql command line client. Have fun.

Alerts should be actionable a.k.a.: Do not email on success!

Following the Unix philosophy: Do one thing, do it well and be quiet about it. In software engineering, if you're writing a system that's useful and suddenly, one day, you think it's nice to notify users via email that their useful thing is being done, you're making a mistake.  Emails from software systems should be actionable: if a system is sending an email to a user, it should be helpful, provide enough context about who it is, where it's running, who owns / runs it and what the problem is that requires human attention. Ideally, the alert email should clearly specify the next steps and the dashboards that can be used to ensure that the problem is fixed. The worst offense of the system is to send out success emails. This fails on 2 counts: 1. Success emails are not actionable - if I read a success email, I am informed and I promptly create a Gmail filter to never see another success email from the system again. The system made me do active work to ignore it. 2. Su...

How to debug a crashing docker container

If want to run your docker process with some tweaks because it's crashing in your docker container and causing the container itself to stop (without giving you a way to inspect the files on the image), here's the magic command to start it with just bash. (I found this after quite a bit of hunting on the internet, the magic flag is --entrypoint and don't forget the -s at the end) Here's a sample command: docker run -it --entrypoint /bin/bash  $IMAGE -s Sourced from: https://vsupalov.com/debug-docker-container/

How to be an Effective Engineer?

Image
Read this book by Edmond Lau:  Highly recommended. His experiences parallel my own. The book is written engagingly, quick to read and succinct in its delivery. 

Understanding Divye

I typically share the contents of this document the first time I meet someone I'm going to be working with for a long time. Style of communication: Direct and clear. I don't do well reading between the lines. If you would like me to know something, please say something. What is important to me: High quality code and a highly productive, functional team. I don't believe in posturing. I believe in commitments and delivery. Delivering more and talking less is a good way to show impact. What kind of leader I'm trying to become: One who can grow people. I'm driven by Mission, Vision, Values. What I value in an organization: Transparency, Trust and Integrity. If you have a problem, speak up. Don't ever go behind someone's back. Bring problems up together so that I can see both sides represented fairly. Be direct. What I seek in people I work with: Ability to execute and potential to grow. I will endeavor to make you a better engine...

AI Expo 2019: Tim Jurka (LinkedIn, Director Feed AI) - Part 4 of 4

I recently attended the AI Expo 2019 at the Santa Clara Convention Center. Notes are from my understanding of the talk. Any errors are mine and mine alone. LinkedIn: A look behind the AI that powers the LI feed Tim Jurka (Dir. Feed AI) The talk was focused on the objectives of LinkedIn's Feed. The talk was focused to a high level (exec) audience. While I was familiar with the space, the objective function formulation and presentation was interesting: The recommendation problem for LinkedIn is maximizing Like/Comment/Share CTR + downstream network activation (virals) + encouraging new creators. Problem Formulation: P(click) + P(viral) * (alpha_downstream + alpha_creator * e ^ (- decay * E[num_response_to_creator]) alpha_downstream accounts for downstream effects; alpha_creator penalizes popular creators to induce diversity. General approaches (Toolbox): Multi Objective Optimization (ads vs organic content). Logistic Regression: Features, Embedding...

AI Expo 2019: Emilio Billi (CTO, A3Cube) - Part 3 of 4

Why and How the computational power influences the rate of progress in the technology Emilio Billi CTO A3Cube Inc Background: ML, Big Data & Analytics, AI, HPC. This was a big data infra focused talk. The speaker had a background in systems infra with past DoD experience. Not the most engaging delivery, but really nice takeaways: Moving 128 bytes on a CPU using 100Gbit ETH: CPU waits 8900ns for nothing (~7.1M compute ops lost); Moving the same 128 bytes using optimized RDMA intra-cluster costs 1200ns CPU time (~0.96M compute ops lost) You get 6M ops extra per second for ML. That's a great acceleration for ML workloads. Basic contention: ETH, TCP, slow storage is legacy technology. The clusters of the future will look like the supercomputer systems of today: 1. Low latency converged parallel file systems (think S3 for the cluster). 2. Built in Distributed Resource scheduler (think Kubernetes for the cluster). 3. Cooperative RAM over networ...