2,720 karma · joined November 3, 2010
He has been consistently putting out videos on his process and has been a (the?) main driving force behind the new pages addition.
He's also on patreon: https://www.patreon.com/doctormo
Would it be appropriate to open a github issue for discussing this further? I would like to share some example for how my current setup is working and having the github syntax available would be helpful.
The one thing that I'm currently struggling to find information on is dynamic dependency handling (dyndep in ninja terms).
Is that something that build2 covers as well? Any resource you could point me to?
edit: Yeah, doesn't seem like it.
edit: Yeah, I can't see how I can make it work for a file-based approach.
target: prereq | ooprereq
recipe
In my eyes, the most important thing when building something that is complex is the dependency graph and it makes sense to make the syntax for defining the graph as simple as possible. I think the make syntax just nails it and most of the other approaches I have seen so far add complexity without any benefit. In fact, most of the complexity they introduce seems to stem from confusion on the side of the developer being unable to simplify what they're trying to express.At the level of variable handling and so forth, make is slightly annoying but manageable.
Anything beyond that - yeah, I'm with you, a lot of that is terrible.
I use it heavily and think it's extremely underappreciated, so instead of reinventing it, I would like to build on it. But - trying to extend the old C codebase is daunting. I'd even be happy with a reduced featureset that avoids the exotic stuff that is either outdated or no longer useful. The core syntax of a Makefile is just so close to perfect.
(I wrote about some of this in the remake repo: https://github.com/rocky/remake/issues/114 )
AMA ;-)
I find it odd that you're focussing on making people understand that many in your profession care. It has been my experience that most health care providers… care.
Let's suppose that health care is like any other profession - let's say it's just like programming, something most people understand deeply on here.
We all know programmers who care and programmers who don't care. The best programmers I know are the ones who care, are competent, but also able and willing to have their understanding of the subject matter challenged. They're not married to their craft - they keep the right distance to excel at it.
The worst ones I know are those who care just as much, but are utterly incompetent. The ones who are so deep into it that they literally cannot see any other way. To them, everything is clear and obvious. They're willing, enthusiastic and overjoyed to be working. And they're wrong. There is not a codebase they touch where every hour of work they put in produces ten or twenty times as much work for others, later on.
I think caring about your craft is a force multiplier and it's a necessary one. You don't want a mindless drone who doesn't give a damn about either your health or your codebase, no matter how competent they are. To care means to have a vital part of you engaged in such a way that all that you could bring to the table does get there. But it has to be lightly held and accepting of being challenged.
You care. I get it. But that doesn't mean everybody cares. (Again, really struggling here to not respond in kind with examples of people I have met who clearly did not care.) And even if everybody did care - some people are actually more useless the more they care.
But - it's up to the customers (or patients) to navigate that landscape. There has to be a mutual understanding that all parties involved are just human and can make mistakes. Our understanding of health care moves forward and things that are standard care today had to be invented, sometimes just a few years ago, often replacing things that used to be just as firmly a standard, before. Challenging what is accepted practice should be a healthy part of this interaction.
There's a limit to how many people care. There is a limit to how useful it is that people care. There is a limit to how effective you can be for your patients when you walk around with a chip on your shoulder, thinking that people just don't get how much you care.
> Warp drive is in fact hard to take seriously because its basic physics are so far beyond the furthest reaches of our knowledge as to debilitate would-be researchers—not to mention reasonable doubts about the friendliness of faraway foreign species. (Some of them, I assume, are good aliens.)
I used to work for a company that bills their customers for dev hours spent. The software they put together worked fabulously well - in the production of billable dev hours.
I guess developers always implement their own ignorance to a certain degree (and how could they not!? except, you know, spending more time learning their craft). What they don't know the OS can do, they will recreate - often poorly - in their own software. It does get rather comical and the various frameworks that you can subscribe to in modern programming languages repeat the concept, just that now, you're reimplementing things that the language can already do, but in the framework.
My favorite example is the various kinds of "service" patterns, like dependency injection - in many instances that I've seen, you could boil most of its use down to simple function calls. But since global functions are ew, you instead create a service that you inject and then call a method in. Boom, the gods of OOP are happy and nobody is allowed to say: "Wait a minute, if I take a few steps back and squint a little, what you're doing looks surprisingly similar to a global function call."
(And yes, I know, DI is supposed to be about overriding functions, yada yada very few people actually do that and it's often such an organizational hassle with downstream problems that projects eventually resort to put up conventions from doing that most of the time. Anyways - tell that to the people that I've seen implement, I kid you not, a CamelCaseService.)
It does get unwieldy after a certain size, but that's what I'm building tooling for.
I'm using make to build a content graph, part of that is http:// dependencies. The underlying concept is that you can define protocols (https would be one) and then teach my make pre-parser about building them. An example would be:
myfile.js: https://code.jquery.com/jquery-3.4.1.js local.js
uglifyjs $^ -o $@
The 'https://' is rewritten to map to a local cache directory (so it's little more than a glorified variable, but still more intuitive since protocols are so familiar from our use of the web), so the above code is actually something like myfile.js: cache/https/code.jquery.com/jquery-3.4.1.js local.js
uglifyjs $^ -o $@
and that in turn invokes a rule that makes a HEAD request to the URL - if that is outdated against the local copy, that gets renewed. So, in regular make code, something like this: cache/https/%: cache/https/%.head
curl -Ls https://$* > $@
cache/https/%.head: cache/https/%.head.force
rsync --checksum $< $@
cache/https/%.head.force: FORCE
curl -Ls -I https://$* > $@
I could see a way to turn this around, though. The concept of "protocols" is currently only GET in my setup, but I do plan on supporting the idea of POST, eventually. So what you're asking for is that, I guess.I must say, though, that in my now three years of using (or abusing) make, "just make it another file" is surprisingly often the right next step. In the POST situation, it would simply be a local file that has direct or side-effects attached that do what you're expecting it to do.
How about you just give a UUID to everything in the schema?
The technical challenge with generated scripts (that you could edit by hand, but that just means that you now don't have an automated system) is that they don't understand changes at a deep enough level - they lack the context to see that a table or column has been renamed because they have no understanding of identity.
So - just give them identity.
Schema at commit 20b1ea23
03496418-e44c-42a6-a6a4-6563b7ae7bfb users
25233812-9a95-4bc3-893e-6accb935fa49 name
2f4c79c3-81b6-42d4-8379-ce5f0ed8ef62 address
83fc34c8-56c7-49d4-94d0-150cd76204bc password
Schema at commit c0d07562
03496418-e44c-42a6-a6a4-6563b7ae7bfb users
89482484-8205-40ad-a73b-a1bb988dc1d9 firstname
25233812-9a95-4bc3-893e-6accb935fa49 lastname
2f4c79c3-81b6-42d4-8379-ce5f0ed8ef62 address
c9f0d35d-439e-488c-a6d5-7a144c54335c address2
83fc34c8-56c7-49d4-94d0-150cd76204bc password
Now you could diff these two: @@ -1,4 +1,6 @@
03496418-e44c-42a6-a6a4-6563b7ae7bfb users
- 25233812-9a95-4bc3-893e-6accb935fa49 name
+ 89482484-8205-40ad-a73b-a1bb988dc1d9 firstname
+ 25233812-9a95-4bc3-893e-6accb935fa49 lastname
2f4c79c3-81b6-42d4-8379-ce5f0ed8ef62 address
+ c9f0d35d-439e-488c-a6d5-7a144c54335c address2
83fc34c8-56c7-49d4-94d0-150cd76204bc password
and every line of the diff has the necessary information to decide what operation you intended.I'm also looking for something similar to control and edit timelines. Do you have any plans on doing a litetimeline.js?
In general: kudos for having one of the few projects I've come across that is not drowning in dependencies. Very refreshing!
Suggestion: Having a few scenes to try out in the editor would be nice! (Or did I just miss them?)
(and yes, that is simply their technical blog)
Just, you know, have simpler problems?
SoC your stuff, solve the 80% instead of the 99%, challenge your assumptions about what you need and you'd be surprised how little complications you can get away with.
¹ one common tool in the pipeline actually being called babel never fails to amuse me.
They just ignored the fact that Java is compiled which makes all the layers of abstraction less of an issue whereas PHP is interpreted at runtime* hence why there are few high traffic websites on PHP that don't have at least four layers of caching.
* Yes, I know this is getting better with every version, opcache getting a lot of attention in the last few minor releases and all that, but there is only so much optimization you can do with dozens and dozens of layers of factories and services. My guess is that it does a LOT more for "simple" software like WordPress and less for, say, Symfony based projects.
I should hope so, what with the being German and all.
The rest of what you wrote borders, again, on projection and doesn't seem to be a constructive way to tackle the issue that you do seem passionate but not sufficiently empathetic about.
German here - drink pretty much exclusively tap water. Ordering tap water in a restaurant definitely IS frowned upon (the restaurant has to choose putting it on its menu and/or accommodate your request) , but I have yet to meet another German who would take offense at drinking Kraneberger.
I guess there may be regional differences, but it's very clearly not universal.
> There was a time before air conditioning when it was possible to heat and cool buildings.
There are a lot of old buildings with thick walls as well as special building styles (like the Fachwerk that we apparently have a lot of, compared to other countries) that deal very well with heat and, I must admit, have a much superior air quality and just overall feeling of climate than any air conditioned building I have experienced so far. Perhaps those are adjusted to a very particular temperature profile, though, and if the climate changes, AC might start to make more sense.
I don't think we have very good experience with installing AC, though. Just an anecdote, but at my $JOB, we're housed in a very "modern" building with light materials, large windows from floor to ceiling, exposure to sunlight from dawn till dusk and a hilariously impotent AC (supposedly fed by an innovative ice storage something or other). The people in charge do a marvelous job of pretending, for years now, that it's a complete mystery why the ac keeps failing to move the needle - at the record heat of 39°C outside, the temperature inside climbs well beyond 32°C. But I guess that makes sense if you were responsible for making as basic a mistake as "building the walls too thin".
> As soon as the fatties that need air-con completely take over then that is game over
Aber sag uns doch endlich mal was du wirklich von den Amerikanern hältst, Klaus-Dieter.