HNHacker News
TopNewBestAskShowJobs

novocantico

452 karma · joined March 4, 2022

submissionscomments
novocantico··on Warn HN: AI is the new Golden Calf
> questioning others' beliefs while asserting that you have the true answers is childish at best.

Then it's childish for you to tell a flat earther they're mistaken. The objective, historical facts are on the side of Catholicism, whether you want to admit it to yourself or not.

novocantico··on Warn HN: AI is the new Golden Calf
> it was dangerous because people assigned it reverence beyond its function

People assigned it capability beyond its ability. That's the entire problem with AI. It is not intelligence. It merely mimicks it. What atheists call human intelligence is actually an ability we have because we're God's images. Making something in our own image and calling it a god is deeply biblical and culminates in Revelation 13:15.

novocantico··on Warn HN: AI is the new Golden Calf
> Who's delusional?

Every atheist on here, but more particularly, the elitist tech communities that think science is all there is to reality, when life experience abundantly proves otherwise from every direction.

novocantico··on Warn HN: AI is the new Golden Calf
> Respectfully, if AI is the golden calf, then so were the printing press

Stupid analogy after stupid analogy. The printing press merely let us mass-transmit ideas on paper. The whole point of AI is to be able to imitate the human mind, through a neutral network created via software and data training.

I have no problem sitting by while fools use AI to create inherently doomed works of art and prose.

novocantico··on Proposal for Standardized JSX
Now I see why this proposal is doomed. The only people who could vote it up to the people who could understand its merits, are people with very low software competence.
novocantico··on Proposal for Standardized JSX
JSX can become valid, standardized ECMAScript syntax.

But first we need a valid syntactic sugar transformation, which I propose here.

Then we need to implement it in things like babel[0] bun[1] and deno[2].

Then, frameworks would adopt it as an optional alternative implementation.

Eventually, it could gain widespread support and become standardized.

[0] https://github.com/sdegutis/vanillajsx.com/blob/main/site/un...

[1] https://github.com/oven-sh/bun/issues/13630

[2] https://github.com/denoland/deno/issues/25312

novocantico··on VanillaJSX.com
My framework (imlib[1]) is actually more of a framework akin to Astro than what's showcased on vanillajsx.com, which itself is built with imlib.

It just runs your code in a node.js process, and translates your JSX expressions into jsx() calls. On the node.js side[2], jsx() returns a string from its tag/attrs/children. On the browser side[3], jsx() returns DOM elements.

Combined with a little bit of architecture, it becomes something extremely well suited to creating static sites. I guess SSG is an outdated term now, maybe it's a framework? Or a platform?

In any case, it seems to do something similar to Astro, but in a significantly simpler way. The only "bundle" it needs in the browser is /@imlib/jsx-browser.js [4] which in itself is just jsx-dom.ts (its impl is overridable by the "framework" user). And on the node.js side, it's implemented as a very small "vm" of sorts [5].

I'm not against Astro, I just get all the same benefit people here are saying Astro has, but with orders of magnitude more simplicity imo.

I've used imlib to make a relatively large website [6], in fact imlib was developed as this website and extracted from it over the past year. I have absolutely no difficulty breaking down my site into various reusable and encapsulated JSX components, both on the ssg-side and the browser-side. Development time is lightning fast. IDE support is essentially automatic. The site loads instantaneously in the static parts, and as quickly as reasonable in the dynamic parts.

[1] https://github.com/sdegutis/imlib

[2] https://github.com/sdegutis/imlib/blob/main/src/jsx-strings....

[3] https://github.com/sdegutis/imlib/blob/main/src/jsx-dom.ts

[4] https://vanillajsx.com/@imlib/jsx-browser.js

[5] https://github.com/sdegutis/imlib/blob/main/src/runtime.ts

[6] https://github.com/sdegutis/immaculatalibrary.com

novocantico··on VanillaJSX.com
That may be a point in favor of imlib.

Technically this is the only code bundled with vanilla jsx:

https://vanillajsx.com/@imlib/jsx-browser.js

