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

Interesting. If you don't mind, I have a few questions:

1. Is the "big VM with root" running macOS itself, or a different OS?

2. Do you do any work on the bare metal version of macOS, or do you just start the VM in the morning and do everything from there?

3. How do you experience the performance/UX of the VM?

4. Do you know why Company B IT has set up this VM solution, instead of a plain old MacBook locked down with Apple's enterprise management tools?

5. Can you explain more about the App Store? Is it the actual Apple App Store but restricted to a curated set of apps, or is it a different system? If so, is the store a custom in-house thing or is it provided by a vendor?


There are multiple choices of OS but it's mostly Windows or Linux. Note, we don't do any mac/arm development.


It's funny because some 25 years ago we did the exact opposite. Corporate IT insisted on some Windows software, so we each ran a Windows VM that the corporate could pretend to remote manage.

(This was at a branch office where every employee worked on very low-level Linux kernel code, so yeah everyone ran their favorite Linux distro.)


Can you elaborate about your predictions for how the benefits of current capabilities will be applied? And your thoughts on how to build with it?


Do you have any suggestions on how to help people achieve and maintain good mental health?

It's true that addiction is ultimately a psychological problem. It's true that people engage in addictive behaviors as a coping mechanism to avoid difficult emotions.

It's also true that the Internet has enabled a lot of deliberately addictive content. Phones keep that content constantly at hand. And it's difficult to avoid having a phone since they also provide utilities.

I'd like to live in a world where everyone had such great mental wellness that they were impervious to the temptations of their phones. What are some serious tactics to make that happen?


At the risk of it coming across like I’m boasting or virtue signalling (whatever that means), what keeps me going is the thought that I can use my time and money to help other people. Simple stuff like donating to charities and planting trees.

For parents, this could take the form of doubling a child’s pocket money/allowance on the condition that half of it is donated to charities - encourage the child to research charities and talk about them.

