Fork me on GitHub
#clojure-europe
<
2023-03-14
>
javahippie07:03:10

Morning :rain_cloud:

dharrigan07:03:57

Good Morning!

simongray07:03:54

@javahippie I also miss the sun. It’s been more than a week since our last cargo bike adventure.

javahippie07:03:53

We have had some sunny days lately. Tonight we had thunderstorms and a lot of rain, but as far as I can remember it was the second bigger rain for this year. It’s very dry down here in the south 😕

reefersleep08:03:24

The snow’s all gone here since yesterday. Too bad, it was very picturesque.

javahippie08:03:20

There is a drought-monitor from a German institute, red is “extraordinary drought”. I marked my hometown with an arrow. In General, not looking too great for March

😲 2
reefersleep08:03:35

That’s crazy! 😮

javahippie08:03:53

We are at the foot of the Black Forest, usually a place to ski in the winter. They barely had snow in the winter, which is adding to the lack of water. I heard it‘s way worse in France atm

reefersleep08:03:30

Good morning!

reefersleep08:03:41

And a glorious day to you 🎩

🎩 4
raymcdermott08:03:04

Good morning

☁️ 2
❤️ 2
mccraigmccraig09:03:42

TIL that a manhole cover holds the distinction of being the fastest thing ever launched by man ( https://www.youtube.com/watch?v=tFt9WDhWOXo https://en.wikipedia.org/wiki/Operation_Plumbbob#Missing_steel_bore_cap )

javahippie09:03:53

Depends if you look at Launch Speed, in abolute terms, the Parker Solar Probe should be the fastest manmade object https://en.wikipedia.org/wiki/Parker_Solar_Probe

mccraigmccraig09:03:38

the solar probe's eventual speed is much higher : but if you take "launch" to mean the effort to escape from the earth's gravity well then i think the manhole cover is winning...

javahippie09:03:00

By far 😀

mccraigmccraig09:03:45

'course... we're all doing about 700,000km/h around the galactic center 😀

javahippie09:03:23

So in absolute terms, that manhole cover might have been the slowest object ever launched ba mankind :face_with_monocle:

mccraigmccraig09:03:31

hmm... not sure there are any absolute terms here!

javahippie09:03:49

Was not to be taken seriously ;)

mccraigmccraig09:03:32

would have loved to have seen the manhole cover filmed by a modern high-frame-rate camera though

mccraigmccraig09:03:23

i love how you can tell roughly how this high-speed camera works from the resolution / frame-rate details : https://en.wikipedia.org/wiki/Phantom_(high-speed_camera_brand)

simongray10:03:34

I keep rebuilding a Java WAR and somehow my code changes are included, but it still includes deleted resource files?? I am so lost dealing with Java build processes

reefersleep10:03:25

Make love, not WAR

☝️ 2
😁 2
reefersleep10:03:28

Sounds annoying

mccraigmccraig10:03:43

do you have a target directory or similar which is accumulating intermediate build products and doesn't get removed until you do a clean build ?

☝️ 2
2
vemv11:03:16

sounds like it. Additionally, I hope you're building your deployable artifacts from a CI env (which presumably doesn't accumulate state) 😇

simongray12:03:58

@U0524B4UW Thanks. That was indeed the case.

partyparrot 2
simongray12:03:24

@U45T93RA6 LMAO. As if I have time for that. I have like 10 different projects I am the sole person who is responsible for and most of them are stuff that’s 10+ years old I have inherited, like this PoS Java project I am looking at now.

simongray12:03:21

but it will eventually be a part of a Docker setup, so in some sense you’re right. Before it is fully dockerised, I need to figure out how to fix the stuff that isn’t working though

simongray12:03:45

It is a fork of a project where the only documentation is run mvn war:war

vemv12:03:46

hope the adventure goes well!

🙏 2
reefersleep12:03:04

I’m starting to think that you should go with Thomas’ solution 😛

🔥 4
🪓 4
simongray12:03:59