novocantico··on VanillaJSX.com
I just added a more complex todo app to the bottom of the page. So it should give an idea of how a more complex hierarchy can respond to events elsewhere in the hierarchy and update themselves and each other accordingly.
novocantico··on VanillaJSX.com
Oops. Fixing now.
novocantico··on VanillaJSX.com
For all "have you tried ___" questions, the answer is the same. I've been trying all these new techs for the past 10-15 years, regularly, as soon as they come out, for the first few years with much with excitement, and later with disillusionment and less regularity.

Another user below said

> We've recently moved one service from next to Astro and it was just removing a ton of boilerplate and 'dance around' code.

And I get why it happens. When you first try out a new framework, you allow yourself to learn and add its inherent complexity, knowingly and intentionally. You say to yourself, "it's part of the dream, it's going to work out; there's a vision, just trust the process." This is true with literally all frameworks.

But they never deliver. The complexity is never worth it, and in the end, the intentionally added complexity is always intentionally and gladly removed when it becomes clear that it was unnecessary complexity. This is what I am glad to have learned so thoroughly that I no longer try to learn new frameworks when I initially see its complexity, imagine adopting it in view of my experience, and recognize that its almost always not worth it.

Look at the code on vanillajsx.com. Besides JSX and types, it's plain JavaScript and DOM manipulation. Translating it to document.createElement would add almost no lines of code. There's no unnecessary complexity. That's the whole point of the site. The simplicity of discovering and removing unnecessary complexity is wonderful and refreshing, and I think a lot of people agree.

novocantico··on VanillaJSX.com
There were two groups I was hoping vanillajsx would resonate with. The first is people who still buy into the React dream but are beginning to be disillusioned with its inability to deliver on its promises, and the second is people who already are fully disillusioned.

Specifically, I'm hoping to show that vanilla architectures can be not only performant, but easy to maintain with well designed code that uses stable and known patterns. Using JSX just so happens to clean up the code nicely and make the relationship between React and vanilla very visible, but that's really all it did here.

Although to be fair, the hack required to get JSX-as-DOM to work is really unfortunately and I'm not very happy with it, and I would prefer JSX to just render as an object tree that anyone can render however they want. But when I tried that for a few months or a year, it was not nearly as performant as rendering them as strings as soon as they're evaluated, which can then be cached via standard module caching. At least, that's how I got immaculatalibrary to entirely render all HTML files in ~700ms initially and ~70ms on most file changes.

I'll try to do some experimentation next week to see if I can get more performance back out of having <foo bar={qux}>child</foo> to render as {foo:{bar:qux, children:[child]}} again though, because that would absolutely be the ideal, and would unfork JSX in the same way Typed Annotations proposes to unfork JavaScript types.

novocantico··on VanillaJSX.com
> is probably the main benefit of a VDOM

I get the "no more imperative updates" dream. I've used these frameworks for probably a decade. I've mastered them.

Me personally, I prefer imperatively updating my DOM. I get completely fine-grained control over what's happening. I can architect it to be an extremely efficient machine. I can make it extremely easy to add/change/remove/fix features in my apps without forcing myself to think according to anyone else's opinionated methodology.

novocantico··on VanillaJSX.com
lolinder explained it well in here
novocantico··on VanillaJSX.com
The technique I used here and in all my browser-side code is the exact same technique used by VS Code internally, and it scales very well. The only difference in my code is it's more concise than writing 10 lines to construct and setup a DOM element the typical way.

Honestly, the real interesting part about my framework is literally everything else. Returning strings from JSX on the ssg-side; being able to import raw source directories and manipulate string|Buffer at ssg-time; the extremely efficient and lightning fast module system I wrote on top of chokidar and swc; probably more I'm forgetting, but basically the JSX-as-DOM is only the most visually interesting part. But really just a party trick.

[edit] Case in point: the source code to vanillajsx.com is extremely concise and clear and short, I literally wrote the whole thing today with zero deps (besides imlib), and the JSX-as-DOM demos are the least innovative part of it: https://github.com/sdegutis/vanillajsx.com/tree/main/site

novocantico··on VanillaJSX.com
I admit that the two most complex "interactive apps" I've built with this are not that complex according to many standards:

* https://www.immaculatalibrary.com/books.html (src = https://github.com/sdegutis/immaculatalibrary.com/blob/main/...)

* https://www.immaculatalibrary.com/prayers/ (src = https://github.com/sdegutis/immaculatalibrary.com/blob/main/...)

