Skip to content

Instantly share code, notes, and snippets.

View dkam's full-sized avatar

Dan Milne dkam

View GitHub Profile
remote_transmitter:
pin: GPIO5
# RF uses a 100% carrier signal
carrier_duty_percent: 100%
button:
- platform: template
name: Light Off Raw
on_press:
- remote_transmitter.transmit_raw:
{
"requests": [{
"to": "\/dsiot\/edge.adp_i?filter=pv,md",
"op": 2
}, {
"op": 2,
"to": "\/dsiot\/edge.adp_d?filter=pv,md"
}, {
"to": "\/dsiot\/edge.adp_f?filter=pv,md",
"op": 2
@dkam
dkam / gist:75b750796faf8dd42af1d5fcccc65544
Last active July 10, 2024 06:40
Kamal Ruby onRails deployment errors
INFO [40a72eff] Finished in 1.109 seconds with exit status 0 (successful).
 ERROR /usr/local/bundle/ruby/3.3.0/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30: warning: /usr/local/lib/ruby/3.3.0/csv.rb was loaded from the standard library, but will no longer be part of the default gems since Ruby 3.4.0. Add csv to your Gemfile or gemspec.
WARNING:  you don't own a lock of type ExclusiveLock
bin/rails aborted!
ActiveRecord::ConcurrentMigrationError:  (ActiveRecord::ConcurrentMigrationError)

Failed to release advisory lock

#!/usr/bin/ruby
require 'rubygems'
require 'nokogiri'
XSL = <<-EOXSL
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="ISO-8859-1"/>
<xsl:param name="indent-increment" select="' '"/>
<xsl:template name="newline">
@dkam
dkam / puma_dev_ssl.md
Last active June 10, 2024 01:43
Make PumaDev work with Ruby HTTP Libraries

Puma Dev creates it's own SSL certificate to provide the https://hostname.localhost feature and adds it to your system certificates - but Ruby clients doen't use that. So you need manually add the PumaDev cert to the certs Ruby uses.

For Rails, add a file like config/initializers/puma_dev_client_ssl.rb - but we don't want this in production. Depending on your setup, you may need it in test also.

if Rails.env.development?

  unless File.exist?("/tmp/cert.pem")
    # Create a new cert file including both Puma Dev ssl certificate and Ruby's default certs
@dkam
dkam / set readonly policy on bucket.txt
Last active June 5, 2024 07:00
Set my minio bucket to be public ( anonymous ) readable
mc anonymous set download myalias/mybucket
@dkam
dkam / kv.md
Last active June 4, 2024 08:55
List of key value stores
@dkam
dkam / mp3tom4b.rb
Last active May 17, 2024 00:50
Convert a bunch of mp3 files into an m4b file
#!/usr/bin/env ruby
require 'open3'
require 'tempfile'
##
# Create a single m4b file from multiple mp3 files.
# Finds all *.mp3 files, merges them, in lexigraphical order, creates chapters based on the mp3 files, adds cover.jpg as a cover
## Todo
@dkam
dkam / as_audit.rb
Last active May 15, 2024 23:34
Ensure all objects in s3 bucket are referenced in ActiveStorage::Blob
## Checking files in your bucket are referenced by ActiveStorage
require 'aws-sdk-s3'
s3_client = Aws::S3::Client.new(
region: "us-east-1",
access_key_id: Rails.application.credentials.dig(Rails.env, :s3, :access_key_id),
secret_access_key: Rails.application.credentials.dig(Rails.env, :s3, :secret_access_key),
endpoint: "https://myendpoint.com",
force_path_style: true
@dkam
dkam / gist:78695d2272ed3f835f984148b0e7cff4
Created April 26, 2024 06:31
Create iOS ringtone from mp3
ffmpeg -i input.mp3 -c:a aac -b:a 192k -vn output.m4a && mv output.m4a output.m4r
# -i input.mp4: Specifies the input video file (replace with your input file path).
# -vn: Tells FFmpeg to ignore the video stream.
# -c:a aac: Sets the audio codec to AAC.
# -b:a 192k: Sets the audio bitrate to 192 kbps (adjust as needed).
# output.m4a: Specifies the output M4A file.