I just finished building a serverless system on AWS that hosts a podcast’s media files and rss feed, and provides a web interface for managing the rss feed.
This is a cost-effective way to host a podcast, and a fun way to learn a bunch of AWS technologies.
Here are the elements of the system:
- Podcast and episode info is stored in a DynamoDB table.
- Lambda functions insert episode info into DynamoDB, create presigned URLs for uploading media files, and create the rss feed file whenever episode info is updated.
- CloudFront allows the static S3 site to be served via https, and redirects http requests to https (not pictured)
- Route53 connects a custom domain name to S3 and CloudFront
- The system admin loads podcast info (title, author, etc) into an “Episode 0” item in the DynamoDB table.
- The podcast maintainer submits episode information via the html form.
- The podcast-poster Lambda function adds the episode info to the DynamoDB table and returns a presigned URL that allows uploading the media file to S3.
- The S3 upload triggers a Lambda function that updates the rss feed.
More Info Coming…
I’m developing python code in a Cloud9 environment. Tried setting the default python version to 3, but “python” still runs python 2. It’s not a big deal to type “python3” each time, but “pip install boto3” only installed the module for python 2.
Finally, this adaptation of a command I found on stackoverflow worked:
python3 -m pip install --user boto3
I had been using Skype for Business as the online call handler for my Mac, but had various problems in online meetings – sometimes not seeing screen shares, sometimes not seeing chat, sometimes others not seeing my screen share.
But when I tried to switch to Lync, it took a while to figure out how to make “Join online meeting” links work – they kept launching Skype. Turns out that it’s simple – go to Lync Preferences > General tab and change the drop-down settings in the Services section (you can click on the image to expand it).
If you’re still using my “Insert and Delete Cells” Add-on for Google Sheets, you’re now seeing: “401. That’s an error”, “Error: deleted_client”, and “The OAuth client was deleted”.
I shut down the “Insert and Delete Cells” Google Sheets Add-on yesterday because the functionality has been built into Google Sheets for a few years now.
You will find the Delete functions in the Edit menu and the Insert functions in the Insert menu.
Sorry for the abrupt shut-down of the Add-on. I was trying to figure out a graceful way to remove the Add-on from the store, and instead made an irrevocable shut down choice.
I’m glad the Add-on was useful to people while it lasted!
There are plenty of articles and Youtube videos showing how to switch the Option and Command keys when you adapt a PC keyboard for use on the Mac. (System Prefs – Keyboard – Modifier Keys – Choose the correct keyboard, then switch Command and Option).
But even after doing that, the Options key wouldn’t work. I finally noticed the “Win Lk” light at the top right. Gaming keyboards let you turn off the Windows key in case you accidentally hit it during a game, and that’s the key that is now mapped to Option for my Mac.
Turning if off just requires holding Fn and pressing F8, which also has a “no Windows” symbol.
In a recent iOS update, Apple started requiring an extra click of the home button to unlock your iPhone, instead of just allowing a “click with finger resting on Touch ID” to unlock the phone. It’s not a big change, but just different enough to be frustrating.
To go back to the original behavior, go to Settings – General – Accessibility – Home Button and enable “Rest Finger to Open”.
Here are the steps that I’ve used to move some Windows Server EC2 instances to a different AWS account. This method should work for any OS, but I’ve only tested with Server 2008 R2.
The simple version:
- In the source account, stop the instance
- Make a snapshot of the instance’s system volume
- Share the snapshot with the destination account number
- In the destination account, make a volume from the snapshot
- Create an instance with the same OS as the source instance
- Detach and delete the new instance’s system volume
- Attach the volume from step 4
- Start the instance
The detailed version:
Zapier has published a free ebook called The Ultimate Guide to Google Sheets, and it mentions my “Insert and Delete Cells” Sheets Add-on!
The Google Spreadsheets API allows you to send simple queries to retrieve subsets of the rows in your sheet – it’s as easy as appending the query to the end of the URL.
For example, if I have a column called “Quantity” and want rows with Quantity greater than 9, I would append ?sq=quantity>9 to the end of the URL and issue the GET request (don’t forget that column names are always converted to lowercase and spaces are removed).
The other method is to add the sq query parameter to the Guzzle $httpClient. I’ve illustrated this in my example code.
See this page for more info.
The Rackspace web dashboard allows you to attach a certificate and private key to a cloud load balancer for ssl offloading. But even though the load balancers support SNI and multiple certificates, neither the web console nor the “rack” command line scripts expose this functionality.
If you want to attach additional certificates to a load balancer from the command line, check out racklb.sh at https://github.com/karlkranich/racklb. The script doesn’t do a lot yet, but does the two things that I miss most from the web console:
- Expose the private (ServiceNet) address of a load balancer
- Manipulate the certificate mappings
To get started with it, clone the repo and check out the readme and “racklb.sh -h”
Thanks to Adam Bull at www.haxed.me.uk for the inspiration and sed magic in this script!