Hacker Newsnew | past | comments | ask | show | jobs | submit | Zizizizz's commentslogin

I don't think "Python" uses an ORM, moreso they did. You can write the SQL the same way there. It's why there is SQLAlchemy Core Vs SQLAlchemy ORM.


That’s actually poorly written on their part. I did assume they were using an ORM Python library, not that ORM is somehow implicit in Python. But after rereading it, I can see how someone without any Python experience might think otherwise.


For me, who came from linux the only thing I don't like is the overview menu's lack of an (x) to close a window. The way slack stacks windows within the app so it's hard to find the right one. Pressing the red button doesn't close the app from appearing in your CMD+Tab cycle between apps, you also have to press CMD+Q. (Just a preference to how windows and linux treat windows, actually closing them. Rectangle resolved the snap to corner thing (I know MacOS has it natively too but it's not too great in comparison).

Things I prefer: Raycast + it's plugins compared to the linux app search tooling, battery life, performance. Brew vs the linux package managers I don't notice much of a difference.

Things that are basically the same: The dev experience (just a shell and my dotfiles has it essentially the same between OS's)


I think the hardest part for me, is getting used to using CMD vs CTRL for cut-copy-paste, then when I start to get used to it... in a terminal, it breaks me out with a different key for Ctrl+C. I got used to Ctrl+Shift for terminals in Linux (and Windows) for cut-copy-paste, etc.

It may seem like a small thing, but when you have literal decades of muscle memory working against you, it's not that small.


I'm a lifelong Mac user, so obviously I'm used to using CMD instead of CTRL. Inside the terminal we use CTRL for things like CTRL-C to exit a CLI application.

What messes me up when I'm working on a linux machine is not being able to do things like copy/paste text from the terminal with a hotkey combo because there is no CMD-C, and CTRL-C already has a job other than copying.

IMO apple really messed up by putting the FN key in the bottom left corner of the keyboard instead of CTRL. Those keys get swapped on every Mac I buy.


Ctrl+Shift+(X,C,V) tends to work for many/most terminals in Linux and Windows (including Code and the new Terminal in Windows)...

I agree on the Fn key positioning... I hate it in the corner and tend to zoom in when considering laptops for anyone just in case. I've also had weird arrow keys on the right side in a laptop keyboard where I'd hit the up arrow instead of the right shift a lot in practice... really messed up test area input.


I knew there must be some extra hot key, but like you said, muscle memory.

It's the same thing when switching from a Nintendo to a Western game where the cancel/confirm buttons on the gamepads are swapped.


As a very long-term Linux user, I'm still aggravated when implicit copy and middle-click paste doesn't just work between some apps, since it is so deeply embedded in my muscle memory!


I'm only a recent MacOS user after not using it for over 20 years, so please people correct me if I'm wrong.

But in the end the biggest thing to remember is in MacOS a window is not the application. In Windows or in many Linux desktop apps, when you close the last or root window you've exited the application. This isn't true in MacOS, applications can continue running even if they don't currently display any windows. That's why there's the dot at the bottom under the launcher and why you can alt+tab to them still. If you alt+tab to an app without a window the menu bar changes to that app's menu bar.

I remember back to my elementary school computer lab with the teacher reminding me "be sure to actually quit the application in the menu bar before going to the next lesson, do not just close" especially due to the memory limitations at the time.

I've found once I really got that model of how applications really work in MacOS it made a good bit more sense why the behaviors are the way they are.


There's a built-in shortcut with fzf to change directories I think it's alt+d


One of those fundamental work-changing tools. I use it dozens of times a day. It's fantastic


I would assume he means creating a foreign key relationship from the posts and users table. Doesn't rails or prisma have a SQL migration tool? (Upon looking it looks like it's Active Record)

So the equivalent of

`rails db:migrate` after doing what you suggested in the interview. You could write in SQL as..

``` ALTER TABLE posts ADD COLUMN user_id INT, ADD CONSTRAINT fk_user FOREIGN KEY (user_id) REFERENCES users(id); ```

I don't know if that's what he was after but that's what my mind jumped to immediately. I'd recommend learning a bit as sometimes I've found that orms can be a lot slower than writing plain SQL for some more complex data fetching.


I’ve written manual SQL for years in previous roles, but because I haven’t touched it in 6 months I’d have had to double check how to write that with a quick google. It’s just a bad interview technique to require write learned syntax.


I agree but lots of companies do similar things in their interview processes so we just have to know everything I guess.


What’s more likely is you get lucky one day and the company that hires you is the one that happens to have asked you the questions you brushed up on recently, rather than the company that’s the best fit.

Or if you have the luxury to choose, which can happen later in your software engineering career, you can simply turn down companies with bad interview processes. Personally I’m a fan of this method, but it’s a luxury for sure.


I've been fortunate in that I haven't had to do a formal interview for any job I've ever had, except for my first job. I've just been working either with people with whom I've worked, or referrals of those people. I know that's an extremely privileged place to be, but it's the best place to be IMO.


100%. Your experience and references should be able to speak to your abilities better than some challenge would anyways.


Thanks! I think I was (conceptually) missing the constraint/references part. Prior to that I had only worked with firebase and Mongo so I was just like "OK so I just put userID column on post table right?" and apparently no, not right, lol.

What's nice about prisma and hasura is that you can actually read the sql migration files generated, and you can set the logging to a level where you can read the sql being run when performing a query or mutation. I found that helpful to understand how sql is written, but since I'm not actually writing it I can't claim proficiency. But I can understand it.


A silly argument in my opinion.

- You don't really choose to believe something, you're either convinced or you're not.

- Implies you choose the right god out of thousands

- Implies - at least for the abrahamic god that is all-knowing - that it wouldn't know you were just pretending to believe and/or believing out of fear


I use ghostty and native splits, however there is no way to move a pane to a new tab. Which you can do in tmux very easily. That's one thing I wish it could do.


While this doesn't address that issue you can move a tab to a new window (session) as well as merge. I do wish this feature existed, but I use it so rarely that honestly I don't notice. Rarely are more than one pane essential in a given tab, so usually I solve this by cleanup. But yeah, I will acknowledge that limit.


You should try switching to mise. I tried fnm too which was an improvement but mise does the same as fast and supports essentially every language


Definitely Mise! I was an asdf user for a couple of years and Mise was such a nice replacement. I have to juggle several other languages, and each having its own tool for tool version management was a non-starter.


Just symlink the virtualenv folder and pyproject.toml it makes to whatever other project you want it to use.


For anyone who wants to read it, (the first three stories are quite good). https://standardebooks.org/ebooks/robert-w-chambers/the-king...


Also on Project Gutenberg: https://gutenberg.org/ebooks/8492


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: