HNHacker News
TopNewBestAskShowJobs

moshegramovsky

399 karma · joined November 27, 2022

submissionscomments
moshegramovsky··on McKinsey unit will pay $123M to settle claims it bribed South African officials
I think it's more a case of "where there's a will, there's a way".
moshegramovsky··on McKinsey unit will pay $123M to settle claims it bribed South African officials
100% hard agree.
moshegramovsky··on McKinsey unit will pay $123M to settle claims it bribed South African officials
Bribery. So someone's going to jail?
moshegramovsky··on McKinsey unit will pay $123M to settle claims it bribed South African officials
Am I correct in remembering that they had some kind of involvement in the Purdue Pharmaceutical debacle? It seems like you are exactly right: McKinsey is not really a good company.
moshegramovsky··on Famous AI Artist Says He's Losing Millions from People Stealing His Work
He's the very picture of entitlement. A portrait of entitlement even.
moshegramovsky··on Dockworkers at ports from Maine to Texas go on strike
A union is a business formed by workers who collectively negotiate an exclusive contract to provide labor to another business. In this case, both the union and the port take advantage of certain strategic advantages granted to them by geography.

The port has an advantage because it's in a fixed location with favorable features like a good harbor and nearby rail lines. The union has an advantage because the port needs workers who live close. It's perfectly natural to form these types of agreements - the port is a business trying to captures the market for people shipping goods to the area, and the union is a business trying to provide the labor required to do so.

When you say that others should be able to work and compete with unions without joining them, that's a moral position, not a legal position. (And, to be clear, it's not a bad position at all!) The legal position is that the contract will be exclusive, and both parties are agreeing to it.

Labor unions exist because people don't get what they deserve. They get what they negotiate.

moshegramovsky··on Zuckerberg claims regret on caving to White House pressure on content
The US has a lot more people than it did 100 years ago. A lot of rules and regulations are a direct result of that.

Things change as we scale, for better or worse.

moshegramovsky··on Starting Hospice
You inspired me to make changes I needed to make.

Infinite love to you and your family.

moshegramovsky··on Ask HN: What is the best software to visualize a graph with a billion nodes?
This is mostly a data structure problem. I am certain this can be made interactive, but it will require some elbow grease.

If you want it to be interactive, you will need to figure out a few things:

1.) how to format the data so it can be streamed off disk. 2.) how to cull the offscreen bounding boxes quickly. 3.) how to cull tiny bounding boxes quickly.

The central problem is finding a way to group the nodes efficiently into chunks. A 2D approach is probably best. You would then have something that could be rendered efficiently.

Other than that, maybe a point cloud renderer? There might be one you can buy off the shelf, or something open source.

moshegramovsky··on Why doesn't advice work?
Absolutely 100%.

I learned to keep my mouth shut and my life improved exponentially, if only from the energy savings alone.

moshegramovsky··on The Origins of Yiddish (2014)
The amount of assimilation was not homogeneous anywhere in Europe. In urban environments, some Jewish families were highly assimilated, and there was a great deal of interaction between Jewish people and Gentiles. If these dynamics are interesting to you, you might want to read about the haskalah:

https://en.wikipedia.org/wiki/Haskalah?useskin=vector

Out in the stetls (in rural towns), there was far less assimilation (although a lot of interaction). For example, in Poland prior to WW2, Jewish society was almost a parallel world. Polish Jews had their own religious institutions, shops, and, at various times, a parallel government. For centuries, Poland was like two separate worlds that inhabited the same physical space.

It's really too bad that it ended. I grieve for something I never even knew.

https://en.wikipedia.org/wiki/History_of_the_Jews_in_Poland?...

moshegramovsky··on The Origins of Yiddish (2014)
A lot of people think I am Mexican.
moshegramovsky··on Kubernetes attacked by patent troll Intellectual Ventures
If I'm not mistaken, isn't Nathan Myhrvold the founder of Intellectual Ventures?

I used to drive by one of their offices on 132nd in Bellevue fairly often. Now that I've Googled it, I'm quite surprised to see what Intellectual Ventures engages in quite a lot of patent litigation. I thought he was a venture capitalist or something.

The last thing I remember from him was a series of elaborate cookbooks.

