David Hannemeier Hansson Background Cover
David Hannemeier Hansson Avatar

David Hannemeier Hansson

Author, Creator of Ruby on Rails, Founder & CTO at Basecamp & HEY

Nailed it! (via @whyarentucoding / https://t.co/W1UcV56f5X). https://t.co/gZewCQBuGk

over 1 year ago

Tailwind CSS for Rails allows you to use Tailwind without setting up the entire JavaScript build pipeline, but still take advantage of purging for production. https://t.co/1ziAW0FaSa

Saved to
Rails David Hannemeier Hansson
over 1 year ago
over 1 year ago
Post

Debating OSS with DHH – Matt Mullenweg

says:
says:

Thanks Matt for sharing the podcast.

Hi Matt – great conversation. I can see both sides of the story but I also believe nothing is either good or bad. It all depends how it’s used. So money can be use for good or bad. Influence can be used for good or bad.

Personally, I love how WordPress is used as a open source optimizer and democratizer.

I am currently building a global digital nation working remotely around the world, connecting top professionals with full-time, stable remote work they can do from anywhere. Prior to that , I built remote teams on 4 continents for Honeywell Aerospace. My cofounder engineers open source solutions so our platform was build 90% on open source. As a matter of fact, we started 100% on WordPress. Our community now includes over 78,000 professionals from 121 countries, including employees from Fortune 500 and top tech companies. This would be incredibly difficult, if not impossible, if not for open source solutions.

Matt says:

The other week I ended up going back and forth in tweets with David Heinemeier Hansson, it wasn’t going anywhere but he graciously invited me to their podcast and we were able to expand the d…

Read More
Hide

Hotwire, Stimulus, and Turbo have moved to a new domain. You can now find them at https://t.co/ybyRh3VOcL. The code remains at https://t.co/bGAfkwNhhD.

Saved to
Tech David Hannemeier Hansson
about 1 year ago
about 1 year ago

"Open source is a like magical waltz between strangers. We have to find our dancing feet together, and quickly, because otherwise it’s awkward." https://t.co/QrQcf7Y3Uu

about 1 year ago
After two decades of open source participation, I’ve found it easier to cultivate community collaboration around software that’s obviously a little broken. Waiting until the project is pristine before sharing it with the world creates an aura of perfection that intimidates and alienates. So releasing before every bug has been squashed, every feature filled in, every facet documented meticulously improves the odds that it’ll attract the interest of others to help make all that happen. That’s not a license to release a busted mess, don’t get me wrong. But it is an invitation to consider exactly how long to wait before you share with the world. And your own bar for the quality of the contributions, especially in the early days. Where getting more that’s mostly right rather than less that’s entirely so helps create momentum. Open source is a like magical waltz between strangers. We have to find our dancing feet together, and quickly, because otherwise it’s awkward. Most projects start out with just one or a few people on the floor. It’s intimidating to step out there with them in all circumstances, but especially so if it looks like every step is perfectly in sync and every sequence a success. Once the dance floor is full, it’s harder to notice, and it doesn’t really matter as much. But it’ll never get there unless a few brave beginners dare participate. Would you care to dance?

After two decades of open source participation, I’ve found it easier to cultivate community collaboration around software that’s obviously a little broken. Waiting until the project is pristine before sharing it with the world creates an aura of perfection that intimidates and alienates. So releasing before every bug has been squashed,...

Read More
Hide

Turbo v7.0.0-beta.8 released. https://t.co/JNujvieo0q https://t.co/nuLiAZykI3

about 1 year ago

"Taken all together, even just this promise of a chance to strike at the heart of big tech and end their reign of abuse is invigorating. It’s far more than I could ever have hoped for when I showed to testify before the House Antitrust Subcommittee." https://t.co/BPFrFiBrfM

Saved to
Big Tech David Hannemeier Hansson
about 1 year ago
about 1 year ago

"It's not that you have to rewrite everything from scratch all the time, but taking the effort to ensure that new code can be written to the best of your abilities is key to enjoying the work." https://t.co/9J2hpzkZm0

about 1 year ago

"There's also simply no way users are going to willingly accept the premise of spy pixels if Apple presents the privacy dangers as clearly and as honestly as we've done in HEY." https://t.co/ioZtxTuKBN

Saved to
Big Tech David Hannemeier Hansson
about 1 year ago
about 1 year ago
It always seems impossible until it’s done. And few fights have demonstrated this more than that against the monopoly abuses of big tech. For over a decade, the likes of Google, Apple, Amazon, and Facebook have been able to get away with murder in digital markets without fear of consequences. Wrapping their tentacles ever more forcefully around the world economy, threatening industry upon industry with subjugation, and watching their valuations rocket into the trillions, as investors grew giddy at the sight of the spoils. But after several false starts at the US state level, we’re finally witnessing the one governing body in the US that just might be large and powerful enough to withstand the army of lobbyists, the threats of retribution, and the sheer towering presence of trillions of dollars worth of power: The United States Congress. Five bills were introduced last week by the chairman of the House Antitrust Subcommittee, David Cicilline, and his fellow committee members. I had actually put off reading the bills directly for several days, because I feared the usual disappointment. That these bills were going to be timid, around-the-edges, squint-to-see-silverlining type of deals. I shouldn’t have. These bills are bold. Really bold. Well, some of them. Others are more like, oh, yeah, that makes sense. Like the Merger Filing Fee Modernization Act by Neguse, which simply asks mega corporations to pay for proper inquiries into their proposed merges. Totally sensible, but not exactly defining a new epoch. Next is the ACCESS Act by Scanlon, which mandates interoperability for big tech, such that users can always take their data elsewhere. I think this is largely sensible, just like mandating portable phone numbers is, but I don’t think it’s exactly going to up-end the industry. You can already export all your emails from Gmail, yet barely anyone does. Still. Good basic consumer protection. Then you get to the Platform Competition and Opportunity Act by Jeffries, which is basically a ban on acquisitions for big tech. Wow. Okay, now you have my attention. You’re telling me that Facebook wouldn’t have been able to buy Instagram and WhatsApp, as a matter of basic law, not a prolonged merger approval inquiry? That’s bold. Next up is the Ending Platform Monopolies Act by Jayapal. Which is essentially Elizabeth Warren’s presidential campaign proposal that you can’t both own the market place and sell on it. That’s super-duper bold. Essentially banning Amazon from carrying its own product lines on Amazon.com. But it also includes a ban on tying services, so Apple wouldn’t be able to require app developers to use their in-app purchasing platform in order to list on the App Store. Or ban competitors from access to the App Store. But I’ve saved the best for last. Cicilline’s own bill, which is cosponsored by republicans Ken Buck and Lance Gooden (and fellow democrat Jerry Nadler), essentially reads like a Christmas wishlist for any app developer or user of big tech. This bill has it all. It’s the American Choice and Innovation Online Act . And it’s amazing. You should go read it yourself. Hell, if you care about any of this stuff, you should read all the bills directly. They’re mercifully short, relatively free of legal jargon, and strikingly bold. But anyway, here’s a brief recap of the American Choice and Innovation Online Act:
All this is backed up by the potent penalties of up to 15% of the platform owner’s revenue or 30% of injured party’s revenue, whichever is larger. There’s some poetic justice in those rates, as they’re exactly the same as the payment extortion fees demanded by Apple and Google of some app developers. The FTC and the antitrust division’s attorney general are in charge of enforcing general compliance with the law. But injured parties are also eligible to sue directly under the law. Not just for penalties and damages, but also for injunctions. If this law had been on the books last summer, we would never have had to endure those awful two weeks of intimidation and threats from Apple when we launched HEY. Presumably Apple wouldn’t even have tried, because there would have been no 3.1.1 , but even if they would have, the case to get an injunction would have been a slam dunk. Didn’t I tell you these bills were bold? If they pass Congress in anywhere near their current forms, we have a veritable revolution on our hands for the digital economy. Powerful protections against big tech abusing their monopoly advantage to shakedown individual developers and entire industries. Strong boundaries to prevent the platforms from expanding their power and marketshare even further through predatory acquisitions. Excellent consumer protections to ensure you can always get your data out, and have the choice to install your preferred default apps for all kinds of services. But the party isn’t over yet! The main enforcer of all these new bills will be the Federal Trade Commission (FTC), and guess who just got confirmed as the chair of that commission? LINA KAHN !! You seriously could not wish for a more qualified or determined enforcer of these new laws than her. She’s been instrumental in shaping the modern outlook on antitrust, and moving us beyond that dreaded and outdated “consumer welfare” standard that has allowed big tech to run roughshod over everyone else unopposed. She was a driving force behind the House Antitrust Subcommittee’s series of hearings and the ultimate report on digital markets that directly lead to all these new bill proposals. She’s big tech’s worst nightmare and the dream chair for the rest of us. Sure, you say, but these bills still have to pass Congress before they become law. True, but look at the sponsors for all of these bills. Each and every one of them have sponsors on both the democratic and republican side. Opposition to big tech’s monopoly abuses is one of the very few truly bipartisan issues in Washington these days. I think these bills have an excellent chance to pass exactly because of that. Taken all together, even just this promise of a chance – just one chance! – to strike at the heart of big tech and end their reign of abuse is invigorating. It’s far more than I could ever have hoped for when I showed up in Colorado in January of last year to testify before the House Antitrust Subcommittee . It more than makes up for the disappointment of seeing Apple and their lobbyists kill the democratic attempts at accountability at the state level. And as if all of this wasn’t enough, it’s not like things have been quiet on the eastern front either. In Europe, the German competition authorities, called The Bundeskartellamt, just announced they’re pursuing Apple for violations of the a new January 2021 amendment to the German Competition Act. This act gives more teeth and more bite to investigating and sanctioning monopoly abusers, and Apple is the first target in their sights. At Basecamp , we continue to work with other competition authorities in Europe as well. Just like we’ve done here in the US. Because the power of big tech is not constrained to a single country or territory. It’s a global power that demands a global response. And after more than a decade of slumber on this issue, the leviathans around the globe are finally waking up, and big tech is about to meet the one real obstacle to world domination: Sovereign governments with democratic mandates. It’s on.

It always seems impossible until it’s done. And few fights have demonstrated this more than that against the monopoly abuses of big tech. For over a decade, the likes of Google, Apple, Amazon, and Facebook have been able to get away with murder in digital markets without fear of consequences. Wrapping their tentacles ever more forceful...

Read More
Hide
about 1 year ago

"If HEY had just been a modest, slow-growing business, we probably could have juggled both with a team the size of what we were. But it isn't, so we can't. HEY has signed up far more customers, far faster, than any new product we've ever launched before." https://t.co/ypgpI1tvDe

about 1 year ago
Hotwire is now powering Basecamp 3 on the alpha version we're running internally, and I thought it'd be helpful to document the upgrade process. Although upgrading is perhaps a big word. It's not like we rewrote all the JavaScript we have to make this happen. Coexisting is probably a better term. While existing JavaScript code stays as it is, we're now set for all our future development to use Turbo Frames , Turbo Streams , and Stimulus 2.0 . Yay! Basecamp 3 was originally built with Rails UJS, Turbolinks, and Stimulus. In our new setup, Rails UJS is still there to handle data-remote/data-method forms and links for the legacy code, but it leaves alone any link or form tagged with data-turbo=true. Making this so required an upgrade to the UJS event handler selectors , which will be part of the next Rails release. And if you are still using rails/jquery-ujs (like Basecamp!), there's a new version 1.2.3 with the updated selectors as well. It also required that all these new forms and method links we want flowing through Turbo instead of Rails UJS be tagged with that data-turbo=true attribute. Something you don't need to do if you're starting with Turbo from the beginning, like we did with HEY, but it's a small price to pay for coexistence. The upgrade to Stimulus 2.0 (from 1.1) took a little more effort, but solely because we wanted to upgrade early to the new target format of data-[identifier]-target="[name]" instead of data-target="[identifier].[name]" (to get rid of the deprecation warnings). Although it was easy enough, I still managed to wrongly turn a few of these conversions into duplicate data-[identifier]-target attributes. So pay attention to that. The meat of the coexistence work was in replacing Turbolinks with Turbo. Turbo Drive is a direct continuation of Turbolinks, but it still required a fair bit of work to update all the namespaced events, and ensure that the Ajax requests coming from Rails UJS would play nice with 302 redirects. That was something the old turbolinks-rails gem included in the box, but turbo-rails does not (since it's not needed for greenfield work). There was enough steps in that process to warrant documenting them in the turbo-rails repository . As part of this work, I caught up with both the Turbo and Stimulus repositories. I released a couple of new versions of Turbo/Turbo Rails, which both fixed a number of bugs, but also gave us some great new powers, like before/after actions , built-in method links , and deduping of existing elements on the append/prepend actions . We're up to beta 7 now, and will keep going on the beta process for a bit longer while clearing out the backlog of pull requests and issues, but then it'll soon be time for a proper 7.0 final release as well. Stimulus is also due for a 2.1 release in the near future, which will include a helpful debug mode , previous value passing on the ValueChanged callbacks , default values , and a few other overdue enhancements. This kind of upgrade work is something it's so easy to put off for existing applications. What you have already works, right? But if you keep doing that forever, you eventually end up with a codebase that's so far from the state of the art that it won't be any fun to work in it. It's not that you have to rewrite everything from scratch all the time, but taking the effort to ensure that new code can be written to the best of your abilities is key to enjoying the work. And as you extend existing features, follow the principle of leaving the campsite better than you found it. For Basecamp, that means rewriting any of that old jquery code when we're doing substantial work around features using it. As the baboon said : "It gets easier. Every day it gets a little easier. But you got to do it every day. That's the hard part. But it does get easier."
bojack-horseman-baboon.png

Hotwire is now powering Basecamp 3 on the alpha version we're running internally, and I thought it'd be helpful to document the upgrade process. Although upgrading is perhaps a big word. It's not like we rewrote all the JavaScript we have to make this happen. Coexisting is probably a better term. While existing JavaScript code stays as...

Read More
Hide

"Enter Basecamp 4. For the past year or so, we've been in preproduction, while we've been riding the wild wave of success that has been HEY.. So another rewrite, yeah? No." https://t.co/2sBma6decS

about 1 year ago

"We needed a support tool, and we hadn't built one, so we found ourselves paying for it many, many times over anyway. Inertia is a powerful force. It took living with HEY's Post Office to realize how badly we needed such a tool for Basecamp." https://t.co/mihg6YuXeR

about 1 year ago

"So far proponents of targeted ads have been able to claim that actually many people like to be tracked because getting "relevant ads" is totally worth handing over all your personal data. The results from reality are in. 96% don't. Ban targeted ads now." https://t.co/vl6Ng7XpFA

about 1 year ago

"Can you imagine trying to submit an app for a new system called the web today? If the web hadn't existed prior to the iPhone, there's no way in hell Apple would ever have approved a browser with unfettered, unfiltered access today. No way." https://t.co/fz0DkmwtqP

about 1 year ago
Post

Email spy pixels are dead now that Apple will follow HEY

There's no advocacy as effective as competition. I could have yelled and screamed about email spy pixels till I was blue in the face, but it was building a serious set of defenses into HEY that turned the argument into action. And now the entire email tracking industry is about to be turned upside down, as Apple has announced they'll follow our lead, and block those abusive little beacons this Fall. Bam. That's what we learned at WWDC yesterday. iOS 15, iPadOS 15, and macOS Monterey will all feature a new version of Apple's own Mail app that, just like HEY, can block email spy pixels, as well as route requests through a proxy to prevent leaking your IP address. Unfortunately, it sounds like Apple is going to make this new protection opt-in, but hopefully they'll present the option when they detect a spy pixel, just like HEY, not just hide it in some obscure settings panel somewhere.
mails-new-spy-pixel-blocker.png
Either way, and given Apple's monopoly advantage with their preinstalled Mail app, we don't need much of an uptake from what they're calling Mail Privacy Protection to break the dam on spy pixels. You can't really say anything authoritatively about open rates if 5-10-30-50% of your recipients are protected against snooping, as you won't know whether that's why your spy pixel isn't tripping, or it's because they're just not opening your email. There's also simply no way users are going to willingly accept the premise of spy pixels if Apple presents the privacy dangers as clearly and as honestly as we've done in HEY. Apple already showed that with their drive to block unique ad identifiers for cross-app tracking in iOS 14.5: 96% of users in the US have declined to let apps track them like that! And email spy pixels are far worse and much creepier. It's going to be really interesting to see how long it takes the email tracking industry to adapt. I guess they'll probably cling to the wishful thinking that carried Facebook and other tracking giants until reality of Apple's App Tracking Transparency change provided the hard wall. People really do not like being tracked in everything they do online, and given the choice, will absolutely block it. But hopefully the smart providers will see the writing on the wall, and voluntarily cut the crap on spy pixels. It's also fun to think about the fact that this most likely would never have happened if Apple had been successful killing HEY last year . Apple hadn't bothered to do anything about spy pixels over the past decade, but when we brought the issue to the forefront, and it was written up by the likes of the BBC , they felt forced to follow suit. This is what the big fish like Apple never seem to be able to internalize. That they need a rich ecosystem of small fish to push new ideas forward. That if they eat or starve us all, they might get the whole pond to themselves, but it'll be an awfully stale one. Anyway, regardless of the antitrust implications here, this is good. HEY's implementation may be more sophisticated, may have been earlier, but a niche player like us were never going to be able to turn the game upside down with a single shot like Apple can. Goodbye spy pixels, you won't be missed!
hey-blocking-spy-pixel.png

There's no advocacy as effective as competition. I could have yelled and screamed about email spy pixels till I was blue in the face, but it was building a serious set of defenses into HEY that turned the argument into action. And now the entire email tracking industry is about to be turned upside down, as Apple has announced they'll f...

Read More
Hide
about 1 year ago

"That idea of being done was the most compelling part of receiving a print newspaper. Most people are just not going to go back to print, though. That doesn't mean you have to give up on done. I've been trying a new experiment, and you might like it too." https://t.co/mfo4j9oh7I

about 1 year ago

Here's the story about how we made HEY's The Feed so much faster: https://t.co/0XCtWNZhQj https://t.co/hUrgITV3Yh

about 1 year ago