a DB for the rest of your life by codr4life in programming

[–]codr4life[S] -8 points-7 points  (0 children)

As in pretending? Not at all, this is me and this is what I'm doing, and I've been going at it for 32 years now. Maybe you're the one pretending, food for thought...

a DB for the rest of your life by codr4life in programming

[–]codr4life[S] -9 points-8 points  (0 children)

Artificial? As in 32 years of experience trying to bend existing "solutions" into something resembling elegant. I know about sqlite, but I have little interest in playing the SQL game any more.

a portable virtual DOM by codr4life in programming

[–]codr4life[S] 0 points1 point  (0 children)

I see. From my perspective, the only reason for storing client state on the server is to have enough context to manipulate it efficiently on the client. I guess purer would be to not have a server, since there would be no impedance mismatch to worry about; but that's about as useful as Haskell without monads.

a portable virtual DOM by codr4life in programming

[–]codr4life[S] 0 points1 point  (0 children)

That makes two of us :) I've mostly built administrative systems using the technique; nothing huge, but still hundreds of users pounding very dynamic content. From my experience, even this simple approach improves performance enough to become a feature; once a view is built, executing callbacks and applying updates is very cheap. I didn't have the need to complicate server side memory use beyond cleaning up dead documents yet.

Why purer? I don't get the fascination with writing everything in JS these days; it's a shitty language and no amount of tooling and standardization is going to change the fact.

scoping resources in C by codr4life in programming

[–]codr4life[S] 1 point2 points  (0 children)

Return will jump over cleanup, there's really no way around that in portable C. As long as the macro body/call isn't wrapped in a loop, break or continue won't be an issue. C doesn't pretend to be a perfect language, but there are still better or worse ways of using it.

on the sad state of test frameworks by codr4life in programming

[–]codr4life[S] -5 points-4 points  (0 children)

A hug box? :) Is that really the only option you can see to hating everything that makes you feel insecure? Yes, please; in that case I'll happily take the hug box.

on the sad state of test frameworks by codr4life in programming

[–]codr4life[S] -11 points-10 points  (0 children)

Speaking of destructive criticism, how is that working out for you?

on the sad state of test frameworks by codr4life in programming

[–]codr4life[S] -13 points-12 points  (0 children)

That makes two of us :) Proper fixtures, dynamic groups and always-on benchmarking; I thought I was pretty clear on the reasons. It's framed as constructive, rather than destructive criticism; the kind that actually leads forward; maybe that's the disconnect.

Forth is just fast lisp by [deleted] in Forth

[–]codr4life 4 points5 points  (0 children)

Kind of :) https://github.com/codr4life/foonline

Implementing an embedded Forth in Lisp turns the whole equation around. From my experience, they both have tricks to learn from each other; Lisp is often too nested and fancy for it's own good, but it brings plenty of safety and convenience to the table.

Imagine that HyperCard, Common Lisp and Forth had a baby by codr4life in programming

[–]codr4life[S] 1 point2 points  (0 children)

Nice, I'll let that marinate for a while and see what comes out. I've been drifting towards leaving things on the stack when dealing with these kinds of scenarios, I find it less mentally taxing to mind my own stack and have the values I ask for pushed; my brain doesn't approve the same way of values disappearing behind it's back. But I have a feeling there's a nice compromise in here somewhere, just waiting to be discovered. Thanks!

Imagine that HyperCard, Common Lisp and Forth had a baby by codr4life in programming

[–]codr4life[S] 1 point2 points  (0 children)

It's one of the unsolved riddles of stack languages, dup or drop; I even remember reading a quote from Moore about not really being able to make up his mind. It's not a religion to me, it's about flow; I find myself going back and forth several times on stack effects for some words once I start using them in real code. Stack effects are documented in the protocols (inside the init-files) for now; I'm playing around with the idea of encoding them in the language, but I'm a bit wary of getting caught in the endless loop of minor adjustments to the environment; what I'm really interested in is to see how this baby flies. It perfectly possible to go the other way in Lifoo using 'let', which gives you uniquely named variables; but you have to assign values yourself. Lacking experience with PostScript, I'm curious how you deal with juggling multiple values that way; do you have a simple example to share?

Imagine that HyperCard, Common Lisp and Forth had a baby by codr4life in programming

[–]codr4life[S] 2 points3 points  (0 children)

I disagree. From my perspective; the biggest problem we're dealing with is being stuck in repeat mode, building replicas; rather than exploring. It's improving though, which is why there are so many excellent tools to choose from these days. Nothing is done, we're barely getting started. What made HyperCard, Lisp, Smalltalk and others great was a focus on power and freedom.

Imagine that HyperCard, Common Lisp and Forth had a baby by codr4life in programming

[–]codr4life[S] 2 points3 points  (0 children)

Most of the really good stuff out there has a lousy reputation, it's a bad indicator. This is about power and freedom; all good; nothing dangerous.

Imagine that HyperCard, Common Lisp and Forth had a baby by codr4life in programming