moshegramovsky··on Why Triplebyte Failed
Thanks for clarifying :)
moshegramovsky··on Why Triplebyte Failed
< The folks that do tend to populate the open job market often have one or more dysfunctions that make it hard for them to slot into the corporate job market,

I think the set of people employed at corporations provides overwhelming evidence against this.

moshegramovsky··on What makes a great contribution to a codebase?
That is a very good point!
moshegramovsky··on What makes a great contribution to a codebase?
Removing code.
moshegramovsky··on An even faster Microsoft Edge
It's unfortunate that the entire world is headed this way. I've been bullish about tech for my ENTIRE life. Since I was a kid. But it's a weird feeling, all the data collection. Europe has the right ideas about this.
moshegramovsky··on An even faster Microsoft Edge
Why doesn't Microsoft realize that Edge just isn't happening?

I was a *huge* Microsoft fan boy for decades. Like, I eagerly awaited releases of the products I used like Windows and Visual Studio and Excel and on and on. It was thrilling to use NT with the Windows 95 skin when it was available in beta. Sorry to nerd out so hard, but I just loved their products. Now they're just making Windows worse and worse and worse. It's almost as if they want to harm Windows.

The other day I had to help my 80 year old Dad with his Windows PC. Microsoft wanted him to "finish" setting up his PC that he has been using for 18 months. Okay, he accidentally clicked yes and then ended up somewhere that was trying to make him sign up for a Microsoft account. Yeah, my Dad doesn't even know how to do that! We had to turn off his PC to get out of it and then I had to look up how to make sure it never happens again.

Why so many dark patterns MS? My Dad already paid you for Windows. Why do you need to collect more and more and more? HE'S 80 YEARS OLD! LEAVE HIM THE F** ALONE!

As a result of all this, but especially the telemetry, my Dad's on Google docs, my Mom is on Google docs, my family is on Google docs. Never going to use 360. Nope nope nope. Sure, Google has dark patterns, but at least I know that about Google. Microsoft pretends that they aren't like that, or wants to have that brand image, and meanwhile, they're busy trying to suck up all your personal information and spy on you with telemetry and send your keystrokes to their servers.

The funny thing is that my Dad only had a Windows PC so he can run one app: Chrome. His entire internet life is in Chrome. Everything syncs with his phone. It's just NICE. You can't even imagine how much easier this makes his life and ... mine :)

So yeah, I don't want more Microsoft software in my life. I want less. Zero, would be ideal, but that's not the world I live in.

Yet.

moshegramovsky··on "Deny, denounce, delay": The battle over the risk of ultra-processed foods
I also love salt. Fuck I love it.
moshegramovsky··on "Deny, denounce, delay": The battle over the risk of ultra-processed foods
Good for you to stop smoking :)

I love Michael Pollan.

Despite a healthy diet, I still take beta blockers. BP just won't cooperate. It would help if I used less salt, as it does appear to affect me.

moshegramovsky··on "Deny, denounce, delay": The battle over the risk of ultra-processed foods
I am privileged to cook most of my family's food. Yes it takes a lot of time. Almost like a part-time job. But it's worth it. Usually the last thing I do at night is load the dishwasher.
moshegramovsky··on Biden signs TikTok bill into law, starting clock for ByteDance to divest
If you go into a grocery store or a bank and harrass people or behave badly, you will get banned. Try getting a bank account if you have a felony for bank robbery.

There was a guy who received a lifetime ban from Safeway for driving through their garden displays and breaking windows in their stores.

The US does ban people from using banks. See also: list of specially designated nationals, etc.

moshegramovsky··on An FDA approved device offers a new treatment for tinnitus
I have tinnitus and count myself as extremely lucky that it doesn't bother me. My hearing is very poor and that does bother me, but there isn't any apparent fix other than a hearing aid. I'm only 49! By the time I am 70, I'll almost certainly be deaf except for the tinnitus.
moshegramovsky··on If Inheritance is so bad, why does everyone use it?
Yes, but in my example, in the 70 classes, all the ::Read and ::Write methods must still say:

    a.Read( ... )
    a.Write( ... )
And depending on the use case and design, they also need methods such as:

   A& GetA() { return a; );
   const A& GetA() const { return a; }
moshegramovsky··on If Inheritance is so bad, why does everyone use it?
I work on a very large codebase. We use inheritance and composition. I totally agree that inheritance should be used carefully. However, there are times when composition requires a lot more code and downstream maintenance.

