I have a tab on sublimetext that has been opened since the pandemic and I think it's safe to share my idea since I'm not gonna do it.
*4KB webpage files*
So a website where each page does not exceed 4KB. This includes whatever styling and navigation needed. Surprisingly you can share a lot of information even with such constraints. Bare bone html is surprisingly compact and the browser already does a whole lot of the heavy lifting.
Why 4KB? Because that used to be the default page size in x86 hardware. So you can grab the whole thing in one chunk.
They are pretty insightful. Particularly this one:
> 3. Bias towards action. Ship. You can edit a bad page, but you can’t edit a blank one.
I have my own version of this where I tell people that no amount of good advice can help you make a blank page look better. You need to have some published work before you can benefit from any advice.
I liked that one, too, but for an additional reason.
Typing that first character on the page reveals the problems you didn't even know existed. You don't have a keyboard. You do, but it's not plugged in, and you have to move an unexpectedly heavy bookcase to reach the USB port. You need to learn Dvorak. You don't have page-creation privileges and need to open a ticket that will take a week to resolve. You can create the page, but nobody else is able to read it because their machines aren't allowed to install the version of the PageReader™ plugin that your page requires (and you'd need a VP exception to downgrade your PageGenerator™ toolchain to their version). And so on.
All these are silent schedule killers that reveal themselves only once you've shipped one full development (and deployment!) cycle. And as ridiculous as these example problems seem, they're not far from reality at a place as big and intricate as Google.
The problem is I've worked at at least 5 companies that professed a strong "bias for action" and it nearly always meant working nights and weekends to ship broken things that ultimately hurt the user and then moving on to the next big leadership project to do the same thing again, never looking back. The exception of course would be when leadership finds it's broken in 5 months and complains about poor engineering practices and asking why engineers can never get things right.
I've heard all the truisms listed in that post in my 14+ years at many companies that aren't Google and in all cases there's a major gap between the ideal and the reality.
This entire list reads to me as "I got paid 10s of millions of dollars to drink the Kool Aid, and I must say, the Kool Aid tastes great!"
The problem with this approach is that once you've started with a "bad" draft and enough people have signed on, you're locked in to its trajectory and can't do foundational rewrites even if you were within the feasible window. It'll just end up being a bad product overall.
I’m a big fan of Amazon’s leadership principles. One of them is bias for action. I worked at AWS for a few years and I’d be in a meeting and someone would say bias for action and we’d all know what we needed to do.
If the team mates have a different mindset, they see it as half baked or hacky. And if there is ever some bad feedback, they just use it as a "I told you so" and throw you under the bus.
If your self-esteem is sufficiently resilient, you can exploit the same human tendencies behind Cunningham's Law (the best way to get the right answer on the internet is not to ask a question; it's to post the wrong answer). Check your crappy end-to-end proof of concept into the team repository, and your teammates will be so horrified and outraged that they'll fix it faster than any sprint could have planned.
Bad feedback can be more helpful than good and is often the only type of feedback a product gets. And you may not have received that feedback if you didn’t ship. It’s better to get that information early.
I personally agree with the premise to ship early, with some rough edges, etc. But teammates may not be supportive. You need the whole team to have that mindset/culture.
I wish Google would be biased a little more towards quality and performance. Their user-facing products tend to be full of jank, although Gmail is quite good to be fair.
In general I think the "ship fast and break things" mentality assumes a false dilemma, as if the alternative to shipping broken software is to not ship at all. If thats the mentality no wonder software sucks today. I'd rather teams shipped working, correct, and performant software even if it meant delaying additional features or shipping a constrained version of their vision. The minimalism of the software would probably end up being a net benefit instead of stuffing it full of half baked features anyways.
When you're not shipping, you're not learning from users. As a result, it's easy to build working, correct, performant code which doesn't fit what anyone actually needs.
I think you can also learn from users when they complain en masse about the current atrocious state of software quality. But I guess that doesn't show up in telemetry. Until it does. Looking at you, Microsoft!
I believe one of the main reasons why Windows 11 is getting so much vitriol is that Microsoft is focusing on customers, which aren't always identical to users. Most of the time, when you buy a Windows-based device, you're not their customer: you're the OEM's customer, and for the OEM, every nickel of expenses counts. On the other hand, direct Microsoft licensees, such as corporate ("enterprise") customers, get much more attention from the company and a significantly better experience.
You can't learn from this because users always complain no matter what.
The trick is they just complain about the last thing they remember being bad, so it's a good sign when that doesn't change, and it's bad if they start complaining about a new thing.
This is analagous to the problem of premature optimization - if you try to optimize performance without benchmarking, you end up eating a lot of time and effort on things that don't matter. Likewise for product: it is very easy to solve the wrong problems.
> Figuring out what is useful for people is not some difficult problem that requires shipping half baked slop
what have you shipped? paying sees literally hundreds of thousands of dollars a year to ship out fledged out software that no one wants is exactly why Stadia lasted both way too long and got cancelled anyway.
figuring out what is useful is the hardest problem. if anything that's Google's biggest problem, not shipping fast enough, not iterating fast enough.
I wish people who ship crappy software didn't ship it and would let someone else ship something better instead.
It really sucks when the first mover / incumbent is some crappy half assed solution.
But unfortunately we live in a world where quality is largely irrelevant and other USPs are more important. For example these little weekend projects that become successful despite their distinct lack of quality
Linux kernel - free Unix.
JavaScript - scripting in browser
Python - sane "perl"
Today on GitHub alone you can probably find 100 more featured and higher quality projects than any of these were when they launched but nobody cares.
While we're wishing for things that are never going to happen, I wish users would stop adopting crappy half-assed first-mover software, causing them to gain momentum and become the defacto/dominant solution.
WRT Linux. Sure, 1991 or really even mid-90s Linux was clearly immature. But Wall Street was adopting it instead of Solaris by the turn of the century. Plus "open source" so it wasn't the case of a new proprietary Unix just emerging from the sea foam which no one wanted anyway but Linux becoming the good enough Unix standard which is what people did want.
It did in the early days, especially up until 2.4 which was generally considered the first enterprise-ready kernel version. (You can argue about whether the old "enterprise-capable" definitions still applied but they were a benchmark for a lot of people.) Of course, lots of ancillary stuff too in userspace and outside the kernel related to filesystems and the like.
Wiki (https://en.wikipedia.org/wiki/Linux_kernel_version_history#O...) tells me that version 2.4 was released in early 2001. That is a long time ago. Most of the commercial world was running SunOS, Solaris, HP-UX, or AIX. So is it fair to say that the Linux kernel has been "quality" for 25 years now?
2001 was immediately post dotcom crash and so all the people that had bought into the Sun "the network is the computer" were tossing out expensive E4Ks, and getting cheap intel servers to survive.
HP-UX and AIX were already legacy.
Linux 2.4 was when it hit critical mass because of the publicity of the dotcom boom and it was like what was left after the "tide went out and the market found out who was swimming naked".
Certainly. The 2.4 kernel and IBM embracing Linux at around that time pretty much made all proprietary Unix legacy.
The desktop took longer with less well-defined transition points and, arguably, MacOS with its BSD foundations (and command line option) ended up being a good alternative for a lot of the non-Windows crowd--though Windows is still dominant as a desktop/laptop OS. (Windows/Azure are, of course, still major in backend corporate environments as well.)
The problem isn't just that new installs will require this, but if you are on Windows 11, there are a hundred accidental ways to create a Microsoft account. Sometimes it's disguised as an update, or a sneaky notification. Sometimes it's onedrive, or you are trying to login via Edge. It reminds me of how Google was trying to trick us all into getting a Google+ account.
MS: "One way or another, you are creating an account so help me God."
My problem is that Windows fucks up my user name when I log in to my account when setting up a new machine. I drives me up the wall.
My name is Daniel. My name on my MS account is Daniel. When I log in to a new Windows machine, the fucking thing decides my user name, and therefore my user folder, is "Danie". This is NOT my name, it's a different name that is not mine and it makes my computer grating to use every time.
For some retarded reason, windows does not allow online account users to have a username longer than 5 chars, so it goes and truncates whatever the first name it gets back from the mothership when logging in. A local account does not have this issue.
I still remember how I felt when I sent that first invoice. I was beating myself for not sending the invoice every week in the process, yet there I was with what I thought was a giant bill.
For context, the company that commissioned the work paid over $100k for that single page (I was in the email chain). It was part of a wider campaign that involved a whole lot of work, interviews, filming, celebrity appearances, etc. I just checked and the page is still up!
Ps: it involves that reliable car company, news paper, and mothers.
That was my first reaction reading your story -- "outside partner probably paid 5 to 10x for it" -- if you'd gotten up to 50k, you would have had a problem. :)
Fyi: NixOS would shine everytime a client handed you a laptop for the gig. Your working environment reproducible and declarative. Setup in minutes, not hours.
Having to figure out how to make whatever random god-awful corporate software they got sold work on nixos -- on a deadline -- sounds like seven circles of hell.
NixOS rocks, but if there is some software you need to install to comply with company policies (e.g. Vanta) then you may be in for some unexpected tinkering.
I would suggest Home Manager though, which will let you set up your environment just as well and is very portable, while still affording you a mainstream host system of the company's choice.
+1 for Home Manager, as someone who uses Nix extensively (NixOS for server, Nix devshells, Home Manager on my dev machine) it's by far the most versatile tool the Nix ecosystem has to offer!
yeah i was a little confused by the suggestion. If a client hands you a laptop to use for a project then there's corp. policy reasons why you have to use it as a contractor. (some companies have serious teeth in these policies)
It would be interesting to be a fly on the wall and listen in when infosec calls you and asks why your laptop disappeared from their monitoring tools and you told them you installed nixos (assuming that would even be possible) because that's what you prefer.
Knowing how to work with builtin tools would shine in that environment. I first learned this style in a Spolsky blogpost were they talked about Wasabi, a language that compiled to either PHP or Visual Basic I think it was, the idea being that those languages were preinstalled in most servers of the era.
In a similar sense, knowing how to work with the builtin tools of major OS is a huge advantage. If you can write your code in vim or nano or notepad without breaking a sweat over your favourite hotkeys not working, that's a lot of hours saved.
You don’t even need full on NixOS. I do the same with nix-Darwin and home manager. It’s not the perfect reproducible purists machine due to homebrew and Mac designs but it doesn’t really need to be, just mostly so
Purity here is a difficult ask without the whole "erase your darlings" impermanence. In general, there is something regardless which handles stateful interactions.
Often this is activation scripts, e.g. home-manager will complain at you if you are attempting to overwrite an existing file not managed with home-manager unless you tell it to forcibly overwrite the file.
You can get yourself into situations where even in NixOS land, switch-to-configuration will refuse to switch due to some kind of violation, e.g. a systemd mount service wholly failing. I've had an experience like that recently.
The Nix store is not a perfect get out of jail free card for this, everything impure must be wrangled by something eventually.
What I'm really trying to say is, the world is messy and full of impurity, it's unavoidable. The thing that manages Brew, casks and app store applications for you within nix-darwin is no different than home-manager managing home.files or switch-to-configuration acting upon systemd.
Thanks for reporting this. I'm assuming you are referring to the RSS feed?
The actual feed is https://idiallo.com/feed.rss in the meanwhile until I figure out the issue
No, they're referring to an error that pops up when you visit a page whose url ends in 'women-in-the-world.html'; you can click okay and still browse the page though :-)
Haha thank you. That went over my head. I dismissed that box without reading the error. But... I can neither confirm nor deny I understand what you are referring to ;)
In the olden days, internet explorer couldn't support html5 tags. I found a snippet of code from my 2010 library [0] that I used to use to remedy the problem. You see if you created the tags via JavaScript, IE would somehow recognize them. You could discard them right after. Here was my script:
(function(d) {
'abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video'.replace(/\b\w+/g,function (a){
d.createElement(a);});
})(document);
It didn't take long before I realized I could just add any random tag, add it to my shim, and render it on any browser.
Gonna go on a tangent here. Why the single purpose domain? Especially since the author has a blog. My blog is full of links to single post domains that are no longer.
I've had my 15 minutes of fame, twice. 30 minutes I guess. Each time I met people that freaked me out.
In 2018, after the news picked up my story, I met the "true" inventor uber. This guy emailed 100s of documents as proof, newspaper clippings, a bunch of pictures with people circled in red, after all that I said "I'm not entirely sure which part you invented." This man "randomly" bumped into me in a cafe to explain it to me. He had driven hundreds of miles to be there.
On my second stint a few years later, I went to a Dan Lyons' book signing with my wife. Dan spotted me in the audience and asked me to come up on stage and tell my story to the audience. I was completely unprepared.
Later a lady accosted me to get my address and phone number so she can send me stuff. She was persistent, so I said I can give her my email so we can communicate further. It didn't sit well with her. A few days later I got an email from her. It was a few thousand words of threats, and I was going to be reported for violating Australia's laws. She had contacted ABC Australia to get my story retracted. I'm in California...
*4KB webpage files*
So a website where each page does not exceed 4KB. This includes whatever styling and navigation needed. Surprisingly you can share a lot of information even with such constraints. Bare bone html is surprisingly compact and the browser already does a whole lot of the heavy lifting.
Why 4KB? Because that used to be the default page size in x86 hardware. So you can grab the whole thing in one chunk.
This whole comment is not 1KB.
reply