HNHacker News
TopNewBestAskShowJobs

tomlu

427 karma · joined February 26, 2009

submissionscomments
tomlu··on Reflections on IDEA vs VS Code
The language server protocol is diametrically opposite to the way that IntelliJ works. For each language, IntelliJ builds its own internal representation (PSI) of the source code. There are a lot of language specific things, but there are also a lot of commonalities between languages.

I have no idea how you would morph (say) IntelliJ's Java support to use a LSP without basically throwing everything away and starting over.

Caveat: I never worked at Jetbrains, but I did work for two years supporting Android Studio and IntelliJ at Google, which involved a lot of work in its internals.

tomlu··on A Proposal for Adding Generics to Go
This proposal is fundamentally different from C++ templates as they exist today. You don't just chuck a type in there and let the compiler have a go at it, SFINAE style.
tomlu··on A Proposal for Adding Generics to Go
The major difference is the first proposal separated interfaces from concepts, later proposals (very wisely) unified them. Only concepts could be used in type constraints.

They also switched from parenthesis () to square brackets [], thankfully.

tomlu··on Uber will charge significantly more per trip as new Seattle law goes into effect
Australian minimum wage is about 15 USD per hour, which is a wage that can sustain people if they do not spend excessively. The economy is not tanking, the same type of jobs exist. Are you claiming that the Australian standard of living is generally horrible as a result of this? That it would otherwise be better for everyone if there were no minimum wage?
tomlu··on Please – A cross-language build system
Yeah fair point. At Google a lot of these non-deterministic rules are either banned through "date" just not existing on remote execution machines, or through determinism tests that ensure rules behave. Maybe in real-life scenarios it's not as easy as I claim, as you suggest.
tomlu··on Please – A cross-language build system
My full time job was to make Bazel more efficient for about 1.5 years. The answer is: it really depends.

If you are executing 100,000 novel parallel C++ actions, then compilation for that might be I/O bound? If these actions are all cached though you would likely be CPU bound instead, as the build system works hard to discover that all the work is already done.

tomlu··on Please – A cross-language build system
I haven't had many issues with non-determinism when using Bazel/Blaze? Especially when you use remote execution or sandboxing it's pretty hard to avoid being hermetic.
tomlu··on Chess tactics explained
That depends on the strength of the puzzle? I find them pretty difficult once you get above 2000 or so.
tomlu··on Pixel 5
I lost my Pixel 3 recently and upgraded to a Pixel 4 (but had a Pixel 1 as well). You skipped right to the worst incarnation - no fingerprint unlock, mediocre battery life.
tomlu··on JDK 15
You have to work extra hard and give up language niceties to reduce allocations, more so than certain other languages that are more value oriented.

You want an List<T> of objects? It's now a list of pointers to individual allocations. You want a Path class instead of just passing strings around, for type safety? One extra allocation per object.

tomlu··on New case studies about Google’s use of Go
My current and last positions both involve(d) writing (mostly) Go code, so it's definitely possible to find Go jobs within Google.
tomlu··on Ask HN: What are some available force multipliers that most people don't know?
You need to be able to switch directly from workspace #1 to #8 (eg.), not hitting ctrl-windows-arrow 7 times. I use AutoHotKey for this purpose.

I agree with the grandparent poster that the Windows situation is very bad compared to something like i3.

tomlu··on Atlassian tells employees they can work from home forever
Make sure you visit Sydney specifically though, it's a bit different from the rest of Australia. It's not everyone's cup of tea, though you may well end up loving it.
tomlu··on CNO neutrinos from the Sun are finally detected
Parent comment possibly meant "10^25 neutrinos with an energy level indicating they were produced by the CNO process".
tomlu··on Amazon added a non-compete after the employee entered the U.S. on an L1B visa
You can do whatever you want if it has no commercial value. Google would not bother asserting their rights because your experiments will not grow into a competitor they would care about.

This is for serious side ventures, like you creating a self driving car company on the side. Use common sense, fault on the side of disclosure, and you'll be alright.

tomlu··on Amazon added a non-compete after the employee entered the U.S. on an L1B visa
It's the default at Google, but if you want to have an open source project or even a side business you can. You have to disclose it first and get sign-off. This seems reasonable to me and avoids any grey areas.
tomlu··on Workman Keyboard Layout (2010)
I mapped all the programming keys to the alphabetic keys accessible via a third shift state. That buys me 24 symbol keys. Been using it for more than 10 years, works a treat.
tomlu··on Android Studio 4.0
The majority of all Android apps produced by Google are, and I have worked on one myself.
tomlu··on Android Studio 4.0
Me and my team made that plugin. It initially came from the same org that makes Bazel (rather than the other way around), but I think there's now a small team in the Android org that support it.

Nevertheless, Gradle is currently much more popular than Bazel for Android development so it makes sense that this is where the focus is.

tomlu··on GM self-driving tech unit Cruise laying off about 8% of staff
The idea is that such situations are non life threatening. The vehicle will pull over and wait for a human operator.

It's not crazy to imagine that computers could handle split second decisions better than humans but choose to bail out to the side of the road if there's something they can't handle.

tomlu··on Go Developer Survey 2019 Results
If you are a professional programmer then paying $200 for a Goland license could ameliorate some of your complaints.
tomlu··on AMD Claims World’s Fastest Per-Core Performance with New EPYC Rome 7Fx2 CPUs
This is kind of what the SPUs of the PS3 were like, except with way way less RAM.
tomlu··on It's not what programming languages do, it's what they shepherd you to
I find it both easier to read and to understand.
tomlu··on It's not what programming languages do, it's what they shepherd you to
Anecdotally I always find Go code bases very easy to read compared to almost any other language. Is it not reasonable to assume this is because of "shepherding"?

Otherwise other effect would cause this? Perhaps my sample is unrepresentative, or perhaps Go programmers are somehow more competent?

tomlu··on Considering Rust [video]
Because performance is a P0 concern to a lot of people. Rust (and C++) has performance as a primary goal, Scala does not.
tomlu··on Reddit has become a guide to personal finance
I have experienced this first hand. I wrote a novel multiplayer algorithm for a game that shipped on the consoles at the ,time and weighed into a conversation about lag on Battlefield. Downvotes everywhere...
tomlu··on Cost of a thread in C++ under Linux
Exactly this. You want one thread pool of size ~= core count, then you want to have a completely different "max number of IO jobs" type deal that doesn't use threads at all.

C# async/await is pretty good for this (IO operations do not count towards CPU task count).

tomlu··on The Zen of Go
> A function which only returns an error can have its result ignored without any warning.

It should perhaps be an error to not assign an error to a variable. Internally, Google has linters that enforce this.

tomlu··on En svensk tiger
You are probably joking, but in case you are not the play on words only works in this particular configuration (present tense, "a Swedish tiger" vs "a Swede [keeps] quiet".
tomlu··on ACLU sues Homeland Security over 'stingray' cell phone surveillance
> The key factor is the compatibility with international roaming

You could have an encryption setting in the phone, and the handshake with the network could have a bit telling you the setting isn't supported.

Page 1 of 7Next →