The early Web had a quality that has been lost ever since: it was simple
Download #httpd , #netscape write some #html by hand and boom, the concept of a networked digital society is born.
It first started going pear shaped with #LAMP . The complexity of a full blown database was not justified for most use cases. As proven decades later by the popularity of #sqlite and #ssg approaches.
The final blow was when #bigtech got into the act. Immense complexity for the simplest things became a moat
Added information on HTML, CSS, and Markdown Fragments to the Kitten Components and Fragments tutorial, including a little TypeScript type declarations file you can add to your projects so you don’t get type warnings for them when you import them in your projects:
e.g., If you have a file called Styles.fragment.css, you’d import it like this:
import Styles from './Styles.fragment.css'
export default () => kitten.html <h1>This page contains a CSS fragment</h1> <${Styles} />
HTML, CSS, and Markdown fragments support slots just like JavaScript fragments do (including named slots) but they do not support props (you can use named slots as a poor man’s props).
So, you could, for example, extend the styles you imported like this (although, you could, just as easily, add another <style>…</style> section to your code too):
import Styles from './Styles.fragment.css'
export default () => kitten.html <h1>This page contains a CSS fragment</h1> <${Styles}> h1 { color: red; } </>
While HTML, CSS, and Markdown fragments are not as flexible as JavaScript fragments and components, you might find them useful as your editor might give you better language intelligence than in HTML and CSS tagged template strings, to save on one level of indentation, or for organisational preferences.
Speaking of language intelligence, you will likely notice that you get annoying type warnings when you import non-JavaScript fragments (e.g., Cannot find module './Styles.fragment.css' or its corresponding tyep declarations.)
You can fix this by including a simple TypeScript type declaration file (let’s call it fragments.d.ts) in the root folder of your project:
Heartbreaking update from #tailwindcss. They had to lay off 75% of their staff yesterday due to #AI driven losses.
I really don't see how the #OpenSource industry survives this. The days of making your source and your docs open to the public is quickly disappearing.
It might sound somewhat unexpected from the person that’s just gone through a gargantuan effort of converting a (“small” yet still sizeable) #Scheme standard to #HTML, but… I’m still not sold on Scheme. True, it’s a
• Modern language.
• That gets Unicode and UTF-8 right.
• That has just enough operators to potentially do anything. (Any less ops and it’d become quite hard to accomplish some things.)
• That has reasonable semantics not tied to any machine. With sane memory model that works both in embedded and general programming!
• That is a Lisp. And that’s modernizing some things about family’s handling of… everything!
But still, I’m indecisive. #CommonLisp, exposed by this Scheme comparison as quite crusty with historic accidents, is still a better language in many ways:
• Typing (albeit quite simple) included in the core language.
• eval, read, and write heavily tunable for interpreter building, the very case Scheme should’ve excelled in.
• REPL and debugger behavior specified beyond probably what any language does in this regard.
• Extreme stability and portability of even non-trivial programs; “Triviality as a Virtue” library ethos as I call it.
• The ability to go full stateful and low-level, down to raw bits (not many languages actually can do that without bit masks etc.!) and GOTOs; huge/endless optimization opportunities.
Aaaaaargh. As someone in search of a universal and collapse/shit/future-proof basis for my computation, I’m extremely annoyed. Need to write some things in Scheme to make up my mind. Maybe make an SRFI or two (covering the CL areas above, typing is already covered!), possibly about meta-PL things like parsers and interpreters. Maybe that will expose me to real (yeah, I know, PLs are not “real” programming, but they well are for me!) Scheme and whether I want to commit to it.
Anyone a part of a “divitis” webring? Is the <section> element your best friend? Do you use semantic HTML, but have never looked up the definitions for the elements you use? I wrote this for you.
heise+ | Unabhängiger Browser Ladybird mit neuer Engine im Check
Der Browser Ladybird basiert auf einer eigenen, neu entwickelten Engine. Wir haben uns das Projekt angesehen und ausprobiert, wie weit Ladybird schon ist.
So I’m teaching a friend who doesn’t have any development knowledge how to get started with Small Web development and I thought it would be a good opportunity to start creating and sharing the course on the Kitten web site, one lesson at a time.
It’s a work in progress that I’ll be adding to along with our lessons but the draft of the first one, on setting up your development environment (which I whipped up in the pub last night, so expect typos) is here:
Please feel free to follow along and file issues if you have thoughts for improvements, etc.
The Setting Up lesson will actually likely end up being the second one with the first being a theoretical one on Small (peer-to-peer) Web development and how it is similar to and differs from Big (centralised) Web development.
This is of limited interest to … anyone … but I've revised a lot of Thudfactor to use more semantic code patterns. For the moment I have it stripped of all CSS on a branch so I can write the CSS very deliberately. If you want to take a look, the most recent deployed state of this work is at:
We're currently seeking a new organizer for the #Hamburg#HTML meetup. Unfortunately, Lea is no longer able to continue in this role due to mental health reasons and a lack of expertise in this area. We’re looking for someone passionate and knowledgeable to take over!
Silex v3.5.1-5 Canary – UI Polish & Smarter Data Preview
A new canary version of Silex is available: https://canary.silex.me/ ...