Oh, excellent! I thought I was the only author (idiotic enough) to give away my books for free. I choose to call it altruism, but the truth is that I got sick of the whole marketing-and-promotion meat grinder a long while back and decided I wanted to write books I wanted to read, rather than writing what someone else thought they could sell. I am now proud to call myself a Hobbyist Indie Author. Perhaps we could start an insurgency together?
HN user
rikroots
It turns out that adding noise to gradients is a really useful thing to do - so many new effects can be created with just a few additional parameters. Sadly, CSS and Canvas API gradients (linear, radial, conic) are very basic implementations (and SVG is not much more advanced).
Recently I did some work to add software gradient enhancements to my canvas library. Because these run on the CPU rather than GPU they're computationally intense, but still worth the effort just to see what can be done with different spreads (pad, repeat, reflect, transparent) and noise engine operations inserted while calculating stuff like gradient color selection, and pixel positioning.
Linear gradient demo test - https://scrawl-v8.rikweb.org.uk/demo/canvas-003.html
I learned last year that "translation" can be a very tricky thing. Because there's never a one-to-one correlation between one language's words, phrases, structures and metaphors, and another language's equivalent stuff. And LLM translations may not be the actual translation you want, or need.
I wrote up my experiences of translating Lorca and Cavafy poems here[1]. tl;dr: I have developed a massive new respect for translators; however much they're being paid, they probably need to be paid more!
[1] https://rikverse2020.rikweb.org.uk/blog/adventures-in-poetry...
I give my side projects away for free because I have a $job to pay for the roof over my head, food, etc. and don't feel the need to make more money from my hobby work.
I create my side projects in the first place because I like to prove to myself that it is possible to do mad stuff in the browser - like a screen recorder with canvas composition, teleprompter, live annotations and talking-head overlay[1]. Or an SVG-inspired image filter builder for local batch application to images (still a WIP but almost there)[2].
It doesn't cost me any money to host the results, so: why not?
when it's much easier to just build a nice website using JavaScript
I'm currently building a web-based tool that uses dynamic forms for UI, without the help of of a framework (yeah I know; I have reasons). This is the result: https://github.com/KaliedaRik/sc-filter-builder/blob/main/js...
It's not "easier" using Javascript; raw Javascript websites are a nightmare to build, maintain and reason about. It is "easier" with Javascript + current-favourite-framework-of-the-day.
Also: accessibility, SEO, the all-new Generative Engine Optimization (GEO) thing, etc.
Last year I made the mistake of asking ChatGPT what the world would look like if `∞ === -∞` and it took me seriously (I think) and led me on an hours-long dance where in the end it had me trying to prove, mathematically, that `2 > 1` ... and it was at that point I realised that I'm not cut out to think in numbers and maybe it was for the best that I failed my end-of-school Maths exam
I'm building a client-side-only web page that will (eventually) allow users to build their own image filter and batch-apply it to a bunch of images.
https://kaliedarik.github.io/sc-filter-builder/
No idea if anyone will be interested in using such a (free, MIT) web tool, but I'm having lots of fun putting my canvas library's filter engine (which is inspired by SVG chainable filters) through its paces.
I spent a fair amount of time with p5 etc, but the results always felt limited and brittle.
I wrote a JS canvas library[1] partly because existing libraries of the time (2013) didn't do what I wanted a canvas library to do. Things like animated gradients and patterns, etc. I'm still working on the library today - so thats 12+ years of my spare time gone!
Generative art - such as challenges like Genuary[2] - is a key tool for giving me ideas on how to develop the library further. I keep CodePens of some of my better efforts[3] around as a set of extra tests to check for breaking changes as I fiddle with the library.
No install, no backend, no fees. MIT licensed for hacking and local use.
Link to tool: https://kaliedarik.github.io/sc-screen-recorder/
the wheel template can have some letter parts like the top of L or d extend beyond the wheel
Yeah - I use the template (in that case, a circle) to calculate line lengths, then I run 2d text along the 1d lines. Even if I tried to keep all of the glyphs inside the wheel I'd fail - because some fonts lie about how tall they are. Fonts are, basically, criminals.
This thing is very impressive.
Agreed! Text layout engines are stupidly hard. You start out thinking "It's a hard task, but I can do it" and then 3 months later you find yourself in a corner screaming "Why, Chinese? Why do you need to rotate your punctuation differently when you render in columns??"
This effort feeds back to the DOM, making it far more useful than my efforts which are confined to rendering multiline text on a canvas - for example: https://scrawl-v8.rikweb.org.uk/demo/canvas-206.html
My tool uses the browser's built in encoders (which vary by browser, but whatever). I did use wasm though, for the MediaPipe background removal stuff.
Browser screen recorder with canvas composition, teleprompter, live annotations and talking-head overlay.
For me it's a case of, I have to expose my canvas library documentation for the training data bots to find and (hopefully) include in the LLM training data because it's the only way I'll ever get LLMs to:
A) accept that my library exists, and has its uses (it's a tough world out there for canvas-focussed JS libraries that aren't Fabric.js, Konva.js or Pixi.js)
B) learn how to write code using my library in the best way possible (because the vibes ain't going away, so may as well teach the Agents how to do the work correctly)
Plus, writing the documentation[1] for a library I've been developing for over 10 years has turned into a useful brain-dumping activity to help justify all the decisions I've made along the way (such as my approach to the scene graph). I'm not going to be here forever, so might as well document as much as I can remember now.
[1] https://scrawl-v8.rikweb.org.uk/docs/reference/index.html
I've got a rotating tesseract demo up on CodePen[1]. At least, I think its a rotating tesseract - I have no idea if it's an accurate representation because tesseracts lead me into thinking about quaternions and then my brain shuts down.
Well I do seem to spent a fair amount of my developer time swearing at my laptop screen. And then there's that time I spend just prior to writing code just staring at the wall while I figure out what sort of code I want to write - if I can repackage that wall-staring time into "time spent consulting with AI about approaches and architecture decisions" I'm sure my engineering manager will think more kindly of me ...
Because corruption is a thing. Also: any government contract can be audited at any time by the National Audit Office, who have criminal prosecution powers if they find malfeasance in the procurement process. Also: being hauled in front of a Select Committee to answer questions about a given procurement is not fun. Also: politicians are always looking to ask questions that get their names in the paper.
Follow the processes. Document everything. Make certain the winning bidder has all the relevant certificates and insurance covers in place before agreeing to anything.
Leaving the Civil Service was one of the best work decisions I ever took.
he did manage to predict/make into reality electric vehicles
I miss the morning delivery of milk to the doorstep. And the milk carts that used to deliver it
The agent that generated the email didn't get another agent to proofread it? Failing to add a space between the full stop and the next letter is one of those things that triggers the proofreader chip in my skull.
I used to think that blogging was a way to help me build a platform, get my name out there. Nowadays ... I don't know. Sometimes I have thoughts that interest me - but probably nobody else - so I'll craft a post around them and put the results online. Sharing my creations makes me feel happy. I'll spam a link to the post on Facebook in case any of my friends might be interested in reading it. Lately I've been spamming links to HN, Bluesky, etc because: why not?
It's too accurate for my tastes. Needs more snark.
I'm wary about using AI models to generate stuff for me - I still bristle from the time a model told me that "JS Sets are faster than Arrays" and I believed it, until I discovered that it forgot to add the important piece of information: for Arrays containing tens of thousands of elements. Which made me feel stupid.
Still, I find the models to be excellent synthesisers of vast quantities of data on subjects in which I have minimal prior knowledge. For instance, when I wanted to translate some Lorca and Cavafy poems into English I discovered that ChatGPT had excellent knowledge of the poems in their native languages, and the difficulties translators faced when rendering them into English. Once I was able to harness the models to assist me translate a poem, rather than generate a translation for me (every LLM is convinced it's a Poet), I managed to write some reasonable poems that met my personal requirements.
I wrote about the experience here: https://rikverse2020.rikweb.org.uk/blog/adventures-in-poetry...
I'm working on my writing, of course. In the latest episode of my life, my mother surprised me with fresh news about the origin of my name: https://rikverse2020.rikweb.org.uk/poem/names
It's sub-optimal in that browser developers have - for a number of legitimate reasons - chosen not to spend their time building SVG engines into their browsers that are efficient, robust and fast. I think its more a story of benign neglect rather than active discouragement. Compared to the Javascript and CSS engines, which have improved massively over the past decade, SVG remains ... serviceable for basic requirements (simpler stuff - static graphics, icons, etc), but nothing more. If that makes sense?
SVG rendering on browsers is still sub-optimal, which I think is a shame as SVG has great potential if it was treated as a first-class element on the web. Recent improvements to the code driving (2D) Canvas API canvas elements shows that this work could be done across browsers. The big thing holding back development is possibly the continuing failure to finalise the SVG2 standard?
This explains my entire drive with my work on my canvas library. I wanted to do something different with the way I was presenting my poems on my poetry website, so I went away and built something which would help me do just that. I didn't expect the library to take over the majority of my spare time for over a decade, but then I was having too much fun to stop.
The library's on GitHub and I could spam a link to it here, but it's much more exciting to spam a link to a poem that finally gets to use it - https://rikverse2020.rikweb.org.uk/poem/flaw
Can someone explains why does that work?
I've discovered that if you lecture the LLM long enough about treating the subject you're interested in as "literary" then it will engage with the subject along the lines of "academic interpretation in literature terms". I've had to have this conversation with various LLMs when asking them to comment on some of my more-sensitive-subject-matter poems[1] and the trick works every time.
I mean you can't social engineer a human using poetry?
Believe me, you can. Think of a poem not as something to be enjoyed, or studied. Instead, think of them as digestible prompts to feed into a human brain which can be used to trigger certain outlooks and responses in that person. Think in particular of poetry's close relations - political slogans and advertising strap lines.
[1] As in: poems likely to trigger warning responses like "I am not allowed to discuss this issue. Here are some numbers to support lines in your area".
Things like number of stars on a repository, number of forks, number of issues answered, number of followers for an account. All these things are powerful indicators of quality, and like it or not are now part of modern software engineering.
I hate that this is perceived as generally true. Stars can be farmed and gamed; and the value of a star does not decay over time. Issues can be automatically closed, or answered with a non-response and closed. Numbers of followers is a networking/platform thing (flag your significance by following people with significant follower numbers).
Developers are more likely to use a repo that has more stars than its alternatives.
If anything, star numbers reflect first mover advantage rather than code quality. People choosing which one of a number of competing packages to use in their product should consider a lot more than just the star number. Sadly, time pressures on decision makers (and their assumptions) means that detailed consideration rarely happens and star count remains the major factor in choosing whether to include a repo in a project.
Interesting article - of all parts of the lamb/mutton to eat, tail was not a cut I'd heard of before.
If we're talking sheep, then I have to put out a shout for my local breed - the Romney Marsh sheep (the sheep that conquered the world!) - https://en.wikipedia.org/wiki/Romney_sheep