HNHacker News
TopNewBestAskShowJobs

thomasikzelf

161 karma · joined July 2, 2020

Founder moos.app and interested in webgl, crdt, javascript, future programming languages and the web in general. https://thomaswelter.nl
submissionscomments
thomasikzelf··on Show HN: Moos.app – Interactive animated experiences for the web
Hello Hacker News, founder here. I'm very excited about this startup.

One feature of this tool that I am particularly excited about which I think people here will appreciate is the way expressions are implemented. Expressions are fully typed and the types are automatically inferred. When you leave a hole the editor will tell you what type fits there.

Don't forget to try out the (full) app in the playground!

thomasikzelf··on Where is the CRDT for syntax trees
Your example above is maybe a good example why we do want range deletes, among other operations. In my view the problem is matching the semantics of the CRDT library to the semantics of the problem domain. Having more options always makes this easier (but not for the maker of the CRDT library :-p). I would even think that maybe we need CRDTs with programmable semantics along side inserts, deletes, move, range delete, etc (just an idea).

I would love to work on a structural editor for a programming language. Maybe I will start some experiments after my current project. Keep up the good work!

thomasikzelf··on Where is the CRDT for syntax trees
We are almost there, for lists and structs there are CDRT's but a move operation across the data structure is missing. Martin Kleppman (from automerge) talks about this in his talk "CRDTs: the hard parts"[0].

I also think a range move or range delete is missing from many of these algorithms. A submission here on HN did implement a range delete on rich text (but I forgot what the name was).

[0]: https://www.youtube.com/watch?v=x7drE24geUw

EDIT: Ah actually Peritext (which you linked to) was the article I was thinking of. I think the range delete would be useful for regular lists as well.

thomasikzelf··on Show HN: A tool to build real websites built exclusively in SVG
I really like that this allows people to finally break free from the box design and try something new. Of course there will be challenges like accessibility along the way but those can be solved.

I just happened to launch a similar product today on product hunt (https://moos.app) that also allows people to build pages from SVG files but I take a more hybrid approach and focus more on animation (and the render actually uses WEBGL for performance reasons).

Will we still have the same boxy design in 5 years or will we have a completely new experience?

thomasikzelf··on Instanced Line Rendering Part II: Alpha Blending
I tried this but it rules out doing antialiasing in the fragment shader.
thomasikzelf··on My pain building a WYSIWYG editor with contenteditable
> The docs are detailed and exhaustive but did not help me much understand how to actually use it. I had to read Marijns code which I found hard to follow.

That was also my experience. Your examples would've helped me a lot a couple of months ago. Thanks for writing it down!

thomasikzelf··on My pain building a WYSIWYG editor with contenteditable
I feel your pain. Have you seen prose mirror? It should do everything you listed. It takes some time getting it up and running and understanding the api but after that it seems really consistent. If you end up creating your own library you should read the blog from marijn haverbeke (creator of prosemirror and codemirror) it gives a lot of insights into building a WYSIWYG editor. I think another problem is that keyboard events are not fired on mobile so your solution might not work there. https://marijnhaverbeke.nl/blog/
thomasikzelf··on Klarna users are being signed in to random accounts
I looked through the terms of use and the privacy policy for Mollie and I don't think they are selling data. Do you have different information then I have?
thomasikzelf··on Instanced Line Rendering Using WebGL
You can do anti aliasing in the fragment shader using 4 vertices per segment. See: Shader-Based Antialiased Dashed Stroked Polylines- Nicolas Rougier

And:

https://blog.mapbox.com/drawing-antialiased-lines-with-openg...

I am also rendering round caps in the fragment shader. You can then render multiple lines with 1 draw call. The only problem is drawing transparent lines, because of the overlap between segments.

thomasikzelf··on CEO of Waymo John Krafcik is leaving
More context on the -no safety driver- issue.

"Eliminating the safety driver is an important step toward making Waymo's service profitable. But it may not be enough on its own because Waymo says the cars still have remote overseers.

These Waymo staffers never steer the vehicles directly, but they do send high-level instructions to help vehicles get out of tricky situations. For example, a Waymo spokeswoman told me, "if a Waymo vehicle detects that a road ahead may be closed due to construction, it can pull over and request a second set of eyes from our fleet response specialists." The fleet response specialist can then confirm that the road is closed and instruct the vehicle to take another route."

https://arstechnica.com/cars/2020/10/waymo-finally-launches-...

thomasikzelf··on Don't Offer a Free Plan
Sublime text has this: "Sublime Text may be downloaded and evaluated for free, however a license must be purchased for continued use. There is currently no enforced time limit for the evaluation."

https://www.sublimetext.com/3

thomasikzelf··on Don't use functions as callbacks unless they're designed for it
How about this? (I am not a 100% about this one)

    f = Object.defineProperties(x => x, {toString:{value:()=>'a'}, [Symbol.toStringTag]:{value:'a'}})
and we will change it to:

    f = Object.defineProperties(y => y, {toString:{value:()=>'a'}, [Symbol.toStringTag]:{value:'a'}})

Edit: ah you -can- break it actually. A challenge for others to figure out how to break this one.
thomasikzelf··on Show HN: JavaScript Program Synthesis
This interesting method also brings some interesting bugs. On the last example (find max element in array) the following solution was generated:

    function run(input) {
        let output = []
        for (let i0 in input) {
            // block
            let n2 = input[i0];
            let n1 = n2 - i0;
            if(n1 > i0) {
                // block
                output[0] = n2;
            }
        }
        return output
    }

    console.log(run([4,3,8,2,5,1]))
    console.log(run([1,1,1,1,1,20,0,0]))

    // my counter example:
    console.log(run([10, 9]))
It seems you still need to inspect the program to check if the program actually does what you expect it to do. This seems much harder to do with the generated code in the article.
thomasikzelf··on Shapez.io: open-source base building game inspired by Factorio
Great game. In about 4 days the wire update will be released, which includes logic gates into the game: https://shapez.io/wires/
thomasikzelf··on Lights and Shadows
I sent you an email!
thomasikzelf··on Lights and Shadows
I did not see that article but that is definitely the kind of thing I want to make possible. Thank you for the link!

This is one example of showing information in an interactive way but there are other forms as well. There are currently around 10 other visual representations in the tool (think maps, presentations etc).

thomasikzelf··on Lights and Shadows
> Agreed. Unfortunately I think this is the inherent limitation to the explosion of such material (Bret's seminal essay [0] was almost a decade ago) - it takes an insane amount of skill, in mostly orthogonal disciplines, as well as a lot of time and effort to make it.

This is what I figured out as well. Often the people that have the knowledge are not the ones who know how to put this on to a webpage in a another form then text and images. Like mygo comments below most explanations are done in interactive news articles but this has to be done with a team of programmers and designers who are working together. I am currently building a tool trying to narrow this gap. The tool is at a very early stage, but I'm sharing early previews at [1]. The goal is to create a tool for interactive visualizations that people without much programming experience can use which outputs something that is more dynamic then just text. Such a tool could never do what could be done with a full blown programming language but I'm hoping to start at an easy to use tool and expand it outwards to more complex visualizations.

[1] https://dribbble.com/shots/12517016-Essay-with-dynamic-backg...

← PreviousPage 3 of 3