54 karma · joined April 20, 2020
haha, you kinda made it sound like your setup was super minimalist, but none of your descriptions are making sense in my mind
FWIW, I probably sit 2-4 hours reclined on couch or recliner chair, 2 hours standing, 2 hours in traditional chair.
0: https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2F...
I'm open to different opinions on this, but I dislike Hibernate because of the complexity and the pains it causes when trying to do simple things. Hibernate, and Spring's use of it, is a leaky abstraction. When running into bugs, just trying to use a flow like, read sql row to POJO -> update POJO -> Save POJO to DB, using Spring JPA repository interfaces, I find myself needing to know about Hibernate internals, like the persistence context, how it relates with transactions, when objects are merged vs saved vs are they already in the persistence context or not? Plus Hibernate docs suck in my opinion.
One time we hit a bug in Hibernate. This was within the last two years, using a newer version of Spring Boot. We read a row from SQL in a transaction. Later in time, in a whole different Transaction, we read the same row. We read it with an annotation on the query method, "@LockType(PESSIMISTIC_WRITE)". We were using MSSQL and this sends table hints like "(updlock, rowlock, holdlock)". So essentially we wanted exclusive access to this row for the length of the transaction. But the data we were getting in the row didn't make any sense? We could see the sql query with the table hints hitting the sql server, but Hibernate was giving us a cached POJO!? If we "evicted" the pojo before we queried then it worked right. Again, this was at the very beginning of a fresh transaction. Wtf.
I've only done a simple line chart so far, and I used this oz library for interfacing with Clojure and displaying results in the browser. [1]
One of the problems was lack of error messages. Not sure what part of the tooling was failing me there.
It felt like close collaboration, but I feel like if I would've been sitting with him I would have wasted a lot of his time and would have felt pressured to try to learn things faster than was reasonable. But I never tried it, so I don't know.
I find a lot of things annoying. I'm mostly used to it now and don't mind the day to day experience, but it was jarring and I know it's not ideal.
* If I want to maximize a window, I have to hover over the green button and then select 'Zoom' from the drop down menu. So it takes multiple seconds to maximize. (I have noticed for a long time throughout university and employment that it is common style for Mac users to have many windows floating around, and to never maximize.)
* If you decide to use 'Full Screen' / 'tiling', notifications don't work while you are in full screen mode. Maybe there is a way to change this or maybe some people find this desirable.
* Because of how long the green button hovering takes, I tried to setup keyboard shortcuts for maximizing windows and also for "Move Window to Left Side of Screen" and move to the right. The shortcuts randomly don't work for me, so I no longer use them.
* If I drag a window to the left edge of the screen, it doesn't snap to take up the left half of my screen. Again, have to do the annoying green hover.
This is all in contrast to KDE where it was simple to snap windows onto sides of the screen, or into corners, or to maximize windows. It never failed. Continuing...
* On KDE I could setup a separate 'task bar' for each monitor with those boxes/buttons that show up on the bottom of your screen for each window you have open on that monitor. So I can switch between windows independently on each monitor. On MacOS you can only have one dock. When you click a dock icon, it brings the window to the front on each display, possibly blocking something you had in the front on a display.
* When you have multiple displays on MacOS, moving your mouse around in the bottom area of the screen can move the dock to that display. This is easy to accidentally trigger, and sometimes it's hard to do this 'mouse wiggle' on the other display to put it back. That is, I have spent 10+ seconds wiggling my mouse in different ways to put my dock back on the display I want it on.
* Oh, back to full screen mode. If you are in full screen mode and you try to do something toward the top of the window, the macOS menu bar drops down and blocks you, and you have to wait for it to go away and then carefully go for the button you were aiming for. (Imagine flinging your mouse up to the address bar of your browser and then being blocked by the menu bar for multiple seconds each time.)
By the way, about your list... Emacs is good and works great on the Mac. Mapping the Caps Lock key to be Ctrl (in the system settings, not just for Emacs) and using sticky keys has completely mitigated any 'accessibility' concerns / sore pinky for me.
Lisps I like a lot too. I did the first few chapters of SICP quite a while ago, which gave me a great feel for recursion and probably some other things. I like Clojure a lot and learnt it super quickly by reading this book free online. The Emacs setup works pretty good. https://www.braveclojure.com/clojure-for-the-brave-and-true/
The MBP display was my first high-res / high-dpi. It looks great. Then I tried plugging my mac into multiple different 1080 monitors I wanted to use with it. Looked absolutely terrible. I thought it was broken. Couldn't find any fix online. Now I do notice how much worse (than retina) 1080 looks on Windows and Linux, but I'm pretty sure on Mac it is much much worse for some reason. I bought a 24" 4k monitor from LG for $300 bucks, and it looks about identical to my MBP display. I'm very happy with it. The smaller screen size helps keep high DPI, so I definitely don't see any pixels. Happy Holidays!
I would like to say that I am young and I remember getting turned on to podcasts and reddit and good books when I was 15 or so, and being exposed to rational thought and discussion did a lot for my development I think.