HN user

mcrute

768 karma

Software engineer by day, tinkerer by night, open-source maintainer. I work for a big tech company but all opinions are my own.

https://github.com/mcrute

Posts21
Comments19
View on HN
www.righto.com 6y ago

A circuit board from the Saturn V rocket, reverse-engineered and explained

mcrute
187pts14
www.righto.com 6y ago

Inside a Titan missile guidance computer

mcrute
169pts39
aws.amazon.com 6y ago

Amazon EKS on AWS Fargate Now Generally Available

mcrute
50pts14
aws.amazon.com 7y ago

AWS EKS Supports Kubernetes 1.12

mcrute
3pts0
aws.amazon.com 7y ago

AWS Database Migration Service Now Supports Amazon DocumentDB

mcrute
2pts0
aws.amazon.com 7y ago

Introducing the C++ Lambda Runtime

mcrute
30pts2
aws.amazon.com 7y ago

Amazon Forecast – Time Series Forecasting

mcrute
6pts0
aws.amazon.com 7y ago

Amazon Personalize – Real-Time Personalization and Recommendations

mcrute
22pts1
aws.amazon.com 7y ago

Amazon Textract – Extract text and data from virtually any document

mcrute
229pts72
aws.amazon.com 7y ago

AWS DeepRacer – Go Hands-On with Reinforcement Learning

mcrute
48pts14
aws.amazon.com 7y ago

Machine Learning algorithms and model packages now available in AWS Marketplace

mcrute
3pts0
aws.amazon.com 7y ago

Amazon SageMaker Ground Truth

mcrute
10pts1
aws.amazon.com 7y ago

Amazon Quantum Ledger Database

mcrute
283pts170
aws.amazon.com 7y ago

AWS Security Hub

mcrute
7pts0
aws.amazon.com 7y ago

Amazon FSx for Lustre

mcrute
99pts20
aws.amazon.com 7y ago

Amazon FSx for Windows File Server

mcrute
44pts14
www.youtube.com 7y ago

The Tension Between Absolutes and Ambiguity in Security [video]

mcrute
1pts0
github.com 7y ago

AWS Firecracker - Secure and fast microVMs for serverless computing

mcrute
24pts10
aws.amazon.com 7y ago

New AWS C5n Instances with 100 Gbps Networking

mcrute
44pts17
aws.amazon.com 7y ago

EC2 Instances Powered by Arm-Based AWS Graviton Processors

mcrute
420pts152
drewdevault.com 7y ago

How does virtual memory work?

mcrute
7pts0

