Google Cloud Platform Essentials
Day 48 of 90 Days of DevOps - Google Cloud Platform Essentials. Part of the Cloud Platforms series covering essential DevOps concepts and hands-on practices.
368 words
|
2 minutes
Escaping a SQL query to use with curl and Datasette
I used this pattern to pass a SQL query to Datasette's CSV export via curl and output the results, stripping off the first row (the header row) usi...
193 words
|
1 minute
Enabling a user to execute a specific command as root without a password
2024-02-16
I wanted a script running as a non-root user to be able to restart a systemd service on my Ubuntu machine without needing a password.
131 words
|
1 minute
Azure DevOps and Pipelines
Day 47 of 90 Days of DevOps - Azure DevOps and Pipelines. Part of the Cloud Platforms series covering essential DevOps concepts and hands-on practices.
500 words
|
3 minutes
Writing JavaScript that responds to media queries
I wanted to change the layout of [my blog](https://simonwillison.net/) on mobile screens such that the content from the "Elsewhere" right hand colu...
255 words
|
1 minute
Azure Fundamentals and Services
Day 46 of 90 Days of DevOps - Azure Fundamentals and Services. Part of the Cloud Platforms series covering essential DevOps concepts and hands-on practices.
355 words
|
2 minutes
Trick Apple Photos into letting you access your video files
I had an 11GB movie in Apple Photos (sync'd from my iPhone) and I wanted to upload it to YouTube (actually via AirDrop to another laptop first).
227 words
|
1 minute
AWS Networking - VPC and Security Groups
Day 45 of 90 Days of DevOps - AWS Networking - VPC and Security Groups. Part of the Cloud Platforms series covering essential DevOps concepts and hands-on practices.
276 words
|
1 minute
Logging OpenAI API requests and responses using HTTPX
My [LLM](https://llm.datasette.io/) tool has a feature where you can set a `LLM_OPENAI_SHOW_RESPONSES` environment variable to see full debug level...
1164 words
|
6 minutes
Running self-hosted QuickJS in a browser
I want to try using [QuickJS](https://bellard.org/quickjs/) compiled to WebAssembly in a browser as a way of executing untrusted user-provided Java...
763 words
|
4 minutes
Testing Electron apps with Playwright and GitHub Actions
Yesterday [I figured out (issue 133)](https://github.com/simonw/datasette-app/issues/133) how to use Playwright to run tests against my Electron ap...
560 words
|
3 minutes
impaste: pasting images to piped commands on macOS
I wanted the ability to paste the image on my clipboard into a command in the macOS terminal.
207 words
|
1 minute
AWS Storage Solutions - S3 and EBS
Day 44 of 90 Days of DevOps - AWS Storage Solutions - S3 and EBS. Part of the Cloud Platforms series covering essential DevOps concepts and hands-on practices.
475 words
|
2 minutes
Using async/await in JavaScript in Selenium
Thanks [Stuart Langridge](https://twitter.com/sil/status/1312137808111304704) for showing me how to do this:
66 words
|
1 minute
Providing a "subscribe in Google Calendar" link for an ics feed
2024-02-12
If you provide your own custom generated ICS file hosted at a URL it's nice to be able to give Google Calendar users an easy way to subscribe to th...
142 words
|
1 minute
AWS EC2 and Compute Services
Day 43 of 90 Days of DevOps - AWS EC2 and Compute Services. Part of the Cloud Platforms series covering essential DevOps concepts and hands-on practices.
381 words
|
2 minutes
Using sqlite-vec with embeddings in sqlite-utils and Datasette
Alex Garcia's [sqlite-vec](https://github.com/asg017/sqlite-vec) SQLite extension provides a bunch of useful functions for working with vectors ins...
772 words
|
4 minutes
Enabling the fuzzystrmatch extension in PostgreSQL with a Django migration
The PostgreSQL [fuzzystrmatch extension](https://www.postgresql.org/docs/13/fuzzystrmatch.html) enables several functions for fuzzy string matching...
76 words
|
1 minute
Using iconv to convert the text encoding of a file
In [sqlite-utils issue 439](https://github.com/simonw/sqlite-utils/issues/439) I was testing against a CSV file that used UTF16 little endian encod...
203 words
|
1 minute
Finding uses of an API with the new GitHub Code Search
The [GitHub Code Search beta](https://docs.github.com/en/search-github/github-code-search) is really powerful - it allows advanced search - includi...
315 words
|
2 minutes
AWS Core Services Overview
Day 42 of 90 Days of DevOps - AWS Core Services Overview. Part of the Cloud Platforms series covering essential DevOps concepts and hands-on practices.
355 words
|
2 minutes
Cloud Computing Fundamentals
Day 41 of 90 Days of DevOps - Cloud Computing Fundamentals. Part of the Cloud Platforms series covering essential DevOps concepts and hands-on practices.
510 words
|
3 minutes
Running a MySQL server using Homebrew
First, install MySQL like so:
179 words
|
1 minute
Kubernetes Security and RBAC
Day 40 of 90 Days of DevOps - Kubernetes Security and RBAC. Part of the Containerization & Orchestration series covering essential DevOps concepts and hands-on practices.
511 words
|
3 minutes