Hacker Newsnew | past | comments | ask | show | jobs | submit | rikroots's commentslogin

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?

Vive la révolution :-)

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


Speaking of gradients and noise, adding "Interleaved Gradient Noise" to gradients can get rid of the color banding that you'll often see on gradients displayed over a wide area.


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?

[1] - https://kaliedarik.github.io/sc-screen-recorder/

[2] - https://kaliedarik.github.io/sc-filter-builder/


> 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


> Last year I made the mistake of asking ChatGPT

That's the only way to ask it.

But in the spirit of generosity you may be interested in the "one-point compactification of the line".


As the other reply alluded to, this is actually a real thing [0].

[0]: https://en.wikipedia.org/wiki/Projectively_extended_real_lin...


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.

[1] - https://github.com/KaliedaRik/Scrawl-canvas

[2] - https://genuary.art/

[3] - https://codepen.io/collection/RzzMjw


No install, no backend, no fees. MIT licensed for hacking and local use.

Link to tool: https://kaliedarik.github.io/sc-screen-recorder/


> 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


Why do you bring up Chinese cornes if the basic Latin text in the Pretext demo is deficient?

(by the way, in your cool demo the wheel template can have some letter parts like the top of L or d extend beyond the wheel)


> 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.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: