I cannot in good conscience remain on a platform that spreads, amplifies, and supports misinformation, hate speech, fascism and conspiracy theories. I'll be putting my account on hold here until things improve and will only be active on Mastodon. @[email protected]
Just Elon Musk quote tweeting the co-leader of far-right party, Britain First, who is sharing a fake Telegraph headline
Seen by almost 1 million people in 15 minutes
Utterly dystopian
My opinion of @elonmusk
I like his cars (I own a 2015 S, and 2023 S), his rockets, his solar energy systems, and his satellite communication system.
I also like his positions on open source and patents.
But I very much disagree with him on a number of issues.
I disagree with how he treats his scientists.
Technology/product development may not need openness and publications to advance, but forward-looking *research* sure does, whether it's in AI, neural interfaces, material science, or whatever.
Secrecy hampers progress and discourages talents from joining the effort.
I also disagree with the hype. I mean, expressing an ambitious vision for the future is great.
But telling the public blatantly false prediction ("AGI next year", "1 million robotaxis by 2020", "AGI will kill us all, let'spause",...) is very counterproductive (also illegal in some cases).
More importantly, I think his public positions on many political issues, journalism, the media and the press, and academia, are not just wrong but dangerous for democracy, civilization, and human wellfare.
Say what you want about "traditional media" but you can't really have reliable information without professional journalists working for a free and diverse press. Democracy can't exist without it, which is why only authoritarian ennemies of democracy rail against the media.
Finally he doesn't seem to hesitate to disseminate batshit-crazy conspiracy theories as long as they serve his interests (e.g. boosting "PizzaGate", "illegal immigrants corrupt elections in the US", "person X is a pedo",...).
One would expect a technological visionary to be a rationalist. Rationalism doesn't work without Truth.
This has become particularly concerning since he bought himself a platform to disseminate his dangerous political opinions, conspiracy theories, and hype.
He has been quite naïve about the difficulties of running a social network and the (legal) necessity of doing content moderation. One can claim to be a 1st Amendment absolutist, but a lot of content *must* be taken down by law, e.g. terrorist propaganda, child exploitation, blatant hate speech (in the EU and other regions).
Then, there is dangerous disinformation that puts public health in danger or corrupts the democratic process. You have to moderate that too.
Content moderation is a complicated problem whose best answer is not an attitude of total laissez-faire but a complex trade-off.
We released DGS Framework 9.0.0, built with Spring Boot 3.3 and GraphQL Java 22 🎉 No breaking changes in DGS itself, but this version requires Boot 3.3. It is backward compatibility with GraphQL Java 21. https://t.co/fKYiEitL3Y #Java#SpringBoot#GraphQL
Want to know why OpenAI's safety team imploded?
Here's why.
Thank you to the company insiders who bravely spoke to me.
According to my sources, the answer to "What did Ilya see?" is actually very simple...
https://t.co/PbVfmH807V
Dart 3.4 is out! 🔥 We're excited to announce complete Wasm support for Flutter Web and a preview of Dart macros to simplify JSON serialization. Learn more in our blog post: https://t.co/ds1fwSXzNv #Dart#Flutter#WebAssembly
At 37signals, three is a magic number.
Nearly all new product work is done by teams of three people. A team of three is usually composed of two programmers and one designer. And if it’s not three, it’s two or one — not four or five. We don’t throw more people at problems, we chisel problems down until they can be tackled by three people, at most.
We rarely have meetings, but when we do, you’ll hardly ever find more than three people on a call. Any conversation with more than three people is typically a conversation with too many people.
What if there are five departments involved in a project or a decision? There aren’t. Too many dependencies. We don’t work on projects like that — intentionally.
What is it with three? Three is a wedge, and that’s why it works. Three has a sharp point. It’s an odd number so there are no ties. It’s powerful enough to make a dent, but also weak enough to not break what isn’t broken. Big teams make things worse all the time by applying too much force to things that only need to be lightly finessed.
The problem with four is that you almost always need to add a fifth to manage. The problem with five is that it’s two too many. And six, seven, or eight on a team will inevitably make simple things more complicated than they need to be.
Just like work expands to fill the time available, work expands to fill the team available. Small, short projects become bigger, longer projects simply because all those people need something to do.
You can do big things with small teams, but it’s a whole hell of a lot harder to do small things with big teams. That’s a disadvantage of big teams! Small things are often all that’s necessary. The occasional big thing is great, but most improvements come as small incremental steps. Big teams can step right over those small moves.
Three keeps you honest. It tempers your ambition in all the right ways. It requires you to make tradeoffs, rather than keep adding things in. And most importantly, three reduces miscommunication and improves coordination. Three people can talk directly with one another without introducing hearsay. And it’s a heck of a lot easier to coordinate three people’s schedules than four or more.
Three is all-in for us.
(Likes and Retweets massively appreciated!)
Today I'm proud to announce the launch of my course: The Ultimate guide to Debugging in Go !
Being able to debug locally and in production is a critical skill for any Go engineer, but it is rarely taught explicitly....until now!
For just this week, you can get 40% off using the code DEBUG (should be automatically applied when clicking this link)
https://t.co/4D5VdSSH5c
This has been a lot of work over many months now, and I'm really proud of what I have made.
For 3 folks who purchase it this week, follow me and retweet this, I'll refund your purchase and give you a code for a friend too. Winners picked next Sunday :)
OK, this has been asked a few times:
here is how to integrate htmx w/ an async auth token workflow:
https://t.co/3GuxsYmpiG
the trick is to use the `htmx:confirm` event to await the token, then stick the token somewhere it can be accessed in the `htmx:configRequest` event
I spent the weekend rewriting our entire product into @htmx_org. I'm planning to write a longer article about this experience in the future, but wow... this was the most fun and productive I've been writing code in 20 years.
I normally hate js libraries, but this was so joyful and I just have to say something about it.
I've been writing code for the web since before the `ActiveXObject('Microsoft.XMLHTTP')` swept in with Windows 2000 and changed the game. I've spent most of the past 25 years building software for the web, not because the web is a particular passion of mine, but purely from the pragmatic ease of deliverability.
In the olden days, distributing software painful beyond words. If you've never felt the pain of a disconnection 7-hours in while downloading FreeBSD over a 56k dial-up connection, or spent hours swapping through 28 1.44MB floppy discs to install the Borland C++ IDE, then it might be difficult to explain how liberating "web development" was at the start of my professional development career.
With web development, I could write code and immediately make those programs available to anyone in the world. Everything we built was _UGLY_, was crammed to the brim with SQL Injection vulnerabilities, and was usually pretty slow, but we'd finally reached a point where distribution was no longer the hardest challenge.
During the next 10 years, web development actually started to get pleasant. We got libraries like Prototype.js, Rico.js, and later jQuery, and the idea that those libraries would normalize-away all the bad parts of supporting multiple browsers and we could focus just on writing our business logic.
The word AJAX originally was a term that meant "Asynchronous Javascript and XML", because in the early days of building clean modern web-apps, the prevailing wisdom was that all of your AJAX calls would be sending HTTP requests to the server and getting back fully-formed chunks of XML.
Also at that time, developers were moving away from the random design of early HTML and there was a big push towards a version of HTML called XHTML (XML-compliant HTML). That was where we first started using a trailing slash on self-closing HTML tags like `<img />`, and with AJAX, if our HTML was valid XML, we could take the response directly from the server and start putting it into place with `.innerHTML`.
But writing XML has always sucked, and several years later JSON took over as the dominant standard of sending structured data to and from APIs. In general, this was a HUGE win over dealing with malformed XML and so everyone rightfully switched over.
What we didn't realize though was what we were losing. In the year 2003, when I wanted to update a div on a page without a full reload, I would make an AJAX request to one of our prebuilt server side components and get an XHTML representation of that component with whatever content had been updated in the database, and would immediately dump it right into the page. No parsing, no worrying about fields, just a single assignment to a DOM node's `.innerHTML`.
As we moved more into the JSON era, now we all decided that every endpoint should respond with JSON, so we built a version of the page that loaded with HTML, and then APIs that would send back JSON that we'd have to parse and update on the page.
Then we moved to libraries where the entire back-end responded with JSON, and we had the front-end library do all the DOM node rendering. I hated this, and fought against moving to these technologies on any product that I was in charge of.
We can write our entire product to work as a traditional boring web application. We write our own HTML/CSS and have a request to /dashboard load the full HTML page. This works great, but it's not very "sexy" and we have to send the entire page down the line with every request. @htmx_js changes the game for us.
Now, we can write our full normal boring web app, but add @htmx_js on top of that when we're done and all of the sudden unlock beautiful modern reactive websites without any extra mental burden. A click to the "dashboard" link when the page is already loaded has our server send back _JUST_ the middle part of our app that shows the dashboard. All the extra stuff (menus, navigation, logos, footers) can be ignored. Saves the server a ton of time per request, and makes every page load beyond the first one take up just a few small KB.
This is the missing link between sane web development and modern web development. This was the tool that needed to exist in 2005 when we were all figuring out how to build nice web applications. If we had this back then, I think the world would be a much different place right now.
But I'm glad that it exists now, and I don't see how we can ever go back to anything else. Many thanks to @htmx_js for the great library and @ThePrimeagen for talking about it and getting this great library on my radar.