HNHacker News
TopNewBestAskShowJobs

boulos

13,578 karma · joined May 15, 2013

If you're trying to reach me about GCE (or Google Cloud generally) my username at Google is the same as this one.
submissionscomments
boulos··on Ask HN: Is anyone using Fastmail for their business?
Disclosure: I used to work for Google Cloud.

> Being able to pay for _just_ email from a company that isn't also harvesting my mail contents for ad targeting and search relevance is honestly a huge relief to me.

GMail (consumer) stopped scanning your mail for ads personalization five years ago [1]. IIUC, the paid version already wasn't (never did?).

[1] https://blog.google/products/gmail/g-suite-gains-traction-in...

boulos··on How CUDA Programming Works
Yeah, sorry if I was unclear: some folks thought that cuHostMalloc et al. and pinned memory were "impure". That you should instead have a unified sense of "allocate" and that it could sometimes be host, sometimes device, sometimes migrate.

The unified memory support in CUDA (originally intended for Denver, IIRC) is mostly a response to people finding it too hard to decide (a la mmap, really).

So it's not that CUDA doesn't have these. It's that it does, but many people never have to understand anything beyond "there's a thing called malloc, and there's host and device".

boulos··on How CUDA Programming Works
Partly it was second system syndrome. OpenCL in particular thought it was going to be "better", particularly for hybrid programming and portability between "cpu only, GPU only and mixed". I personally find it was a failure, and not just because NVIDIA never cared to really push it.

DirectX and GL predated CUDA and already had opaque buffer allocation things (e.g., vertex buffers). Partly this was a function of limited fixed-function units, maximum sizes of frame buffers and texture dimensions, and so on.

But yes, CUDA had a memory model that wasn't necessarily "magic" but just like regular malloc and free, it's pretty obvious what it does. (And you just live with pinned memory, host <=> device copies, and so on).

boulos··on Porting Graphing Calculator from C++ to Swift
I hadn't followed the link in article originally to get to https://mobile.twitter.com/RonAvitzur/status/146102321572409.... So literally the process of parsing the expression and producing the byte code is the performance challenge now? Or is it also walking the bytecode to do anything?

My basic question would be: why not go back to flex/bison/yacc/whatever via C-FFI? (But I think it would still be bad, since you'll want to get to a Swift data structure for your ops and those will still have the Arc issues)

boulos··on Porting Graphing Calculator from C++ to Swift
(Thanks!)

Can you say more about the parse tree impact on performance?

Is the expression left in a tree form and effectively "interpreted" from the AST for all points? Is that the critical path?

boulos··on Porting Graphing Calculator from C++ to Swift
Was it in C++ originally not C? (It seems like a C FFI bridge would have been straightforward from). Or did it already go from C => Objective-C++ a while back?

(I read the article hours ago and didn't notice you'd posted. Btw, I think we would have gotten better conversation if you had said "Hey, this is me! AMA" as a top-level comment)

boulos··on Ask HN: Who is hiring? (July 2022)
> future-poof pipelines

Amusing typo :).

boulos··on GitHub incident – now resolved
That's not about Actions though, right? That's about the core mysql for repos.
boulos··on Golden Gate Bridge construction – and indignation (2012)
Do you feel that reaching Point Reyes and other areas in the north does not "serve them in any way"? Bridges have existed for millennia because they're useful to both sides of the bridge.
boulos··on Brave Search passes 2.5B queries, allows users to choose search rankings
I am! That's billions of a metric that people would agree is "a lot" :).

Billions of searches per year is just a weird metric that obscures what you'd actually want to know.

boulos··on Brave Search passes 2.5B queries, allows users to choose search rankings
Sorry, I should have been more clear: I just dislike the use of "billions!!!" when what should be discussed is either qps (system load) or daily-active users (engagement).

You could guesstimate DAU from qps by choosing a "queries per day" number (e.g., 10?) and assume the queries are done over just 8 hours. That's 1.25 queries per hour per user. Multiplying these terms out, you get ~500k DAU.

boulos··on Brave Search passes 2.5B queries, allows users to choose search rankings
So... about 160 qps? (Using the 5B queries annualized). Even if you multiply by 10 to account for a very high peak to average, that's sub-2000.

I wish companies wouldn't try to make something seem big by using "billions". It took me billions of nanoseconds to write this comment...

boulos··on Sshfs Is Orphaned
Sun RPC / XDR doesn't have consistency checking like that built in. So you definitely can't bolt this onto older NFS protocols, but they could have for NFS v4 (and didn't).
boulos··on Action Plan for a New CTO
Huh, TIL that Steve posts these here himself :).

As feedback, I find that new executives, even with external credibility won't be able to get the "innovation heroes" to talk to them at first. You have to make time, make space, and follow through.