eventually, I hope to automate it all as a Docker setup, so that I won’t have to think about it ever again

emilaasa12:03:02

Gathering these ad-hoc steps in a Makefile (or similar) is usually a good step when dealing with 10 different shitty projects. Executable reminder of how stuff works, and portable to any fancy future environment.

simongray12:03:55

@U6T7M9DBR That’s what the Dockerfile is for

simongray13:03:55

A Makefile is too limiting

simongray13:03:11

not to mention very environment-dependent

emilaasa13:03:33

Dockerfile is great if you want to produce docker images yes, but usually inheriting 10 projects comes with a plethora of "fun" little things that need to be (re-)done every once in a while. 🙂 I've found that the lowest common denominator (make) works pretty well 🐵

emilaasa13:03:13

Anyway the sausage is made is fine, the important part is the cognitive relief of having a repeatable script to run that you know works for you.

emilaasa13:03:59

I've often shot myself in the foot by not taking the time to write these things down in some executable fashion in the name of saving time, and then ended up stressed and confused 🙂

simongray14:03:00

but for example in this case it some old PoS Java code that depends on some Python code that only works with libreadline8 (not lower) and setuptools version <46. Makefiles are not suitable for expressing environmental interdependent code like that, they are too low-level.

😭 4
simongray14:03:33

I’d rather just put the mvn clean, mvn compile, mvn war:war steps inside a Dockerfile than have it inside a Makefile that needs to go inside the Dockerfile anyway, since the project needs to be running in a specific environment anyway 🙂

simongray14:03:43

and believe me, I write these things down… usually as Docker configuration… it is my predecessor who didn’t bother to do that 😛

simongray14:03:10

I guess I could put it inside a Makefile for my own sanity while developing…

mccraigmccraig14:03:17

aren't you already running the mvn inside a container to get the archaic deps ?

simongray14:03:52

not right now, now I’m copying the WAR to facilitate ease of development. Still cannot figure out why I can’t seem to access the webapp on the configured path and port

simongray14:03:25

I really miss my REPL

simongray14:03:51

I don’t think it’s a Tomcat issue, nor is it a Docker issue. It just because I have no idea what combination of path, port and query string actually results in data

simongray14:03:36

and discovering that combination requires digging into the Java + XML source code and really understanding how everything works…

simongray14:03:26

but at least I fixed the other stuff

simongray14:03:33

There are tests, but they don’t really contain an obvious URL to test that everything works. Instead there is a complicated Java builder that generates a tester object and this tester object seems to build some very large requests which it then sends to a mock servlet. In production, everything comes from a combination of XML and JSON configs that are converted into Java classes, one of which is the servlet. There is no documentation, so I am really just trying to figure out a way to curl a path from inside the Docker container that is running this stuff to let me know that it’s running correctly. Every path that doesn’t fit the expected pattern returns 404.

simongray14:03:08

I did find one path that returns 302, but that’s it.

mccraigmccraig15:03:18

i do not miss any of that XML data binding bollocks that java is so fond of. clj/s with its general purpose datastructures with excellent literals and flexibile polymorphism is sooo much better

2
simongray13:03:33

I seem to have finally managed to get a nice setup going… I already had two Docker containers running v8 of the backend (Python) and one running the corresponding version of the frontend (TS and JS). Now I have added a container running v6 of the backend (Python), a builder image (java) which builds the .war and also runs mvn test before exiting, and then the actual Tomcat webserver + the .war from the builder in yet another container (Java).

emilaasa14:03:30

I feel your pain! Well done 🙂

🙏 2
simongray13:03:33

I seem to have finally managed to get a nice setup going… I already had two Docker containers running v8 of the backend (Python) and one running the corresponding version of the frontend (TS and JS). Now I have added a container running v6 of the backend (Python), a builder image (java) which builds the .war and also runs mvn test before exiting, and then the actual Tomcat webserver + the .war from the builder in yet another container (Java).