Dave Copeland
@davetron5000.com
Author of Sustainable Web Development with Ruby On Rails, https://sustainable-rails.com - former Mood Health, Stitch Fix, LivingSocial, Opower. I play bass and love to scuba dive.
FINALLY!!!! I've been waiting for my Nest Smoke alarm to age out and now I am finally free of the horrible Nest Ecosystem. From a learning thermostat that could not learn, to a dogshit slow app for video, to having an absolute hard-on for Google Home…good riddance.
September 15, 2025 at 6:19 PM
FINALLY!!!! I've been waiting for my Nest Smoke alarm to age out and now I am finally free of the horrible Nest Ecosystem. From a learning thermostat that could not learn, to a dogshit slow app for video, to having an absolute hard-on for Google Home…good riddance.
I guess Bluesky doesn't want me to post just a gif?!?! Neither JustCrossPost nor Bluesy web would post this Enzo gif I worked HARD on. Mastodon let me.
July 24, 2025 at 2:03 PM
I guess Bluesky doesn't want me to post just a gif?!?! Neither JustCrossPost nor Bluesy web would post this Enzo gif I worked HARD on. Mastodon let me.
My grandmother (long passed) did ceramics as a hobby and made this for me a long time ago, in a galaxy far far away. He is capable of storing coins, pleas for help, and battle station plans.
#MayThe4th
#MayThe4th
May 4, 2025 at 11:05 PM
My grandmother (long passed) did ceramics as a hobby and made this for me a long time ago, in a galaxy far far away. He is capable of storing coins, pleas for help, and battle station plans.
#MayThe4th
#MayThe4th
Since these sites have responsive views, it works well. Here's what it looks like:
March 7, 2025 at 10:15 PM
Since these sites have responsive views, it works well. Here's what it looks like:
It occurs to me that you can override Class.new to do this and make a much cleaner API.
Any reason not to do this regularly? Feels weird to return `nil` from a constructor, but it would be darn handy a lot of times.
https://gist.github.com/davetron5000/1a6b394f4295f1b70062baab013d297f#file-new-rb
Any reason not to do this regularly? Feels weird to return `nil` from a constructor, but it would be darn handy a lot of times.
https://gist.github.com/davetron5000/1a6b394f4295f1b70062baab013d297f#file-new-rb
February 13, 2025 at 5:32 PM
It occurs to me that you can override Class.new to do this and make a much cleaner API.
Any reason not to do this regularly? Feels weird to return `nil` from a constructor, but it would be darn handy a lot of times.
https://gist.github.com/davetron5000/1a6b394f4295f1b70062baab013d297f#file-new-rb
Any reason not to do this regularly? Feels weird to return `nil` from a constructor, but it would be darn handy a lot of times.
https://gist.github.com/davetron5000/1a6b394f4295f1b70062baab013d297f#file-new-rb
When creating data types in Ruby, I often make a factory method that does 2 things you can't do in an initializer:
1 - if the argument is nil, return nil
2 - if the argument is already of the data type, return it
https://gist.github.com/davetron5000/1a6b394f4295f1b70062baab013d297f#file-factory-rb
1 - if the argument is nil, return nil
2 - if the argument is already of the data type, return it
https://gist.github.com/davetron5000/1a6b394f4295f1b70062baab013d297f#file-factory-rb
February 13, 2025 at 5:32 PM
When creating data types in Ruby, I often make a factory method that does 2 things you can't do in an initializer:
1 - if the argument is nil, return nil
2 - if the argument is already of the data type, return it
https://gist.github.com/davetron5000/1a6b394f4295f1b70062baab013d297f#file-factory-rb
1 - if the argument is nil, return nil
2 - if the argument is already of the data type, return it
https://gist.github.com/davetron5000/1a6b394f4295f1b70062baab013d297f#file-factory-rb
How much would life improve if a) this code was in Ruby stdlib and b) `nil?` was a protocol to control falseyness in an if statement? I can't imagine a single problem this would cause nor any way to abuse these features 😈
https://gist.github.com/davetron5000/e3fd4b90eadf22ca2bd192607769e918
https://gist.github.com/davetron5000/e3fd4b90eadf22ca2bd192607769e918
February 10, 2025 at 7:24 PM
How much would life improve if a) this code was in Ruby stdlib and b) `nil?` was a protocol to control falseyness in an if statement? I can't imagine a single problem this would cause nor any way to abuse these features 😈
https://gist.github.com/davetron5000/e3fd4b90eadf22ca2bd192607769e918
https://gist.github.com/davetron5000/e3fd4b90eadf22ca2bd192607769e918
I hope Sonos survives and is better. I'm looking at their 10K and it's wild to me that they have shit all over their app with their stupid radio product, given that it's one part of just 5% of their revenue.
Their mission statement should be:
"Hit play, hear music"
Their mission statement should be:
"Hit play, hear music"
January 15, 2025 at 2:46 PM
I hope Sonos survives and is better. I'm looking at their 10K and it's wild to me that they have shit all over their app with their stupid radio product, given that it's one part of just 5% of their revenue.
Their mission statement should be:
"Hit play, hear music"
Their mission statement should be:
"Hit play, hear music"
It will never cease to amaze me that a website that just shows a bunch of boxes of text a) cannot reliably update its UI and b) constantly uses so much memory that Safari has to reload it.
December 12, 2024 at 2:56 PM
It will never cease to amaze me that a website that just shows a bunch of boxes of text a) cannot reliably update its UI and b) constantly uses so much memory that Safari has to reload it.
Yard Issue: https://github.com/lsegal/yard/issues/1434 (fork of yard has a fix that also does not work)
[Screenshot of rdoc showing the name of a method as 'layout (= "default")']
[Screenshot of rdoc showing the name of a method as 'layout (= "default")']
December 2, 2024 at 11:40 PM
Yard Issue: https://github.com/lsegal/yard/issues/1434 (fork of yard has a fix that also does not work)
[Screenshot of rdoc showing the name of a method as 'layout (= "default")']
[Screenshot of rdoc showing the name of a method as 'layout (= "default")']
[JustCrossPost didn't include this screenshot]
November 26, 2024 at 2:57 PM
[JustCrossPost didn't include this screenshot]
Example: http status codes. They are not numbers: you don't add them, multiple them, etc. There are MANY fewer http status codes than there are numbers, e.g. 99 is not an http status code.
gist.github.com/davetron5000...
Kinda verbose, but you write it once and it pays dividends
gist.github.com/davetron5000...
Kinda verbose, but you write it once and it pays dividends
November 13, 2024 at 7:18 PM
Example: http status codes. They are not numbers: you don't add them, multiple them, etc. There are MANY fewer http status codes than there are numbers, e.g. 99 is not an http status code.
gist.github.com/davetron5000...
Kinda verbose, but you write it once and it pays dividends
gist.github.com/davetron5000...
Kinda verbose, but you write it once and it pays dividends