Let's stay I have a base class A. Let's say I have 70 classes that inherit from A.

These classes must serialize/deserialize from disk.

My choice here is that I can add a new data member to A and then update the read/write method in one place, or I add a new data member to all the classes that are derived from A, meaning that I get to update 70 classes. Seriously? Who would think this is a good idea? You'll have to write 70 times as much code... there will be times when that's definitely a very bad idea.

Maybe don't use inheritance. Then give every class its own "Name" data member like std::string c_nName. Every class can have its own function to set the name, or we could use an unencapsulated free function and do things like C. Except then the experts will say things like "well, now you're doing C with classes". Then you get a ticket that the user can enter bad names. You can then figure out some way to validate the names, right? That could be a free function, or maybe write some class called NameValidator. Except now the experts say you're writing C++ like Java. Too many classes, too few classes, too many objects, too few objects, too may free functions, too few free functions.

C++ expert of the month may say X, Y, Z, but look at Microsoft's APIs.

Inheritance is everywhere.

Look at any open source C++ project.

Inheritance is everywhere.

Does that mean that you should make something like:

A

--B : public A

----C : public B

------D : public C

--------E : public D

----------F : public E

Or this:

    A  B
    \  /
     C

Not unless you have a damn good reason. But the point is that inheritance is a valid tool and it can reduce bugs, code duplication, maintenance.

Right tool for the job, yeah? I once read something in the C++ FAQ that said something like "Don't take advice from people who don't understand your business problems."

moshegramovsky··on How might software development have unfolded if CPU speeds were 20x slower?
I also use WPF. Like you, I love it. But it still can be painful if you're doing non-trivial things. Sometimes desktop UI is painful. Sometimes it requires a lot of work to deliver a perfect user experience.
moshegramovsky··on How might software development have unfolded if CPU speeds were 20x slower?
You're right. QT is a good choice if you are willing to work within the bounds of the framework. QT is definitely not a good choice if you want to make a lot of customizations. If you want to make an app like Spotify, don't use QT.
moshegramovsky··on How might software development have unfolded if CPU speeds were 20x slower?
People like you remind me that I'm still an amateur at all this :)
moshegramovsky··on How might software development have unfolded if CPU speeds were 20x slower?
Sure. It was a fairly complicated image processing algorithm, but not necessarily something that you would want to go through a lot of trouble to implement on the GPU. At least not until you're desperate. And I should add, the results are pretty boring. It doesn't even generate anything interesting.

I read the paper that described the algorithm and implemented code on the CPU, thinking, quite stupidly, that it would be fast enough. Not fast, but fast enough. Nope. Performance was utterly horrible on my tiny 128x128 pixel test case. The hoped-for use cases, data sets of 4096x4096 or 10000x10000 were hopeless.

Performance was bad for a few key reasons: the original data was floating point, and it went through several complicated transformations before being quantized to RGBA. The transforms meant that the loops were like two lines total, with an ~800 line inner loop, plus quantization of course (which could not be done until you had the final results). In GLSL there are functions to do all the transformations, and most of them are hyper-optimized, or even have dedicated silicon in many cases. FMA, for example.

So I wrote some infra to make it possible to use a compute shader to do it. And I use the term 'infra' quite loosely. I configured our application to link to OpenGL and then added support for compute shaders. After a few days of pure hell, I was able to upload a texture, modify the memory with a compute shader, and then download the result. The whole notion of configuring workgroups and local groups was like having my pants set on fire. Especially for someone who had never worked on a GPU before. But OpenGL, it's just a simple C API, right? What could go wrong? There's all these helpful enumerations so the functions will be easy to call. And pixel formats, I know what those are. Color formats? Oh this won't be hard.

But once everything was working, it only took a few more days to make the compute shader work. The hardest part was reconfiguring my brain to stop thinking about the algorithm in terms of traversing the image in a double nested for loop - which is what you would do on the CPU. Actually, the first time I wrote it, that's what I did, in the shader. Yes, I actually did that. And it wasn't fast all. Oh man, it felt like I was fucked.

But in the end, it could process the 4096x4096 use case at 75 FPS, and even better, when I learned about array textures, I found that it could do even more work in parallel. That's how I got it from 15 minutes to hundreds of frames per second.

← PreviousPage 5 of 7Next →