Looping over comma-separated values in Bash
Given a file (or a process) that produces comma separated values, here's how to split those into separate variables and use them in a bash script.
222 words
|
1 minute
Building DevOps Teams
Day 88 of 90 Days of DevOps - Building DevOps Teams. Part of the Best Practices & Culture series covering essential DevOps concepts and hands-on practices.
574 words
|
3 minutes
DevOps Transformation Challenges
Day 87 of 90 Days of DevOps - DevOps Transformation Challenges. Part of the Best Practices & Culture series covering essential DevOps concepts and hands-on practices.
499 words
|
2 minutes
Talking to a PostgreSQL service container from inside a Docker container
I have a Django application which uses PostgreSQL. I build the Django application into its own Docker container, push that built container to the G...
285 words
|
1 minute
Get Skitch working on Catalina
I really like Skitch for taking screeshots, mainly because I like to snap a quick shot and then drag the icon onto a Google Doc or similar without ...
97 words
|
1 minute
Scaling DevOps in Enterprise
Day 86 of 90 Days of DevOps - Scaling DevOps in Enterprise. Part of the Best Practices & Culture series covering essential DevOps concepts and hands-on practices.
426 words
|
2 minutes
Django data migration using a PostgreSQL CTE
I figured out how to use a PostgreSQL CTE as part of an update statement in a Django data migration. The trick here is mainly understanding how to ...
203 words
|
1 minute
Exporting Amplitude events to SQLite
[Amplitude](https://amplitude.com/) offers an "Export Data" button in the project settings page. This can export up to 365 days of events (up to 4G...
166 words
|
1 minute
Querying the GitHub archive with the ClickHouse playground
Via [this comment](https://news.ycombinator.com/item?id=34197637) on Hacker News I started exploring the [ClickHouse Playground](https://clickhouse...
654 words
|
3 minutes
Scroll page to form if there are errors
For a Django application I'm working on ([this issue](https://github.com/simonw/django-sql-dashboard/issues/44)) I have a form that can be quite a ...
88 words
|
1 minute
DevOps Metrics and KPIs
Day 85 of 90 Days of DevOps - DevOps Metrics and KPIs. Part of the Best Practices & Culture series covering essential DevOps concepts and hands-on practices.
433 words
|
2 minutes
Recovering data from AWS Lightsail using EC2
I ran into problems with my AWS Lightsail instance: it exceeded the CPU burst quota for too long and was suspended, and I couldn't figure out how t...
359 words
|
2 minutes
Geopoly in SQLite
I noticed this morning that one of my Datasette installations had the [Geopoly](https://www.sqlite.org/geopoly.html) SQLite extension enabled. I do...
1012 words
|
5 minutes
Counting SQLite virtual machine operations
When SQLite executes a query, it does so by executing a sequence of virtual machine operations.
548 words
|
3 minutes
Continuous Learning Culture
Day 84 of 90 Days of DevOps - Continuous Learning Culture. Part of the Best Practices & Culture series covering essential DevOps concepts and hands-on practices.
458 words
|
2 minutes
Bundling Python inside an Electron app
For [Datasette Desktop](https://datasette.io/desktop) I chose to bundle a full version of Python 3.9 inside my `Datasette.app` application. I did t...
381 words
|
2 minutes
Documentation and Knowledge Sharing
Day 83 of 90 Days of DevOps - Documentation and Knowledge Sharing. Part of the Best Practices & Culture series covering essential DevOps concepts and hands-on practices.
594 words
|
3 minutes
Piping echo to a file owned by root using sudo and tee
I wanted to create a file with a shell one-liner where the file lived somewhere owned by root.
155 words
|
1 minute
Team Collaboration and Communication
Day 82 of 90 Days of DevOps - Team Collaboration and Communication. Part of the Best Practices & Culture series covering essential DevOps concepts and hands-on practices.
493 words
|
2 minutes
DevOps Best Practices Compilation
Day 81 of 90 Days of DevOps - DevOps Best Practices Compilation. Part of the Best Practices & Culture series covering essential DevOps concepts and hands-on practices.
446 words
|
2 minutes
Granting a PostgreSQL user read-only access to some tables
I wanted to grant a PostgreSQL user (or role) read-only access to a specific list of tables.
183 words
|
1 minute
Using the undocumented Fly GraphQL API
[Fly](https://fly.io/) has a GraphQL API which is used by some of their own tools - I found it while [browsing around their code](https://github.co...
456 words
|
2 minutes
Copy rich text to the clipboard
I've been experimenting with a tool for generating the content for a weekly Substack newsletter by querying the Datasette API for my blog and assem...
433 words
|
2 minutes
WebAssembly and Future Tech
Day 80 of 90 Days of DevOps - WebAssembly and Future Tech. Part of the Serverless & Advanced Topics series covering essential DevOps concepts and hands-on practices.
509 words
|
3 minutes