

Discover more from hrbrmstr's Daily Drop
Drop #125 (2022-10-24): Recent Random Bookmarks Edition
💿 Master; awstracer; Raindrop.io 💙 → Twitter
💿 Master
If you have never had the joy of listening to the sound of a half-dozen stepper motors tapping out a discordant staccato beat as they orchestrate the siphoning of data from thin, reflective discs, you have missed out on a remarkable era of computing. Our "app stores" were literally physical stores where one would thumb through stacks of translucent squares, looking past often dodgy cover art, to see what oddball collection of software one could take home and explore the contents of for hours/days/weeks.
You can catch a glimpse of this era over at discmaster, a volunteer-curated site that has put together the most comprehensive, organized list of "vintage" files uploaded to archive.org.
Learn how to handle a townhouse fire with one of a handful of FEMA simulation CDs.
Read through one of the last digital Grolier encyclopedia editions or Microsoft's early attempt at information dominance (yes, this is how we used to have to get outdated, biased information back in the day).
Or, see what passed for "screen savers" and take some joy in all the hires GPU-empowered generative art you have at your fingertips, today.
If you were a denizen of that era, this site is a wild trip down memory lane 💿.
awstracer
You can do quite a bit with the Amazon Web Services CLI. Amazon's spiffy engineers have made virtually every AWS API endpoint and option available to anyone with a $
prompt and a bucket of cash. There are times when I've found myself scrolling through shell history after whipping up a few successful CLI command chains to do various query and data download patterns in Athena/S3, or do some experimental lambda machinations. Wouldn't it be great if there was a way to just record what you were doing and have something magically turn those patterns into something you can reuse? Well, awstracer does just that. Here's the pitch:
awstracer
consists of two small utilities which hook into the aws command-line interface internal event mechanism. Using it you can record a sequence of aws commands to a trace-file. The player will allow you to replay that sequence of commands under for example a different configured AWS profile or against a different AWS region. Think of it as a set of poor man's Cloud Formation utilities. It's useful for when you have to re-run a set of commands or quickly test a bunch of things without having to switch back to the console the entire time. And it's also a whole lot quicker than having to write your ownawscli
andbotocore
logic.Under normal circumstances these utilities would barely be more useful than using a simple shell-script which wraps around aws commands. However, the player features some logic that allows it to derive relationships between subsequent calls. This way it can automatically determine that the return value of one command should be supplied to the next request. Think for example of using a command which creates a resource and returns an ARN and the next command then using that specific ARN again. The player has the ability to do a dry run of the sequence of commands in the trace file. It will then colorize the output and highlight the replaced variables to show where the substitutions in a sequence of requests will appear.
The DynamoDB example they provide is compelling:
$ awstrace-rec --trace-file create_table.trace
(rec) aws dynamodb create-table \
> --table-name Music \
> --attribute-definitions \
> AttributeName=Artist,AttributeType=S \
> AttributeName=SongTitle,AttributeType=S \
> --key-schema \
> AttributeName=Artist,KeyType=HASH \
> AttributeName=SongTitle,KeyType=RANGE \
> --provisioned-throughput \
> ReadCapacityUnits=10,WriteCapacityUnits=5
[...]
Add command to trace cache? [y/N]: y
(rec) aws dynamodb put-item \
> --table-name Music \
> --item \
> '{"Artist": {"S": "No One You Know"}, "SongTitle": {"S": "Call Me Today"}, "AlbumTitle": {"S": "Somewhat Famous"}, "Awards": {"N": "1"}}'
Add command to trace cache? [y/N]: y
(rec)
Save cached trace to create_table.trace? [y/N]: y
You can then change up some AWS variables and run that in other regions, with other profiles, or hit other endpoints:
$ awstrace-play \
--trace-file create_table.trace \
--profile admin-profile \
--endpoint https://beta-service-url.com
The documentation is well-written, and the additional examples are even more compelling than the DynamoDB one (especially the IAM Policy one).
If you’ve come up with a clever time-saver this way, drop a note in the comments.
Raindrop.io 💙 → Twitter
As I've occasionally mentioned, I use Raindrop.io religiously. It powers this newsletter, but also serves as a memory companion to Inoreader and Roam/Notion.
This short section is to note that I recently used Raindrop.io's Settings suggestion to link up Twitter and Raindrop.io via IFTTT and save all
fav'd tweets. While I regularly download my Twitter history (and you should too, especially if the sale to Musk goes through this week), I never did a live integration for Twitter favs and any other service. This integration puts tweets I care about into my daily workflow for organization, archival, and later use/reference.
I mostly stopped using IFTTT when they did some "sketch" 💰 grab a few years ago, but this integration is free, and would be easy to replicate in the event they do go full-on corporate. I feel somewhat daft for only enabling this feature recently, given that we may all be abandoning the bird if it does end up in the hands of an insane narcissist.
FIN
If you are a fan of Doctor Who and have not seen "The Power Of The Doctor", yet, I heartily recommend it. ☮