Longtime software developer, specializing in Ruby, with European and Asian experience and language expertise.

Joined April 2008
434 Photos and videos
As with AI, Linters like Rubocop should play a servant, not master, role, subject to critical supervision. After a substantial session modifying code to conform to a lint rule, I pushed back and realized the rule was a net negative for the code base.
1
53
Keith Bennett retweeted
Huh, so that's why text is called a string
420
1,623
20,676
1,152,095
Hey @loom & @Atlassian, the incompetence is astounding. First, the email address you put on your invoices is unmonitored. Then when I find and complete your help form, *there is no Submit button*!!!
1
130
By the way, the only dropdown values were for Confluence, and when I selected the free text input it claimed that my invoice number was invalid.
37
Well said ..
America is now undeniably a country where a small group of wealthy, politically connected people, are protected by the law, but not bound to it; and where the rest of us are bound by the law, but not protected by it.
44
Keith Bennett retweeted
Pete Hegseth is coming after what I earned through my twenty-five years of military service, in violation of my rights as an American, as a retired veteran, and as a United States Senator whose job is to hold him—and this or any administration—accountable. His unconstitutional crusade against me sends a chilling message to every retired member of the military: if you speak out and say something that the President or Secretary of Defense doesn’t like, you will be censured, threatened with demotion, or even prosecuted. Every servicemember knows military rank is earned, not given. It's earned through the risks you take, the sacrifices you and your family make, the leadership you display, and the respect you earn from the superiors who recommend you for promotion. From the moment I drove through the gates of Naval Air Station Pensacola, to when I was shot at over Iraq and Kuwait, to when I landed Space Shuttle Endeavour on its last mission, I gave everything I had to this country and I earned my rank of Captain, United States Navy. Now, Pete Hegseth wants our longest-serving military veterans to live with the constant threat that they could be deprived of their rank and pay years or even decades after they leave the military just because he or another Secretary of Defense doesn’t like what they’ve said. That’s not the way things work in the United States of America, and I won’t stand for it. In 1986, at just 22 years old, I took an oath to protect and defend the Constitution. I have fulfilled that oath every day since, but I never expected that I would have to defend it against a Secretary of Defense or President. But I’ve never shied away from a fight for our country, and I won’t shy away from this one. Because our freedom of speech, the separation of powers, and due process are not just words on a page, they are bedrock principles of our democracy that has lasted 250 years and will last 250 more as long as patriotic Americans are willing to stand up for our rights. So today, I filed a lawsuit against the Secretary of Defense because there are few things as important as standing up for the rights of the very Americans who fought to defend our freedoms.
18,039
10,535
59,477
4,548,305
Keith Bennett retweeted
14 Nov 2025
Posting this and waiting for the comments. This should be good.
3,262
729
6,657
372,452
Keith Bennett retweeted
6 Oct 2025
Replying to @StephenM @samstein
9
80
449
10,519
Eloquently said.
5 Oct 2025
Replying to @StephenM
Stephen, let’s take a deep breath. Let’s remember why we signed up for this fight: to defend a republic where power bows to principle, not bully posturing. You call Portland’s protests a “terrorist assault” on ICE, but let’s step back into reality. What’s happening there is speech, constitutionally protected, born of outrage at family separations and federal overreach. These aren’t death squads in the streets; they’re desperate pleas for a country that honors both security and dignity. A Trump-appointed judge, Karin Immergut, didn’t cook up an “insurrection.” She applied the law. She recognized that neither the Insurrection Act nor the Posse Comitatus Act allows federal troops to be unleashed at whim. She paused the deployment because she saw that the protests were relatively small, peaceful, and did not justify the use of military force. That restraint is not judicial overreach. It’s precisely what the Founders baked into the system to prevent the drift toward rule by fear. You trumpet “law and order,” yet your instinct is to summon soldiers instead of fixing broken policy. If you want to claim legitimacy, shift from grandstanding to results. Let’s accelerate asylum reviews, deploy humane technology at ports of entry, and bolster agents with better training and oversight, without compromising on cruelty. That’s real leadership, not culture war baiting. And a caution: when you stoke fear, you risk widening cracks between you and the men and women in uniform. Soldiers and agents believe in service, not spectacle. Let’s rebuild those bridges together. Will you help write a better chapter for America, or double down on conflict?
1
104
.@jetbrains Your recent email message about data sharing is contradictory and could lead users to unwittingly share their data if they don't read the entire message (in which case they would be confused about the contradictory messages). See perplexity.ai/search/is-it-j…
1
97
.@CebuPacificAir I was booking a flight on your web site, selected Flexi, *de*selected travel insurance, but the premium was still included at checkout. Tried several times. I then booked on the mobile app without that problem. Also, opt-out for it is sneaky and deceptive. Stop!
2
169
Other than that my experience with you has been good, and I especially appreciate the nonstops from Cebu and Davao to Bangkok. However, the travel insurance issues are annoying and erode my goodwill.
2
124
Also, booking a one way ticket on your web app is weird and annoying. It can't be done on the initial booking form. One has to go to a second form, potentially after already entering the flight information on the first form. How hard could it be to fix that?
1
1
105
Keith Bennett retweeted
If you live in Wisconsin – or have friends or family who do – there’s an important Supreme Court race happening right now. And there’s only one candidate ready to protect the fundamental rights and freedoms of Wisconsinites: Judge Susan Crawford. We’ve all seen how important judges are in protecting our rights, so vote early — don’t wait until April 1st. Find your early vote location: wisdems.org/vote
10,920
22,291
119,137
23,330,155
.@skype A missed call shows up on the iPhone Skype app, but not on either the Android app or the web app (web.skype.com). Unless I'm missing something, this is an egregious bug, & dangerous from the user's viewpoint. Your support pages show many people have this issue.

1
84
@skype This seems to be a widespread pain point, as evidenced by the number of posts on your support web site about it (answers.microsoft.com/en-us/…).

54
TIL that Ruby 3.x eliminated =begin and =end multiline comments. 📷 I have not looked into it deeply, but this seems really unfortunate to me.
1
62
TIL you can separate the downloading of the Mac OS update from the installing by using `softwareupdate --fetch-full-installer` on the command line to download it without installing it. It puts an installation application in /Applications.
2
77
Keith Bennett retweeted
Help wanted! CRuby moved this Ruby stdlib function into a native core function, so it could be used without stdlib and perform better. JRuby needs to do the same! Great way to start contributing! Create native Time#iso8601 · Issue #8476 · jruby/jruby github.com/jruby/jruby/issue…
1
5
15
4,872