/dev/jcheng
  • About
  • Articles
  • Pages
  • Reviews
  • Tags
GitHub

Articles

January 5, 2021

Posts Of The Week 2020-12-31

Maybe Emacs doesn’t need to be a fusion reactor. I only hope it continues to generate energy for many years to come.

It just needs volunteers to keep the fire going.

https://www.murilopereira.com/how-to-open-a-file-in-emacs/

read more
December 22, 2020

Posts Of The Week 2020-12-18

Replicating a database can make our applications faster and increase our tolerance to failures, but there are a lot of different options available and each one comes with a price tag. It’s hard to make the right choice if we do not understand how the tools we are using work, and what are the guarantees they provide (or, more importantly, do not provide), and that’s what I want to explore here.

read more
December 13, 2020

Posts Of The Week 2020-12-11

Concept: Poison pill

One strategy is a poison pill: a special message on the queue that signals the consumer of that message to end its work. To shut down the squarer, since its input messages are merely integers, we would have to choose a magic poison integer (everyone knows the square of 0 is 0 right? no one will need to ask for the square of 0…) or use null (don’t use null). Instead, we might change the type of elements on the requests queue to an ADT…

read more
November 24, 2020

Posts Of The Week 2020-11-27

Meet GPT-3. It Has Learned to Code (and Blog and Argue).

For many artificial intelligence researchers, it is an unexpected step toward machines that can understand the vagaries of human language — and perhaps even tackle other human skills.

read more
November 24, 2020

Posts Of The Week 2020-11-24

From Monolith to Microservices

tldr;

  • baby steps (lots of them)
  • similar infrastructure to TeleSign – on prem
  • similar infrastructure to TeleSign? Also run on multiple clouds
  • started with Docker on prem
  • started with ugly hacks, as ones does ;)
  • (not related?) practices blue/green deployment
  • dedicated infrastructure resources
  • service discovery, then routing, the orchestration
  • community as a big reason on technology selection
  • involved changes to how config and secrets are made available
  • took much too longer to get existing tooling to work with k8s
  • SECURITY IS HARD, e.g., networking, scanning, security patches
  • Come on JVM isn’t that bad ;)
  • Development environment IS HARD; Figure out how to do dev with a “minimal” set of systems. Do as you like. Share instances in the cloud when possible. Make it easy to spin up a cluster in the cloud for each developer
  • Data migration off the the monolith database is painful. Double writing is a thing. No database may be used by one codebase.

What Makes Sand Soft?

read more
November 23, 2020

Go: Pointer vs Value

In A Tour of Go, it states “Go has pointers. A pointer holds the memory address of a value.” When you design your data structure in Go, you have to decide between using a pointer or not. There’s no clear rule of thumb for it.

I had been reading the Go source code to AWS’s client library for DynamoDB. For a while, I had been annoying with their API design, which looks like this:

read more
November 12, 2020

Posts of the Week 11/06/20

https://rootsofprogress.org/immunization-from-inoculation-to-rna-vaccines

When you get your covid shot (probably in 2021), take a moment to think back on the 300 years of progress that got us to this point.

https://github.com/wbolster/emacs-python-black

This is an Emacs package to make it easy to reformat Python code using black, the uncompromising Python code formatter.

read more
October 30, 2020

Docker With Custom DNS Server

By configuring your Docker containers to talk to a custom DNS server, you gain more control over how your container look up other services – database, other microservices, etc.,

It turns out Docker networking isn’t completely straight forward. On Linux you can:

  1. Run a DNS server locally, either dnsmasq or devdns
  2. Run your container with --dns 172.17.0.1, the magic IP where your host machine is located
  3. Configure dnsmasq from step 1 via /etc/hosts

Sadly, none of it was easy. The entire thing probably took me three hours.

read more
October 22, 2020

Posts of the Week 10/08/20

What are your favorite CLI apps?

I’m looking for CLI utilities that are definitely not part of the POSIX required or optional utilities, and more coloquiallly not considered to be standard BSD or *nix fare.

The Penderwicks

My daughters couldn’t stop lauging during storytime. They actually enjoy bedtime now. Birdsall is an excellent writer.

Just write the praser

This is a whirlwind tour of writing parsers by hand. Why would you want to do that, when tools like Yacc exist to do it for you?

read more
October 20, 2020

2020 Emacs User Survey

I recently participated in 2020 Emacs User Survey. One of the questions asked is “When you were first learning Emacs, what did you find difficult to learn?” The obvious answer is keyboard shortcuts, e.g., instead of CTRL-S for save, it is CTRL-X CTRL-S. Instead, CTRL-S performs find, which is usually mapped to CTRL-F, and so on and so forth.

Why Emacs is hard for new users

There were other problems too. I didn’t put them all down in the survey. I’ll jot them down here as they come to mind.

read more
  • ««
  • «
  • 3
  • 4
  • 5
  • 6
  • 7
  • »
  • »»
© /dev/jcheng 2026
GitHub