Don't just have a single all-hands meeting to say "Come to me with your stories of friction", but continually do "skip level meetings" and "meet the team 'lunches'". And then boost that signal personally.

If you want an organization to value the removal of friction and apathy, it requires the most senior executives to actually celebrate the groups that were fighting that fight. Otherwise, these folks would rather remain nameless and wait for this new executive to go away like all the rest have. They're already doing their job, and it's too emotionally taxing to believe that this new executive means what they said.

boulos··on Voyager spacecraft begin to power down
Except it was Carter...
boulos··on DOE announces breakthrough in residential cold climate heat pump technology
FTA, they already measured it and will deploy in 2024:

> The prototype delivers 100% heating at 5°F at double the efficiency, and 70% to 80% heating at -5°F and -10°F. DOE’s Oak Ridge National Laboratory validated the performance and efficiency of Lennox’s prototype.

> Lennox is one of nine manufacturers competing in the CCHP Technology Challenge. Its product and others that meet the CCHP Technology Challenge will undergo trials in cold climate regions over the next two years to demonstrate performance, efficiency, and comfort when applied in the field throughout a winter. Deployment and commercialization are planned for 2024.

boulos··on Ford’s electric pickup can power a house for days
At least in California, the fire code doesn't allow you to have a bank of batteries without building a dedicated room with active fire suppression for them. You need to prove (to your local fire department) that your array of batteries won't have a thermal runaway.

So, conveniently, the F-150 is a tested, self-enclosed array of batteries :).

boulos··on Working on the weekends – an academic necessity?
Huh. What I miss about being a grad student is working whenever I wanted and not working when it didn't make sense. Sometimes that meant working on a weekend, because I had an idea I was making progress on. Other times, even if it was Wednesday, I'd just not work.

