am I right that you can't package the mysql driver with a redistributable app, due to the GPL license? just checking, I think this is the case
Compiling to native? I know with CLojure you can have Graalvm with certain restrictions, but the exes aren't exactly small.
The smallest image you can get with some Clojure in it is about 7-10 mbs. Including sci (Clojure interpreter) around 11. Clj-kondo is 34 megabytes, babashka around 80 (it includes lots of libs), clojure-lsp around 100, but lots of things can be done to keep the size of the binaries in check. These are imo reasonable sizes in this day and age (smaller than most node_modules directories I would bet)
The node_modules for my React Native project is 450MB (which is stunning)
(But I guess not a fair comparison, the final artifact when said and done in the App Store is ~20MB)
Yeah, I mean, it's not like your'e running out of disk space with this kind of size in this day and age
Absolutely.
Is the final artifact in the app store also compressed in some sort of way?
Usually when you compress native images they become much smaller. e.g. bb is around 20mb zipped
Mmm, I assume, yes. Whatever automagic Apple does. I havenāt explored exactly.
Last time I tried to make an sbcl image it was around 35mbs for a trivial hello world
The final output under :advanced for the index.js (contains all JS code for the app) is 1.3MB for my medium sized app.
I think the highest I ever saw that under CLJS :advanced is 3-5MB for quite a big app (many screens, e-commerce, etc)
But thereās other supporting native code that the JS code calls into, etc (the React Native lib code + some libs frameworks). Unless you pack your app with all sorts native bloated libs/frameworks, itās hards to exceed 30-40MB.
For mobile the size might matter more since it's often downloaded over a data plan
When you see an app in the app store thatās not a game and is like 200MB, thatās gotta be all sorts of tracking/framework bloat I assume in most cases.
Nowadays, it matters less and less. Mobile internet is generally fast. And the over-cellular limit that Apple has is 200MB.
I remember ~2012 or so. It used to be 20MB. You tried hard to stay under that š .
About graalvm, in https://www.kafka-summit.org/sessions/cost-effective-graphql-queries-against-kafka-topics-at-scale they discovered for their Micronaut app, a JVM build had 4 times the throughput of the GraalVM build. I knew it was expected to be less, but I didnāt expect it to be this much. I wonder if anyone has done a similar experiment with Clojure?
4 times doesn't seem like much tbh
GraalVM is also a JVM and it comes with a tool called native-image. When building a native-image the compiler makes certain decisions that might not be optimal in certain scenario's. The enterprise version comes with a feature called profile-guided optimizations, so you can run the app and it will generate info which will be used during compilation for optimization.
If you are optimizing for high throughput you are probably not optimizing for startup time anyway, in that case it makes sense to just go with the JVM probably.
You miss the JIT optimisation. For their use case I can imagine there is a lot to win, since the Request/Response will be very similar for each call, which canāt be known at compile time. I want to run a similar test myself, but havenāt gotten around to it.
well, graphql. i have not used it since 2015, i suspect it changed a lot, but i am not eager to try it out again.
> You miss the JIT optimisation So for tuning you can use the profile guided optimizations. https://www.graalvm.org/reference-manual/native-image/PGO/
Too bad you canāt try it for free.
Anyone into watches?
I have a watch conundrum.
I know a guy.
I really like the new white face stainless steel daytona, but getting one new from Rolex isbasically impossible as the waiting list is insane. like 5 years, unless you are the sort to spend six figures on watches with them.
or two. or three
BUt I've found another good watch, that is an actual good watch internally from Tudor, and it looks almost exactly like a daytona. BUt I can't make up my mind if I bought that instead if I would end up hating it, because I would look at and just see that's nota Daytona, and I should get something completely different instead
imagine if you are left alone on the Earth, everyone else dies or leaves
which one you think you would wear more?
The Tudor. I love the white face, panda dial
If your company has a Java SE subscription you will get it for free
the one that is impossible to buy v the one I could buy and have reasonably quickly
I am considering an Apple watch to replace my ipod nano for listening to podcasts :P
do apple watches have enough storage to store mp3s?
or can you install something like spotify on them ?
i have gbs of mp3s on my phone but my phones headphone jack is broken
I still like getting music by buying mp3s
The SE has 32gb I read now
As long as the podcasts are one Spotify it should also be possible with some Garmin watches. But I wouldnāt advise it. I only use it for running/music and often have sync issues.
we really are living in the future, when a watch has 32gb memory. My first computer was like 150MB or something
My first mp3 player had 32mb š.
I remember a laptop from the 90s with 4MB hard drive.
Windows 3.11
late 90s math teacher in school had to take apart one machine to use 8MB for installing the OS, but then it ran on 4MB
The daytona is so lovely ā¤ļø
I know, I want one badly. BUt as a regular person I feel they are impossible to get. Second had are going for between 2.5 > 3x list price. I saw one second hand for ā¬30k
You can also look at zenith, they have great chronos too
I got a new Zenith El Primero chronograph in December last year š I love it!
Sinn are quite nice alernative too
and I say that as a swiss citizen!
almost all rolex models are on waiting lists now it seems, you're better off with after-market maybe
not chronographs, but I like what grand seiko is doing too
also not swiss, if that matters š
I also remember inserting multiple disks while installing an OS or "big program" one after another
also considering this, just as something completely different. Since I hear the new IWCs are all in house calibres again.
I think my first install of maybe windows 3.1 was installed off multiple floppy disks
oh, thats pretty too
for sure! Turbo Pascal was on like 10-12 floppies
yeah, case is bronze! So it might age quite nicely too as the bronze changes colour
Feeling nostalgic? You can supposedly install windows 10 with floppies
Oh wow that was compressed to the point of useless
fitting
I once compared windows 98 notepad with windows 8 notepad. The binary is about 4x the size, but, no extra features. I think its the logo in the about menu.
Higher res in the replies
Itās size, unlike āmodernā apps, is measured in kilobytes
And even installation was not a given. I started on cpc, the loading of the program was required at each startup as the only persistance was the rom. No floppy only a tape !
yeah, my first PC only had 360k floppies. I remember how chuffed I was when we finally bought a 20mb hard drive
If you would drill a hole in those, you could get 720k
if you had the right disk station (high density)
to be fair, modern editors fulfill expectations way beyond what notepad was good for. At some point the problem with Windows was actually just that it included software other people wanted to ask money for...
I managed to get windows xp down to a pretty tiny size. I got pretty obssessive with it at one point, where I had a spreadsheet of every file on the machine and how much I had changed on each one. Down to the byte, like I was going into dlls and editing the strings and icons and stuff they had in them to remove absolutely everything my workflow didn't need. Obviously if you deviated from what I used it for it crashed horribly. But it was so small, fast and started up so quickly! I';m sure I had to hack around something that tried to stop you from messing with files in the windows/system/system32 folder. But it was literally trial and error, hack some stuff out of a dll or exe and try to reboot and hope it came back.
Oh, I still have some version of the spreadsheet on a really old hd! Ah, the days of winzip and an A-Z of tabs for files on the system and if it could be safely deleted or not
haha sure
I forgot that !! With manual writing in the file allocation table, and sequential files... a whole lost world
Wow, are you sure thatās not a meme? š
https://clojurians.slack.com/archives/C03RZGPG3/p1620983387182300
does someone has an answer on this? ^
@qmstuart 5 years waiting list for a watch? If you've got the time... From traveling and flying a lot, I'd like to get a 24-hour watch like Svalbard https://svalbard.watch/pages/Svalbard_24-hour_watches.html I like the classy look of the singular hand
it's not a commercial application
how would you know how long it had been if you didn't have a watch?
I think if commercial is OK, OSS would be ok de facto, non?
rudimentary sun dial and notches in the totem pole?
even if OSS is not GPL itself?
Maybe that's what they rely on! "Where's my watch, I've been waiting years" "Sir, its' been 10 minutes, calm down..."
my understanding is that commercial and non-commercial are immaterial. only license is relevant
My good friend got a watch that buzzes/vibrates to remind him of stuff. You can program reminders and it's a little tactile sensation
Not as disruptive as <ring tone> or whatever. I also read months ago that amazone has buzz watches for their warehouse sprinters to alert them when to turn left/turn right š®
I'd more expect Amazon to have collars that give their warehouse workers shocks š
kills brain cells, not good for long-term comprehension of commands
Amazap Prime
You can e-mail oracle and ask them but i think according to this page you're all good 2 go https://www.mysql.com/about/legal/licensing/oem/
Seeing a tweet about how the NHS covid-19 app helped stop the spread of cvid19... I'm thinking to myself... yeah people will use information provided them, but in our case only a handful of the population create apps and stuff. So in a way coders are the tiny enclave "stealing fire from the gods" and creating information paths for the rest of the world
There's self-organizing systems... and then there's the aqueduct and the need for water, for example.
Some licenses have a specific āclasspath exceptionā clause: https://en.wikipedia.org/wiki/GPL_linking_exception
Then thereās the question of whether running a pod from Babashka constitutes ālinkingā. I would guess not, e.g. you can certainly run bash from Babashka via shell
without thinking about bashās license.
The linking is probably the pod code with the mysql driver
that it's a pod is kind of irrelevant, let's pretend I would add the driver to bb itself
I think I saw a Japanese version as well, but it may be I didn't do any research š
Iām also not sure whether a classpath exception, if it exists for the MySQL driver, works under GraalVM native compilation.
(this stuff is so complicated!)
Hrm, according to this page the GPL is incompatible with the Eclipse Public License 1.0: http://www.gnu.org/licenses/license-list.html
They have this though: https://oss.oracle.com/licenses/universal-foss-exception/
and the mysql connector falls under this exception. it's only not so clear to me what this means
That certainly did nothing to help my understanding of the situation!