novocantico··on VanillaJSX.com
Thanks for taking some interest in my project. It came from being frustrated with the state of SSGs over the past 10 years. I mostly just make static websites, and I wanted something that was simple and intuitive to me, and JSX seemed like a great fit. But I got very tired of the disproportionately scaled complexity of JSX frameworks like React. Long story short, I made an SSG that just renders JSX as strings. It was natural to extend that to the browser to just render JSX as DOM elements. And in a few cases (mostly layout) it lends well to shared components. Overall I'm happy with what I came up with, although some of it is admittedly a little hacky, and IDE support isn't as good as it could be.

[edit] Oh also, this solution works really well for SEO. That's another problem I didn't find solved well in other JSX frameworks.

novocantico··on Allow type annotations in .js files in preparation for Type Annotations proposal
"Awaiting More Feedback: This means we'd like to hear from more people who would be helped by this feature"
novocantico··on Sex offender can't get a job. Completely out of ideas. Help?
I've become expertly proficient in over a dozen software languages over the past 20 years. But recently my mind is so shot that I lost my client because it was all Java Atlassian stuff.

Right now I only feel qualified to say I am excellent at React, JavaScript, TypeScript, jQuery, Node.js, and similar.

novocantico··on Sex offender can't get a job. Completely out of ideas. Help?
My ex can't afford to have the kids on her own. She doesn't make enough for all the bills. They need me to provide for them. But I won't be able to provide for them and my own rent on a McDonald's income. And I won't be able to keep a McDonald's job if I'm homeless. So the only choice I have is to do everything I can to find a job that pays what I need. Even if it's utterly humiliating.
novocantico··on Sex offender can't get a job. Completely out of ideas. Help?
I would rather die than not provide for my children. My one and only purpose in life is to be their father. So I will provide for them or die trying.

What I need is help on figuring out how to find a job that makes me $50/hour and doesn't kill me.

And for everyone here, I am not suicidal. I am just really, really tired of life.

novocantico··on Sex offender can't get a job. Completely out of ideas. Help?
No. All family has disowned me except one who lives right next to a school. No shelters take sex offenders. I'm currently living in a furnished attic of a war vet, it has a bed, bathroom, sink, and microwave. And he hasn't kicked me out yet. He keeps putting papers next to my door that say things like "did you try applying at Yelp?" and other well intentioned hopeless ideas. So he's clearly rooting for me, but he did say I have to pay at some point.

Which is why my goal is to get a job, and not start a gofundme.

novocantico··on Sex offender can't get a job. Completely out of ideas. Help?
My goal isn't to stop providing for my children's needs. That $3k/month is their rent, food, clothing, and bills.
novocantico··on Sex offender can't get a job. Completely out of ideas. Help?
Tried upwork, applied for a lot of jobs last month on it, I never get any bites. Also I need to make at least $5200/month (net) which seems unlikely on upwork.
novocantico··on Ask HN: Freelancer? Seeking freelancer? (December 2022)
SEEKING WORK

  Location: Chicagoland

  Remote: Yes

  Willing to relocate: No

  Technologies: TypeScript / JavaScript / React / Node / etc

  Résumé/CV: https://sdegutis.github.io/resume.html

  Email: sbdegutis@gmail.com
novocantico··on Ask HN: Who wants to be hired? (December 2022)

  Location: Chicagoland

  Remote: Yes

  Willing to relocate: No

  Technologies: TypeScript / JavaScript / React / Node / etc

  Résumé/CV: https://sdegutis.github.io/resume.html

  Email: sbdegutis@gmail.com
novocantico··on Ask HN: Where can we find the unsexy jobs?
On the (far) outskirts of major tech cities. Like, 50 miles out.
novocantico··on Security Comics
I've found that 95% of the words on any given webpage are completely unnecessary, especially when researching or learning software topics. I also found that graphics and code examples are 1b% underrated and useful.
novocantico··on I need to find an apartment
It's true, I omitted a vital piece of the puzzle. Without it, my comment's advice does really come down to "have luck".
novocantico··on I need to find an apartment
Just keep your eyes open is all I mean. Life is strange, you never know what you're going to find.
Page 1 of 3Next →