The article seems to focus on working too much due to fear of competition. I would add that working in a fast-paced field (the author is doing ML at the Vector Institute) can feel like you're always in competition, but that it's important to remind yourself that you can choose your topic of research (if you have some horrible advisor that dictates what you do, I'm sorry, but recommend you find someone / someplace else). Even within ML, there are tons of pockets that nobody is really working on. That does make it harder to publish though, as your work will be "weird" or "not very hot".

tl;dr: people should choose topics and fields that fit their desired work profile. If you decide to compete in a heavily competitive subject, expect a competitive environment.

boulos··on London ISP CommunityFibre Discount 3Gbps FTTP Plan to £50
As others have said, it just distinguishes between "Premises" and "Home". They're the same. They differ from FTTN (Node) or in the UK apparently FTTC (Cabinet) which is one of the boxes outside "near" your home or office, much like DSL works.
boulos··on Fly Machines: An API for Fast-Booting VMs
Disclosure: I used to work on GCE.

EC2 has historically not focused much on instance boot time. We did for GCE and drove it down pretty heavily. The post here from fly has a good set of sequence diagrams for "what are the various phases of creating an instance from scratch" that are generally applicable.

I'll note though that different users have different targets. Some people care about "time from request to first instruction ticks over" while others only care about "time from request to ssh'able from the public internet". There's an interesting middle ground of "time from request to being able to talk to other services like GCS or S3".

It's not clear to me what the networking / discovery story is for a Fly Machine that is stopped and then starts. That is, how long does fly-proxy take to update (globally? within a metro?) to add and remove the new Fly Machine? I vaguely recall that only external endpoints support IPv4, so I assume Fly is reserving and registering the internal IPv6 endpoints in the more expensive "create" step and then "start" is just about propagating liveness.

boulos··on List of Worker-Owned Tech Cooperatives Worldwide
They might be net positive for the workers within the co-op (at the median anyway) versus taking on outside investors and giving them a slice in search of larger scale.

For diversified investors, it's more valuable to have some of your companies return higher gains even if others don't work out. For an employee though, their income is totally concentrated in their one job.

The employees can be rational in not wanting investors, and the investors are rational in not wanting to invest in those firms (at terms the co-op would accept).

boulos··on Tesla's Safety Record vs. Volvo
This post is dangerously innumerate. I don't like Tesla, but I do like math: accidents are a rate, so of course mileage matters.

The table is also pernicious, as it shows cars sold in a year per model vs deaths in a year per model. Almost sounds legit, until you realize "no wait, sold per year doesn't matter, just how many were operating".

boulos··on Ask HN: Recommendation for general purpose JIT compiler
As folks have mentioned, LLVM's JIT produces great code and is (relatively) easy to use.

However, LLVM is extremely heavyweight. Which "latency" did you mean? Are you going to run these functions 1M times, so that the quality of the generated code is paramount (and you can afford really long compile time) or do you care more about "I hit enter and get the answer"? You can tune LLVM (disable almost all passes, use fast instruction selection) but it's really not focused on millisecond-ish compilation.

There are a lot of "simple JIT" libraries for the latter case (you just want to feed in a simple IR and get machine code out, do an okay job at register allocation, but nothing fancy). None of them has "won" and most only have C bindings (to my knowledge).

boulos··on Japanese audio brand Onkyo files for bankruptcy
Right, the big news was that it was already sold off months ago. But just because Sharp / Voxx is going to reuse the brand name (and likely some base IP) that doesn't mean people won't notice. (It's not likely anyone has noticed yet, since it takes until the next production or two to actually make cost / design changes).
boulos··on Japanese audio brand Onkyo files for bankruptcy
Yeah, AirPlay is such a disappointment. I'm thinking about investing more heavily into Chromecast related things since they're more amenable to custom code. Unfortunately, there's no way I'll sign up for any Google-based music service (and I work for Alphabet!).

Edit to add: Dolby <anything> is also a bit of a fiasco. LG TVs went through multiple firmware updates to attempt to correctly negotiate Dolby Vision. I appreciate that they want to push audio / video quality, but it seems weird that the industry testing process for integration is so poor.

boulos··on Japanese audio brand Onkyo files for bankruptcy
It's too bad Denon (DENki ONkyo) didn't buy this Onkyo to make the merger complete :). I'm guessing it wasn't worth it to go downmarket via Onkyo, and it sounds like Onkyo had been accumulating debt for years.
boulos··on Japanese audio brand Onkyo files for bankruptcy
Many modern receivers support both Chromecast and Airplay, as well as some level of HomeKit / Google Home / Alexa integration.

I think for Onkyo, they just fell in an awkward middle. Not as high end as Denon/Marantz/etc. and not as cheap as < cheapest thing you can find >. Combined with the drastic decrease in people "needing" receivers and speakers (many people now just get a sound bar, or Bluetooth speakers) and the market squeezed them.

boulos··on Removing characters from strings faster with AVX-512
Hmm. That's not how I recall it. The folks in Israel working on Sandybridge (Gesher), already had their AVX plans in place before LRBni was "finalized" (even by the time of "our" siggraph paper -- I was only tangentially involved, not listed -- new instructions were being added all the time).

So it's more like both groups knew what the other was doing, but LRBni was free to focus primarily on graphics and a clean slate, while the AVX folks shot for "SSE but wider, and a few more".

AVX-512 is sort of a franken-combo of what AVX3 would have been, plus many of the LRBni instructions that shipped in the poorly named MIC parts, plus some more (e.g., now including a VNNI dialect, bf16 ops, etc.).

boulos··on Removing characters from strings faster with AVX-512
It's been a while, but IIRC the integrated GPUs are only L3-cache coherent. So while that greatly improves the memcpy problem, anything that would have fit in L1 and does a bunch of math may still be a better fit for AVX2 or AVX-512.
boulos··on Lies we tell ourselves to keep using Golang
There are a few things, mostly due to the runtimes but also because the JVM bytecode assumption has real implications for system behavior.

Let's start with bytecode. It "requires" (except for AOT work) a warm-up / JIT phase that tends towards slower start times. This isn't hard and fast, but in practice it's true. (And when you search for "jvm startup", you end up at lots of pages about how to tune things to try to make this better). For some people, just as bad or even worse (remember, distributed system) is the impact that JIT-compilation and warm-up has on tail latencies. The static nature of most compiled languages mean this isn't a thing you worry about. You've got enough tail latency problems in your life, you don't need "oh hey, I just saw this loop for the Nth time, I took 10ms to hot compile it!".

That leads into the runtime and some of the language choices around it. Java GCs are generally fighting a harder problem than Go's GC, and with a very different tuning point. Java making everything an object and support classloading and so on, has real knock-on effects for the amount of work required to get high-quality, low-pause GC to work. This is much better today than it was in 2008 when the Go team started, but it's still the case that Go has an out-of-the-box better GC experience. Yes there exist special, tuned GCs (e.g., Azul's C4, Shenandoah) but Java GCs have to really be super clever compared to the fairly simple strategies that work in Go; I applaud the ingenuity in Java GC work, but if what you care about is "reasonably good at collecting memory, never pauses for long", the Go language decisions made the GC problem easier.

I think it's fair to ask "Shouldn't Google have just improved Java?", but I think you miss out on lots of the concurrency ergonomics. Again, this has to be compared to a decade ago. Especially post 2010 (Oracle acquisition) it was super unclear that you'd want to attempt to "bet on Java".

To be clear, I do think Go is at the wrong point on the language/type-system sophistication curve for my tastes. That said, I find myself shaking my head at most Java code, while looking at the Go code and thinking "sigh, lots of repetition. I hope one day that gets better, but at least it's obvious".

← PreviousPage 12 of 34Next →