Will you write HTML with us tomorrow?
html.energy
html.energy
Looking forward to writing HTML together tomorrow at 2PM EST. You can join our discord to share your writing/websites [1] during the freewrite.
Also we just wanted to share a little more about HTML Energy. It’s still coming together but here are some of our big dreams…
- Create a #web0 movement: We would love to see a new movement around web0 (coding HTML by hand, personal websites, webrings, etc). Basically anything that brings websites instead of platforms into the spotlight again. We are actually pretty inspired by all the energy that is going into web3 right now. What if that same energy and capital was going into web0? What could we create together?
- Rebrand HTML [2]: Some people think that HTML is outdated or hard to use. We think it’s actually pretty straightforward and really powerful stuff. Stripping away all the paint (CSS/JS) really makes the content the focus and there's a raw sincerity to an unstyled page. Our goal is just to get people excited about learning & writing HTML and this is our attempt at making it "cool."
- Getting HTML into schools: What if more people knew how to self host/publish? Would we depend on big platforms less? Would people begin making more small community websites to chat with their friends?
- Create another season of our podcast [3]. Last season we talked with so many incredible people that are trying to make the web a better place. Let us know if you listened and would want another season.
Hope to see you tomorrow and have a great night!
<p>'s on earth!
[1] https://discord.gg/SsPKzA8N?event=931711702578384947
It would be pretty cool if someone that has never made a website before, learned a little HTML, wrote an index.html, and published it on the www. Maybe that person never learns CSS, JS, or any framework and that's totally fine. We think that the simplicity and directness of HTML is what makes it powerful.
This is one of the few websites that don’t force you to use https even though it does have it! Impressive.
In the spirit of keeping things open and without a user account, I’d recommend setting up some jitsi [0] conference rooms that don’t require an account.
Hope to see you at the freewrite.
That’s bad, not good. Cleartext HTTP is a nice idea for an ideal world, but that’s not the world we are in: it’s demonstrably a vector for abuse, both passive and active. Save for a very few specific use cases (captive portal detector being the main one), it is irresponsible to support cleartext HTTP for any purpose but redirecting to HTTPS, preferably with a Strict-Transport-Security header so that that particular user agent skips straight to HTTPS forever after.
With that said, implementing security is a trade-off between your time and risk tolerance.
And that’s just the active. The passive is pervasive too, and is an attack (RFC 7258). And so I use the term “irresponsible” of anyone running any web service except for a very few specific purposes over cleartext HTTP.
There are reasons why we’ve shifted from cleartext to TLS for everything, not just for things conveying sensitive data.
I wonder if more malicious code is served from questionable ads on HTTPS sites than from ISP MITM injections into HTTP sites.
ⓐ With a suitable HSTS and max-age header, it’s roughly only the first time you access the site at all that you’ll go via HTTP;
ⓑ Anyone can submit their site to the HSTS Preload list <https://hstspreload.org>, which solves the problem completely for a particular site (including subdomains);
ⓒ It only applies to people typing in the URL manually: if your users come from a link from another site, that link should be HTTPS.
This final point is really the key to it all, and the place where I wish browsers would hurry up: they should be shifting to interpreting URLs typed into the address bar with no scheme as https:, not http:. There will certainly be some rough edges that need to be caught with it, and you might want to set IP addresses and a small number of names to default to HTTP, but even without that, Firefox’s HTTPS-Only Mode has all the required ingredients: if I type “neverssl.com” into my address bar, it pops up the about:httpsonlyerror page, “HTTPS-Only Mode Alert / Secure Site Not Available” with explanatory text and buttons “Continue to HTTP Site” and “Go Back”. They could do something like that specifically for typed URLs. (You might think “just downgrade automatically”, but that’s an attack vector—they can just block port 443—where requiring manual user intervention with a mildly scary warning mitigates it somewhat.)
The default really should be HTTPS by now. A little while after browsers all finally flip that specific thing over, I think we could collectively shut down port 80 for good, because no clients will ever try it any more.
We will be writing at 2-3PM EST so you can just join us telepathically and if you feel like sharing what you created leave it in a comment here or email us a link [1]. We would love to see!
[1] htmlenergy@gmail.com
Thanks for this, and I really hope it's a success that you can build on. This is good stuff.
My oldest daughter is 13 and I was planning on helping her set up a side project of her own; a simple static site for her to collect and document her knowledge of horses. I sent her the link. She was just asking about how Markdown got converted to HTML, and a solid foundation in HTML itself would be super helpful.
<!doctype html>
<html lang=en>
<meta charset=utf-8>
<title>Thank You</title>
<style>html { text-align: center }</style>
<p>
Thank you.<br>
Love the idea.<br>
<strong><code><p></code>’s on earth!</strong>
</p>That seems to be 7 PM UTC. (PSA: if your event isn't geographically limited, please include the time in UTC too - a lot more people know the conversion from that than whatever your local time zone is.)
It's also extremely satisfying to make a webpage with zero dependencies. No JS frameworks, no build processes; just a direct conversation between you and the Browser. That tight feedback loop is plain _fun_, especially for those of us who feel bogged down by modern software development.
Finally, writing raw HTML/CSS aligns with the founding vision of the world wide web, in which individuals could independently create and host content without any technical barrier to entry or dependency on corporations. The age of the personal webpage is over and I think that vision of the web is mostly dead, but I'm happy to see people keeping the energy alive.
> The age of the personal webpage is over and I think that vision of the web is mostly dead, but I'm happy to see people keeping the energy alive.
Our hope is that a movement (web0 or whatever you want to call it) could bring this back.
It tells us something, but also regularly what's easy looks hard. I have organized some hackathons and coding events for students. Some start with create-react-app for showing an image. They are very hesitant to do things the "manual" way when I suggest it. I think it's awesome that vanilla gets to have a community like this.
I love the DOM but most developers would rather jump off a bridge than write some logic to walk a DOM. I have never understood why there is so much fear about the DOM, why that fear is so astonishingly prevalent, or the extremes people will go to in order to sidestep this phobia. So curious because this is a subject that takes about 2 hours to learn after which your career takes a different trajectory.
You can see this most clearly in DOM 1.0: https://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-on... Look particularly at the "IDL specifications". That's Java, not Javascript!
Later versions have improved various elements of this, but the fundamental architecture is still there and still not looking much like what I would write down if I wanted to write out a similar system natively for Javascript, assuming this was still the 1990s and that meant I could also modify JS itself a bit.
When you learn how to work around these impedance mismatches you can do some good work, but the resulting code may not make much sense to your coworker. Fortunately, even in native JS nowadays, .querySelector and similar APIs make it unnecessary to have to "walk" the DOM much anymore.
I'd even argue you could cite the existence of a triple mismatch, in that the original DOM level 0, supported in Netscape 2.0, entirely precedes the idea of a writable DOM. (It wasn't until Netscape 4 that we got "layers", which were useless, and it was IE 4 that finally gave us manipulable DOMs as we know them today. [1]) So the standard that was originally written with the concept of introspection and largely read-only access (you could only write things that the browser could guarantee wouldn't require a reflow, and not necessarily all of those) got a lot of write access bodge onto it later.
Historically, it's a huge mess.
[1]: They didn't necessarily work the way we expect today for much longer than that, I crashed IE 4 a lot with stuff we'd consider trivial today, but it was the first browser to at least try presenting everything in the DOM as editable.
* https://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/
* https://www.w3.org/TR/DOM-Level-3-Core/
The DOM is a language agnostic API written without any particular programming languages in mind and written to simultaneously and universally support both HTML and XML Schema.
These are stylistic and organizational concerns still not enough to qualify the irrational behaviors favoring jumping off a bridge. This is concerning considering learning to use the concepts takes substantially less time than learning the APIs of modern JavaScript frameworks developers favor. There remains far more to this that is psychologically focused regardless of any technology.
But if you just want to blame almost all developers everywhere across several decades for mysteriously being unwilling to engage with a simple and wonderful technology that has no flaws, feel free. It's easy, but it leads to no further understanding or wisdom.
document.createTreeWalker()
is your steadfast friendAlso, "astonishingly prevalent"? Come on!
My daughter doesn’t like driving my manual transmission car and cannot figure it out. That doesn’t mean my car has an unstable API. She does mention the same sort of bullshit about blaming the technology for her own incompetence though.
- The only way to remove a node is node.parentNode.removeChild(node), until you get past IE11 then you can use Element.remove() https://developer.mozilla.org/en-US/docs/Web/API/Element/rem...
- Text node normalization - because there are separate representation of the exact same HTML https://developer.mozilla.org/en-US/docs/Web/API/Node/normal...
- NodeLists are almost but not quite arrays. They could also be live or static but you can't inspect it directly to tell which is which https://developer.mozilla.org/en-US/docs/Web/API/NodeList. Similar almost-array nonsense with HTMLCollection.
- Historically IE and Netscape/Firefox supported two completely different set of API and it was a horrible mess. You can still see remnants of that API war in functions that does almost but not quite the same things such as textContent vs. innerText https://developer.mozilla.org/en-US/docs/Web/API/Node/textCo...,
When SGML, on which HTML is based, has all the customizing, organization, vocabulary extension, and authoring comfort features you could ever want, even stylesheets.
Think about it - you have a content model grammar with type-checked item-value pairs (attributes); then CSS comes along with a completely separate, not type-checked item-value syntax and value space that make even seasoned graphic professionals run away.
Why isn't Discord just enough? Or just IRC? Honestly I think this fragmentation that gets suggested is why a lot of projects fail; never stand the test of time: they try to be everything to everyone.
They can without fragmenting.
Just combine a Matrix-Discord and a Matrix-IRC Bridge
Seems niche and fun to me. Not that I'll participate. I made a website once, never again.
I'm probably just too much of a control freak to deal with the uncertainty of browser-craft. (All respect to those who do web stuff) I'm from a painterly background and do cgi. If I want a pixel somewhere I'll put it there.
If you just use HTML, then the words that you choose to write will be the words that everyone will read.
Any "pixel placement" is optional and shouldn't be a detering factor.
I meant 'pixel' as a synecdoche, to stand in for all the elements of computer art and visual craft.