Skip to content

Instantly share code, notes, and snippets.

Terms of Service
Last updated: February 17, 2026
These Terms of Service ("Terms") govern your use of our meetup reminder SMS service ("the Service"). By opting in to receive messages, you agree to these Terms.
What the Service Does
The Service sends SMS reminders about upcoming in-person meetups and allows you to RSVP by replying to those messages. It is a personal, non-commercial project run for a small group of people who know each other.
Opting In
The Service is opt-in only. You will only receive messages if you have explicitly agreed to participate. By opting in, you consent to receive recurring SMS messages related to meetup coordination.
Opting Out
You may opt out at any time by replying STOP to any message. You may also contact us directly to be removed. Standard message and data rates from your carrier may apply.
Your Responsibilities
Privacy Policy
Last updated: February 17, 2026
This Privacy Policy describes how your personal information is collected, used, and shared when you participate in our meetup reminder service ("the Service").
What We Collect
When you opt in to the Service, we collect:
Your phone number — so we can send you meetup reminders and RSVP confirmations via SMS.
Your name — so we can identify you within the group.
Your RSVP responses — so we can coordinate attendance for meetups.

Keybase proof

I hereby claim:

  • I am jondahl on github.
  • I am jondahl (https://keybase.io/jondahl) on keybase.
  • I have a public key ASB5sEzrI01_cIXCStV1CH84V067GeRHa6I2qK_aVCS1UAo

To claim this, I am signing this object:

@jondahl
jondahl / has_many :dependent => :restrict
Created August 18, 2009 23:56
9 lines of code to add a :dependent => :restrict option to has_many (equivalent of "ON DELETE restrict")
when :restrict
method_name = "has_many_dependent_restrict_for_#{reflection.name}".to_sym
define_method(method_name) do
unless send(reflection.name).empty?
# change to named error...
raise ActiveRecord::StatementInvalid, "can't delete record because of dependent #{reflection.name}"
end
end
before_destroy method_name
@jondahl
jondahl / gist:91930
Created April 8, 2009 18:59
Rake task to anonymize data
#
# Copyright (c) 2009 Jonathan Dahl
#
# Released under the MIT license. See below for details.
#
namespace :db do
namespace :data do
desc "Anonymize sensitive information"
task :anonymize => :environment do
@jondahl
jondahl / invalid_records.rake
Created March 3, 2009 19:56
Rake task to look for all invalid ActiveRecord records in a Rails application
namespace :db do
namespace :data do
desc "Find all invalid ActiveRecord records"
task :invalid_records => :environment do
models = Object.subclasses_of(ActiveRecord::Base)
models.each do |model|
begin
model.all.each do |record|
if !record.valid?
puts "#{model} #{record.id} is invalid: #{record.errors.full_messages.to_sentence}"