Yes, everything internally has many flags (hundreds or thousands), so much so that they raise the command line size limit (ARG_MAX) in the kernel. I think it was around 2GB when I left. The internal frameworks really encourage using flags too, there's a @Flag decorator for Java that's sprinkled all over the code and sometimes nested extremely deeply down chains of classes that promote this behavior (abseil, (https://abseil.io/docs/cpp/guides/flags) has macros for this too).

We don't have any form of combined finances, each of us deposits our money directly into our own private bank accounts and has our own credit cards. While we, in theory, have access to each other's accounts for the purpose of survivorship; in practice we would never use that access and would consider it a violation of our relationship agreement should a partner chose to use that access.

We split bills though. I take large expenses, like rent and insurance and they take smaller expenses like groceries and dining out. At the start of the year we do a budget of what we project expenses to be based on the prior year (usually takes an hour or so because we both keep good financial records). We then divide that down into a monthly payment such that we're each contributing 50% of our living expenses and they transfer money to me monthly since I'm paying the larger share of the bills. At the end of the year when we budget for the next year we reconcile any differences between budget and reality so that we do in-fact each pay 50% of the living expenses (sometimes this means I give them money, sometimes they give me money). For really large one-off expenses we nominate a partner to take on that expense and the other transfers their share of the money for that expense to the partner taking on the expense. Same story for vacations or trips except we settle that after the fact not before.

It's basically made money a non-issue in our relationship. Their money is theirs and my money is mine, what we chose to do with it is up to us so long as we're contributing our fair share of the living expenses.

Edit: since others are saying this, our relationship is very close and we consider ourselves to be a team but we very explicitly decided when forming our relationship to not have combined finances even though we cohabitate because we had observed that to be a deep point of contention in relationships around us.

Alpine Linux 3.13 6 years ago

I'm one of the maintainers of the cloud images and I can confirm that our goal is to release at least GCP and Azure images in addition to the AWS ones for the 3.14 release cycle. We're also looking for suggestions on other cloud providers for which people would like to see official Alpine images built.

https://github.com/mcrute/alpine-ec2-ami/issues/99

Interesting to see that the pricing is approximately double that of S3, for what I imagine is not much more than a thin layer on top of it.

There's a lot of necessary complexity in the backing platform. Encrypted package blobs are stored in S3 but there are a bunch of other distributed systems for doing things like package metadata tracking and indexing, upstream repository management, encryption, auditing, access control, package manager front-ends, etc... that are not immediately obvious and add cost. The platform that backs CodeArtifact is far from what I'd call a thin layer on top of S3. There is also a team of humans that operate and expand the platform.

Source: I lead the technical design for the product as well as a chunk of the implementation but left the team around mid-2018.

The back-end is largely package type agnostic and the package manager front-ends are pluggable. I'd look for AWS to expand package manager support in the near future. Nuget was on the list along with a few other popular package managers. There's a whole lot of functionality in the platform they didn't yet expose or have finished for the launch, I'd keep an eye on this as they move forward.

Source: I lead the technical design for the product as well as a chunk of the implementation but left the team mid-2018. I don't have any specific insight into their plans, not that I could really share them even if I did.

Aside from the cryptorouting concept and some convenience functions in wg-quick, Wireguard doesn't really have strong opinions on routing. It's perfectly legitimate to setup an interface with a single peer and global (0.0.0.0/0, ::/0) routes then use BGP to announce networks across it and manage the kernel route tables.

Dell XPS 13" 9370 running Fedora 29 at home 9380 running Ubuntu 18.04 at work. Formerly MacBook Pros. I'd recommend the Dell XPS 9370 and Fedora 29 combo as a decent Mac alternative.

I've run Linux systems for a little over 20 years now and have historically found the Linux laptop experience to be pretty painful, full of driver incompatabilities and other annoyances like non-functional suspend. So when Apple transitioned the Mac to Unix-like OS and Intel chips I hopped on board and was a huge Mac fan. Early on in the 10.x series Mac OS was a great Unix operating system with a nicely functional desktop environment, most stuff just worked without a bunch of hacking. Over the years, though, Apple has been gutting the core of Mac OS and replacing it with their own proprietary APIs that lack Linux compatibility (OpenSSL, OpenGL, OpenCL, etc...). Homebrew and Docker can spackle over some of this but it seems quite a hack, especially given that most production work I do runs on some variant of Linux. At the end of the day most of the tools I use heavily are open source and run on Linux and those that don't have reasonable open source alternatives (1password vs pass, for example) so I migrated.

On the work front I've been using Linux desktops since around 2006 and have been keeping tabs on the desktop experience. It's improved a ton over the past few years. As much as it pains me to say this systemd has helped a lot. In my experience Dell hardware has mostly had decent Linux compatibility because they rely heavily on Intel chips and Intel puts a lot of work into the Linux kernel. The Dell Sputnik hardware has helped even more since the whole system is Linux certified by Dell (well Ubuntu certified, but all the patches make it to upstream) which makes a huge difference for things just working. The unpatched mainline kernel just works on Sputnik hardware without any hacking in my experience.

In my recent experience Fedora is an easier distribution to run because they keep packages very up-to-date whereas Ubuntu has inherited the slower release cadence of Debian. Neither are unpleasant but Fedora has required less configuration to make it work. There are a few minor annoyances so far but nothing that can't be fixed. Suspend defaults to suspend-to-ram, which is IMO wrong but configuring it to suspend-then-hibernate (sleep to RAM for an hour of inactivity then wake up and hibernate to disk/power off) is just a config file edit. Apple accessories (can't break up with my Magic Trackpad) require really recent kernel versions (4.20+) to work reliably and then some X configuration on top of that. The Atheros wireless cards can be a little flaky around suspend/resume/unexpected device behavior (this is Atheros or the driver's fault, hopefully Dell ditches them for Intel soon). Projectors, printing, pretty much everything else has just worked without any issues at all.

Firecracker serves an entirely different purpose from Kubernetes. Kubernetes is a cluster scheduler but the containers being scheduled still need a runtime (typically Docker, containerd, or CRI-O) to execute the process within the container. These runtimes typically share a single Linux kernel instance and use the kernel cgroups feature to isolate workloads. In multi-tenant environments where each tenant is running unrestricted code this presents and unacceptably high security risk. If a hacker compromises one container and escapes the cgroup confinement they can potentially impact the security of other containers. Fargate is the building block for an alternative container runtime that uses extremely lightweight VMs and isolated kernel instances instead of the more traditional approach of sharing a kernel between all processes.

It benefits neither the company nor the candidate to have the candidate be overly stressed out all day. Lunch also gives the candidate the chance to chat informally to a potential colleague and for that potential colleague to make a pitch for why it's cool to work at the company and live in the area. If the lunch buddy does their job well the candidate should leave excited to work for the company and in good spirits for the last half of the interview. On top of that both people get a free lunch. Definitely not a waste of time.

That's not accurate. The lunch buddy is there to give the candidate some relaxing time off of interviewing, allow them to get a good lunch, and to ask questions "off the record" to a potential colleague. Informally it is the job of the lunch buddy to make a pitch for why the candidate should consider working for the company, and if relocation is on the table, what's neat about the area and why the candidate should consider moving.

The lunch buddy doesn't get the option to enter feedback for a candidate and often doesn't even get invited to the interview debrief. They really are there just for lunch.

Source: have been a lunch buddy several times.

Normally an SSD has an on-board flash controller that communicates something like NVME or SATA to the host and a protocol like CFI to the actual NAND chips, it will also map from disk blocks (OS unit of storage) to NAND columns and cells using an internally stored table. These chips do a lot of other mundane things like wear leveling for NAND, clearing written cells, etc. If the T2 is taking the place of this controller and communicating directly with the NAND chips it would be at best duplicative of an external SSD controller and at worst completely incompatible.

New Mac Mini 8 years ago

Based on the marketing images on their website it sure looks like the NAND is soldered to the board.