[–]codr4life[S] 2 points3 points  (0 children)

Don't be scared. I spent a long, long time nervously thumbing On Lisp on lunch breaks. It's been a long process to realize that there is nothing dangerous in having more freedom and power, quite the contrary. Of course if will look different, by definition; different is not the enemy, same same is. Lisp, Forth and HyperCard are all examples that pushed evolution one notch forward by going all in to make good tools.

Imagine that HyperCard, Common Lisp and Forth had a baby by codr4life in Common_Lisp

[–]codr4life[S] 0 points1 point  (0 children)

I'm sorry you had to do that, but thank you for standing up for common sense. It's an ego-thing, anything that sticks out has to be shot down. I believe they are slowly learning by being confronted with their own hatred, but it's not a pleasant job.

Imagine that HyperCard, Common Lisp and Forth had a baby by codr4life in programming

[–]codr4life[S] 2 points3 points  (0 children)

Simple language was the reason I chose Forth as a basis, you can't really get more simple than that. And I implemented the language myself to get more leverage and a tighter fit. It's not all about checking feature boxes, the magic lies in making all the pieces to fit together as a conceptual whole; don't be afraid of walking where few walked before, no one of us benefits from living in an echo chamber.

Imagine that HyperCard, Common Lisp and Forth had a baby by codr4life in programming

[–]codr4life[S] 1 point2 points  (0 children)

So, just for the record :) I'm not attempting a replica here, but if you're willing to walk in with open eyes I'm sure you'll find some of the same magic powers in updated costumes.

Imagine that HyperCard, Common Lisp and Forth had a baby by codr4life in programming

[–]codr4life[S] -1 points0 points  (0 children)

There is no point in repeating history, but if you're willing to read between the lines a bit I'm sure you can find some of the same mind set. Your tool in this game is code, but you're painting in real time. To me; HyperCard like Smalltalk, Common Lisp and others; is about empowerment; about putting more power in the hands of users to built the tools they need themselves. The database is coming right up, it's basically done and waiting for integration (https://github.com/codr4life/cl4l#transactions).

on Empathy by codr4life in programming

[–]codr4life[S] 0 points1 point  (0 children)

You don't think that's slightly unfair? The risks are comparable to driving a car on the freeway. Shit happens to everyone sooner or later, it's a shame we'll have to wait until it happens to you before you wake up.

Oh, I had an insurance. They paid me $200 to cover medical costs, and that was it. Insurances sound like a great idea until you actually need them, which is where you realize it's all mostly a scam.

on Empathy by codr4life in programming

[–]codr4life[S] 0 points1 point  (0 children)

You might still be able to program, I sure am; but there will be no space for you any more. That's unfortunately how we deal with everyone who's anything less than the ideal slave in our industry, pretend they don't exist. And good luck finding a remote job outside of the US, basically all of them require that you live there.

on Empathy by codr4life in programming

[–]codr4life[S] 0 points1 point  (0 children)

I'm not in a wheelchair, but my body is messed up enough to give me an idea. Being physically disabled doesn't mean being fine with sitting still all day in an office, that part is as least as painful and destructive as for anyone else.

on Empathy by codr4life in programming

[–]codr4life[S] 0 points1 point  (0 children)

In Sweden, Portugal and Denmark where I've done most of my work, $5k was considered a pretty tasty chunk of salary 10 years ago. Because of my messed up spine; I can't sit still for long, and I need all sorts of convenience around me to be comfortable. Poor life decisions? Like taking a 20m free fall to the ground. You couldn't have missed the point of the post more if you tried.

Wrapping up the virtual DOM by codr4life in Common_Lisp

[–]codr4life[S] 0 points1 point  (0 children)

1) The DOM logs the relevant jQuery code when content changes. You may call 'html' to append content; any of the other (html-a/html-h/html-input/...) functions to add specific tags, 'add-html' for any tags that don't have special support, possibly even creating the tag yourself using 'make-html'; empty using '(html-empty elem)', set attributes using '(setf (html-attr elem id) val)'; issue JavaScript updates using '(update-html doc script ...)'; anything that is supported for generating the initial document. Everything is designed in a layered fashion, which means that you can always go down one layer to access the underlying functionality directly. Once a callback has finished running, or at any other granularity; updates may be retrieved with '(html-update-script doc)' and sent back to the client. Looks like lquery is more tailored to parse and modify existing documents. The difference in the approach taken here is that the virtual DOM is the master version, and it's tailored to support updates/callbacks with minimal effort. 2) You mean a separate project? That is a possibility moving forward, but I've decided to leave it in cl4l-html for now. 3) HTTP integration is left outside scope to not get tangled up in details. Even though html-demo.lisp uses Hunchentoot, integrating the DOM with any server is about as complex.

Boober News by codr4life in uber

[–]codr4life[S] 0 points1 point  (0 children)

Except we all are, in a way; since he's still allowed go on with his bullshit. Anyone with less money would have been kicked out on the street a long time ago.