(The latter isn’t an original idea - I originally read about it in the form of tripling the pocket money with 1/3 to keep, 1/3 for charity, and 1/3 to invest. If your kid has to do some chores to get their pocket money, then this sets them up with a pattern for a good life (work, then give and save).


Yes, the market exists and there are several competitors.

I've looked at https://sunbeamwireless.com, which runs their Android variant, BasicOS. Haven't purchased yet though. Light Phone is similar.

Gabb and Pinwheel sell phones oriented at kids, and both have OSes based on Android.

Unfortunately, as you say stock Android as well as iOS don't make effective locks. What they offer is passable for parents managing their kids' phones, although in practice kids often find ways to bypass.

It's very difficult for an adult who wants to self-regulate. There are some hacks you can do, like MDM, but it's not at all straightforward.

I'm looking to connect with people about this topic. In fact I want a business partner, although I'm also interested in people who just have input.


Suppose we could create a backwards-incompatible system to replace CSS. How would we do it?

Are there any books or papers on how to create a coherent layout system?

What about alternatives like Qt, Tk, SwiftUI, etc.? I've never used anything besides CSS. Are any of the actually-implemented systems in the wild better? If so, what makes them better?

I want a system that provides a better interface for developers, but how? If we could start over, what are the design principles?


Not particularly anti-css, but you may be interested in concepts like size groups, properly predictable size-request-allocate cycle, width-for-height, constraint- and align-based layouts and in generally cleaning up the mess of non-orthogonally connected ideas in css. More explicitness and separation for properties. Remove bs like negative margins, make all distances multi-level, e.g. padding = max(el.paddings[]). Make bounding boxes explicit, make borders proper elements, etc. Boxing isn’t a bad model, CSS is just an awful implementation of it. Absolutely ridden with fragile incantations and absurd limitations which bring more issues and “solutions” that will break 99% of the times you touch it.


Constraint-based layout using the Cassowary algorithm seemed like a popular alternative for a while (see https://github.com/slightlyoff/cassowary.js/?tab=readme-ov-f...). It’s designed to solve for variance in screen size and shape. Apple switched to Swift UI and may have moved on from this approach.


This would be such an interesting write up comparing many styling/layout systems! Unfortunately I reckon not many people have experience with multiple styling languages, so not many people can create such a write-up.

I think flutter and XAML might be other interesting ones to look at


XAML poorly reimplements half of CSS layout, and then gives up and tells you to write your own manually positioned layout with terrible performance.

Things which are 3 lines in CSS are hundreds of lines of a combination XAML/.NET only to get janky window resizing behaviour.


One thing to be cautious about when selecting prior art for reference is that CSS sets a high bar for declarative control. I can’t speak to any you mention in detail, but my sense is that more comparable prior art would likely be found in print use cases.


I think one classic book about it is "Rastersysteme für die visuelle Gestaltung - Grid systems in Graphic Design". Never read it though.


Ah available for borrow at Internet Archive: https://openlibrary.org/works/OL3106695W/Grid_systems_in_gra...


Thanks for the reference.

As I've been thinking about this, I do wonder if starting with grids as the foundation would have been a better approach. As I understand it, early CSS focused on stuff like color and font style, with primitive layout tools. Over time better tools have been bolted on, but it's messy.

Say we merged flexbox and grid into a unified system, and threw away the other layout algorithms. At the same time, made some tweaks to clarify margin, border, padding, and overflow. Maybe that's a good foundation.


CSS is overall pretty great and I've seen at least a couple non-web GUIs rip out their bespoke GUI systems and replace them with CSS or something very much like it.

I think the big change will be better support for hierarchical definitions, including but not limited to nesting. TFA discussion would be pretty moot if there were namespaced properties that could somehow fit under display: masonry; rather than polluting the global namespace.


I have to assume that's partly because of the availability of implementations, tooling, and developer familiarity. Many platforms will let you toss in a web view, and if you want to set up e.g. a configuration screen with text and toggles, HTML/CSS will get the job done, more easily than maintaining a custom system that's peripheral to the core purpose of your app.

I don't want to be overly negative, but I just can't view CSS as "pretty great."

I appreciate the inherent difficulty of using 1-dimensional static text to specify a 2-dimensional dynamic layout. Still, basically every programming problem involves defining abstractions over some domain concept and expressing that in the syntax of your programming language. Somehow that's harder in CSS than any other language I've used.

Within web dev I find both HTML and JS much easier to work with, despite their imperfections.


Well, the parentheses don't necessarily have to be perfect on the paper :) I can fix them once it's on a computer.

That said, some manual tricks that could help: my former colleague had a simple trick of counting up with his fingers for open-parens, and then back down for close-parens.

I could also imagine using more line breaks and indentation to help keep the parens straight. It might be ugly, but on paper that formatting is only to support my thinking, it does not also need to cater to the committed source code.


Try numba and @jit first.

(Warning: After starting writing code in Racket (or Scheme/Lisp/Clojure...) you will start to obsess about matched parenthesis, even in paper https://xkcd.com/859/


Do you believe then that it's impossible to identify a good situation until you take the job? There are no reliable job search tactics to select for better settings?

I would say, for example, that a job interview helps provide a vibe for the current situation at a company. But it's not a perfect signal, and as an individual I can't go on that many interviews. Hence looking for other approaches people have tried.

> Companies tend to optimize for profit, not for the comfort of programmers.

I believe that's a separate issue from my question. Seeking profit doesn't force a company to hire incompetent or apathetic programmers. If anything it wastes money on salaries that don't deliver as many new product features to sell, or as many improvements that will increase customer retention.


Great teams should be visible because they produce great products or services, and because they have their pick of top people because word gets around.

Big companies will have multiple teams, maybe hundreds at companies like Google and Apple. Some of those may be great to work with, others dysfunctional. Adding more people can push the “greatness” in any direction because interpersonal factors are first-order drivers of team productivity and job satisfaction.

So it’s not impossible to identify candidate teams but I think it is impossible to predict how you might fit and what you can get out of it.

I think word of mouth through referrals and contacts works best. Some companies have reputations for building good teams, others are known for dysfunction, but those generalization don’t necessarily predict what an individual will experience. Even Google has unhappy employees.


It's impossible to identify an ideal situation when you take the job because some aspect of the company or team will be 'different' when you start than when you interviewed, either because it was misrepresented, or there is an organizational or staffing change.

The best you can do is find a successful team as that will provide more time to improve the team or adapt.


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

Search: